diff --git a/static/web/404/index.html b/static/web/404/index.html
index 1c30bb51c..ff998f2ec 100644
--- a/static/web/404/index.html
+++ b/static/web/404/index.html
@@ -1,6 +1,44 @@
-404: This page could not be found
404
This page could not be found.
+ }
404
This page could not be found.
diff --git a/static/web/_next/static/chunks/4114-00487e112494b664.js b/static/web/_next/static/chunks/4114-00487e112494b664.js
deleted file mode 100644
index 7575b5d56..000000000
--- a/static/web/_next/static/chunks/4114-00487e112494b664.js
+++ /dev/null
@@ -1,15 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4114,1382],{11382:function(e,n,t){"use strict";var r=t(87462),l=t(4942),i=t(97685),o=t(94184),u=t.n(o),a=t(23279),c=t.n(a),s=t(98423),f=t(67294),p=t(53124),d=t(96159),h=t(93355),m=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>n.indexOf(r)&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,r=Object.getOwnPropertySymbols(e);ln.indexOf(r[l])&&Object.prototype.propertyIsEnumerable.call(e,r[l])&&(t[r[l]]=e[r[l]]);return t};(0,h.b)("small","default","large");var g=null,y=function(e){var n=e.spinPrefixCls,t=e.spinning,o=void 0===t||t,a=e.delay,h=e.className,y=e.size,x=void 0===y?"default":y,k=e.tip,v=e.wrapperClassName,b=e.style,S=e.children,w=m(e,["spinPrefixCls","spinning","delay","className","size","tip","wrapperClassName","style","children"]),E=f.useState(function(){return o&&(!o||!a||!!isNaN(Number(a)))}),C=(0,i.Z)(E,2),A=C[0],F=C[1];return f.useEffect(function(){var e=c()(function(){F(o)},a);return e(),function(){var n;null===(n=null==e?void 0:e.cancel)||void 0===n||n.call(e)}},[a,o]),f.createElement(p.C,null,function(t){var i,o,a,c=t.direction,p=u()(n,(a={},(0,l.Z)(a,"".concat(n,"-sm"),"small"===x),(0,l.Z)(a,"".concat(n,"-lg"),"large"===x),(0,l.Z)(a,"".concat(n,"-spinning"),A),(0,l.Z)(a,"".concat(n,"-show-text"),!!k),(0,l.Z)(a,"".concat(n,"-rtl"),"rtl"===c),a),h),m=(0,s.Z)(w,["indicator","prefixCls"]),y=f.createElement("div",(0,r.Z)({},m,{style:b,className:p,"aria-live":"polite","aria-busy":A}),(i=e.indicator,o="".concat(n,"-dot"),null===i?null:(0,d.l$)(i)?(0,d.Tm)(i,{className:u()(i.props.className,o)}):(0,d.l$)(g)?(0,d.Tm)(g,{className:u()(g.props.className,o)}):f.createElement("span",{className:u()(o,"".concat(n,"-dot-spin"))},f.createElement("i",{className:"".concat(n,"-dot-item")}),f.createElement("i",{className:"".concat(n,"-dot-item")}),f.createElement("i",{className:"".concat(n,"-dot-item")}),f.createElement("i",{className:"".concat(n,"-dot-item")}))),k?f.createElement("div",{className:"".concat(n,"-text")},k):null);if(void 0!==S){var E=u()("".concat(n,"-container"),(0,l.Z)({},"".concat(n,"-blur"),A));return f.createElement("div",(0,r.Z)({},m,{className:u()("".concat(n,"-nested-loading"),v)}),A&&f.createElement("div",{key:"loading"},y),f.createElement("div",{className:E,key:"container"},S))}return y})},x=function(e){var n=e.prefixCls,t=(0,f.useContext(p.E_).getPrefixCls)("spin",n),l=(0,r.Z)((0,r.Z)({},e),{spinPrefixCls:t});return f.createElement(y,(0,r.Z)({},l))};x.setDefaultIndicator=function(e){g=e},n.Z=x},94470:function(e){"use strict";var n=Object.prototype.hasOwnProperty,t=Object.prototype.toString,r=Object.defineProperty,l=Object.getOwnPropertyDescriptor,i=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===t.call(e)},o=function(e){if(!e||"[object Object]"!==t.call(e))return!1;var r,l=n.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!l&&!i)return!1;for(r in e);return void 0===r||n.call(e,r)},u=function(e,n){r&&"__proto__"===n.name?r(e,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):e[n.name]=n.newValue},a=function(e,t){if("__proto__"===t){if(!n.call(e,t))return;if(l)return l(e,t).value}return e[t]};e.exports=function e(){var n,t,r,l,c,s,f=arguments[0],p=1,d=arguments.length,h=!1;for("boolean"==typeof f&&(h=f,f=arguments[1]||{},p=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});p
- * @license MIT
- */e.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},62705:function(e,n,t){var r=t(55639).Symbol;e.exports=r},44239:function(e,n,t){var r=t(62705),l=t(89607),i=t(2333),o=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":o&&o in Object(e)?l(e):i(e)}},27561:function(e,n,t){var r=t(67990),l=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(l,""):e}},31957:function(e,n,t){var r="object"==typeof t.g&&t.g&&t.g.Object===Object&&t.g;e.exports=r},89607:function(e,n,t){var r=t(62705),l=Object.prototype,i=l.hasOwnProperty,o=l.toString,u=r?r.toStringTag:void 0;e.exports=function(e){var n=i.call(e,u),t=e[u];try{e[u]=void 0;var r=!0}catch(l){}var a=o.call(e);return r&&(n?e[u]=t:delete e[u]),a}},2333:function(e){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},55639:function(e,n,t){var r=t(31957),l="object"==typeof self&&self&&self.Object===Object&&self,i=r||l||Function("return this")();e.exports=i},67990:function(e){var n=/\s/;e.exports=function(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t}},23279:function(e,n,t){var r=t(13218),l=t(7771),i=t(14841),o=Math.max,u=Math.min;e.exports=function(e,n,t){var a,c,s,f,p,d,h=0,m=!1,g=!1,y=!0;if("function"!=typeof e)throw TypeError("Expected a function");function x(n){var t=a,r=c;return a=c=void 0,h=n,f=e.apply(r,t)}function k(e){var t=e-d,r=e-h;return void 0===d||t>=n||t<0||g&&r>=s}function v(){var e,t,r,i=l();if(k(i))return b(i);p=setTimeout(v,(e=i-d,t=i-h,r=n-e,g?u(r,s-t):r))}function b(e){return(p=void 0,y&&a)?x(e):(a=c=void 0,f)}function S(){var e,t=l(),r=k(t);if(a=arguments,c=this,d=t,r){if(void 0===p)return h=e=d,p=setTimeout(v,n),m?x(e):f;if(g)return clearTimeout(p),p=setTimeout(v,n),x(d)}return void 0===p&&(p=setTimeout(v,n)),f}return n=i(n)||0,r(t)&&(m=!!t.leading,s=(g="maxWait"in t)?o(i(t.maxWait)||0,n):s,y="trailing"in t?!!t.trailing:y),S.cancel=function(){void 0!==p&&clearTimeout(p),h=0,a=d=c=p=void 0},S.flush=function(){return void 0===p?f:b(l())},S}},13218:function(e){e.exports=function(e){var n=typeof e;return null!=e&&("object"==n||"function"==n)}},37005:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},33448:function(e,n,t){var r=t(44239),l=t(37005);e.exports=function(e){return"symbol"==typeof e||l(e)&&"[object Symbol]"==r(e)}},7771:function(e,n,t){var r=t(55639);e.exports=function(){return r.Date.now()}},14841:function(e,n,t){var r=t(27561),l=t(13218),i=t(33448),o=0/0,u=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return o;if(l(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=l(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var t=a.test(e);return t||c.test(e)?s(e.slice(2),t?2:8):u.test(e)?o:+e}},71471:function(e,n){"use strict";/**
- * @license React
- * react-is.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var t,r=Symbol.for("react.element"),l=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),c=Symbol.for("react.context"),s=Symbol.for("react.server_context"),f=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),g=Symbol.for("react.offscreen");function y(e){if("object"==typeof e&&null!==e){var n=e.$$typeof;switch(n){case r:switch(e=e.type){case i:case u:case o:case p:case d:return e;default:switch(e=e&&e.$$typeof){case s:case c:case f:case m:case h:case a:return e;default:return n}}case l:return n}}}t=Symbol.for("react.module.reference"),n.ContextConsumer=c,n.ContextProvider=a,n.Element=r,n.ForwardRef=f,n.Fragment=i,n.Lazy=m,n.Memo=h,n.Portal=l,n.Profiler=u,n.StrictMode=o,n.Suspense=p,n.SuspenseList=d,n.isAsyncMode=function(){return!1},n.isConcurrentMode=function(){return!1},n.isContextConsumer=function(e){return y(e)===c},n.isContextProvider=function(e){return y(e)===a},n.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},n.isForwardRef=function(e){return y(e)===f},n.isFragment=function(e){return y(e)===i},n.isLazy=function(e){return y(e)===m},n.isMemo=function(e){return y(e)===h},n.isPortal=function(e){return y(e)===l},n.isProfiler=function(e){return y(e)===u},n.isStrictMode=function(e){return y(e)===o},n.isSuspense=function(e){return y(e)===p},n.isSuspenseList=function(e){return y(e)===d},n.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===u||e===o||e===p||e===d||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===h||e.$$typeof===a||e.$$typeof===c||e.$$typeof===f||e.$$typeof===t||void 0!==e.getModuleId)},n.typeOf=y},82143:function(e,n,t){"use strict";e.exports=t(71471)},57848:function(e,n,t){var r=t(18139);e.exports=function(e,n){var t,l,i,o=null;if(!e||"string"!=typeof e)return o;for(var u=r(e),a="function"==typeof n,c=0,s=u.length;ce.length){for(;i--;)if(47===e.charCodeAt(i)){if(t){r=i+1;break}}else l<0&&(t=!0,l=i+1);return l<0?"":e.slice(r,l)}if(n===e)return"";let o=-1,u=n.length-1;for(;i--;)if(47===e.charCodeAt(i)){if(t){r=i+1;break}}else o<0&&(t=!0,o=i+1),u>-1&&(e.charCodeAt(i)===n.charCodeAt(u--)?u<0&&(l=i):(u=-1,l=o));return r===l?l=o:l<0&&(l=e.length),e.slice(r,l)},dirname:function(e){let n;if(d(e),0===e.length)return".";let t=-1,r=e.length;for(;--r;)if(47===e.charCodeAt(r)){if(n){t=r;break}}else n||(n=!0);return t<0?47===e.charCodeAt(0)?"/":".":1===t&&47===e.charCodeAt(0)?"//":e.slice(0,t)},extname:function(e){let n;d(e);let t=e.length,r=-1,l=0,i=-1,o=0;for(;t--;){let u=e.charCodeAt(t);if(47===u){if(n){l=t+1;break}continue}r<0&&(n=!0,r=t+1),46===u?i<0?i=t:1!==o&&(o=1):i>-1&&(o=-1)}return i<0||r<0||0===o||1===o&&i===r-1&&i===l+1?"":e.slice(i,r)},join:function(...e){let n,t=-1;for(;++t2){if((r=l.lastIndexOf("/"))!==l.length-1){r<0?(l="",i=0):i=(l=l.slice(0,r)).length-1-l.lastIndexOf("/"),o=a,u=0;continue}}else if(l.length>0){l="",i=0,o=a,u=0;continue}}n&&(l=l.length>0?l+"/..":"..",i=2)}else l.length>0?l+="/"+e.slice(o+1,a):l=e.slice(o+1,a),i=a-o-1;o=a,u=0}else 46===t&&u>-1?u++:u=-1}return l}(e,!n);return 0!==t.length||n||(t="."),t.length>0&&47===e.charCodeAt(e.length-1)&&(t+="/"),n?"/"+t:t}(n)},sep:"/"};function d(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}let h={cwd:function(){return"/"}};function m(e){return null!==e&&"object"==typeof e&&e.href&&e.origin}let g=["history","path","basename","stem","extname","dirname"];class y{constructor(e){let n,t;n=e?"string"==typeof e||o(e)?{value:e}:m(e)?{path:e}:e:{},this.data={},this.messages=[],this.history=[],this.cwd=h.cwd(),this.value,this.stored,this.result,this.map;let r=-1;for(;++rn.length;o&&n.push(r);try{i=e.apply(this,n)}catch(u){if(o&&t)throw u;return r(u)}o||(i instanceof Promise?i.then(l,r):i instanceof Error?r(i):l(i))};function r(e,...r){t||(t=!0,n(e,...r))}function l(e){r(null,e)}})(u,l)(...o):r(null,...o)}(null,...n)},use:function(t){if("function"!=typeof t)throw TypeError("Expected `middelware` to be a function, not "+t);return e.push(t),n}};return n}(),r=[],l={},i=-1;return u.data=function(e,t){return"string"==typeof e?2==arguments.length?(T("data",n),l[e]=t,u):C.call(l,e)&&l[e]||null:e?(T("data",n),l=e,u):l},u.Parser=void 0,u.Compiler=void 0,u.freeze=function(){if(n)return u;for(;++i{if(!e&&n&&t){let r=u.stringify(n,t);null==r||("string"==typeof r||o(r)?t.value=r:t.result=r),i(e,t)}else i(e)})}t(null,n)},u.processSync=function(e){let n;u.freeze(),F("processSync",u.Parser),P("processSync",u.Compiler);let t=L(e);return u.process(t,function(e){n=!0,b(e)}),I("processSync","process",n),t},u;function u(){let n=e(),t=-1;for(;++ti?0:i+n:n>i?i:n,t=t>0?t:0,r.length<1e4)(l=Array.from(r)).unshift(n,t),[].splice.apply(e,l);else for(t&&[].splice.apply(e,[n,t]);o0?(M(e,e.length,0,n),e):n}let R={}.hasOwnProperty,B=K(/[A-Za-z]/),N=K(/\d/),_=K(/[\dA-Fa-f]/),H=K(/[\dA-Za-z]/),U=K(/[!-/:-@[-`{-~]/),V=K(/[#-'*+\--9=?A-Z^-~]/);function q(e){return null!==e&&(e<32||127===e)}function $(e){return null!==e&&(e<0||32===e)}function W(e){return null!==e&&e<-2}function Z(e){return -2===e||-1===e||32===e}let Q=K(/\s/),Y=K(/[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/);function K(e){return function(n){return null!==n&&e.test(String.fromCharCode(n))}}function X(e,n,t,r){let l=r?r-1:Number.POSITIVE_INFINITY,i=0;return function(r){return Z(r)?(e.enter(t),function r(o){return Z(o)&&i++r))return;let f=l.events.length,p=f;for(;p--;)if("exit"===l.events[p][0]&&"chunkFlow"===l.events[p][1].type){if(a){c=l.events[p][1].end;break}a=!0}for(g(o),s=f;sn;){let r=i[t];l.containerState=r[1],r[0].exit.call(l,e)}i.length=n}function y(){n.write([null]),t=void 0,n=void 0,l.containerState._closeFlow=void 0}}},ee={tokenize:function(e,n,t){return X(e,e.attempt(this.parser.constructs.document,n,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}},en={tokenize:function(e,n,t){return X(e,function(e){return null===e||W(e)?n(e):t(e)},"linePrefix")},partial:!0};function et(e){let n,t,r,l,i,o,u;let a={},c=-1;for(;++c=4?n(l):e.interrupt(r.parser.constructs.flow,t,n)(l)}},partial:!0},ei={tokenize:function(e){let n=this,t=e.attempt(en,function(r){if(null===r){e.consume(r);return}return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),n.currentConstruct=void 0,t},e.attempt(this.parser.constructs.flowInitial,r,X(e,e.attempt(this.parser.constructs.flow,r,e.attempt(er,r)),"linePrefix")));return t;function r(r){if(null===r){e.consume(r);return}return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n.currentConstruct=void 0,t}}},eo={resolveAll:es()},eu=ec("string"),ea=ec("text");function ec(e){return{tokenize:function(n){let t=this,r=this.parser.constructs[e],l=n.attempt(r,i,o);return i;function i(e){return a(e)?l(e):o(e)}function o(e){if(null===e){n.consume(e);return}return n.enter("data"),n.consume(e),u}function u(e){return a(e)?(n.exit("data"),l(e)):(n.consume(e),u)}function a(e){if(null===e)return!0;let n=r[e],l=-1;if(n)for(;++lc?t(l):(e.consume(l),h):41===l?s--?(e.consume(l),h):(e.exit("chunkString"),e.exit(u),e.exit(o),e.exit(r),n(l)):null===l||$(l)?s?t(l):(e.exit("chunkString"),e.exit(u),e.exit(o),e.exit(r),n(l)):q(l)?t(l):(e.consume(l),92===l?m:h)}function m(n){return 40===n||41===n||92===n?(e.consume(n),h):h(n)}}function ek(e,n,t,r,l,i){let o;let u=this,a=0;return function(n){return e.enter(r),e.enter(l),e.consume(n),e.exit(l),e.enter(i),c};function c(f){return null===f||91===f||93===f&&!o||94===f&&!a&&"_hiddenFootnoteSupport"in u.parser.constructs||a>999?t(f):93===f?(e.exit(i),e.enter(l),e.consume(f),e.exit(l),e.exit(r),n):W(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),s(f))}function s(n){return null===n||91===n||93===n||W(n)||a++>999?(e.exit("chunkString"),c(n)):(e.consume(n),o=o||!Z(n),92===n?f:s)}function f(n){return 91===n||92===n||93===n?(e.consume(n),a++,s):s(n)}}function ev(e,n,t,r,l,i){let o;return function(n){return e.enter(r),e.enter(l),e.consume(n),e.exit(l),o=40===n?41:n,u};function u(t){return t===o?(e.enter(l),e.consume(t),e.exit(l),e.exit(r),n):(e.enter(i),a(t))}function a(n){return n===o?(e.exit(i),u(o)):null===n?t(n):W(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),X(e,a,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(n))}function c(n){return n===o||null===n||W(n)?(e.exit("chunkString"),a(n)):(e.consume(n),92===n?s:c)}function s(n){return n===o||92===n?(e.consume(n),c):c(n)}}function eb(e,n){let t;return function r(l){return W(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),t=!0,r):Z(l)?X(e,r,t?"linePrefix":"lineSuffix")(l):n(l)}}function eS(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}let ew={tokenize:function(e,n,t){return function(n){return $(n)?eb(e,r)(n):t(n)};function r(n){return 34===n||39===n||40===n?ev(e,X(e,l,"whitespace"),t,"definitionTitle","definitionTitleMarker","definitionTitleString")(n):t(n)}function l(e){return null===e||W(e)?n(e):t(e)}},partial:!0},eE={name:"codeIndented",tokenize:function(e,n,t){let r=this;return function(n){return e.enter("codeIndented"),X(e,l,"linePrefix",5)(n)};function l(n){let l=r.events[r.events.length-1];return l&&"linePrefix"===l[1].type&&l[2].sliceSerialize(l[1],!0).length>=4?function n(t){return null===t?i(t):W(t)?e.attempt(eC,n,i)(t):(e.enter("codeFlowValue"),function t(r){return null===r||W(r)?(e.exit("codeFlowValue"),n(r)):(e.consume(r),t)}(t))}(n):t(n)}function i(t){return e.exit("codeIndented"),n(t)}}},eC={tokenize:function(e,n,t){let r=this;return l;function l(n){return r.parser.lazy[r.now().line]?t(n):W(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),l):X(e,i,"linePrefix",5)(n)}function i(e){let i=r.events[r.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?n(e):W(e)?l(e):t(e)}},partial:!0},eA={name:"setextUnderline",tokenize:function(e,n,t){let r;let l=this,i=l.events.length;for(;i--;)if("lineEnding"!==l.events[i][1].type&&"linePrefix"!==l.events[i][1].type&&"content"!==l.events[i][1].type){r="paragraph"===l.events[i][1].type;break}return function(n){return!l.parser.lazy[l.now().line]&&(l.interrupt||r)?(e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),function t(r){return r===n?(e.consume(r),t):(e.exit("setextHeadingLineSequence"),X(e,o,"lineSuffix")(r))}(n)):t(n)};function o(r){return null===r||W(r)?(e.exit("setextHeadingLine"),n(r)):t(r)}},resolveTo:function(e,n){let t,r,l,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){t=i;break}"paragraph"===e[i][1].type&&(r=i)}else"content"===e[i][1].type&&e.splice(i,1),l||"definition"!==e[i][1].type||(l=i);let o={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[r][1].type="setextHeadingText",l?(e.splice(r,0,["enter",o,n]),e.splice(l+1,0,["exit",e[t][1],n]),e[t][1].end=Object.assign({},e[l][1].end)):e[t][1]=o,e.push(["exit",o,n]),e}},eF=["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","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],eP=["pre","script","style","textarea"],eT={tokenize:function(e,n,t){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(en,n,t)}},partial:!0},eO={name:"codeFenced",tokenize:function(e,n,t){let r;let l=this,i={tokenize:function(e,n,t){let l=0;return X(e,function(n){return e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),function n(o){return o===r?(e.consume(o),l++,n):l1&&e[s][1].end.offset-e[s][1].start.offset>1?2:1;let f=Object.assign({},e[t][1].end),p=Object.assign({},e[s][1].start);eV(f,-u),eV(p,u),i={type:u>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},e[t][1].end)},o={type:u>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[s][1].start),end:p},l={type:u>1?"strongText":"emphasisText",start:Object.assign({},e[t][1].end),end:Object.assign({},e[s][1].start)},r={type:u>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},o.end)},e[t][1].end=Object.assign({},i.start),e[s][1].start=Object.assign({},o.end),a=[],e[t][1].end.offset-e[t][1].start.offset&&(a=j(a,[["enter",e[t][1],n],["exit",e[t][1],n]])),a=j(a,[["enter",r,n],["enter",i,n],["exit",i,n],["enter",l,n]]),a=j(a,ep(n.parser.constructs.insideSpan.null,e.slice(t+1,s),n)),a=j(a,[["exit",l,n],["enter",o,n],["exit",o,n],["exit",r,n]]),e[s][1].end.offset-e[s][1].start.offset?(c=2,a=j(a,[["enter",e[s][1],n],["exit",e[s][1],n]])):c=0,M(e,t-1,s-t+3,a),s=t+a.length-c-2;break}}for(s=-1;++si&&"whitespace"===e[l][1].type&&(l-=2),"atxHeadingSequence"===e[l][1].type&&(i===l-1||l-4>i&&"whitespace"===e[l-2][1].type)&&(l-=i+1===l?2:4),l>i&&(t={type:"atxHeadingText",start:e[i][1].start,end:e[l][1].end},r={type:"chunkText",start:e[i][1].start,end:e[l][1].end,contentType:"text"},M(e,i,l-i+1,[["enter",t,n],["enter",r,n],["exit",r,n],["exit",t,n]])),e}},42:ed,45:[eA,ed],60:{name:"htmlFlow",tokenize:function(e,n,t){let r,l,i,o,u;let a=this;return function(n){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(n),c};function c(o){return 33===o?(e.consume(o),s):47===o?(e.consume(o),d):63===o?(e.consume(o),r=3,a.interrupt?n:I):B(o)?(e.consume(o),i=String.fromCharCode(o),l=!0,h):t(o)}function s(l){return 45===l?(e.consume(l),r=2,f):91===l?(e.consume(l),r=5,i="CDATA[",o=0,p):B(l)?(e.consume(l),r=4,a.interrupt?n:I):t(l)}function f(r){return 45===r?(e.consume(r),a.interrupt?n:I):t(r)}function p(r){return r===i.charCodeAt(o++)?(e.consume(r),o===i.length?a.interrupt?n:E:p):t(r)}function d(n){return B(n)?(e.consume(n),i=String.fromCharCode(n),h):t(n)}function h(o){return null===o||47===o||62===o||$(o)?47!==o&&l&&eP.includes(i.toLowerCase())?(r=1,a.interrupt?n(o):E(o)):eF.includes(i.toLowerCase())?(r=6,47===o)?(e.consume(o),m):a.interrupt?n(o):E(o):(r=7,a.interrupt&&!a.parser.lazy[a.now().line]?t(o):l?g(o):function n(t){return Z(t)?(e.consume(t),n):S(t)}(o)):45===o||H(o)?(e.consume(o),i+=String.fromCharCode(o),h):t(o)}function m(r){return 62===r?(e.consume(r),a.interrupt?n:E):t(r)}function g(n){return 47===n?(e.consume(n),S):58===n||95===n||B(n)?(e.consume(n),y):Z(n)?(e.consume(n),g):S(n)}function y(n){return 45===n||46===n||58===n||95===n||H(n)?(e.consume(n),y):x(n)}function x(n){return 61===n?(e.consume(n),k):Z(n)?(e.consume(n),x):g(n)}function k(n){return null===n||60===n||61===n||62===n||96===n?t(n):34===n||39===n?(e.consume(n),u=n,v):Z(n)?(e.consume(n),k):(u=null,function n(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||$(t)?x(t):(e.consume(t),n)}(n))}function v(n){return null===n||W(n)?t(n):n===u?(e.consume(n),b):(e.consume(n),v)}function b(e){return 47===e||62===e||Z(e)?g(e):t(e)}function S(n){return 62===n?(e.consume(n),w):t(n)}function w(n){return Z(n)?(e.consume(n),w):null===n||W(n)?E(n):t(n)}function E(n){return 45===n&&2===r?(e.consume(n),F):60===n&&1===r?(e.consume(n),P):62===n&&4===r?(e.consume(n),L):63===n&&3===r?(e.consume(n),I):93===n&&5===r?(e.consume(n),O):W(n)&&(6===r||7===r)?e.check(eT,L,C)(n):null===n||W(n)?C(n):(e.consume(n),E)}function C(n){return e.exit("htmlFlowData"),function n(t){return null===t?D(t):W(t)?e.attempt({tokenize:A,partial:!0},n,D)(t):(e.enter("htmlFlowData"),E(t))}(n)}function A(e,n,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),r};function r(e){return a.parser.lazy[a.now().line]?t(e):n(e)}}function F(n){return 45===n?(e.consume(n),I):E(n)}function P(n){return 47===n?(e.consume(n),i="",T):E(n)}function T(n){return 62===n&&eP.includes(i.toLowerCase())?(e.consume(n),L):B(n)&&i.length<8?(e.consume(n),i+=String.fromCharCode(n),T):E(n)}function O(n){return 93===n?(e.consume(n),I):E(n)}function I(n){return 62===n?(e.consume(n),L):45===n&&2===r?(e.consume(n),I):E(n)}function L(n){return null===n||W(n)?(e.exit("htmlFlowData"),D(n)):(e.consume(n),L)}function D(t){return e.exit("htmlFlow"),n(t)}},resolveTo:function(e){let n=e.length;for(;n--&&("enter"!==e[n][0]||"htmlFlow"!==e[n][1].type););return n>1&&"linePrefix"===e[n-2][1].type&&(e[n][1].start=e[n-2][1].start,e[n+1][1].start=e[n-2][1].start,e.splice(n-2,2)),e},concrete:!0},61:eA,95:ed,96:eO,126:eO},eY={38:eD,92:ez},eK={[-5]:eM,[-4]:eM,[-3]:eM,33:e_,38:eD,42:eU,60:[{name:"autolink",tokenize:function(e,n,t){let r=1;return function(n){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),l};function l(n){return B(n)?(e.consume(n),i):V(n)?u(n):t(n)}function i(n){return 43===n||45===n||46===n||H(n)?function n(t){return 58===t?(e.consume(t),o):(43===t||45===t||46===t||H(t))&&r++<32?(e.consume(t),n):u(t)}(n):u(n)}function o(n){return 62===n?(e.exit("autolinkProtocol"),c(n)):null===n||32===n||60===n||q(n)?t(n):(e.consume(n),o)}function u(n){return 64===n?(e.consume(n),r=0,a):V(n)?(e.consume(n),u):t(n)}function a(n){return H(n)?function n(l){return 46===l?(e.consume(l),r=0,a):62===l?(e.exit("autolinkProtocol").type="autolinkEmail",c(l)):function l(i){return(45===i||H(i))&&r++<63?(e.consume(i),45===i?l:n):t(i)}(l)}(n):t(n)}function c(t){return e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.exit("autolink"),n}}},{name:"htmlText",tokenize:function(e,n,t){let r,l,i,o;let u=this;return function(n){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(n),a};function a(n){return 33===n?(e.consume(n),c):47===n?(e.consume(n),S):63===n?(e.consume(n),v):B(n)?(e.consume(n),E):t(n)}function c(n){return 45===n?(e.consume(n),s):91===n?(e.consume(n),l="CDATA[",i=0,m):B(n)?(e.consume(n),k):t(n)}function s(n){return 45===n?(e.consume(n),f):t(n)}function f(n){return null===n||62===n?t(n):45===n?(e.consume(n),p):d(n)}function p(e){return null===e||62===e?t(e):d(e)}function d(n){return null===n?t(n):45===n?(e.consume(n),h):W(n)?(o=d,I(n)):(e.consume(n),d)}function h(n){return 45===n?(e.consume(n),D):d(n)}function m(n){return n===l.charCodeAt(i++)?(e.consume(n),i===l.length?g:m):t(n)}function g(n){return null===n?t(n):93===n?(e.consume(n),y):W(n)?(o=g,I(n)):(e.consume(n),g)}function y(n){return 93===n?(e.consume(n),x):g(n)}function x(n){return 62===n?D(n):93===n?(e.consume(n),x):g(n)}function k(n){return null===n||62===n?D(n):W(n)?(o=k,I(n)):(e.consume(n),k)}function v(n){return null===n?t(n):63===n?(e.consume(n),b):W(n)?(o=v,I(n)):(e.consume(n),v)}function b(e){return 62===e?D(e):v(e)}function S(n){return B(n)?(e.consume(n),w):t(n)}function w(n){return 45===n||H(n)?(e.consume(n),w):function n(t){return W(t)?(o=n,I(t)):Z(t)?(e.consume(t),n):D(t)}(n)}function E(n){return 45===n||H(n)?(e.consume(n),E):47===n||62===n||$(n)?C(n):t(n)}function C(n){return 47===n?(e.consume(n),D):58===n||95===n||B(n)?(e.consume(n),A):W(n)?(o=C,I(n)):Z(n)?(e.consume(n),C):D(n)}function A(n){return 45===n||46===n||58===n||95===n||H(n)?(e.consume(n),A):function n(t){return 61===t?(e.consume(t),F):W(t)?(o=n,I(t)):Z(t)?(e.consume(t),n):C(t)}(n)}function F(n){return null===n||60===n||61===n||62===n||96===n?t(n):34===n||39===n?(e.consume(n),r=n,P):W(n)?(o=F,I(n)):Z(n)?(e.consume(n),F):(e.consume(n),r=void 0,O)}function P(n){return n===r?(e.consume(n),T):null===n?t(n):W(n)?(o=P,I(n)):(e.consume(n),P)}function T(e){return 62===e||47===e||$(e)?C(e):t(e)}function O(n){return null===n||34===n||39===n||60===n||61===n||96===n?t(n):62===n||$(n)?C(n):(e.consume(n),O)}function I(n){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),X(e,L,"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function L(n){return e.enter("htmlTextData"),o(n)}function D(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),n):t(r)}}}],91:eq,92:[{name:"hardBreakEscape",tokenize:function(e,n,t){return function(n){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(n),r};function r(r){return W(r)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),n(r)):t(r)}}},ez],93:ej,95:eU,96:{name:"codeText",tokenize:function(e,n,t){let r,l,i=0;return function(n){return e.enter("codeText"),e.enter("codeTextSequence"),function n(t){return 96===t?(e.consume(t),i++,n):(e.exit("codeTextSequence"),o(t))}(n)};function o(a){return null===a?t(a):96===a?(l=e.enter("codeTextSequence"),r=0,function t(o){return 96===o?(e.consume(o),r++,t):r===i?(e.exit("codeTextSequence"),e.exit("codeText"),n(o)):(l.type="codeTextData",u(o))}(a)):32===a?(e.enter("space"),e.consume(a),e.exit("space"),o):W(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):(e.enter("codeTextData"),u(a))}function u(n){return null===n||32===n||96===n||W(n)?(e.exit("codeTextData"),o(n)):(e.consume(n),u)}},resolve:function(e){let n,t,r=e.length-4,l=3;if(("lineEnding"===e[3][1].type||"space"===e[l][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type)){for(n=l;++n13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(65535&t)==65535||(65535&t)==65534||t>1114111?"�":String.fromCharCode(t)}let e2=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function e4(e,n,t){if(n)return n;let r=t.charCodeAt(0);if(35===r){let l=t.charCodeAt(1),i=120===l||88===l;return e0(t.slice(i?2:1),i?16:10)}return eL(t)||e}let e3={}.hasOwnProperty,e6=function(e,n,t){let l,i,o,a;return"string"!=typeof n&&(t=n,n=void 0),(function(e={}){let n=function e(n,t){let r=-1;for(;++r0){let y=u[u.length-1],x=y[1]||e5;x.call(d,void 0,y[0])}for(t.position={start:i(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:i(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},h=-1;++h-1&&(t[0]=t[0].slice(l)),o>0&&t.push(e[i].slice(0,o))),t}(o,e)}function p(){return Object.assign({},r)}function d(e,n){n.restore()}function h(e,n){return function(t,l,i){let o,s,f,d;return Array.isArray(t)?h(t):"tokenize"in t?h([t]):function(e){let n=null!==e&&t[e],r=null!==e&&t.null,l=[...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]];return h(l)(e)};function h(e){return(o=e,s=0,0===e.length)?i:m(e[s])}function m(e){return function(t){return(d=function(){let e=p(),n=c.previous,t=c.currentConstruct,l=c.events.length,i=Array.from(u);return{restore:function(){r=e,c.previous=n,c.currentConstruct=t,c.events.length=l,u=i,g()},from:l}}(),f=e,e.partial||(c.currentConstruct=e),e.name&&c.parser.constructs.disable.null.includes(e.name))?x(t):e.tokenize.call(n?Object.assign(Object.create(c),n):c,a,y,x)(t)}}function y(n){return e(f,d),l}function x(e){return(d.restore(),++s{let t=this.data("settings");return e6(n,Object.assign({},t,e,{extensions:this.data("micromarkExtensions")||[],mdastExtensions:this.data("fromMarkdownExtensions")||[]}))};Object.assign(this,{Parser:n})},e7=function(e,n,t){var r={type:String(e)};return null==t&&("string"==typeof n||Array.isArray(n))?t=n:Object.assign(r,n),Array.isArray(t)?r.children=t:null!=t&&(r.value=String(t)),r};let e8=function(e){if(null==e)return nn;if("string"==typeof e)return ne(function(n){return n&&n.type===e});if("object"==typeof e)return Array.isArray(e)?function(e){let n=[],t=-1;for(;++t":"")+")"})),f;function f(){var c;let s,f,p,d=[];if((!n||l(o,u,a[a.length-1]||null))&&!1===(d=Array.isArray(c=t(o,a))?c:"number"==typeof c?[!0,c]:[c])[0])return d;if(o.children&&"skip"!==d[0])for(f=(r?o.children.length:-1)+i,p=a.concat(o);f>-1&&f-1?t.offset:null}}}let nu={}.hasOwnProperty;function na(e){return String(e||"").toUpperCase()}let nc={}.hasOwnProperty;function ns(e,n){let t=n.data||{};return"value"in n&&!(nc.call(t,"hName")||nc.call(t,"hProperties")||nc.call(t,"hChildren"))?e.augment(n,e7("text",n.value)):e(n,"div",nd(e,n))}function nf(e,n,t){let r;let l=n&&n.type;if(!l)throw Error("Expected node, got `"+n+"`");return("function"==typeof(r=nc.call(e.handlers,l)?e.handlers[l]:e.passThrough&&e.passThrough.includes(l)?np:e.unknownHandler)?r:ns)(e,n,t)}function np(e,n){return"children"in n?{...n,children:nd(e,n)}:n}function nd(e,n){let t=[];if("children"in n){let r=n.children,l=-1;for(;++l55295&&i<57344){let u=e.charCodeAt(t+1);i<56320&&u>56319&&u<57344?(o=String.fromCharCode(i,u),l=1):o="�"}else o=String.fromCharCode(i);o&&(n.push(e.slice(r,t),encodeURIComponent(o)),r=t+l+1,o=""),l&&(t+=l,l=0)}return n.join("")+e.slice(r)}function nm(e,n){let t=[],r=-1;for(n&&t.push(e7("text","\n"));++r0&&t.push(e7("text","\n")),t}function ng(e,n){let t;let r=String(n.identifier),l=nh(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);-1===i?(e.footnoteOrder.push(r),e.footnoteCounts[r]=1,t=e.footnoteOrder.length):(e.footnoteCounts[r]++,t=i+1);let o=e.footnoteCounts[r];return e(n,"sup",[e(n.position,"a",{href:"#"+e.clobberPrefix+"fn-"+l,id:e.clobberPrefix+"fnref-"+l+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:"footnote-label"},[e7("text",String(t))])])}function ny(e,n){let t=n.referenceType,r="]";if("collapsed"===t?r+="[]":"full"===t&&(r+="["+(n.label||n.identifier)+"]"),"imageReference"===n.type)return e7("text","!["+n.alt+r);let l=nd(e,n),i=l[0];i&&"text"===i.type?i.value="["+i.value:l.unshift(e7("text","["));let o=l[l.length-1];return o&&"text"===o.type?o.value+=r:l.push(e7("text",r)),l}function nx(e){let n=e.spread;return null==n?e.children.length>1:n}function nk(e,n,t){let r=0,l=e.length;if(n){let i=e.codePointAt(r);for(;9===i||32===i;)r++,i=e.codePointAt(r)}if(t){let o=e.codePointAt(l-1);for(;9===o||32===o;)l--,o=e.codePointAt(l-1)}return l>r?e.slice(r,l):""}let nv={blockquote:function(e,n){return e(n,"blockquote",nm(nd(e,n),!0))},break:function(e,n){return[e(n,"br"),e7("text","\n")]},code:function(e,n){let t=n.value?n.value+"\n":"",r=n.lang&&n.lang.match(/^[^ \t]+(?=[ \t]|$)/),l={};r&&(l.className=["language-"+r]);let i=e(n,"code",l,[e7("text",t)]);return n.meta&&(i.data={meta:n.meta}),e(n.position,"pre",[i])},delete:function(e,n){return e(n,"del",nd(e,n))},emphasis:function(e,n){return e(n,"em",nd(e,n))},footnoteReference:ng,footnote:function(e,n){let t=e.footnoteById,r=1;for(;(r in t);)r++;let l=String(r);return t[l]={type:"footnoteDefinition",identifier:l,children:[{type:"paragraph",children:n.children}],position:n.position},ng(e,{type:"footnoteReference",identifier:l,position:n.position})},heading:function(e,n){return e(n,"h"+n.depth,nd(e,n))},html:function(e,n){return e.dangerous?e.augment(n,e7("raw",n.value)):null},imageReference:function(e,n){let t=e.definition(n.identifier);if(!t)return ny(e,n);let r={src:nh(t.url||""),alt:n.alt};return null!==t.title&&void 0!==t.title&&(r.title=t.title),e(n,"img",r)},image:function(e,n){let t={src:nh(n.url),alt:n.alt};return null!==n.title&&void 0!==n.title&&(t.title=n.title),e(n,"img",t)},inlineCode:function(e,n){return e(n,"code",[e7("text",n.value.replace(/\r?\n|\r/g," "))])},linkReference:function(e,n){let t=e.definition(n.identifier);if(!t)return ny(e,n);let r={href:nh(t.url||"")};return null!==t.title&&void 0!==t.title&&(r.title=t.title),e(n,"a",r,nd(e,n))},link:function(e,n){let t={href:nh(n.url)};return null!==n.title&&void 0!==n.title&&(t.title=n.title),e(n,"a",t,nd(e,n))},listItem:function(e,n,t){let r=nd(e,n),l=t?function(e){let n=e.spread,t=e.children,r=-1;for(;!n&&++r0&&u.children.unshift(e7("text"," ")),u.children.unshift(e(null,"input",{type:"checkbox",checked:n.checked,disabled:!0})),i.className=["task-list-item"]}let a=-1;for(;++a0,!0),r[0]),l=r.index+r[0].length,r=t.exec(n);return i.push(nk(n.slice(l),l>0,!1)),i.join("")}(String(n.value))))},thematicBreak:function(e,n){return e(n,"hr")},toml:nb,yaml:nb,definition:nb,footnoteDefinition:nb};function nb(){return null}let nS={}.hasOwnProperty;function nw(e,n){let t=function(e,n){let t=n||{},r=t.allowDangerousHtml||!1,l={};return o.dangerous=r,o.clobberPrefix=void 0===t.clobberPrefix||null===t.clobberPrefix?"user-content-":t.clobberPrefix,o.footnoteLabel=t.footnoteLabel||"Footnotes",o.footnoteLabelTagName=t.footnoteLabelTagName||"h2",o.footnoteLabelProperties=t.footnoteLabelProperties||{className:["sr-only"]},o.footnoteBackLabel=t.footnoteBackLabel||"Back to content",o.definition=function(e){let n=Object.create(null);if(!e||!e.type)throw Error("mdast-util-definitions expected node");return nr(e,"definition",e=>{let t=na(e.identifier);t&&!nu.call(n,t)&&(n[t]=e)}),function(e){let t=na(e);return t&&nu.call(n,t)?n[t]:null}}(e),o.footnoteById=l,o.footnoteOrder=[],o.footnoteCounts={},o.augment=i,o.handlers={...nv,...t.handlers},o.unknownHandler=t.unknownHandler,o.passThrough=t.passThrough,nr(e,"footnoteDefinition",e=>{let n=String(e.identifier).toUpperCase();nS.call(l,n)||(l[n]=e)}),o;function i(e,n){if(e&&"data"in e&&e.data){let t=e.data;t.hName&&("element"!==n.type&&(n={type:"element",tagName:"",properties:{},children:[]}),n.tagName=t.hName),"element"===n.type&&t.hProperties&&(n.properties={...n.properties,...t.hProperties}),"children"in n&&n.children&&t.hChildren&&(n.children=t.hChildren)}if(e){let r="type"in e?e:{position:e};!r||!r.position||!r.position.start||!r.position.start.line||!r.position.start.column||!r.position.end||!r.position.end.line||!r.position.end.column||(n.position={start:nl(r),end:ni(r)})}return n}function o(e,n,t,r){return Array.isArray(t)&&(r=t,t={}),i(e,{type:"element",tagName:n,properties:t||{},children:r||[]})}}(e,n),r=nf(t,e,null),l=function(e){let n=-1,t=[];for(;++n1?"-"+u:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:e.footnoteBackLabel},children:[{type:"text",value:"↩"}]};u>1&&c.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(u)}]}),a.length>0&&a.push({type:"text",value:" "}),a.push(c)}let s=l[l.length-1];if(s&&"element"===s.type&&"p"===s.tagName){let f=s.children[s.children.length-1];f&&"text"===f.type?f.value+=" ":s.children.push({type:"text",value:" "}),s.children.push(...a)}else l.push(...a);let p={type:"element",tagName:"li",properties:{id:e.clobberPrefix+"fn-"+o},children:nm(l,!0)};r.position&&(p.position=r.position),t.push(p)}return 0===t.length?null:{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:e.footnoteLabelTagName,properties:{...JSON.parse(JSON.stringify(e.footnoteLabelProperties)),id:"footnote-label"},children:[e7("text",e.footnoteLabel)]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:nm(t,!0)},{type:"text",value:"\n"}]}}(t);return l&&r.children.push(e7("text","\n"),l),Array.isArray(r)?{type:"root",children:r}:r}var nE=function(e,n){var t;return e&&"run"in e?(t,r,l)=>{e.run(nw(t,n),r,e=>{l(e)})}:(t=e||n,e=>nw(e,t))},nC=t(45697);class nA{constructor(e,n,t){this.property=e,this.normal=n,t&&(this.space=t)}}function nF(e,n){let t={},r={},l=-1;for(;++l"xlink:"+n.slice(5).toLowerCase(),properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),nq=nU({space:"xml",transform:(e,n)=>"xml:"+n.slice(3).toLowerCase(),properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function n$(e,n){return n in e?e[n]:n}function nW(e,n){return n$(e,n.toLowerCase())}let nZ=nU({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:nW,properties:{xmlns:null,xmlnsXLink:null}}),nQ=nU({transform:(e,n)=>"role"===n?n:"aria-"+n.slice(4).toLowerCase(),properties:{ariaActiveDescendant:null,ariaAtomic:nL,ariaAutoComplete:null,ariaBusy:nL,ariaChecked:nL,ariaColCount:nz,ariaColIndex:nz,ariaColSpan:nz,ariaControls:nM,ariaCurrent:null,ariaDescribedBy:nM,ariaDetails:null,ariaDisabled:nL,ariaDropEffect:nM,ariaErrorMessage:null,ariaExpanded:nL,ariaFlowTo:nM,ariaGrabbed:nL,ariaHasPopup:null,ariaHidden:nL,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:nM,ariaLevel:nz,ariaLive:null,ariaModal:nL,ariaMultiLine:nL,ariaMultiSelectable:nL,ariaOrientation:null,ariaOwns:nM,ariaPlaceholder:null,ariaPosInSet:nz,ariaPressed:nL,ariaReadOnly:nL,ariaRelevant:null,ariaRequired:nL,ariaRoleDescription:nM,ariaRowCount:nz,ariaRowIndex:nz,ariaRowSpan:nz,ariaSelected:nL,ariaSetSize:nz,ariaSort:null,ariaValueMax:nz,ariaValueMin:nz,ariaValueNow:nz,ariaValueText:null,role:null}}),nY=nU({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:nW,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:nj,acceptCharset:nM,accessKey:nM,action:null,allow:null,allowFullScreen:nI,allowPaymentRequest:nI,allowUserMedia:nI,alt:null,as:null,async:nI,autoCapitalize:null,autoComplete:nM,autoFocus:nI,autoPlay:nI,capture:nI,charSet:null,checked:nI,cite:null,className:nM,cols:nz,colSpan:null,content:null,contentEditable:nL,controls:nI,controlsList:nM,coords:nz|nj,crossOrigin:null,data:null,dateTime:null,decoding:null,default:nI,defer:nI,dir:null,dirName:null,disabled:nI,download:nD,draggable:nL,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:nI,formTarget:null,headers:nM,height:nz,hidden:nI,high:nz,href:null,hrefLang:null,htmlFor:nM,httpEquiv:nM,id:null,imageSizes:null,imageSrcSet:null,inputMode:null,integrity:null,is:null,isMap:nI,itemId:null,itemProp:nM,itemRef:nM,itemScope:nI,itemType:nM,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:nI,low:nz,manifest:null,max:null,maxLength:nz,media:null,method:null,min:null,minLength:nz,multiple:nI,muted:nI,name:null,nonce:null,noModule:nI,noValidate:nI,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:nI,optimum:nz,pattern:null,ping:nM,placeholder:null,playsInline:nI,poster:null,preload:null,readOnly:nI,referrerPolicy:null,rel:nM,required:nI,reversed:nI,rows:nz,rowSpan:nz,sandbox:nM,scope:null,scoped:nI,seamless:nI,selected:nI,shape:null,size:nz,sizes:null,slot:null,span:nz,spellCheck:nL,src:null,srcDoc:null,srcLang:null,srcSet:null,start:nz,step:null,style:null,tabIndex:nz,target:null,title:null,translate:null,type:null,typeMustMatch:nI,useMap:null,value:nL,width:nz,wrap:null,align:null,aLink:null,archive:nM,axis:null,background:null,bgColor:null,border:nz,borderColor:null,bottomMargin:nz,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:nI,declare:nI,event:null,face:null,frame:null,frameBorder:null,hSpace:nz,leftMargin:nz,link:null,longDesc:null,lowSrc:null,marginHeight:nz,marginWidth:nz,noResize:nI,noHref:nI,noShade:nI,noWrap:nI,object:null,profile:null,prompt:null,rev:null,rightMargin:nz,rules:null,scheme:null,scrolling:nL,standby:null,summary:null,text:null,topMargin:nz,valueType:null,version:null,vAlign:null,vLink:null,vSpace:nz,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:nI,disableRemotePlayback:nI,prefix:null,property:null,results:nz,security:null,unselectable:null}}),nK=nU({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:n$,properties:{about:nR,accentHeight:nz,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:nz,amplitude:nz,arabicForm:null,ascent:nz,attributeName:null,attributeType:null,azimuth:nz,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:nz,by:null,calcMode:null,capHeight:nz,className:nM,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:nz,diffuseConstant:nz,direction:null,display:null,dur:null,divisor:nz,dominantBaseline:null,download:nI,dx:null,dy:null,edgeMode:null,editable:null,elevation:nz,enableBackground:null,end:null,event:null,exponent:nz,externalResourcesRequired:null,fill:null,fillOpacity:nz,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:nj,g2:nj,glyphName:nj,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:nz,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:nz,horizOriginX:nz,horizOriginY:nz,id:null,ideographic:nz,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:nz,k:nz,k1:nz,k2:nz,k3:nz,k4:nz,kernelMatrix:nR,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:nz,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:nz,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:nz,overlineThickness:nz,paintOrder:null,panose1:null,path:null,pathLength:nz,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:nM,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:nz,pointsAtY:nz,pointsAtZ:nz,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:nR,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:nR,rev:nR,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:nR,requiredFeatures:nR,requiredFonts:nR,requiredFormats:nR,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:nz,specularExponent:nz,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:nz,strikethroughThickness:nz,string:null,stroke:null,strokeDashArray:nR,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:nz,strokeOpacity:nz,strokeWidth:null,style:null,surfaceScale:nz,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:nR,tabIndex:nz,tableValues:null,target:null,targetX:nz,targetY:nz,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:nR,to:null,transform:null,u1:null,u2:null,underlinePosition:nz,underlineThickness:nz,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:nz,values:null,vAlphabetic:nz,vMathematical:nz,vectorEffect:null,vHanging:nz,vIdeographic:nz,version:null,vertAdvY:nz,vertOriginX:nz,vertOriginY:nz,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:nz,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),nX=nF([nq,nV,nZ,nQ,nY],"html"),nJ=nF([nq,nV,nZ,nQ,nK],"svg"),nG=function(e){if(null==e)return n0;if("string"==typeof e)return n1(function(n){return n&&n.type===e});if("object"==typeof e)return Array.isArray(e)?function(e){let n=[],t=-1;for(;++t":"")+")"})),f;function f(){var c;let s,f,p,d=[];if((!n||l(o,u,a[a.length-1]||null))&&!1===(d=Array.isArray(c=t(o,a))?c:"number"==typeof c?[!0,c]:[c])[0])return d;if(o.children&&"skip"!==d[0])for(f=(r?o.children.length:-1)+i,p=a.concat(o);f>-1&&f{n4(n,"element",(n,t,r)=>{let l;if(e.allowedElements?l=!e.allowedElements.includes(n.tagName):e.disallowedElements&&(l=e.disallowedElements.includes(n.tagName)),!l&&e.allowElement&&"number"==typeof t&&(l=!e.allowElement(n,t,r)),l&&"number"==typeof t)return e.unwrapDisallowed&&n.children?r.children.splice(t,1,...n.children):r.children.splice(t,1),t})}}let n6=["http","https","mailto","tel"];var n5=t(82143);let n9=/^data[-\w.:]+$/i,n7=/-[a-z]/g,n8=/[A-Z]/g;function te(e){return"-"+e.toLowerCase()}function tn(e){return e.charAt(1).toUpperCase()}let tt={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"};var tr=t(57848);let tl={}.hasOwnProperty,ti=new Set(["table","thead","tbody","tfoot","tr"]);function to(e,n){let t=-1,r=0;for(;++t for more info)`),delete tc[n]}let r=E().use(e9).use(e.remarkPlugins||[]).use(nE,{...e.remarkRehypeOptions,allowDangerousHtml:!0}).use(e.rehypePlugins||[]).use(n3,e),l=new y;"string"==typeof e.children?l.value=e.children:void 0!==e.children&&null!==e.children&&console.warn(`[react-markdown] Warning: please pass a string as \`children\` (not: \`${e.children}\`)`);let o=r.runSync(r.parse(l),l);if("root"!==o.type)throw TypeError("Expected a `root` node");let u=i.createElement(i.Fragment,{},function e(n,t){let r;let l=[],o=-1;for(;++o4&&"data"===t.slice(0,4)&&n9.test(n)){if("-"===n.charAt(4)){let i=n.slice(5).replace(n7,tn);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{let o=n.slice(4);if(!n7.test(o)){let u=o.replace(n8,te);"-"!==u.charAt(0)&&(u="-"+u),n="data"+u}}l=n_}return new l(r,n)}(r.schema,n),i=t;null!=i&&i==i&&(Array.isArray(i)&&(i=l.commaSeparated?function(e,n){let t={},r=""===e[e.length-1]?[...e,""]:e;return r.join((t.padRight?" ":"")+","+(!1===t.padLeft?"":" ")).trim()}(i):i.join(" ").trim()),"style"===l.property&&"string"==typeof i&&(i=function(e){let n={};try{tr(e,function(e,t){let r="-ms-"===e.slice(0,4)?`ms-${e.slice(4)}`:e;n[r.replace(/-([a-z])/g,tu)]=t})}catch{}return n}(i)),l.space&&l.property?e[tl.call(tt,l.property)?tt[l.property]:l.property]=i:l.attribute&&(e[l.attribute]=i))}(s,o,t.properties[o],n);("ol"===c||"ul"===c)&&n.listDepth++;let p=e(n,t);("ol"===c||"ul"===c)&&n.listDepth--,n.schema=a;let d=t.position||{start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}},h=u.components&&tl.call(u.components,c)?u.components[c]:c,m="string"==typeof h||h===i.Fragment;if(!n5.isValidElementType(h))throw TypeError(`Component for name \`${c}\` not defined or is not renderable`);if(s.key=[c,d.start.line,d.start.column,r].join("-"),"a"===c&&u.linkTarget&&(s.target="function"==typeof u.linkTarget?u.linkTarget(String(s.href||""),t.children,"string"==typeof s.title?s.title:null):u.linkTarget),"a"===c&&u.transformLinkUri&&(s.href=u.transformLinkUri(String(s.href||""),t.children,"string"==typeof s.title?s.title:null)),m||"code"!==c||"element"!==l.type||"pre"===l.tagName||(s.inline=!0),m||"h1"!==c&&"h2"!==c&&"h3"!==c&&"h4"!==c&&"h5"!==c&&"h6"!==c||(s.level=Number.parseInt(c.charAt(1),10)),"img"===c&&u.transformImageUri&&(s.src=u.transformImageUri(String(s.src||""),String(s.alt||""),"string"==typeof s.title?s.title:null)),!m&&"li"===c&&"element"===l.type){let g=function(e){let n=-1;for(;++n0?i.createElement(h,s,p):i.createElement(h,s)}(n,r,o,t)):"text"===r.type?"element"===t.type&&ti.has(t.tagName)&&function(e){let n=e&&"object"==typeof e&&"text"===e.type?e.value||"":e;return"string"==typeof n&&""===n.replace(/[ \t\n\f\r]/g,"")}(r)||l.push(r.value):"raw"!==r.type||n.options.skipHtml||l.push(r.value);return l}({options:e,schema:nX,listDepth:0},o));return e.className&&(u=i.createElement("div",{className:e.className},u)),u}ts.defaultProps={transformLinkUri:function(e){let n=(e||"").trim(),t=n.charAt(0);if("#"===t||"/"===t)return n;let r=n.indexOf(":");if(-1===r)return n;let l=-1;for(;++ll||-1!==(l=n.indexOf("#"))&&r>l?n:"javascript:void(0)"}},ts.propTypes={children:nC.string,className:nC.string,allowElement:nC.func,allowedElements:nC.arrayOf(nC.string),disallowedElements:nC.arrayOf(nC.string),unwrapDisallowed:nC.bool,remarkPlugins:nC.arrayOf(nC.oneOfType([nC.object,nC.func,nC.arrayOf(nC.oneOfType([nC.bool,nC.string,nC.object,nC.func,nC.arrayOf(nC.any)]))])),rehypePlugins:nC.arrayOf(nC.oneOfType([nC.object,nC.func,nC.arrayOf(nC.oneOfType([nC.bool,nC.string,nC.object,nC.func,nC.arrayOf(nC.any)]))])),sourcePos:nC.bool,rawSourcePos:nC.bool,skipHtml:nC.bool,includeElementIndex:nC.bool,transformLinkUri:nC.oneOfType([nC.func,nC.bool]),linkTarget:nC.oneOfType([nC.func,nC.string]),transformImageUri:nC.func,components:nC.object}}}]);
-//# sourceMappingURL=4114-00487e112494b664.js.map
\ No newline at end of file
diff --git a/static/web/_next/static/chunks/4114-00487e112494b664.js.map b/static/web/_next/static/chunks/4114-00487e112494b664.js.map
deleted file mode 100644
index eb8ab3077..000000000
--- a/static/web/_next/static/chunks/4114-00487e112494b664.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/chunks/4114-00487e112494b664.js","mappings":"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rC,EAAA,KACAilC,SAAA,KACA4G,cAAA,KACAC,QAAahc,GACbic,gBAAqBjc,GACrB17B,UAAA,KACA43C,QAAA,KACAC,IAAA,KACAC,QAAapc,GACboV,iBAAA,KACAjO,SAAc7G,GACd+b,GAAA,KACAC,GAAA,KACAC,SAAA,KACAC,SAAA,KACAC,UAAezc,GACfqV,iBAAA,KACAjsC,IAAA,KACAuY,MAAA,KACA+6B,SAAc1c,GACd2c,0BAAA,KACAC,KAAA,KACAtH,YAAiBtV,GACjBuV,SAAA,KACAsH,OAAA,KACAC,UAAA,KACAC,YAAA,KACAvH,WAAA,KACAC,aAAA,KACAuH,UAAA,KACAC,eAAA,KACAvH,WAAA,KACAC,SAAA,KACAC,eAAA,KACAC,YAAA,KACAC,UAAA,KACAC,YAAA,KACAC,WAAA,KACAkH,OAAA,KACAC,GAAA,KACA3gC,KAAA,KACA4gC,GAAA,KACAC,GAAA,KACAC,GAAQrd,GACRsd,GAAQtd,GACRgW,UAAehW,GACfiW,2BAAA,KACAC,yBAAA,KACAqH,SAAA,KACAC,kBAAA,KACAC,cAAA,KACAroB,QAAA,KACAsoB,QAAa3d,GACb4d,kBAAA,KACAC,WAAA,KACA/V,OAAA,KACA9xB,KAAA,KACAiyB,SAAA,KACAmO,UAAepW,GACfqW,aAAkBrW,GAClBsW,aAAkBtW,GAClB7E,GAAA,KACA2iB,YAAiB9d,GACjBuW,eAAA,KACAwH,kBAAA,KACAC,GAAA,KACAC,IAAA,KACAC,UAAele,GACf3vB,EAAO2vB,GACPme,GAAQne,GACRoe,GAAQpe,GACRqe,GAAQre,GACRse,GAAQte,GACRue,aAAkBpe,GAClBqe,iBAAA,KACAC,UAAA,KACAC,WAAA,KACAC,SAAA,KACAC,QAAA,KACA1qB,KAAA,KACA2qB,aAAA,KACArI,cAAA,KACAC,cAAA,KACAqI,kBAAuB9e,GACvB+e,MAAA,KACArI,UAAA,KACAC,UAAA,KACAC,YAAA,KACAoI,aAAA,KACAC,YAAA,KACAC,YAAA,KACAxe,KAAA,KACAye,iBAAA,KACAC,UAAA,KACAC,aAAA,KACAjyC,IAAA,KA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","sources":["webpack://_N_E/./node_modules/antd/es/spin/index.js","webpack://_N_E/./node_modules/extend/index.js","webpack://_N_E/./node_modules/inline-style-parser/index.js","webpack://_N_E/./node_modules/is-buffer/index.js","webpack://_N_E/./node_modules/lodash/_Symbol.js","webpack://_N_E/./node_modules/lodash/_baseGetTag.js","webpack://_N_E/./node_modules/lodash/_baseTrim.js","webpack://_N_E/./node_modules/lodash/_freeGlobal.js","webpack://_N_E/./node_modules/lodash/_getRawTag.js","webpack://_N_E/./node_modules/lodash/_objectToString.js","webpack://_N_E/./node_modules/lodash/_root.js","webpack://_N_E/./node_modules/lodash/_trimmedEndIndex.js","webpack://_N_E/./node_modules/lodash/debounce.js","webpack://_N_E/./node_modules/lodash/isObject.js","webpack://_N_E/./node_modules/lodash/isObjectLike.js","webpack://_N_E/./node_modules/lodash/isSymbol.js","webpack://_N_E/./node_modules/lodash/now.js","webpack://_N_E/./node_modules/lodash/toNumber.js","webpack://_N_E/./node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/react-markdown/node_modules/react-is/index.js","webpack://_N_E/./node_modules/style-to-object/index.js","webpack://_N_E/./node_modules/unist-util-stringify-position/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/vfile-message/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/vfile/lib/minpath.browser.js","webpack://_N_E/./node_modules/react-markdown/node_modules/vfile/lib/minproc.browser.js","webpack://_N_E/./node_modules/react-markdown/node_modules/vfile/lib/minurl.shared.js","webpack://_N_E/./node_modules/react-markdown/node_modules/vfile/lib/minurl.browser.js","webpack://_N_E/./node_modules/react-markdown/node_modules/vfile/lib/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/bail/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/is-plain-obj/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/trough/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/unified/lib/index.js","webpack://_N_E/./node_modules/mdast-util-to-string/index.js","webpack://_N_E/./node_modules/micromark-util-chunked/index.js","webpack://_N_E/./node_modules/micromark-util-combine-extensions/index.js","webpack://_N_E/./node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","webpack://_N_E/./node_modules/micromark-util-character/index.js","webpack://_N_E/./node_modules/micromark-factory-space/index.js","webpack://_N_E/./node_modules/micromark/lib/initialize/content.js","webpack://_N_E/./node_modules/micromark/lib/initialize/document.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/blank-line.js","webpack://_N_E/./node_modules/micromark-util-subtokenize/index.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/content.js","webpack://_N_E/./node_modules/micromark/lib/initialize/flow.js","webpack://_N_E/./node_modules/micromark/lib/initialize/text.js","webpack://_N_E/./node_modules/micromark-util-resolve-all/index.js","webpack://_N_E/./node_modules/micromark/lib/create-tokenizer.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/list.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/block-quote.js","webpack://_N_E/./node_modules/micromark-factory-destination/index.js","webpack://_N_E/./node_modules/micromark-factory-label/index.js","webpack://_N_E/./node_modules/micromark-factory-title/index.js","webpack://_N_E/./node_modules/micromark-factory-whitespace/index.js","webpack://_N_E/./node_modules/micromark-util-normalize-identifier/index.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/definition.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/code-indented.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack://_N_E/./node_modules/micromark-util-html-tag-name/index.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/html-flow.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack://_N_E/./node_modules/decode-named-character-reference/index.dom.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/character-reference.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/character-escape.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/line-ending.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/label-end.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack://_N_E/./node_modules/micromark-util-classify-character/index.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/attention.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/autolink.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/html-text.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack://_N_E/./node_modules/micromark-core-commonmark/lib/code-text.js","webpack://_N_E/./node_modules/micromark/lib/constructs.js","webpack://_N_E/./node_modules/micromark/lib/parse.js","webpack://_N_E/./node_modules/micromark/lib/preprocess.js","webpack://_N_E/./node_modules/micromark/lib/postprocess.js","webpack://_N_E/./node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack://_N_E/./node_modules/micromark-util-decode-string/index.js","webpack://_N_E/./node_modules/mdast-util-from-markdown/lib/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/remark-parse/lib/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/remark-parse/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/unist-builder/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/unist-util-is/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/unist-util-visit-parents/color.browser.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/unist-util-visit-parents/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/unist-util-visit/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/unist-util-position/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/unist-util-generated/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-definitions/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/traverse.js","webpack://_N_E/./node_modules/micromark-util-sanitize-uri/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/wrap.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/footer.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/footnote.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/revert.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack://_N_E/./node_modules/trim-lines/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack://_N_E/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/index.js","webpack://_N_E/./node_modules/remark-rehype/lib/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/util/schema.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/util/merge.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/normalize.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/util/info.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/util/types.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/util/defined-info.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/util/create.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/xlink.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/xml.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/xmlns.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/aria.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/html.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/svg.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/unist-util-is/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/unist-util-visit-parents/color.browser.js","webpack://_N_E/./node_modules/react-markdown/node_modules/unist-util-visit-parents/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/unist-util-visit/index.js","webpack://_N_E/./node_modules/react-markdown/lib/rehype-filter.js","webpack://_N_E/./node_modules/react-markdown/lib/uri-transformer.js","webpack://_N_E/./node_modules/hast-util-whitespace/index.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/find.js","webpack://_N_E/./node_modules/react-markdown/node_modules/property-information/lib/hast-to-react.js","webpack://_N_E/./node_modules/space-separated-tokens/index.js","webpack://_N_E/./node_modules/comma-separated-tokens/index.js","webpack://_N_E/./node_modules/react-markdown/lib/ast-to-react.js","webpack://_N_E/./node_modules/react-markdown/lib/react-markdown.js","webpack://_N_E/"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigConsumer, ConfigContext } from '../config-provider';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nvar SpinSizes = tuple('small', 'default', 'large');\n// Render indicator\nvar defaultIndicator = null;\nfunction renderIndicator(prefixCls, props) {\n var indicator = props.indicator;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n // should not be render default indicator when indicator value is null\n if (indicator === null) {\n return null;\n }\n if (isValidElement(indicator)) {\n return cloneElement(indicator, {\n className: classNames(indicator.props.className, dotClassName)\n });\n }\n if (isValidElement(defaultIndicator)) {\n return cloneElement(defaultIndicator, {\n className: classNames(defaultIndicator.props.className, dotClassName)\n });\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, \"\".concat(prefixCls, \"-dot-spin\"))\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }));\n}\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\nvar Spin = function Spin(props) {\n var prefixCls = props.spinPrefixCls,\n _props$spinning = props.spinning,\n customSpinning = _props$spinning === void 0 ? true : _props$spinning,\n delay = props.delay,\n className = props.className,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size,\n tip = props.tip,\n wrapperClassName = props.wrapperClassName,\n style = props.style,\n children = props.children,\n restProps = __rest(props, [\"spinPrefixCls\", \"spinning\", \"delay\", \"className\", \"size\", \"tip\", \"wrapperClassName\", \"style\", \"children\"]);\n var _React$useState = React.useState(function () {\n return customSpinning && !shouldDelay(customSpinning, delay);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n spinning = _React$useState2[0],\n setSpinning = _React$useState2[1];\n React.useEffect(function () {\n var updateSpinning = debounce(function () {\n setSpinning(customSpinning);\n }, delay);\n updateSpinning();\n return function () {\n var _a;\n (_a = updateSpinning === null || updateSpinning === void 0 ? void 0 : updateSpinning.cancel) === null || _a === void 0 ? void 0 : _a.call(updateSpinning);\n };\n }, [delay, customSpinning]);\n var isNestedPattern = function isNestedPattern() {\n return typeof children !== 'undefined';\n };\n var renderSpin = function renderSpin(_ref) {\n var _classNames;\n var direction = _ref.direction;\n var spinClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spinning\"), spinning), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-text\"), !!tip), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n // fix https://fb.me/react-unknown-prop\n var divProps = omit(restProps, ['indicator', 'prefixCls']);\n var spinElement = /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n style: style,\n className: spinClassName,\n \"aria-live\": \"polite\",\n \"aria-busy\": spinning\n }), renderIndicator(prefixCls, props), tip ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-text\")\n }, tip) : null);\n if (isNestedPattern()) {\n var containerClassName = classNames(\"\".concat(prefixCls, \"-container\"), _defineProperty({}, \"\".concat(prefixCls, \"-blur\"), spinning));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classNames(\"\".concat(prefixCls, \"-nested-loading\"), wrapperClassName)\n }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n key: \"loading\"\n }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n key: \"container\"\n }, children));\n }\n return spinElement;\n };\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, renderSpin);\n};\nvar SpinFC = function SpinFC(props) {\n var customizePrefixCls = props.prefixCls;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var spinPrefixCls = getPrefixCls('spin', customizePrefixCls);\n var spinClassProps = _extends(_extends({}, props), {\n spinPrefixCls: spinPrefixCls\n });\n return /*#__PURE__*/React.createElement(Spin, _extends({}, spinClassProps));\n};\nSpinFC.setDefaultIndicator = function (indicator) {\n defaultIndicator = indicator;\n};\nif (process.env.NODE_ENV !== 'production') {\n SpinFC.displayName = 'Spin';\n}\nexport default SpinFC;","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|NodeLike|Position|Point|null} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point|undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position|undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number|undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string|Error|VFileMessage} reason\n * Reason for message.\n * Uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place at which the message occurred in a file.\n * @param {string} [origin]\n * Place in code the message originates from (example `'my-package:my-rule-name'`)\n */\n constructor(reason, place, origin) {\n /** @type {[string|null, string|null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // @ts-expect-error: looks like a position.\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n position.start = place\n }\n }\n\n // Fields from `Error`\n this.name = stringifyPosition(place) || '1:1'\n /** @type {string} */\n this.message = typeof reason === 'object' ? reason.message : reason\n /** @type {string} */\n this.stack = ''\n\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack\n }\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /* eslint-disable no-unused-expressions */\n /**\n * Whether this is a fatal problem that marks an associated file as no\n * longer processable.\n * If `true`, marks associated file as no longer processable.\n * If `false`, necessitates a (potential) change.\n * The value can also be `null` or `undefined`, for things that might not\n * need changing.\n *\n * @type {boolean?}\n */\n this.fatal\n\n /**\n * Starting line of error.\n *\n * @type {number?}\n */\n this.line = position.start.line\n\n /**\n * Starting column of error.\n *\n * @type {number?}\n */\n this.column = position.start.column\n\n /**\n * Full range information, when available.\n * Has `start` and `end` fields, both set to an object with `line` and\n * `column`, set to `number?`.\n *\n * @type {Position?}\n */\n this.position = position\n\n /**\n * Namespace of warning (example: `'my-package'`).\n *\n * @type {string?}\n */\n this.source = parts[0]\n\n /**\n * Category of message (example: `'my-rule-name'`).\n *\n * @type {string?}\n */\n this.ruleId = parts[1]\n\n /**\n * Path of a file (used throughout the VFile ecosystem).\n *\n * @type {string?}\n */\n this.file\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string?}\n */\n this.actual\n\n /**\n * Suggest values that should be used instead of `actual`, one or more\n * values that are deemed as acceptable.\n *\n * @type {Array?}\n */\n this.expected\n\n /**\n * Link to documentation for the message.\n *\n * @type {string?}\n */\n this.url\n\n /**\n * Long form description of the message (supported by `vfile-reporter`).\n *\n * @type {string?}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * @param {Array} segments\n * @returns {string}\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string|undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * @param {boolean} allowAboveRoot\n * @returns {string}\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number|undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * @param {string} path\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: \nexport function isUrl(fileURLOrPath) {\n return (\n fileURLOrPath !== null &&\n typeof fileURLOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileURLOrPath.href &&\n // @ts-expect-error: indexable.\n fileURLOrPath.origin\n )\n}\n","/// \n\nimport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {string|URL} path\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * @param {URL} url\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {Record & {type: string, position?: Position|undefined}} NodeLike\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n * This is a copy of the typing from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: \n *\n * @typedef {Value|Options|VFile|URL} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {Value} [value]\n * @property {string} [cwd]\n * @property {Array} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {Data} [data]\n *\n * @typedef Map\n * Raw source map, see:\n * .\n * @property {number} version\n * @property {Array} sources\n * @property {Array} names\n * @property {string|undefined} [sourceRoot]\n * @property {Array|undefined} [sourcesContent]\n * @property {string} mappings\n * @property {string} file\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration: a bunch of keys that will be shallow copied over to the new\n * file.\n *\n * @typedef {Record} ReporterSettings\n * @typedef {(files: Array, options: T) => string} Reporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * If `options` is `string` or `Buffer`, it’s treated as `{value: options}`.\n * If `options` is a `URL`, it’s treated as `{path: options}`.\n * If `options` is a `VFile`, shallow copies its data over to the new file.\n * All fields in `options` are set on the newly created `VFile`.\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * It’s not possible to set either `dirname` or `extname` without setting\n * either `history`, `path`, `basename`, or `stem` as well.\n *\n * @param {Compatible} [value]\n */\n constructor(value) {\n /** @type {Options} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n // @ts-expect-error Looks like a buffer.\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n // @ts-expect-error Looks like file or options.\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n * @type {Array}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n * The first is the original path and the last is the current path.\n * @type {Array}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n * This is used by vfile reporters.\n * @type {boolean}\n */\n this.stored\n\n /**\n * Sometimes files have a non-string, compiled, representation.\n * This can be stored in the `result` field.\n * One example is when turning markdown into React nodes.\n * This is used by unified to store non-string results.\n * @type {unknown}\n */\n this.result\n\n /**\n * Sometimes files have a source map associated with them.\n * This can be stored in the `map` field.\n * This should be a `Map` type, which is equivalent to the `RawSourceMap`\n * type from the `source-map` module.\n * @type {Map|undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined) {\n // @ts-expect-error: TS is confused by the different types for `history`.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) this[prop] = options[prop]\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n * @param {string|URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding} [encoding='utf8']\n * When `value` is a `Buffer`, `encoding` is a character encoding to\n * understand it as (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding)\n }\n\n /**\n * Constructs a new `VFileMessage`, where `fatal` is set to `false`, and\n * associates it with the file by adding it to `vfile.messages` and setting\n * `message.file` to the current filepath.\n *\n * @param {string|Error|VFileMessage} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Like `VFile#message()`, but associates an informational message where\n * `fatal` is set to `null`.\n *\n * @param {string|Error|VFileMessage} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Like `VFile#message()`, but associates a fatal message where `fatal` is\n * set to `true`, and then immediately throws it.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string|Error|VFileMessage} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {never}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string|undefined} path\n * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the node’s plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n var {includeImageAlt = true} = options || {}\n return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n return (\n (node &&\n typeof node === 'object' &&\n // @ts-ignore looks like a literal.\n (node.value ||\n // @ts-ignore looks like an image.\n (includeImageAlt ? node.alt : '') ||\n // @ts-ignore looks like a parent.\n ('children' in node && all(node.children, includeImageAlt)) ||\n (Array.isArray(node) && all(node, includeImageAlt)))) ||\n ''\n )\n}\n\n/**\n * @param {Array.} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n /** @type {Array.} */\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt)\n }\n\n return result.join('')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let code\n\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {unknown[]} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n } // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n } // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream) // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n } // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n /** @type {State} */\n\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n /** @type {Initializer} */\n\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean|undefined} */\n\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Resolver[]} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n\n const columnStart = {}\n /** @type {Array} */\n\n const resolveAllConstructs = []\n /** @type {Array} */\n\n let chunks = []\n /** @type {Array} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n /** @type {Effects['exit']} */\n\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Array|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\n\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\n\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n\n let view\n\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\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 === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\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 label\n }\n\n return label(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable} */\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\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 seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\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 === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn’t have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * .\n *\n * Note that `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(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\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n } // More dashes.\n\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\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 openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\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 /** @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\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\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\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\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 open\n }\n /** @type {State} */\n\n function open(code) {\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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\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').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\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\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\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\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\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 } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\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\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\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 ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\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 ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\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\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\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 afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(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\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(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/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\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 /** @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\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\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 */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something 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 that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\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').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // 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\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 // Now walk back to find an opener.\n\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 && // 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 } // Number of markers to use from the sequence.\n\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 = [] // If there are more markers in the opening, add them before.\n\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 } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\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\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\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 /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\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 * 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 */\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').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\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 /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\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\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\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 /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\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\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\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\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\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\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\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 /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook. */\n\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').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\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 // And we have data.\n\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 } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\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\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\n enter = undefined\n }\n }\n\n return events\n}\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/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\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 gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\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/** @type {Extension['document']} */\n\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/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\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/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\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/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\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 * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\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 * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Array}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\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\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\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\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Array} events\n * @returns {Array}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\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 * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\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 * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\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\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 * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract} Parent\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 *\n * @typedef {UnistParent & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record} Handles\n * Token types mapping to handles\n * @typedef {Record|Array> & {canContainEols: Array, transforms: Array, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial} Extension\n * An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef {(this: Omit, left: Token|undefined, right: Token) => void} OnEnterError\n * @typedef {(this: Omit, left: Token, right: Token) => void} OnExitError\n *\n * @typedef CompileContext\n * mdast compiler context\n * @property {Array} stack\n * @property {Array<[Token, OnEnterError|undefined]>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n * Set data into the key-value store.\n * @property {(key: K) => CompileData[K]} getData\n * Get data from 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: N, token: Token, onError?: OnEnterError) => N} 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 {NormalizedExtension} config\n * Configuration.\n *\n * @typedef {{mdastExtensions?: Array>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\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 * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options) => Root) &\n * ((value: Value, options?: Options) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {Options} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n /** @type {NormalizedExtension} */\n // @ts-expect-error: our base has all required fields, so the result will too.\n const config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\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 options.mdastExtensions || []\n )\n /** @type {CompileData} */\n\n const data = {}\n return compile\n /**\n * @param {Array} events\n * @returns {Root}\n */\n\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {CompileContext['stack']} */\n\n const stack = [tree]\n /** @type {CompileContext['tokenStack']} */\n\n const tokenStack = []\n /** @type {Array} */\n\n const listStack = []\n /** @type {Omit} */\n\n const context = {\n stack,\n tokenStack,\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n let index = -1\n\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\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\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 if (tokenStack.length > 0) {\n const tail = tokenStack[tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n } // Figure out `root` position.\n\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 index = -1\n\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\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\n let listItem\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number|undefined} */\n\n let firstBlankLineIndex\n /** @type {boolean|undefined} */\n\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\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\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\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\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\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\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\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n } // Fix position.\n\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 } // Create a new list item.\n\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n } // @ts-expect-error Patched.\n\n events[start][1]._spread = listSpread\n return length\n }\n /**\n * @type {CompileContext['setData']}\n * @param [value]\n */\n\n function setData(key, value) {\n data[key] = value\n }\n /**\n * @type {CompileContext['getData']}\n * @template {string} K\n * @param {K} key\n * @returns {CompileData[K]}\n */\n\n function getData(key) {\n return data[key]\n }\n /**\n * @param {Point} d\n * @returns {Point}\n */\n\n function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n }\n /**\n * @param {(token: Token) => Node} create\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function opener(create, and) {\n return open\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n /** @type {CompileContext['buffer']} */\n\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n /**\n * @type {CompileContext['enter']}\n * @template {Node} N\n * @this {CompileContext}\n * @param {N} node\n * @param {Token} token\n * @param {OnEnterError} [errorHandler]\n * @returns {N}\n */\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]) // @ts-expect-error: `end` will be patched later.\n\n node.position = {\n start: point(token.start)\n }\n return node\n }\n /**\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function closer(and) {\n return close\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n /**\n * @type {CompileContext['exit']}\n * @this {CompileContext}\n * @param {Token} token\n * @param {OnExitError} [onExitError]\n * @returns {Node}\n */\n\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n\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\n node.position.end = point(token.end)\n return node\n }\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n\n function resume() {\n return toString(this.stack.pop())\n } //\n // Handlers.\n //\n\n /** @type {Handle} */\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n /** @type {Handle} */\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor =\n /** @type {List} */\n this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n /** @type {Handle} */\n\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.lang = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.meta = data\n }\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 /** @type {Handle} */\n\n function onexitcodefenced() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n /** @type {Handle} */\n\n function onexitcodeindented() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n /** @type {Handle} */\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n const label = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitatxheadingsequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n /** @type {Handle} */\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n /** @type {Handle} */\n\n function onexitsetextheadinglinesequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n /** @type {Handle} */\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n /** @type {Handle} */\n\n function onenterdata(token) {\n const parent =\n /** @type {Parent} */\n this.stack[this.stack.length - 1]\n /** @type {Node} */\n\n let tail = parent.children[parent.children.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text() // @ts-expect-error: we’ll add `end` later.\n\n tail.position = {\n start: point(token.start)\n } // @ts-expect-error: Assume `parent` accepts `text`.\n\n parent.children.push(tail)\n }\n\n this.stack.push(tail)\n }\n /** @type {Handle} */\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 /** @type {Handle} */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n\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\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 /** @type {Handle} */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n /** @type {Handle} */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexithtmltext() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitcodetext() {\n const data = this.resume()\n const node =\n /** @type {InlineCode} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitlink() {\n const context =\n /** @type {Link & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitimage() {\n const context =\n /** @type {Image & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitlabeltext(token) {\n const ancestor =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 2]\n const string = this.sliceSerialize(token)\n ancestor.label = decodeString(string)\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitlabel() {\n const fragment =\n /** @type {Fragment} */\n this.stack[this.stack.length - 1]\n const value = this.resume()\n const node =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // Assume a reference.\n\n setData('inReference', true)\n\n if (node.type === 'link') {\n // @ts-expect-error: Assume static phrasing content.\n node.children = fragment.children\n } else {\n node.alt = value\n }\n }\n /** @type {Handle} */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitresource() {\n setData('inReference')\n }\n /** @type {Handle} */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n /** @type {Handle} */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node =\n /** @type {LinkReference|ImageReference} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n // @ts-expect-error `decodeNamedCharacterReference` can return false for\n // invalid named character references, but everything we’ve tokenized is\n // valid.\n value = decodeNamedCharacterReference(data)\n }\n\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n /** @type {Handle} */\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n } //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n /** @returns {Code} */\n\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n /** @returns {InlineCode} */\n\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n /** @returns {Definition} */\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n /** @returns {Emphasis} */\n\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n /** @returns {Heading} */\n\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 /** @returns {Break} */\n\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n /** @returns {HTML} */\n\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n /** @returns {Image} */\n\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n /** @returns {Link} */\n\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {List}\n */\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n /** @returns {Paragraph} */\n\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n /** @returns {Strong} */\n\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n /** @returns {Text} */\n\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n /** @returns {ThematicBreak} */\n\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n/**\n * @param {Extension} combined\n * @param {Array>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n\n return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n /** @type {string} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n const list = key === 'canContainEols' || key === 'transforms'\n const maybe = own.call(combined, key) ? combined[key] : undefined\n /* c8 ignore next */\n\n const left = maybe || (combined[key] = list ? [] : {})\n const right = extension[key]\n\n if (right) {\n if (list) {\n // @ts-expect-error: `left` is an array.\n combined[key] = [...left, ...right]\n } else {\n Object.assign(left, right)\n }\n }\n }\n }\n}\n/** @type {OnEnterError} */\n\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('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\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 remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist').Literal} Literal\n * @typedef {Object.} Props\n * @typedef {Array.|string} ChildrenOrValue\n *\n * @typedef {(, C extends Node[]>(type: T, props: P, children: C) => {type: T, children: C} & P)} BuildParentWithProps\n * @typedef {(>(type: T, props: P, value: string) => {type: T, value: string} & P)} BuildLiteralWithProps\n * @typedef {(>(type: T, props: P) => {type: T} & P)} BuildVoidWithProps\n * @typedef {((type: T, children: C) => {type: T, children: C})} BuildParent\n * @typedef {((type: T, value: string) => {type: T, value: string})} BuildLiteral\n * @typedef {((type: T) => {type: T})} BuildVoid\n */\n\nexport var u = /**\n * @type {BuildVoid & BuildVoidWithProps & BuildLiteral & BuildLiteralWithProps & BuildParent & BuildParentWithProps}\n */ (\n /**\n * @param {string} type Type of node\n * @param {Props|ChildrenOrValue} [props] Additional properties for node (or `children` or `value`)\n * @param {ChildrenOrValue} [value] `children` or `value` of node\n * @returns {Node}\n */\n function (type, props, value) {\n /** @type {Node} */\n var node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== undefined && value !== null) {\n node.value = String(value)\n }\n\n return node\n }\n)\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * ((node: unknown, test: T['type']|Partial|TestFunctionPredicate|Array.|TestFunctionPredicate>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\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\nexport const convert =\n /**\n * @type {(\n * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\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 * @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 {unknown[]} 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 * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\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 * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} 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 * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @param {string} d\n * @returns {string}\n */\nexport function color(d) {\n return d\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('./complex-types.js').Action} Action\n * @typedef {import('./complex-types.js').Index} Index\n * @typedef {import('./complex-types.js').ActionTuple} ActionTuple\n * @typedef {import('./complex-types.js').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\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 * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n * Tree to walk\n * @param [test]\n * `unist-util-is`-compatible test\n * @param visitor\n * Function called for nodes that pass `test`.\n * @param [reverse=false]\n * Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor, reverse?: boolean) => void) &\n * ((tree: Tree, visitor: import('./complex-types.js').BuildVisitor, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types.js').Visitor} visitor\n * @param {boolean} [reverse=false]\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, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\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 * @param {VisitorResult} value\n * @returns {ActionTuple}\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 * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n * Tree to walk\n * @param [test]\n * `unist-util-is`-compatible test\n * @param visitor\n * Function called for nodes that pass `test`.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor, reverse?: boolean) => void) &\n * ((tree: Tree, visitor: import('./complex-types.js').BuildVisitor, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types.js').Visitor} visitor\n * @param {boolean} [reverse]\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 {Record & {type: string, position?: PositionLike|undefined}} NodeLike\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial} PointLike\n *\n * @typedef PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n */\n\nexport const pointStart = point('start')\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {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 */\nfunction point(type) {\n return point\n\n /**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {Object} PointLike\n * @property {number} [line]\n * @property {number} [column]\n * @property {number} [offset]\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\n/**\n * Check if `node` is *generated*.\n *\n * @param {NodeLike} [node]\n * @returns {boolean}\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('mdast').Root|import('mdast').Content} Node\n * @typedef {import('mdast').Definition} Definition\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `node`.\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} node\n */\nexport function definitions(node) {\n /** @type {Record} */\n const cache = Object.create(null)\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, '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 /**\n * Get a node from the bound definition cache.\n *\n * @param {string} identifier\n * @returns {Definition|null}\n */\n function definition(identifier) {\n const id = clean(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} MdastNode\n * @typedef {Extract} MdastParent\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').H} H\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Transform an unknown node.\n *\n * @param {H} h\n * @param {MdastNode} node\n */\nfunction unknown(h, node) {\n const data = node.data || {}\n\n if (\n 'value' in node &&\n !(\n own.call(data, 'hName') ||\n own.call(data, 'hProperties') ||\n own.call(data, 'hChildren')\n )\n ) {\n return h.augment(node, u('text', node.value))\n }\n\n return h(node, 'div', all(h, node))\n}\n\n/**\n * @param {H} h\n * @param {MdastNode} node\n * @param {MdastParent | null} parent\n */\nexport function one(h, node, parent) {\n const type = node && node.type\n /** @type {Handler} */\n let fn\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(h.handlers, type)) {\n fn = h.handlers[type]\n } else if (h.passThrough && h.passThrough.includes(type)) {\n fn = returnNode\n } else {\n fn = h.unknownHandler\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent)\n}\n\n/**\n * @template {MdastNode} Node\n * @param {H} h\n * @param {Node} node\n * @returns {Node}\n */\nfunction returnNode(h, node) {\n return 'children' in node ? {...node, children: all(h, node)} : node\n}\n\n/**\n * @param {H} h\n * @param {MdastNode} parent\n */\nexport function all(h, parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n\n while (++index < nodes.length) {\n const result = one(h, nodes[index], parent)\n\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","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n\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` below).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * Then, 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]`,\n * or `/^https?$/i` for `img[src]`.\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 * @param {RegExp} [protocol]\n * @returns {string}\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n\n if (!protocol) {\n return value\n }\n\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 || // 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) || // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n/**\n * Normalize a URL (such as used in definitions).\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n\n let replace = '' // A correct percent encoded value.\n\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n } // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n } // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1) // A correct surrogate pair.\n\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n } // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n } // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n\n if (skip) {\n index += skip\n skip = 0\n }\n }\n\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Wrap `nodes` with line feeds between each entry.\n * Optionally adds line feeds at the start and end.\n *\n * @param {Array} nodes\n * @param {boolean} [loose=false]\n * @returns {Array}\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push(u('text', '\\n'))\n }\n\n while (++index < nodes.length) {\n if (index) result.push(u('text', '\\n'))\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push(u('text', '\\n'))\n }\n\n return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('./index.js').H} H\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\nimport {wrap} from './wrap.js'\n\n/**\n * @param {H} h\n * @returns {Element|null}\n */\nexport function footer(h) {\n let index = -1\n /** @type {Array} */\n const listItems = []\n\n while (++index < h.footnoteOrder.length) {\n const def = h.footnoteById[h.footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n const content = all(h, def)\n const id = String(def.identifier)\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= h.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n h.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: h.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: h.clobberPrefix + 'fn-' + safeId},\n children: wrap(content, true)\n }\n\n if (def.position) {\n listItem.position = def.position\n }\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: h.footnoteLabelTagName,\n properties: {\n ...JSON.parse(JSON.stringify(h.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [u('text', h.footnoteLabel)]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../index.js').H} H\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {Blockquote} node\n */\nexport function blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true))\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../index.js').H} H\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @param {H} h\n * @param {Break} node\n * @returns {Array}\n */\nexport function hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')]\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').H} H\n\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @param {H} h\n * @param {Code} node\n */\nexport function code(h, 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]|$)/)\n /** @type {Properties} */\n const props = {}\n\n if (lang) {\n props.className = ['language-' + lang]\n }\n\n const code = h(node, 'code', props, [u('text', value)])\n\n if (node.meta) {\n code.data = {meta: node.meta}\n }\n\n return h(node.position, 'pre', [code])\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../index.js').H} H\n\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {Delete} node\n */\nexport function strikethrough(h, node) {\n return h(node, 'del', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../index.js').H} H\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {Emphasis} node\n */\nexport function emphasis(h, node) {\n return h(node, 'em', all(h, node))\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../index.js').H} H\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {u} from 'unist-builder'\n\n/**\n * @param {H} h\n * @param {FootnoteReference} node\n */\nexport function footnoteReference(h, node) {\n const id = String(node.identifier)\n const safeId = normalizeUri(id.toLowerCase())\n const index = h.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n h.footnoteOrder.push(id)\n h.footnoteCounts[id] = 1\n counter = h.footnoteOrder.length\n } else {\n h.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = h.footnoteCounts[id]\n\n return h(node, 'sup', [\n h(\n node.position,\n 'a',\n {\n href: '#' + h.clobberPrefix + 'fn-' + safeId,\n id:\n h.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: 'footnote-label'\n },\n [u('text', String(counter))]\n )\n ])\n}\n","/**\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../index.js').H} H\n *\n * @todo\n * `footnote` (or “inline note”) are a pandoc footnotes feature (`^[a note]`)\n * that does not exist in GFM.\n * We still have support for it, so that things remain working with\n * `micromark-extension-footnote` and `mdast-util-footnote`, but in the future\n * we might be able to remove it?\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n/**\n * @param {H} h\n * @param {Footnote} node\n */\nexport function footnote(h, node) {\n const footnoteById = h.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(h, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../index.js').H} H\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {Heading} node\n */\nexport function heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node))\n}\n","/**\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('../index.js').H} H\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Return either a `raw` node in dangerous mode, otherwise nothing.\n *\n * @param {H} h\n * @param {HTML} node\n */\nexport function html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('./index.js').H} H\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {H} h\n * @param {ImageReference|LinkReference} node\n * @returns {Content|Array}\n */\nexport function revert(h, 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 u('text', '![' + node.alt + suffix)\n }\n\n const contents = all(h, node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift(u('text', '['))\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(u('text', suffix))\n }\n\n return contents\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').H} H\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * @param {H} h\n * @param {ImageReference} node\n */\nexport function imageReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').H} H\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * @param {H} h\n * @param {Image} node\n */\nexport function image(h, node) {\n /** @type {Properties} */\n const props = {src: normalizeUri(node.url), alt: node.alt}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../index.js').H} H\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @param {H} h\n * @param {InlineCode} node\n */\nexport function inlineCode(h, node) {\n return h(node, 'code', [u('text', node.value.replace(/\\r?\\n|\\r/g, ' '))])\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').H} H\n * @typedef {import('mdast').Parent} Parent\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {LinkReference} node\n */\nexport function linkReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {href: normalizeUri(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').H} H\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {Link} node\n */\nexport function link(h, node) {\n /** @type {Properties} */\n const props = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').H} H\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {ListItem} node\n * @param {List} parent\n */\nexport function listItem(h, node, parent) {\n const result = all(h, node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const props = {}\n /** @type {Array} */\n const wrapped = []\n\n if (typeof node.checked === 'boolean') {\n /** @type {Element} */\n let paragraph\n\n if (\n result[0] &&\n result[0].type === 'element' &&\n result[0].tagName === 'p'\n ) {\n paragraph = result[0]\n } else {\n paragraph = h(null, 'p', [])\n result.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift(u('text', ' '))\n }\n\n paragraph.children.unshift(\n h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })\n )\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n props.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < result.length) {\n const child = result[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 wrapped.push(u('text', '\\n'))\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n wrapped.push(...child.children)\n } else {\n wrapped.push(child)\n }\n }\n\n const tail = result[result.length - 1]\n\n // Add a final eol.\n if (tail && (loose || !('tagName' in tail) || tail.tagName !== 'p')) {\n wrapped.push(u('text', '\\n'))\n }\n\n return h(node, 'li', props, wrapped)\n}\n\n/**\n * @param {List} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = node.spread\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n\n return Boolean(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","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').H} H\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {List} node\n */\nexport function list(h, node) {\n /** @type {Properties} */\n const props = {}\n const name = node.ordered ? 'ol' : 'ul'\n const items = all(h, node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < items.length) {\n const item = items[index]\n\n if (\n item.type === 'element' &&\n item.tagName === 'li' &&\n item.properties &&\n Array.isArray(item.properties.className) &&\n item.properties.className.includes('task-list-item')\n ) {\n props.className = ['contains-task-list']\n break\n }\n }\n\n return h(node, name, props, wrap(items, true))\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../index.js').H} H\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {Paragraph} node\n */\nexport function paragraph(h, node) {\n return h(node, 'p', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../index.js').H} H\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\nimport {wrap} from '../wrap.js'\n\n/**\n * @param {H} h\n * @param {Root} node\n */\nexport function root(h, node) {\n // @ts-expect-error `root`s are also fine.\n return h.augment(node, u('root', wrap(all(h, node))))\n}\n","/**\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../index.js').H} H\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {Strong} node\n */\nexport function strong(h, node) {\n return h(node, 'strong', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Table} Table\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').H} H\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @param {H} h\n * @param {Table} node\n */\nexport function table(h, node) {\n const rows = node.children\n let index = -1\n const align = node.align || []\n /** @type {Array} */\n const result = []\n\n while (++index < rows.length) {\n const row = rows[index].children\n const name = index === 0 ? 'th' : 'td'\n /** @type {Array} */\n const out = []\n let cellIndex = -1\n const length = node.align ? align.length : row.length\n\n while (++cellIndex < length) {\n const cell = row[cellIndex]\n out.push(\n h(cell, name, {align: align[cellIndex]}, cell ? all(h, cell) : [])\n )\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true))\n }\n\n return h(\n node,\n 'table',\n wrap(\n [h(result[0].position, 'thead', wrap([result[0]], true))].concat(\n result[1]\n ? h(\n {\n start: pointStart(result[1]),\n end: pointEnd(result[result.length - 1])\n },\n 'tbody',\n wrap(result.slice(1), true)\n )\n : []\n ),\n true\n )\n )\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","/**\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../index.js').H} H\n */\n\nimport {trimLines} from 'trim-lines'\nimport {u} from 'unist-builder'\n\n/**\n * @param {H} h\n * @param {Text} node\n */\nexport function text(h, node) {\n return h.augment(node, u('text', trimLines(String(node.value))))\n}\n","/**\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').H} H\n */\n\n/**\n * @param {H} h\n * @param {ThematicBreak} [node]\n */\nexport function thematicBreak(h, node) {\n return h(node, 'hr')\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 {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\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 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 return null\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('hast').Root|import('hast').Parent['children'][number]} HastNode\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} Content\n * @typedef {import('unist-util-position').PositionLike} PositionLike\n *\n * @typedef EmbeddedHastFields\n * @property {string} [hName]\n * Defines the tag name of an element.\n * @property {Properties} [hProperties]\n * Defines the properties of an element.\n * @property {Array} [hChildren]\n * Defines the (hast) children of an element.\n *\n * @typedef {Record & EmbeddedHastFields} Data\n * unist data with embedded hast fields.\n *\n * @typedef {MdastNode & {data?: Data}} NodeWithData\n * unist node with embedded hast data.\n *\n * @callback Handler\n * Handle a node.\n * @param {H} h\n * Handle context.\n * @param {any} node\n * mdast node to handle.\n * @param {Parent|null} parent\n * Parent of `node`.\n * @returns {Content|Array|null|undefined}\n * hast node.\n *\n * @callback HFunctionProps\n * @param {MdastNode|PositionLike|null|undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Properties} props\n * Properties.\n * @param {Array?} [children]\n * hast content.\n * @returns {Element}\n * Compiled element.\n *\n * @callback HFunctionNoProps\n * @param {MdastNode|PositionLike|null|undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Array?} [children]\n * hast content\n * @returns {Element}\n * Compiled element.\n *\n * @typedef HFields\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 {Properties} footnoteLabelProperties\n * Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n * Label to use to go back to a footnote call from the footnote section.\n * @property {(identifier: string) => Definition|null} definition\n * Definition cache.\n * @property {Record} footnoteById\n * Footnote cache.\n * @property {Array} footnoteOrder\n * Order in which footnotes occur.\n * @property {Record} footnoteCounts\n * Counts the same footnote was used.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {Handler} unknownHandler\n * Handler for any none not in `passThrough` or otherwise handled.\n * @property {(left: NodeWithData|PositionLike|null|undefined, right: Content) => Content} augment\n * Like `h` but lower-level and usable on non-elements.\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} [allowDangerousHtml=false]\n * Whether to allow `html` nodes and inject them as `raw` HTML.\n * @property {string} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute to prevent it from *clobbering*.\n * attributes.\n * DOM clobbering is this:\n *\n * ```html\n * \n * \n * ```\n *\n * Elements by their ID are made available in browsers on the `window` object.\n * Using a prefix prevents this from being a problem.\n * @property {string} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section.\n * Affects screen reader users.\n * Change it if you’re authoring in a different language.\n * @property {string} [footnoteLabelTagName='h2']\n * HTML tag to use for the footnote label.\n * Can be changed to match your document structure and play well with your choice of css.\n * @property {Properties} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label.\n * A 'sr-only' class is added by default to hide this from sighted users.\n * Change it to make the label visible, or add classes for other purposes.\n * @property {string} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call.\n * Affects screen reader users.\n * Change it if you’re authoring in a different language.\n * @property {Handlers} [handlers]\n * Object mapping mdast nodes to functions handling them\n * @property {Array} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast\n * @property {Handler} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n * Map of node types to handlers\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} H\n * Handle context\n */\n\nimport {u} from 'unist-builder'\nimport {visit} from 'unist-util-visit'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {one} from './traverse.js'\nimport {footer} from './footer.js'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Turn mdast into hast.\n *\n * @param {MdastNode} tree\n * mdast node.\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {H}\n * `h` function.\n */\nfunction factory(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Record} */\n const footnoteById = {}\n\n h.dangerous = dangerous\n h.clobberPrefix =\n settings.clobberPrefix === undefined || settings.clobberPrefix === null\n ? 'user-content-'\n : settings.clobberPrefix\n h.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n h.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n h.footnoteLabelProperties = settings.footnoteLabelProperties || {\n className: ['sr-only']\n }\n h.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n /** @type {Array} */\n h.footnoteOrder = []\n /** @type {Record} */\n h.footnoteCounts = {}\n h.augment = augment\n h.handlers = {...handlers, ...settings.handlers}\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\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 h\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n *\n * @param {(NodeWithData|PositionLike)?} left\n * @param {Content} right\n * @returns {Content}\n */\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {Data} */\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\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n function h(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}\n\n/**\n * Transform `tree` (an mdast node) to a hast node.\n *\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {HastNode|null|undefined} hast node\n */\nexport function toHast(tree, options) {\n const h = factory(tree, options)\n const node = one(h, tree, null)\n const foot = footer(h)\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(u('text', '\\n'), foot)\n }\n\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n\nexport {handlers as defaultHandlers} from './handlers/index.js'\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","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `