var yo = Object.defineProperty;
var ko = (e, t, r) => t in e ? yo(e, t, {enumerable: !0, configurable: !0, writable: !0, value: r}) : e[t] = r;
var Ce = (e, t, r) => ko(e, typeof t != "symbol" ? t + "" : t, r);
import {a as la, c as Xt, g as iu} from "./_commonjsHelpers-BosuxZz1.js";

const ai = {debug: 0, info: 1, warn: 2, error: 3}, So = typeof import.meta < "u" && !0 || typeof process < "u" && !0;
let vo = {level: So ? "warn" : "debug"};

function No(e) {
    const t = r => ai[r] >= ai[vo.level];
    return {
        debug: (...r) => {
            t("debug") && console.log(`[${e}]`, ...r)
        }, info: (...r) => {
            t("info") && console.log(`[${e}]`, ...r)
        }, warn: (...r) => {
            t("warn") && console.warn(`[${e}]`, ...r)
        }, error: (...r) => {
            // t("error") && console.error(`[${e}]`, ...r)
        }
    }
}

function wo(e) {
    for (var t = 1; t < arguments.length; t++) {
        var r = arguments[t];
        for (var u in r) r.hasOwnProperty(u) && (e[u] = r[u])
    }
    return e
}

function Ku(e, t) {
    return Array(t + 1).join(e)
}

function fa(e) {
    return e.replace(/^\n*/, "")
}

function da(e) {
    for (var t = e.length; t > 0 && e[t - 1] === `
`;) t--;
    return e.substring(0, t)
}

function ha(e) {
    return da(fa(e))
}

var Do = ["ADDRESS", "ARTICLE", "ASIDE", "AUDIO", "BLOCKQUOTE", "BODY", "CANVAS", "CENTER", "DD", "DIR", "DIV", "DL", "DT", "FIELDSET", "FIGCAPTION", "FIGURE", "FOOTER", "FORM", "FRAMESET", "H1", "H2", "H3", "H4", "H5", "H6", "HEADER", "HGROUP", "HR", "HTML", "ISINDEX", "LI", "MAIN", "MENU", "NAV", "NOFRAMES", "NOSCRIPT", "OL", "OUTPUT", "P", "PRE", "SECTION", "TABLE", "TBODY", "TD", "TFOOT", "TH", "THEAD", "TR", "UL"];

function pn(e) {
    return bn(e, Do)
}

var Aa = ["AREA", "BASE", "BR", "COL", "COMMAND", "EMBED", "HR", "IMG", "INPUT", "KEYGEN", "LINK", "META", "PARAM", "SOURCE", "TRACK", "WBR"];

function pa(e) {
    return bn(e, Aa)
}

function Bo(e) {
    return ga(e, Aa)
}

var ba = ["A", "TABLE", "THEAD", "TBODY", "TFOOT", "TH", "TD", "IFRAME", "SCRIPT", "AUDIO", "VIDEO"];

function Ro(e) {
    return bn(e, ba)
}

function Oo(e) {
    return ga(e, ba)
}

function bn(e, t) {
    return t.indexOf(e.nodeName) >= 0
}

function ga(e, t) {
    return e.getElementsByTagName && t.some(function (r) {
        return e.getElementsByTagName(r).length
    })
}

var Ue = {};
Ue.paragraph = {
    filter: "p", replacement: function (e) {
        return `

` + e + `

`
    }
};
Ue.lineBreak = {
    filter: "br", replacement: function (e, t, r) {
        return r.br + `
`
    }
};
Ue.heading = {
    filter: ["h1", "h2", "h3", "h4", "h5", "h6"], replacement: function (e, t, r) {
        var u = Number(t.nodeName.charAt(1));
        if (r.headingStyle === "setext" && u < 3) {
            var n = Ku(u === 1 ? "=" : "-", e.length);
            return `

` + e + `
` + n + `

`
        } else return `

` + Ku("#", u) + " " + e + `

`
    }
};
Ue.blockquote = {
    filter: "blockquote", replacement: function (e) {
        return e = ha(e).replace(/^/gm, "> "), `

` + e + `

`
    }
};
Ue.list = {
    filter: ["ul", "ol"], replacement: function (e, t) {
        var r = t.parentNode;
        return r.nodeName === "LI" && r.lastElementChild === t ? `
` + e : `

` + e + `

`
    }
};
Ue.listItem = {
    filter: "li", replacement: function (e, t, r) {
        var u = r.bulletListMarker + "   ", n = t.parentNode;
        if (n.nodeName === "OL") {
            var i = n.getAttribute("start"), a = Array.prototype.indexOf.call(n.children, t);
            u = (i ? Number(i) + a : a + 1) + ".  "
        }
        var s = /\n$/.test(e);
        return e = ha(e) + (s ? `
` : ""), e = e.replace(/\n/gm, `
` + " ".repeat(u.length)), u + e + (t.nextSibling ? `
` : "")
    }
};
Ue.indentedCodeBlock = {
    filter: function (e, t) {
        return t.codeBlockStyle === "indented" && e.nodeName === "PRE" && e.firstChild && e.firstChild.nodeName === "CODE"
    }, replacement: function (e, t, r) {
        return `

    ` + t.firstChild.textContent.replace(/\n/g, `
    `) + `

`
    }
};
Ue.fencedCodeBlock = {
    filter: function (e, t) {
        return t.codeBlockStyle === "fenced" && e.nodeName === "PRE" && e.firstChild && e.firstChild.nodeName === "CODE"
    }, replacement: function (e, t, r) {
        for (var u = t.firstChild.getAttribute("class") || "", n = (u.match(/language-(\S+)/) || [null, ""])[1], i = t.firstChild.textContent, a = r.fence.charAt(0), s = 3, o = new RegExp("^" + a + "{3,}", "gm"), l; l = o.exec(i);) l[0].length >= s && (s = l[0].length + 1);
        var h = Ku(a, s);
        return `

` + h + n + `
` + i.replace(/\n$/, "") + `
` + h + `

`
    }
};
Ue.horizontalRule = {
    filter: "hr", replacement: function (e, t, r) {
        return `

` + r.hr + `

`
    }
};
Ue.inlineLink = {
    filter: function (e, t) {
        return t.linkStyle === "inlined" && e.nodeName === "A" && e.getAttribute("href")
    }, replacement: function (e, t) {
        var r = t.getAttribute("href");
        r && (r = r.replace(/([()])/g, "\\$1"));
        var u = Qr(t.getAttribute("title"));
        return u && (u = ' "' + u.replace(/"/g, '\\"') + '"'), "[" + e + "](" + r + u + ")"
    }
};
Ue.referenceLink = {
    filter: function (e, t) {
        return t.linkStyle === "referenced" && e.nodeName === "A" && e.getAttribute("href")
    }, replacement: function (e, t, r) {
        var u = t.getAttribute("href"), n = Qr(t.getAttribute("title"));
        n && (n = ' "' + n + '"');
        var i, a;
        switch (r.linkReferenceStyle) {
            case"collapsed":
                i = "[" + e + "][]", a = "[" + e + "]: " + u + n;
                break;
            case"shortcut":
                i = "[" + e + "]", a = "[" + e + "]: " + u + n;
                break;
            default:
                var s = this.references.length + 1;
                i = "[" + e + "][" + s + "]", a = "[" + s + "]: " + u + n
        }
        return this.references.push(a), i
    }, references: [], append: function (e) {
        var t = "";
        return this.references.length && (t = `

` + this.references.join(`
`) + `

`, this.references = []), t
    }
};
Ue.emphasis = {
    filter: ["em", "i"], replacement: function (e, t, r) {
        return e.trim() ? r.emDelimiter + e + r.emDelimiter : ""
    }
};
Ue.strong = {
    filter: ["strong", "b"], replacement: function (e, t, r) {
        return e.trim() ? r.strongDelimiter + e + r.strongDelimiter : ""
    }
};
Ue.code = {
    filter: function (e) {
        var t = e.previousSibling || e.nextSibling, r = e.parentNode.nodeName === "PRE" && !t;
        return e.nodeName === "CODE" && !r
    }, replacement: function (e) {
        if (!e) return "";
        e = e.replace(/\r?\n|\r/g, " ");
        for (var t = /^`|^ .*?[^ ].* $|`$/.test(e) ? " " : "", r = "`", u = e.match(/`+/gm) || []; u.indexOf(r) !== -1;) r = r + "`";
        return r + t + e + t + r
    }
};
Ue.image = {
    filter: "img", replacement: function (e, t) {
        var r = Qr(t.getAttribute("alt")), u = t.getAttribute("src") || "", n = Qr(t.getAttribute("title")),
            i = n ? ' "' + n + '"' : "";
        return u ? "![" + r + "](" + u + i + ")" : ""
    }
};

function Qr(e) {
    return e ? e.replace(/(\n+\s*)+/g, `
`) : ""
}

function ma(e) {
    this.options = e, this._keep = [], this._remove = [], this.blankRule = {replacement: e.blankReplacement}, this.keepReplacement = e.keepReplacement, this.defaultRule = {replacement: e.defaultReplacement}, this.array = [];
    for (var t in e.rules) this.array.push(e.rules[t])
}

ma.prototype = {
    add: function (e, t) {
        this.array.unshift(t)
    }, keep: function (e) {
        this._keep.unshift({filter: e, replacement: this.keepReplacement})
    }, remove: function (e) {
        this._remove.unshift({
            filter: e, replacement: function () {
                return ""
            }
        })
    }, forNode: function (e) {
        if (e.isBlank) return this.blankRule;
        var t;
        return (t = yu(this.array, e, this.options)) || (t = yu(this._keep, e, this.options)) || (t = yu(this._remove, e, this.options)) ? t : this.defaultRule
    }, forEach: function (e) {
        for (var t = 0; t < this.array.length; t++) e(this.array[t], t)
    }
};

function yu(e, t, r) {
    for (var u = 0; u < e.length; u++) {
        var n = e[u];
        if (Lo(n, t, r)) return n
    }
}

function Lo(e, t, r) {
    var u = e.filter;
    if (typeof u == "string") {
        if (u === t.nodeName.toLowerCase()) return !0
    } else if (Array.isArray(u)) {
        if (u.indexOf(t.nodeName.toLowerCase()) > -1) return !0
    } else if (typeof u == "function") {
        if (u.call(e, t, r)) return !0
    } else throw new TypeError("`filter` needs to be a string, array, or function")
}

function Fo(e) {
    var t = e.element, r = e.isBlock, u = e.isVoid, n = e.isPre || function (p) {
        return p.nodeName === "PRE"
    };
    if (!(!t.firstChild || n(t))) {
        for (var i = null, a = !1, s = null, o = si(s, t, n); o !== t;) {
            if (o.nodeType === 3 || o.nodeType === 4) {
                var l = o.data.replace(/[ \r\n\t]+/g, " ");
                if ((!i || / $/.test(i.data)) && !a && l[0] === " " && (l = l.substr(1)), !l) {
                    o = ku(o);
                    continue
                }
                o.data = l, i = o
            } else if (o.nodeType === 1) r(o) || o.nodeName === "BR" ? (i && (i.data = i.data.replace(/ $/, "")), i = null, a = !1) : u(o) || n(o) ? (i = null, a = !0) : i && (a = !1); else {
                o = ku(o);
                continue
            }
            var h = si(s, o, n);
            s = o, o = h
        }
        i && (i.data = i.data.replace(/ $/, ""), i.data || ku(i))
    }
}

function ku(e) {
    var t = e.nextSibling || e.parentNode;
    return e.parentNode.removeChild(e), t
}

function si(e, t, r) {
    return e && e.parentNode === t || r(t) ? t.nextSibling || t.parentNode : t.firstChild || t.nextSibling || t.parentNode
}

var gn = typeof window < "u" ? window : {};

function Mo() {
    var e = gn.DOMParser, t = !1;
    try {
        new e().parseFromString("", "text/html") && (t = !0)
    } catch {
    }
    return t
}

function Po() {
    var e = function () {
    };
    return Uo() ? e.prototype.parseFromString = function (t) {
        var r = new window.ActiveXObject("htmlfile");
        return r.designMode = "on", r.open(), r.write(t), r.close(), r
    } : e.prototype.parseFromString = function (t) {
        var r = document.implementation.createHTMLDocument("");
        return r.open(), r.write(t), r.close(), r
    }, e
}

function Uo() {
    var e = !1;
    try {
        document.implementation.createHTMLDocument("").open()
    } catch {
        gn.ActiveXObject && (e = !0)
    }
    return e
}

var Ho = Mo() ? gn.DOMParser : Po();

function Qo(e, t) {
    var r;
    if (typeof e == "string") {
        var u = Yo().parseFromString('<x-turndown id="turndown-root">' + e + "</x-turndown>", "text/html");
        r = u.getElementById("turndown-root")
    } else r = e.cloneNode(!0);
    return Fo({element: r, isBlock: pn, isVoid: pa, isPre: t.preformattedCode ? Go : null}), r
}

var Su;

function Yo() {
    return Su = Su || new Ho, Su
}

function Go(e) {
    return e.nodeName === "PRE" || e.nodeName === "CODE"
}

function Wo(e, t) {
    return e.isBlock = pn(e), e.isCode = e.nodeName === "CODE" || e.parentNode.isCode, e.isBlank = Ko(e), e.flankingWhitespace = qo(e, t), e
}

function Ko(e) {
    return !pa(e) && !Ro(e) && /^\s*$/i.test(e.textContent) && !Bo(e) && !Oo(e)
}

function qo(e, t) {
    if (e.isBlock || t.preformattedCode && e.isCode) return {leading: "", trailing: ""};
    var r = Zo(e.textContent);
    return r.leadingAscii && oi("left", e, t) && (r.leading = r.leadingNonAscii), r.trailingAscii && oi("right", e, t) && (r.trailing = r.trailingNonAscii), {
        leading: r.leading,
        trailing: r.trailing
    }
}

function Zo(e) {
    var t = e.match(/^(([ \t\r\n]*)(\s*))(?:(?=\S)[\s\S]*\S)?((\s*?)([ \t\r\n]*))$/);
    return {
        leading: t[1],
        leadingAscii: t[2],
        leadingNonAscii: t[3],
        trailing: t[4],
        trailingNonAscii: t[5],
        trailingAscii: t[6]
    }
}

function oi(e, t, r) {
    var u, n, i;
    return e === "left" ? (u = t.previousSibling, n = / $/) : (u = t.nextSibling, n = /^ /), u && (u.nodeType === 3 ? i = n.test(u.nodeValue) : r.preformattedCode && u.nodeName === "CODE" ? i = !1 : u.nodeType === 1 && !pn(u) && (i = n.test(u.textContent))), i
}

var zo = Array.prototype.reduce,
    Jo = [[/\\/g, "\\\\"], [/\*/g, "\\*"], [/^-/g, "\\-"], [/^\+ /g, "\\+ "], [/^(=+)/g, "\\$1"], [/^(#{1,6}) /g, "\\$1 "], [/`/g, "\\`"], [/^~~~/g, "\\~~~"], [/\[/g, "\\["], [/\]/g, "\\]"], [/^>/g, "\\>"], [/_/g, "\\_"], [/^(\d+)\. /g, "$1\\. "]];

function Yr(e) {
    if (!(this instanceof Yr)) return new Yr(e);
    var t = {
        rules: Ue,
        headingStyle: "setext",
        hr: "* * *",
        bulletListMarker: "*",
        codeBlockStyle: "indented",
        fence: "```",
        emDelimiter: "_",
        strongDelimiter: "**",
        linkStyle: "inlined",
        linkReferenceStyle: "full",
        br: "  ",
        preformattedCode: !1,
        blankReplacement: function (r, u) {
            return u.isBlock ? `

` : ""
        },
        keepReplacement: function (r, u) {
            return u.isBlock ? `

` + u.outerHTML + `

` : u.outerHTML
        },
        defaultReplacement: function (r, u) {
            return u.isBlock ? `

` + r + `

` : r
        }
    };
    this.options = wo({}, t, e), this.rules = new ma(this.options)
}

Yr.prototype = {
    turndown: function (e) {
        if (!Xo(e)) throw new TypeError(e + " is not a string, or an element/document/fragment node.");
        if (e === "") return "";
        var t = Ea.call(this, new Qo(e, this.options));
        return Vo.call(this, t)
    }, use: function (e) {
        if (Array.isArray(e)) for (var t = 0; t < e.length; t++) this.use(e[t]); else if (typeof e == "function") e(this); else throw new TypeError("plugin must be a Function or an Array of Functions");
        return this
    }, addRule: function (e, t) {
        return this.rules.add(e, t), this
    }, keep: function (e) {
        return this.rules.keep(e), this
    }, remove: function (e) {
        return this.rules.remove(e), this
    }, escape: function (e) {
        return Jo.reduce(function (t, r) {
            return t.replace(r[0], r[1])
        }, e)
    }
};

function Ea(e) {
    var t = this;
    return zo.call(e.childNodes, function (r, u) {
        u = new Wo(u, t.options);
        var n = "";
        return u.nodeType === 3 ? n = u.isCode ? u.nodeValue : t.escape(u.nodeValue) : u.nodeType === 1 && (n = jo.call(t, u)), Ta(r, n)
    }, "")
}

function Vo(e) {
    var t = this;
    return this.rules.forEach(function (r) {
        typeof r.append == "function" && (e = Ta(e, r.append(t.options)))
    }), e.replace(/^[\t\r\n]+/, "").replace(/[\t\r\n\s]+$/, "")
}

function jo(e) {
    var t = this.rules.forNode(e), r = Ea.call(this, e), u = e.flankingWhitespace;
    return (u.leading || u.trailing) && (r = r.trim()), u.leading + t.replacement(r, e, this.options) + u.trailing
}

function Ta(e, t) {
    var r = da(e), u = fa(t), n = Math.max(e.length - r.length, t.length - u.length), i = `

`.substring(0, n);
    return r + i + u
}

function Xo(e) {
    return e != null && (typeof e == "string" || e.nodeType && (e.nodeType === 1 || e.nodeType === 9 || e.nodeType === 11))
}

function mn() {
    return {
        async: !1,
        breaks: !1,
        extensions: null,
        gfm: !0,
        hooks: null,
        pedantic: !1,
        renderer: null,
        silent: !1,
        tokenizer: null,
        walkTokens: null
    }
}

var Nt = mn();

function _a(e) {
    Nt = e
}

var tr = {exec: () => null};

function Te(e, t = "") {
    let r = typeof e == "string" ? e : e.source, u = {
        replace: (n, i) => {
            let a = typeof i == "string" ? i : i.source;
            return a = a.replace(Qe.caret, "$1"), r = r.replace(n, a), u
        }, getRegex: () => new RegExp(r, t)
    };
    return u
}

var $o = (() => {
        try {
            return !!new RegExp("(?<=1)(?<!1)")
        } catch {
            return !1
        }
    })(), Qe = {
        codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm,
        outputLinkReplace: /\\([\[\]])/g,
        indentCodeCompensation: /^(\s+)(?:```)/,
        beginningSpace: /^\s+/,
        endingHash: /#$/,
        startingSpaceChar: /^ /,
        endingSpaceChar: / $/,
        nonSpaceChar: /[^ ]/,
        newLineCharGlobal: /\n/g,
        tabCharGlobal: /\t/g,
        multipleSpaceGlobal: /\s+/g,
        blankLine: /^[ \t]*$/,
        doubleBlankLine: /\n[ \t]*\n[ \t]*$/,
        blockquoteStart: /^ {0,3}>/,
        blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g,
        blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm,
        listReplaceTabs: /^\t+/,
        listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,
        listIsTask: /^\[[ xX]\] +\S/,
        listReplaceTask: /^\[[ xX]\] +/,
        listTaskCheckbox: /\[[ xX]\]/,
        anyLine: /\n.*\n/,
        hrefBrackets: /^<(.*)>$/,
        tableDelimiter: /[:|]/,
        tableAlignChars: /^\||\| *$/g,
        tableRowBlankLine: /\n[ \t]*$/,
        tableAlignRight: /^ *-+: *$/,
        tableAlignCenter: /^ *:-+: *$/,
        tableAlignLeft: /^ *:-+ *$/,
        startATag: /^<a /i,
        endATag: /^<\/a>/i,
        startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i,
        endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i,
        startAngleBracket: /^</,
        endAngleBracket: />$/,
        pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/,
        unicodeAlphaNumeric: /[\p{L}\p{N}]/u,
        escapeTest: /[&<>"']/,
        escapeReplace: /[&<>"']/g,
        escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,
        escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,
        unescapeTest: /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,
        caret: /(^|[^\[])\^/g,
        percentDecode: /%25/g,
        findPipe: /\|/g,
        splitPipe: / \|/,
        slashPipe: /\\\|/g,
        carriageReturn: /\r\n|\r/g,
        spaceLine: /^ +$/gm,
        notSpaceStart: /^\S*/,
        endingNewline: /\n$/,
        listItemRegex: e => new RegExp(`^( {0,3}${e})((?:[	 ][^\\n]*)?(?:\\n|$))`),
        nextBulletRegex: e => new RegExp(`^ {0,${Math.min(3, e - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`),
        hrRegex: e => new RegExp(`^ {0,${Math.min(3, e - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),
        fencesBeginRegex: e => new RegExp(`^ {0,${Math.min(3, e - 1)}}(?:\`\`\`|~~~)`),
        headingBeginRegex: e => new RegExp(`^ {0,${Math.min(3, e - 1)}}#`),
        htmlBeginRegex: e => new RegExp(`^ {0,${Math.min(3, e - 1)}}<(?:[a-z].*>|!--)`, "i")
    }, ec = /^(?:[ \t]*(?:\n|$))+/, tc = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,
    rc = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,
    Tr = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,
    uc = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, En = /(?:[*+-]|\d{1,9}[.)])/,
    xa = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
    Ca = Te(xa).replace(/bull/g, En).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(),
    nc = Te(xa).replace(/bull/g, En).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),
    Tn = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, ic = /^[^\n]+/,
    _n = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,
    ac = Te(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", _n).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),
    sc = Te(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, En).getRegex(),
    au = "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|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",
    xn = /<!--(?:-?>|[\s\S]*?(?:-->|$))/,
    oc = Te("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$))", "i").replace("comment", xn).replace("tag", au).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),
    Ia = Te(Tn).replace("hr", Tr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", au).getRegex(),
    cc = Te(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", Ia).getRegex(), Cn = {
        blockquote: cc,
        code: tc,
        def: ac,
        fences: rc,
        heading: uc,
        hr: Tr,
        html: oc,
        lheading: Ca,
        list: sc,
        newline: ec,
        paragraph: Ia,
        table: tr,
        text: ic
    },
    ci = Te("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", Tr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3}	)[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", au).getRegex(),
    lc = {
        ...Cn,
        lheading: nc,
        table: ci,
        paragraph: Te(Tn).replace("hr", Tr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", ci).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", au).getRegex()
    }, fc = {
        ...Cn,
        html: Te(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", xn).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
        def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
        heading: /^(#{1,6})(.*)(?:\n+|$)/,
        fences: tr,
        lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
        paragraph: Te(Tn).replace("hr", Tr).replace("heading", ` *#{1,6} *[^
]`).replace("lheading", Ca).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
    }, dc = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, hc = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
    ya = /^( {2,}|\\)\n(?!\s*$)/, Ac = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,
    su = /[\p{P}\p{S}]/u, In = /[\s\p{P}\p{S}]/u, ka = /[^\s\p{P}\p{S}]/u,
    pc = Te(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, In).getRegex(), Sa = /(?!~)[\p{P}\p{S}]/u,
    bc = /(?!~)[\s\p{P}\p{S}]/u, gc = /(?:[^\s\p{P}\p{S}]|~)/u,
    mc = Te(/link|precode-code|html/, "g").replace("link", /\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", $o ? "(?<!`)()" : "(^^|[^`])").replace("code", /(?<b>`+)[^`]+\k<b>(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(),
    va = /^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,
    Ec = Te(va, "u").replace(/punct/g, su).getRegex(), Tc = Te(va, "u").replace(/punct/g, Sa).getRegex(),
    Na = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",
    _c = Te(Na, "gu").replace(/notPunctSpace/g, ka).replace(/punctSpace/g, In).replace(/punct/g, su).getRegex(),
    xc = Te(Na, "gu").replace(/notPunctSpace/g, gc).replace(/punctSpace/g, bc).replace(/punct/g, Sa).getRegex(),
    Cc = Te("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, ka).replace(/punctSpace/g, In).replace(/punct/g, su).getRegex(),
    Ic = Te(/\\(punct)/, "gu").replace(/punct/g, su).getRegex(),
    yc = Te(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),
    kc = Te(xn).replace("(?:-->|$)", "-->").getRegex(),
    Sc = Te("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", kc).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),
    Gr = /(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,
    vc = Te(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label", Gr).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),
    wa = Te(/^!?\[(label)\]\[(ref)\]/).replace("label", Gr).replace("ref", _n).getRegex(),
    Da = Te(/^!?\[(ref)\](?:\[\])?/).replace("ref", _n).getRegex(),
    Nc = Te("reflink|nolink(?!\\()", "g").replace("reflink", wa).replace("nolink", Da).getRegex(),
    li = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/, yn = {
        _backpedal: tr,
        anyPunctuation: Ic,
        autolink: yc,
        blockSkip: mc,
        br: ya,
        code: hc,
        del: tr,
        emStrongLDelim: Ec,
        emStrongRDelimAst: _c,
        emStrongRDelimUnd: Cc,
        escape: dc,
        link: vc,
        nolink: Da,
        punctuation: pc,
        reflink: wa,
        reflinkSearch: Nc,
        tag: Sc,
        text: Ac,
        url: tr
    }, wc = {
        ...yn,
        link: Te(/^!?\[(label)\]\((.*?)\)/).replace("label", Gr).getRegex(),
        reflink: Te(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", Gr).getRegex()
    }, qu = {
        ...yn,
        emStrongRDelimAst: xc,
        emStrongLDelim: Tc,
        url: Te(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol", li).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),
        _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
        del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,
        text: Te(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol", li).getRegex()
    }, Dc = {
        ...qu,
        br: Te(ya).replace("{2,}", "*").getRegex(),
        text: Te(qu.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
    }, vr = {normal: Cn, gfm: lc, pedantic: fc}, Zt = {normal: yn, gfm: qu, breaks: Dc, pedantic: wc},
    Bc = {"&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;"}, fi = e => Bc[e];

function ot(e, t) {
    if (t) {
        if (Qe.escapeTest.test(e)) return e.replace(Qe.escapeReplace, fi)
    } else if (Qe.escapeTestNoEncode.test(e)) return e.replace(Qe.escapeReplaceNoEncode, fi);
    return e
}

function di(e) {
    try {
        e = encodeURI(e).replace(Qe.percentDecode, "%")
    } catch {
        return null
    }
    return e
}

function hi(e, t) {
    var i;
    let r = e.replace(Qe.findPipe, (a, s, o) => {
        let l = !1, h = s;
        for (; --h >= 0 && o[h] === "\\";) l = !l;
        return l ? "|" : " |"
    }), u = r.split(Qe.splitPipe), n = 0;
    if (u[0].trim() || u.shift(), u.length > 0 && !((i = u.at(-1)) != null && i.trim()) && u.pop(), t) if (u.length > t) u.splice(t); else for (; u.length < t;) u.push("");
    for (; n < u.length; n++) u[n] = u[n].trim().replace(Qe.slashPipe, "|");
    return u
}

function zt(e, t, r) {
    let u = e.length;
    if (u === 0) return "";
    let n = 0;
    for (; n < u && e.charAt(u - n - 1) === t;) n++;
    return e.slice(0, u - n)
}

function Rc(e, t) {
    if (e.indexOf(t[1]) === -1) return -1;
    let r = 0;
    for (let u = 0; u < e.length; u++) if (e[u] === "\\") u++; else if (e[u] === t[0]) r++; else if (e[u] === t[1] && (r--, r < 0)) return u;
    return r > 0 ? -2 : -1
}

function Ai(e, t, r, u, n) {
    let i = t.href, a = t.title || null, s = e[1].replace(n.other.outputLinkReplace, "$1");
    u.state.inLink = !0;
    let o = {
        type: e[0].charAt(0) === "!" ? "image" : "link",
        raw: r,
        href: i,
        title: a,
        text: s,
        tokens: u.inlineTokens(s)
    };
    return u.state.inLink = !1, o
}

function Oc(e, t, r) {
    let u = e.match(r.other.indentCodeCompensation);
    if (u === null) return t;
    let n = u[1];
    return t.split(`
`).map(i => {
        let a = i.match(r.other.beginningSpace);
        if (a === null) return i;
        let [s] = a;
        return s.length >= n.length ? i.slice(n.length) : i
    }).join(`
`)
}

var Wr = class {
        constructor(e) {
            Ce(this, "options");
            Ce(this, "rules");
            Ce(this, "lexer");
            this.options = e || Nt
        }

        space(e) {
            let t = this.rules.block.newline.exec(e);
            if (t && t[0].length > 0) return {type: "space", raw: t[0]}
        }

        code(e) {
            let t = this.rules.block.code.exec(e);
            if (t) {
                let r = t[0].replace(this.rules.other.codeRemoveIndent, "");
                return {
                    type: "code", raw: t[0], codeBlockStyle: "indented", text: this.options.pedantic ? r : zt(r, `
`)
                }
            }
        }

        fences(e) {
            let t = this.rules.block.fences.exec(e);
            if (t) {
                let r = t[0], u = Oc(r, t[3] || "", this.rules);
                return {
                    type: "code",
                    raw: r,
                    lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2],
                    text: u
                }
            }
        }

        heading(e) {
            let t = this.rules.block.heading.exec(e);
            if (t) {
                let r = t[2].trim();
                if (this.rules.other.endingHash.test(r)) {
                    let u = zt(r, "#");
                    (this.options.pedantic || !u || this.rules.other.endingSpaceChar.test(u)) && (r = u.trim())
                }
                return {type: "heading", raw: t[0], depth: t[1].length, text: r, tokens: this.lexer.inline(r)}
            }
        }

        hr(e) {
            let t = this.rules.block.hr.exec(e);
            if (t) return {
                type: "hr", raw: zt(t[0], `
`)
            }
        }

        blockquote(e) {
            let t = this.rules.block.blockquote.exec(e);
            if (t) {
                let r = zt(t[0], `
`).split(`
`), u = "", n = "", i = [];
                for (; r.length > 0;) {
                    let a = !1, s = [], o;
                    for (o = 0; o < r.length; o++) if (this.rules.other.blockquoteStart.test(r[o])) s.push(r[o]), a = !0; else if (!a) s.push(r[o]); else break;
                    r = r.slice(o);
                    let l = s.join(`
`), h = l.replace(this.rules.other.blockquoteSetextReplace, `
    $1`).replace(this.rules.other.blockquoteSetextReplace2, "");
                    u = u ? `${u}
${l}` : l, n = n ? `${n}
${h}` : h;
                    let p = this.lexer.state.top;
                    if (this.lexer.state.top = !0, this.lexer.blockTokens(h, i, !0), this.lexer.state.top = p, r.length === 0) break;
                    let g = i.at(-1);
                    if ((g == null ? void 0 : g.type) === "code") break;
                    if ((g == null ? void 0 : g.type) === "blockquote") {
                        let d = g, E = d.raw + `
` + r.join(`
`), A = this.blockquote(E);
                        i[i.length - 1] = A, u = u.substring(0, u.length - d.raw.length) + A.raw, n = n.substring(0, n.length - d.text.length) + A.text;
                        break
                    } else if ((g == null ? void 0 : g.type) === "list") {
                        let d = g, E = d.raw + `
` + r.join(`
`), A = this.list(E);
                        i[i.length - 1] = A, u = u.substring(0, u.length - g.raw.length) + A.raw, n = n.substring(0, n.length - d.raw.length) + A.raw, r = E.substring(i.at(-1).raw.length).split(`
`);
                        continue
                    }
                }
                return {type: "blockquote", raw: u, tokens: i, text: n}
            }
        }

        list(e) {
            var r, u;
            let t = this.rules.block.list.exec(e);
            if (t) {
                let n = t[1].trim(), i = n.length > 1,
                    a = {type: "list", raw: "", ordered: i, start: i ? +n.slice(0, -1) : "", loose: !1, items: []};
                n = i ? `\\d{1,9}\\${n.slice(-1)}` : `\\${n}`, this.options.pedantic && (n = i ? n : "[*+-]");
                let s = this.rules.other.listItemRegex(n), o = !1;
                for (; e;) {
                    let h = !1, p = "", g = "";
                    if (!(t = s.exec(e)) || this.rules.block.hr.test(e)) break;
                    p = t[0], e = e.substring(p.length);
                    let d = t[2].split(`
`, 1)[0].replace(this.rules.other.listReplaceTabs, _ => " ".repeat(3 * _.length)), E = e.split(`
`, 1)[0], A = !d.trim(), x = 0;
                    if (this.options.pedantic ? (x = 2, g = d.trimStart()) : A ? x = t[1].length + 1 : (x = t[2].search(this.rules.other.nonSpaceChar), x = x > 4 ? 1 : x, g = d.slice(x), x += t[1].length), A && this.rules.other.blankLine.test(E) && (p += E + `
`, e = e.substring(E.length + 1), h = !0), !h) {
                        let _ = this.rules.other.nextBulletRegex(x), y = this.rules.other.hrRegex(x),
                            v = this.rules.other.fencesBeginRegex(x), D = this.rules.other.headingBeginRegex(x),
                            S = this.rules.other.htmlBeginRegex(x);
                        for (; e;) {
                            let L = e.split(`
`, 1)[0], M;
                            if (E = L, this.options.pedantic ? (E = E.replace(this.rules.other.listReplaceNesting, "  "), M = E) : M = E.replace(this.rules.other.tabCharGlobal, "    "), v.test(E) || D.test(E) || S.test(E) || _.test(E) || y.test(E)) break;
                            if (M.search(this.rules.other.nonSpaceChar) >= x || !E.trim()) g += `
` + M.slice(x); else {
                                if (A || d.replace(this.rules.other.tabCharGlobal, "    ").search(this.rules.other.nonSpaceChar) >= 4 || v.test(d) || D.test(d) || y.test(d)) break;
                                g += `
` + E
                            }
                            !A && !E.trim() && (A = !0), p += L + `
`, e = e.substring(L.length + 1), d = M.slice(x)
                        }
                    }
                    a.loose || (o ? a.loose = !0 : this.rules.other.doubleBlankLine.test(p) && (o = !0)), a.items.push({
                        type: "list_item",
                        raw: p,
                        task: !!this.options.gfm && this.rules.other.listIsTask.test(g),
                        loose: !1,
                        text: g,
                        tokens: []
                    }), a.raw += p
                }
                let l = a.items.at(-1);
                if (l) l.raw = l.raw.trimEnd(), l.text = l.text.trimEnd(); else return;
                a.raw = a.raw.trimEnd();
                for (let h of a.items) {
                    if (this.lexer.state.top = !1, h.tokens = this.lexer.blockTokens(h.text, []), h.task) {
                        if (h.text = h.text.replace(this.rules.other.listReplaceTask, ""), ((r = h.tokens[0]) == null ? void 0 : r.type) === "text" || ((u = h.tokens[0]) == null ? void 0 : u.type) === "paragraph") {
                            h.tokens[0].raw = h.tokens[0].raw.replace(this.rules.other.listReplaceTask, ""), h.tokens[0].text = h.tokens[0].text.replace(this.rules.other.listReplaceTask, "");
                            for (let g = this.lexer.inlineQueue.length - 1; g >= 0; g--) if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[g].src)) {
                                this.lexer.inlineQueue[g].src = this.lexer.inlineQueue[g].src.replace(this.rules.other.listReplaceTask, "");
                                break
                            }
                        }
                        let p = this.rules.other.listTaskCheckbox.exec(h.raw);
                        if (p) {
                            let g = {type: "checkbox", raw: p[0] + " ", checked: p[0] !== "[ ]"};
                            h.checked = g.checked, a.loose ? h.tokens[0] && ["paragraph", "text"].includes(h.tokens[0].type) && "tokens" in h.tokens[0] && h.tokens[0].tokens ? (h.tokens[0].raw = g.raw + h.tokens[0].raw, h.tokens[0].text = g.raw + h.tokens[0].text, h.tokens[0].tokens.unshift(g)) : h.tokens.unshift({
                                type: "paragraph",
                                raw: g.raw,
                                text: g.raw,
                                tokens: [g]
                            }) : h.tokens.unshift(g)
                        }
                    }
                    if (!a.loose) {
                        let p = h.tokens.filter(d => d.type === "space"),
                            g = p.length > 0 && p.some(d => this.rules.other.anyLine.test(d.raw));
                        a.loose = g
                    }
                }
                if (a.loose) for (let h of a.items) {
                    h.loose = !0;
                    for (let p of h.tokens) p.type === "text" && (p.type = "paragraph")
                }
                return a
            }
        }

        html(e) {
            let t = this.rules.block.html.exec(e);
            if (t) return {
                type: "html",
                block: !0,
                raw: t[0],
                pre: t[1] === "pre" || t[1] === "script" || t[1] === "style",
                text: t[0]
            }
        }

        def(e) {
            let t = this.rules.block.def.exec(e);
            if (t) {
                let r = t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "),
                    u = t[2] ? t[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "",
                    n = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3];
                return {type: "def", tag: r, raw: t[0], href: u, title: n}
            }
        }

        table(e) {
            var a;
            let t = this.rules.block.table.exec(e);
            if (!t || !this.rules.other.tableDelimiter.test(t[2])) return;
            let r = hi(t[1]), u = t[2].replace(this.rules.other.tableAlignChars, "").split("|"),
                n = (a = t[3]) != null && a.trim() ? t[3].replace(this.rules.other.tableRowBlankLine, "").split(`
`) : [], i = {type: "table", raw: t[0], header: [], align: [], rows: []};
            if (r.length === u.length) {
                for (let s of u) this.rules.other.tableAlignRight.test(s) ? i.align.push("right") : this.rules.other.tableAlignCenter.test(s) ? i.align.push("center") : this.rules.other.tableAlignLeft.test(s) ? i.align.push("left") : i.align.push(null);
                for (let s = 0; s < r.length; s++) i.header.push({
                    text: r[s],
                    tokens: this.lexer.inline(r[s]),
                    header: !0,
                    align: i.align[s]
                });
                for (let s of n) i.rows.push(hi(s, i.header.length).map((o, l) => ({
                    text: o,
                    tokens: this.lexer.inline(o),
                    header: !1,
                    align: i.align[l]
                })));
                return i
            }
        }

        lheading(e) {
            let t = this.rules.block.lheading.exec(e);
            if (t) return {
                type: "heading",
                raw: t[0],
                depth: t[2].charAt(0) === "=" ? 1 : 2,
                text: t[1],
                tokens: this.lexer.inline(t[1])
            }
        }

        paragraph(e) {
            let t = this.rules.block.paragraph.exec(e);
            if (t) {
                let r = t[1].charAt(t[1].length - 1) === `
` ? t[1].slice(0, -1) : t[1];
                return {type: "paragraph", raw: t[0], text: r, tokens: this.lexer.inline(r)}
            }
        }

        text(e) {
            let t = this.rules.block.text.exec(e);
            if (t) return {type: "text", raw: t[0], text: t[0], tokens: this.lexer.inline(t[0])}
        }

        escape(e) {
            let t = this.rules.inline.escape.exec(e);
            if (t) return {type: "escape", raw: t[0], text: t[1]}
        }

        tag(e) {
            let t = this.rules.inline.tag.exec(e);
            if (t) return !this.lexer.state.inLink && this.rules.other.startATag.test(t[0]) ? this.lexer.state.inLink = !0 : this.lexer.state.inLink && this.rules.other.endATag.test(t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(t[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(t[0]) && (this.lexer.state.inRawBlock = !1), {
                type: "html",
                raw: t[0],
                inLink: this.lexer.state.inLink,
                inRawBlock: this.lexer.state.inRawBlock,
                block: !1,
                text: t[0]
            }
        }

        link(e) {
            let t = this.rules.inline.link.exec(e);
            if (t) {
                let r = t[2].trim();
                if (!this.options.pedantic && this.rules.other.startAngleBracket.test(r)) {
                    if (!this.rules.other.endAngleBracket.test(r)) return;
                    let i = zt(r.slice(0, -1), "\\");
                    if ((r.length - i.length) % 2 === 0) return
                } else {
                    let i = Rc(t[2], "()");
                    if (i === -2) return;
                    if (i > -1) {
                        let a = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + i;
                        t[2] = t[2].substring(0, i), t[0] = t[0].substring(0, a).trim(), t[3] = ""
                    }
                }
                let u = t[2], n = "";
                if (this.options.pedantic) {
                    let i = this.rules.other.pedanticHrefTitle.exec(u);
                    i && (u = i[1], n = i[3])
                } else n = t[3] ? t[3].slice(1, -1) : "";
                return u = u.trim(), this.rules.other.startAngleBracket.test(u) && (this.options.pedantic && !this.rules.other.endAngleBracket.test(r) ? u = u.slice(1) : u = u.slice(1, -1)), Ai(t, {
                    href: u && u.replace(this.rules.inline.anyPunctuation, "$1"),
                    title: n && n.replace(this.rules.inline.anyPunctuation, "$1")
                }, t[0], this.lexer, this.rules)
            }
        }

        reflink(e, t) {
            let r;
            if ((r = this.rules.inline.reflink.exec(e)) || (r = this.rules.inline.nolink.exec(e))) {
                let u = (r[2] || r[1]).replace(this.rules.other.multipleSpaceGlobal, " "), n = t[u.toLowerCase()];
                if (!n) {
                    let i = r[0].charAt(0);
                    return {type: "text", raw: i, text: i}
                }
                return Ai(r, n, r[0], this.lexer, this.rules)
            }
        }

        emStrong(e, t, r = "") {
            let u = this.rules.inline.emStrongLDelim.exec(e);
            if (!(!u || u[3] && r.match(this.rules.other.unicodeAlphaNumeric)) && (!(u[1] || u[2]) || !r || this.rules.inline.punctuation.exec(r))) {
                let n = [...u[0]].length - 1, i, a, s = n, o = 0,
                    l = u[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
                for (l.lastIndex = 0, t = t.slice(-1 * e.length + n); (u = l.exec(t)) != null;) {
                    if (i = u[1] || u[2] || u[3] || u[4] || u[5] || u[6], !i) continue;
                    if (a = [...i].length, u[3] || u[4]) {
                        s += a;
                        continue
                    } else if ((u[5] || u[6]) && n % 3 && !((n + a) % 3)) {
                        o += a;
                        continue
                    }
                    if (s -= a, s > 0) continue;
                    a = Math.min(a, a + s + o);
                    let h = [...u[0]][0].length, p = e.slice(0, n + u.index + h + a);
                    if (Math.min(n, a) % 2) {
                        let d = p.slice(1, -1);
                        return {type: "em", raw: p, text: d, tokens: this.lexer.inlineTokens(d)}
                    }
                    let g = p.slice(2, -2);
                    return {type: "strong", raw: p, text: g, tokens: this.lexer.inlineTokens(g)}
                }
            }
        }

        codespan(e) {
            let t = this.rules.inline.code.exec(e);
            if (t) {
                let r = t[2].replace(this.rules.other.newLineCharGlobal, " "), u = this.rules.other.nonSpaceChar.test(r),
                    n = this.rules.other.startingSpaceChar.test(r) && this.rules.other.endingSpaceChar.test(r);
                return u && n && (r = r.substring(1, r.length - 1)), {type: "codespan", raw: t[0], text: r}
            }
        }

        br(e) {
            let t = this.rules.inline.br.exec(e);
            if (t) return {type: "br", raw: t[0]}
        }

        del(e) {
            let t = this.rules.inline.del.exec(e);
            if (t) return {type: "del", raw: t[0], text: t[2], tokens: this.lexer.inlineTokens(t[2])}
        }

        autolink(e) {
            let t = this.rules.inline.autolink.exec(e);
            if (t) {
                let r, u;
                return t[2] === "@" ? (r = t[1], u = "mailto:" + r) : (r = t[1], u = r), {
                    type: "link",
                    raw: t[0],
                    text: r,
                    href: u,
                    tokens: [{type: "text", raw: r, text: r}]
                }
            }
        }

        url(e) {
            var r;
            let t;
            if (t = this.rules.inline.url.exec(e)) {
                let u, n;
                if (t[2] === "@") u = t[0], n = "mailto:" + u; else {
                    let i;
                    do i = t[0], t[0] = ((r = this.rules.inline._backpedal.exec(t[0])) == null ? void 0 : r[0]) ?? ""; while (i !== t[0]);
                    u = t[0], t[1] === "www." ? n = "http://" + t[0] : n = t[0]
                }
                return {type: "link", raw: t[0], text: u, href: n, tokens: [{type: "text", raw: u, text: u}]}
            }
        }

        inlineText(e) {
            let t = this.rules.inline.text.exec(e);
            if (t) {
                let r = this.lexer.state.inRawBlock;
                return {type: "text", raw: t[0], text: t[0], escaped: r}
            }
        }
    }, Xe = class Zu {
        constructor(t) {
            Ce(this, "tokens");
            Ce(this, "options");
            Ce(this, "state");
            Ce(this, "inlineQueue");
            Ce(this, "tokenizer");
            this.tokens = [], this.tokens.links = Object.create(null), this.options = t || Nt, this.options.tokenizer = this.options.tokenizer || new Wr, this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {
                inLink: !1,
                inRawBlock: !1,
                top: !0
            };
            let r = {other: Qe, block: vr.normal, inline: Zt.normal};
            this.options.pedantic ? (r.block = vr.pedantic, r.inline = Zt.pedantic) : this.options.gfm && (r.block = vr.gfm, this.options.breaks ? r.inline = Zt.breaks : r.inline = Zt.gfm), this.tokenizer.rules = r
        }

        static get rules() {
            return {block: vr, inline: Zt}
        }

        static lex(t, r) {
            return new Zu(r).lex(t)
        }

        static lexInline(t, r) {
            return new Zu(r).inlineTokens(t)
        }

        lex(t) {
            t = t.replace(Qe.carriageReturn, `
`), this.blockTokens(t, this.tokens);
            for (let r = 0; r < this.inlineQueue.length; r++) {
                let u = this.inlineQueue[r];
                this.inlineTokens(u.src, u.tokens)
            }
            return this.inlineQueue = [], this.tokens
        }

        blockTokens(t, r = [], u = !1) {
            var n, i, a;
            for (this.options.pedantic && (t = t.replace(Qe.tabCharGlobal, "    ").replace(Qe.spaceLine, "")); t;) {
                let s;
                if ((i = (n = this.options.extensions) == null ? void 0 : n.block) != null && i.some(l => (s = l.call({lexer: this}, t, r)) ? (t = t.substring(s.raw.length), r.push(s), !0) : !1)) continue;
                if (s = this.tokenizer.space(t)) {
                    t = t.substring(s.raw.length);
                    let l = r.at(-1);
                    s.raw.length === 1 && l !== void 0 ? l.raw += `
` : r.push(s);
                    continue
                }
                if (s = this.tokenizer.code(t)) {
                    t = t.substring(s.raw.length);
                    let l = r.at(-1);
                    (l == null ? void 0 : l.type) === "paragraph" || (l == null ? void 0 : l.type) === "text" ? (l.raw += (l.raw.endsWith(`
`) ? "" : `
`) + s.raw, l.text += `
` + s.text, this.inlineQueue.at(-1).src = l.text) : r.push(s);
                    continue
                }
                if (s = this.tokenizer.fences(t)) {
                    t = t.substring(s.raw.length), r.push(s);
                    continue
                }
                if (s = this.tokenizer.heading(t)) {
                    t = t.substring(s.raw.length), r.push(s);
                    continue
                }
                if (s = this.tokenizer.hr(t)) {
                    t = t.substring(s.raw.length), r.push(s);
                    continue
                }
                if (s = this.tokenizer.blockquote(t)) {
                    t = t.substring(s.raw.length), r.push(s);
                    continue
                }
                if (s = this.tokenizer.list(t)) {
                    t = t.substring(s.raw.length), r.push(s);
                    continue
                }
                if (s = this.tokenizer.html(t)) {
                    t = t.substring(s.raw.length), r.push(s);
                    continue
                }
                if (s = this.tokenizer.def(t)) {
                    t = t.substring(s.raw.length);
                    let l = r.at(-1);
                    (l == null ? void 0 : l.type) === "paragraph" || (l == null ? void 0 : l.type) === "text" ? (l.raw += (l.raw.endsWith(`
`) ? "" : `
`) + s.raw, l.text += `
` + s.raw, this.inlineQueue.at(-1).src = l.text) : this.tokens.links[s.tag] || (this.tokens.links[s.tag] = {
                        href: s.href,
                        title: s.title
                    }, r.push(s));
                    continue
                }
                if (s = this.tokenizer.table(t)) {
                    t = t.substring(s.raw.length), r.push(s);
                    continue
                }
                if (s = this.tokenizer.lheading(t)) {
                    t = t.substring(s.raw.length), r.push(s);
                    continue
                }
                let o = t;
                if ((a = this.options.extensions) != null && a.startBlock) {
                    let l = 1 / 0, h = t.slice(1), p;
                    this.options.extensions.startBlock.forEach(g => {
                        p = g.call({lexer: this}, h), typeof p == "number" && p >= 0 && (l = Math.min(l, p))
                    }), l < 1 / 0 && l >= 0 && (o = t.substring(0, l + 1))
                }
                if (this.state.top && (s = this.tokenizer.paragraph(o))) {
                    let l = r.at(-1);
                    u && (l == null ? void 0 : l.type) === "paragraph" ? (l.raw += (l.raw.endsWith(`
`) ? "" : `
`) + s.raw, l.text += `
` + s.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = l.text) : r.push(s), u = o.length !== t.length, t = t.substring(s.raw.length);
                    continue
                }
                if (s = this.tokenizer.text(t)) {
                    t = t.substring(s.raw.length);
                    let l = r.at(-1);
                    (l == null ? void 0 : l.type) === "text" ? (l.raw += (l.raw.endsWith(`
`) ? "" : `
`) + s.raw, l.text += `
` + s.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = l.text) : r.push(s);
                    continue
                }
                if (t) {
                    let l = "Infinite loop on byte: " + t.charCodeAt(0);
                    if (this.options.silent) {
                        console.error(l);
                        break
                    } else throw new Error(l)
                }
            }
            return this.state.top = !0, r
        }

        inline(t, r = []) {
            return this.inlineQueue.push({src: t, tokens: r}), r
        }

        inlineTokens(t, r = []) {
            var o, l, h, p, g;
            let u = t, n = null;
            if (this.tokens.links) {
                let d = Object.keys(this.tokens.links);
                if (d.length > 0) for (; (n = this.tokenizer.rules.inline.reflinkSearch.exec(u)) != null;) d.includes(n[0].slice(n[0].lastIndexOf("[") + 1, -1)) && (u = u.slice(0, n.index) + "[" + "a".repeat(n[0].length - 2) + "]" + u.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))
            }
            for (; (n = this.tokenizer.rules.inline.anyPunctuation.exec(u)) != null;) u = u.slice(0, n.index) + "++" + u.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
            let i;
            for (; (n = this.tokenizer.rules.inline.blockSkip.exec(u)) != null;) i = n[2] ? n[2].length : 0, u = u.slice(0, n.index + i) + "[" + "a".repeat(n[0].length - i - 2) + "]" + u.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
            u = ((l = (o = this.options.hooks) == null ? void 0 : o.emStrongMask) == null ? void 0 : l.call({lexer: this}, u)) ?? u;
            let a = !1, s = "";
            for (; t;) {
                a || (s = ""), a = !1;
                let d;
                if ((p = (h = this.options.extensions) == null ? void 0 : h.inline) != null && p.some(A => (d = A.call({lexer: this}, t, r)) ? (t = t.substring(d.raw.length), r.push(d), !0) : !1)) continue;
                if (d = this.tokenizer.escape(t)) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                if (d = this.tokenizer.tag(t)) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                if (d = this.tokenizer.link(t)) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                if (d = this.tokenizer.reflink(t, this.tokens.links)) {
                    t = t.substring(d.raw.length);
                    let A = r.at(-1);
                    d.type === "text" && (A == null ? void 0 : A.type) === "text" ? (A.raw += d.raw, A.text += d.text) : r.push(d);
                    continue
                }
                if (d = this.tokenizer.emStrong(t, u, s)) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                if (d = this.tokenizer.codespan(t)) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                if (d = this.tokenizer.br(t)) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                if (d = this.tokenizer.del(t)) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                if (d = this.tokenizer.autolink(t)) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                if (!this.state.inLink && (d = this.tokenizer.url(t))) {
                    t = t.substring(d.raw.length), r.push(d);
                    continue
                }
                let E = t;
                if ((g = this.options.extensions) != null && g.startInline) {
                    let A = 1 / 0, x = t.slice(1), _;
                    this.options.extensions.startInline.forEach(y => {
                        _ = y.call({lexer: this}, x), typeof _ == "number" && _ >= 0 && (A = Math.min(A, _))
                    }), A < 1 / 0 && A >= 0 && (E = t.substring(0, A + 1))
                }
                if (d = this.tokenizer.inlineText(E)) {
                    t = t.substring(d.raw.length), d.raw.slice(-1) !== "_" && (s = d.raw.slice(-1)), a = !0;
                    let A = r.at(-1);
                    (A == null ? void 0 : A.type) === "text" ? (A.raw += d.raw, A.text += d.text) : r.push(d);
                    continue
                }
                if (t) {
                    let A = "Infinite loop on byte: " + t.charCodeAt(0);
                    if (this.options.silent) {
                        console.error(A);
                        break
                    } else throw new Error(A)
                }
            }
            return r
        }
    }, Kr = class {
        constructor(e) {
            Ce(this, "options");
            Ce(this, "parser");
            this.options = e || Nt
        }

        space(e) {
            return ""
        }

        code({text: e, lang: t, escaped: r}) {
            var i;
            let u = (i = (t || "").match(Qe.notSpaceStart)) == null ? void 0 : i[0], n = e.replace(Qe.endingNewline, "") + `
`;
            return u ? '<pre><code class="language-' + ot(u) + '">' + (r ? n : ot(n, !0)) + `</code></pre>
` : "<pre><code>" + (r ? n : ot(n, !0)) + `</code></pre>
`
        }

        blockquote({tokens: e}) {
            return `<blockquote>
${this.parser.parse(e)}</blockquote>
`
        }

        html({text: e}) {
            return e
        }

        def(e) {
            return ""
        }

        heading({tokens: e, depth: t}) {
            return `<h${t}>${this.parser.parseInline(e)}</h${t}>
`
        }

        hr(e) {
            return `<hr>
`
        }

        list(e) {
            let t = e.ordered, r = e.start, u = "";
            for (let a = 0; a < e.items.length; a++) {
                let s = e.items[a];
                u += this.listitem(s)
            }
            let n = t ? "ol" : "ul", i = t && r !== 1 ? ' start="' + r + '"' : "";
            return "<" + n + i + `>
` + u + "</" + n + `>
`
        }

        listitem(e) {
            return `<li>${this.parser.parse(e.tokens)}</li>
`
        }

        checkbox({checked: e}) {
            return "<input " + (e ? 'checked="" ' : "") + 'disabled="" type="checkbox"> '
        }

        paragraph({tokens: e}) {
            return `<p>${this.parser.parseInline(e)}</p>
`
        }

        table(e) {
            let t = "", r = "";
            for (let n = 0; n < e.header.length; n++) r += this.tablecell(e.header[n]);
            t += this.tablerow({text: r});
            let u = "";
            for (let n = 0; n < e.rows.length; n++) {
                let i = e.rows[n];
                r = "";
                for (let a = 0; a < i.length; a++) r += this.tablecell(i[a]);
                u += this.tablerow({text: r})
            }
            return u && (u = `<tbody>${u}</tbody>`), `<table>
<thead>
` + t + `</thead>
` + u + `</table>
`
        }

        tablerow({text: e}) {
            return `<tr>
${e}</tr>
`
        }

        tablecell(e) {
            let t = this.parser.parseInline(e.tokens), r = e.header ? "th" : "td";
            return (e.align ? `<${r} align="${e.align}">` : `<${r}>`) + t + `</${r}>
`
        }

        strong({tokens: e}) {
            return `<strong>${this.parser.parseInline(e)}</strong>`
        }

        em({tokens: e}) {
            return `<em>${this.parser.parseInline(e)}</em>`
        }

        codespan({text: e}) {
            return `<code>${ot(e, !0)}</code>`
        }

        br(e) {
            return "<br>"
        }

        del({tokens: e}) {
            return `<del>${this.parser.parseInline(e)}</del>`
        }

        link({href: e, title: t, tokens: r}) {
            let u = this.parser.parseInline(r), n = di(e);
            if (n === null) return u;
            e = n;
            let i = '<a href="' + e + '"';
            return t && (i += ' title="' + ot(t) + '"'), i += ">" + u + "</a>", i
        }

        image({href: e, title: t, text: r, tokens: u}) {
            u && (r = this.parser.parseInline(u, this.parser.textRenderer));
            let n = di(e);
            if (n === null) return ot(r);
            e = n;
            let i = `<img src="${e}" alt="${r}"`;
            return t && (i += ` title="${ot(t)}"`), i += ">", i
        }

        text(e) {
            return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text : ot(e.text)
        }
    }, kn = class {
        strong({text: t}) {
            return t
        }

        em({text: t}) {
            return t
        }

        codespan({text: t}) {
            return t
        }

        del({text: t}) {
            return t
        }

        html({text: t}) {
            return t
        }

        text({text: t}) {
            return t
        }

        link({text: t}) {
            return "" + t
        }

        image({text: t}) {
            return "" + t
        }

        br() {
            return ""
        }

        checkbox({raw: t}) {
            return t
        }
    }, $e = class zu {
        constructor(t) {
            Ce(this, "options");
            Ce(this, "renderer");
            Ce(this, "textRenderer");
            this.options = t || Nt, this.options.renderer = this.options.renderer || new Kr, this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new kn
        }

        static parse(t, r) {
            return new zu(r).parse(t)
        }

        static parseInline(t, r) {
            return new zu(r).parseInline(t)
        }

        parse(t) {
            var u, n;
            let r = "";
            for (let i = 0; i < t.length; i++) {
                let a = t[i];
                if ((n = (u = this.options.extensions) == null ? void 0 : u.renderers) != null && n[a.type]) {
                    let o = a, l = this.options.extensions.renderers[o.type].call({parser: this}, o);
                    if (l !== !1 || !["space", "hr", "heading", "code", "table", "blockquote", "list", "html", "def", "paragraph", "text"].includes(o.type)) {
                        r += l || "";
                        continue
                    }
                }
                let s = a;
                switch (s.type) {
                    case"space": {
                        r += this.renderer.space(s);
                        break
                    }
                    case"hr": {
                        r += this.renderer.hr(s);
                        break
                    }
                    case"heading": {
                        r += this.renderer.heading(s);
                        break
                    }
                    case"code": {
                        r += this.renderer.code(s);
                        break
                    }
                    case"table": {
                        r += this.renderer.table(s);
                        break
                    }
                    case"blockquote": {
                        r += this.renderer.blockquote(s);
                        break
                    }
                    case"list": {
                        r += this.renderer.list(s);
                        break
                    }
                    case"checkbox": {
                        r += this.renderer.checkbox(s);
                        break
                    }
                    case"html": {
                        r += this.renderer.html(s);
                        break
                    }
                    case"def": {
                        r += this.renderer.def(s);
                        break
                    }
                    case"paragraph": {
                        r += this.renderer.paragraph(s);
                        break
                    }
                    case"text": {
                        r += this.renderer.text(s);
                        break
                    }
                    default: {
                        let o = 'Token with "' + s.type + '" type was not found.';
                        if (this.options.silent) return console.error(o), "";
                        throw new Error(o)
                    }
                }
            }
            return r
        }

        parseInline(t, r = this.renderer) {
            var n, i;
            let u = "";
            for (let a = 0; a < t.length; a++) {
                let s = t[a];
                if ((i = (n = this.options.extensions) == null ? void 0 : n.renderers) != null && i[s.type]) {
                    let l = this.options.extensions.renderers[s.type].call({parser: this}, s);
                    if (l !== !1 || !["escape", "html", "link", "image", "strong", "em", "codespan", "br", "del", "text"].includes(s.type)) {
                        u += l || "";
                        continue
                    }
                }
                let o = s;
                switch (o.type) {
                    case"escape": {
                        u += r.text(o);
                        break
                    }
                    case"html": {
                        u += r.html(o);
                        break
                    }
                    case"link": {
                        u += r.link(o);
                        break
                    }
                    case"image": {
                        u += r.image(o);
                        break
                    }
                    case"checkbox": {
                        u += r.checkbox(o);
                        break
                    }
                    case"strong": {
                        u += r.strong(o);
                        break
                    }
                    case"em": {
                        u += r.em(o);
                        break
                    }
                    case"codespan": {
                        u += r.codespan(o);
                        break
                    }
                    case"br": {
                        u += r.br(o);
                        break
                    }
                    case"del": {
                        u += r.del(o);
                        break
                    }
                    case"text": {
                        u += r.text(o);
                        break
                    }
                    default: {
                        let l = 'Token with "' + o.type + '" type was not found.';
                        if (this.options.silent) return console.error(l), "";
                        throw new Error(l)
                    }
                }
            }
            return u
        }
    }, Pr, $t = (Pr = class {
        constructor(e) {
            Ce(this, "options");
            Ce(this, "block");
            this.options = e || Nt
        }

        preprocess(e) {
            return e
        }

        postprocess(e) {
            return e
        }

        processAllTokens(e) {
            return e
        }

        emStrongMask(e) {
            return e
        }

        provideLexer() {
            return this.block ? Xe.lex : Xe.lexInline
        }

        provideParser() {
            return this.block ? $e.parse : $e.parseInline
        }
    }, Ce(Pr, "passThroughHooks", new Set(["preprocess", "postprocess", "processAllTokens", "emStrongMask"])), Ce(Pr, "passThroughHooksRespectAsync", new Set(["preprocess", "postprocess", "processAllTokens"])), Pr),
    Lc = class {
        constructor(...e) {
            Ce(this, "defaults", mn());
            Ce(this, "options", this.setOptions);
            Ce(this, "parse", this.parseMarkdown(!0));
            Ce(this, "parseInline", this.parseMarkdown(!1));
            Ce(this, "Parser", $e);
            Ce(this, "Renderer", Kr);
            Ce(this, "TextRenderer", kn);
            Ce(this, "Lexer", Xe);
            Ce(this, "Tokenizer", Wr);
            Ce(this, "Hooks", $t);
            this.use(...e)
        }

        walkTokens(e, t) {
            var u, n;
            let r = [];
            for (let i of e) switch (r = r.concat(t.call(this, i)), i.type) {
                case"table": {
                    let a = i;
                    for (let s of a.header) r = r.concat(this.walkTokens(s.tokens, t));
                    for (let s of a.rows) for (let o of s) r = r.concat(this.walkTokens(o.tokens, t));
                    break
                }
                case"list": {
                    let a = i;
                    r = r.concat(this.walkTokens(a.items, t));
                    break
                }
                default: {
                    let a = i;
                    (n = (u = this.defaults.extensions) == null ? void 0 : u.childTokens) != null && n[a.type] ? this.defaults.extensions.childTokens[a.type].forEach(s => {
                        let o = a[s].flat(1 / 0);
                        r = r.concat(this.walkTokens(o, t))
                    }) : a.tokens && (r = r.concat(this.walkTokens(a.tokens, t)))
                }
            }
            return r
        }

        use(...e) {
            let t = this.defaults.extensions || {renderers: {}, childTokens: {}};
            return e.forEach(r => {
                let u = {...r};
                if (u.async = this.defaults.async || u.async || !1, r.extensions && (r.extensions.forEach(n => {
                    if (!n.name) throw new Error("extension name required");
                    if ("renderer" in n) {
                        let i = t.renderers[n.name];
                        i ? t.renderers[n.name] = function (...a) {
                            let s = n.renderer.apply(this, a);
                            return s === !1 && (s = i.apply(this, a)), s
                        } : t.renderers[n.name] = n.renderer
                    }
                    if ("tokenizer" in n) {
                        if (!n.level || n.level !== "block" && n.level !== "inline") throw new Error("extension level must be 'block' or 'inline'");
                        let i = t[n.level];
                        i ? i.unshift(n.tokenizer) : t[n.level] = [n.tokenizer], n.start && (n.level === "block" ? t.startBlock ? t.startBlock.push(n.start) : t.startBlock = [n.start] : n.level === "inline" && (t.startInline ? t.startInline.push(n.start) : t.startInline = [n.start]))
                    }
                    "childTokens" in n && n.childTokens && (t.childTokens[n.name] = n.childTokens)
                }), u.extensions = t), r.renderer) {
                    let n = this.defaults.renderer || new Kr(this.defaults);
                    for (let i in r.renderer) {
                        if (!(i in n)) throw new Error(`renderer '${i}' does not exist`);
                        if (["options", "parser"].includes(i)) continue;
                        let a = i, s = r.renderer[a], o = n[a];
                        n[a] = (...l) => {
                            let h = s.apply(n, l);
                            return h === !1 && (h = o.apply(n, l)), h || ""
                        }
                    }
                    u.renderer = n
                }
                if (r.tokenizer) {
                    let n = this.defaults.tokenizer || new Wr(this.defaults);
                    for (let i in r.tokenizer) {
                        if (!(i in n)) throw new Error(`tokenizer '${i}' does not exist`);
                        if (["options", "rules", "lexer"].includes(i)) continue;
                        let a = i, s = r.tokenizer[a], o = n[a];
                        n[a] = (...l) => {
                            let h = s.apply(n, l);
                            return h === !1 && (h = o.apply(n, l)), h
                        }
                    }
                    u.tokenizer = n
                }
                if (r.hooks) {
                    let n = this.defaults.hooks || new $t;
                    for (let i in r.hooks) {
                        if (!(i in n)) throw new Error(`hook '${i}' does not exist`);
                        if (["options", "block"].includes(i)) continue;
                        let a = i, s = r.hooks[a], o = n[a];
                        $t.passThroughHooks.has(i) ? n[a] = l => {
                            if (this.defaults.async && $t.passThroughHooksRespectAsync.has(i)) return (async () => {
                                let p = await s.call(n, l);
                                return o.call(n, p)
                            })();
                            let h = s.call(n, l);
                            return o.call(n, h)
                        } : n[a] = (...l) => {
                            if (this.defaults.async) return (async () => {
                                let p = await s.apply(n, l);
                                return p === !1 && (p = await o.apply(n, l)), p
                            })();
                            let h = s.apply(n, l);
                            return h === !1 && (h = o.apply(n, l)), h
                        }
                    }
                    u.hooks = n
                }
                if (r.walkTokens) {
                    let n = this.defaults.walkTokens, i = r.walkTokens;
                    u.walkTokens = function (a) {
                        let s = [];
                        return s.push(i.call(this, a)), n && (s = s.concat(n.call(this, a))), s
                    }
                }
                this.defaults = {...this.defaults, ...u}
            }), this
        }

        setOptions(e) {
            return this.defaults = {...this.defaults, ...e}, this
        }

        lexer(e, t) {
            return Xe.lex(e, t ?? this.defaults)
        }

        parser(e, t) {
            return $e.parse(e, t ?? this.defaults)
        }

        parseMarkdown(e) {
            return (t, r) => {
                let u = {...r}, n = {...this.defaults, ...u}, i = this.onError(!!n.silent, !!n.async);
                if (this.defaults.async === !0 && u.async === !1) return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));
                if (typeof t > "u" || t === null) return i(new Error("marked(): input parameter is undefined or null"));
                if (typeof t != "string") return i(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(t) + ", string expected"));
                if (n.hooks && (n.hooks.options = n, n.hooks.block = e), n.async) return (async () => {
                    let a = n.hooks ? await n.hooks.preprocess(t) : t,
                        s = await (n.hooks ? await n.hooks.provideLexer() : e ? Xe.lex : Xe.lexInline)(a, n),
                        o = n.hooks ? await n.hooks.processAllTokens(s) : s;
                    n.walkTokens && await Promise.all(this.walkTokens(o, n.walkTokens));
                    let l = await (n.hooks ? await n.hooks.provideParser() : e ? $e.parse : $e.parseInline)(o, n);
                    return n.hooks ? await n.hooks.postprocess(l) : l
                })().catch(i);
                try {
                    n.hooks && (t = n.hooks.preprocess(t));
                    let a = (n.hooks ? n.hooks.provideLexer() : e ? Xe.lex : Xe.lexInline)(t, n);
                    n.hooks && (a = n.hooks.processAllTokens(a)), n.walkTokens && this.walkTokens(a, n.walkTokens);
                    let s = (n.hooks ? n.hooks.provideParser() : e ? $e.parse : $e.parseInline)(a, n);
                    return n.hooks && (s = n.hooks.postprocess(s)), s
                } catch (a) {
                    return i(a)
                }
            }
        }

        onError(e, t) {
            return r => {
                if (r.message += `
Please report this to https://github.com/markedjs/marked.`, e) {
                    let u = "<p>An error occurred:</p><pre>" + ot(r.message + "", !0) + "</pre>";
                    return t ? Promise.resolve(u) : u
                }
                if (t) return Promise.reject(r);
                throw r
            }
        }
    }, yt = new Lc;

function xe(e, t) {
    return yt.parse(e, t)
}

xe.options = xe.setOptions = function (e) {
    return yt.setOptions(e), xe.defaults = yt.defaults, _a(xe.defaults), xe
};
xe.getDefaults = mn;
xe.defaults = Nt;
xe.use = function (...e) {
    return yt.use(...e), xe.defaults = yt.defaults, _a(xe.defaults), xe
};
xe.walkTokens = function (e, t) {
    return yt.walkTokens(e, t)
};
xe.parseInline = yt.parseInline;
xe.Parser = $e;
xe.parser = $e.parse;
xe.Renderer = Kr;
xe.TextRenderer = kn;
xe.Lexer = Xe;
xe.lexer = Xe.lex;
xe.Tokenizer = Wr;
xe.Hooks = $t;
xe.parse = xe;
xe.options;
xe.setOptions;
xe.use;
xe.walkTokens;
xe.parseInline;
$e.parse;
Xe.lex;
const qr = No("Turndown");

function Fc(e) {
    let t = e;
    for (let u = 0; u < 3; u++) {
        const n = t;
        if (t = t.replace(/&amp;/g, "&"), n === t) break
    }
    t = t.replace(/&#[xX]([0-9a-fA-F]+);/g, (u, n) => String.fromCharCode(parseInt(n, 16))), t = t.replace(/&#(\d+);/g, (u, n) => String.fromCharCode(parseInt(n, 10)));
    const r = {
        "&lt;": "<",
        "&gt;": ">",
        "&amp;": "&",
        "&quot;": '"',
        "&apos;": "'",
        "&#039;": "'",
        "&nbsp;": " ",
        "&ndash;": "–",
        "&mdash;": "—",
        "&lsquo;": "‘",
        "&rsquo;": "’",
        "&ldquo;": "“",
        "&rdquo;": "”",
        "&copy;": "©",
        "&reg;": "®",
        "&trade;": "™",
        "&hellip;": "…"
    };
    for (const [u, n] of Object.entries(r)) t = t.split(u).join(n);
    return t
}

const Mc = ["span", "em", "strong", "b", "i", "u", "s", "strike", "del", "ins", "mark", "sub", "sup", "small", "big", "font", "a", "code", "pre", "kbd", "samp", "var", "tt", "div", "p", "section", "article", "header", "footer", "aside", "nav", "main", "figure", "figcaption", "blockquote", "address", "ul", "ol", "li", "dl", "dt", "dd", "table", "thead", "tbody", "tfoot", "tr", "th", "td", "caption", "colgroup", "col", "br", "hr", "wbr", "abbr", "acronym", "cite", "dfn", "q", "time", "ruby", "rt", "rp", "bdi", "bdo", "data", "meter", "progress", "output", "details", "summary", "mpvoice", "mpprofile", "qqmusic", "mpcps"];

function Pc(e) {
    const t = "\0__CODE_LT__\0", r = "\0__CODE_GT__\0";
    let u = e;
    u = u.replace(/&lt;/gi, t), u = u.replace(/&gt;/gi, r), u = u.replace(/&#0*60;/gi, t), u = u.replace(/&#0*62;/gi, r), u = u.replace(/&#x0*3[cC];/gi, t), u = u.replace(/&#x0*3[eE];/gi, r);
    const n = Mc.join("|");
    return u = u.replace(new RegExp(`<(${n})\\b[^>]*\\/?>`, "gi"), ""), u = u.replace(new RegExp(`<\\/(${n})>`, "gi"), ""), u = u.replace(new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), "<"), u = u.replace(new RegExp(r.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), ">"), u = Fc(u), u
}

function Uc(e) {
    let t = e.replace(/<br\s*\/?>/gi, `
`).replace(/<\/div>/gi, `
`).replace(/<\/p>/gi, `
`).replace(/<\/li>/gi, `
`).replace(/<\/?code[^>]*>/gi, "");
    return t = Pc(t), t.trim()
}

function pi(e, t) {
    const r = t.parentNode;
    if (!r) return "| " + e + " |";
    const u = r.querySelectorAll("th, td");
    return (Array.from(u).indexOf(t) === 0 ? "| " : " ") + e + " |"
}

function bi(e) {
    return e.querySelector("tr")
}

function vu(e) {
    const t = e.parentNode;
    if (!t) return !1;
    const r = e.querySelectorAll("th, td");
    return t.nodeName === "THEAD" || t.firstChild === e && (t.nodeName === "TABLE" || Hc(t)) && r.length > 0 && Array.from(r).every(u => u.nodeName === "TH")
}

function Hc(e) {
    const t = e.previousSibling;
    return e.nodeName === "TBODY" && (!t || t.nodeName === "THEAD" && /^\s*$/i.test(t.textContent || ""))
}

function Qc(e) {
    e.addRule("figure", {
        filter: "figure", replacement: function (t) {
            return t
        }
    }), e.addRule("figcaption", {
        filter: "figcaption", replacement: function (t) {
            return t ? `
*` + t.trim() + `*
` : ""
        }
    }), e.addRule("tableCell", {
        filter: ["th", "td"], replacement: function (t, r) {
            return pi(t, r)
        }
    }), e.addRule("tableRow", {
        filter: "tr", replacement: function (t, r) {
            const u = r;
            let n = "";
            const i = {left: ":--", right: "--:", center: ":-:"};
            return vu(u) && u.querySelectorAll("th, td").forEach(s => {
                var h;
                let o = "---";
                const l = (((h = s.getAttribute) == null ? void 0 : h.call(s, "align")) || "").toLowerCase();
                l && i[l] && (o = i[l]), n += pi(o, s)
            }), `
` + t + (n ? `
` + n : "")
        }
    }), e.addRule("table", {
        filter: function (t) {
            try {
                if (t.nodeName !== "TABLE") return !1;
                const u = bi(t);
                return u ? vu(u) : !1
            } catch (r) {
                return qr.error("Table filter error:", r), !1
            }
        }, replacement: function (t) {
            return t = t.replace(/\n\n/g, `
`), `

` + t + `

`
        }
    }), e.addRule("tableSection", {
        filter: ["thead", "tbody", "tfoot"], replacement: function (t) {
            return t
        }
    }), e.addRule("preCode", {
        filter: ["pre"], replacement: function (t, r) {
            const u = r;
            let n = "";
            const i = u.getAttribute("data-lang");
            if (i && (n = i), !n) {
                const h = u.querySelector("code");
                if (h) {
                    const g = (h.className || "").match(/language-(\w+)/);
                    g && (n = g[1])
                }
            }
            if (!n) {
                const p = (u.className || "").match(/language-(\w+)/);
                p && (n = p[1])
            }
            n || (n = "bash");
            const a = u.querySelectorAll("code");
            let s;
            if (a.length > 1) {
                const h = [];
                a.forEach(p => {
                    h.push(p.innerText || p.textContent || "")
                }), s = h.join(`
`)
            } else s = u.innerText || "";
            if (s = s.replace(/\r\n/g, `
`).replace(/\r/g, `
`).replace(/^\n+/, "").replace(/\n+$/, ""), !s.trim()) return "";
            n = n.replace(/[^a-zA-Z0-9+#._-]/g, "").toLowerCase();
            let o = "```";
            const l = s.match(/`+/g);
            if (l) {
                const h = Math.max(...l.map(p => p.length));
                h >= 3 && (o = "`".repeat(h + 1))
            }
            return `
` + o + n + `
` + s + `
` + o + `
`
        }
    }), e.keep(function (t) {
        try {
            if (t.nodeName !== "TABLE") return !1;
            const u = bi(t);
            return u ? !vu(u) : !0
        } catch (r) {
            return qr.error("Table keep filter error:", r), !1
        }
    })
}

function R2(e, t = {}) {
    return Ju(e)
}

function gi(e) {
    if (!e) return "";
    const t = [/language-(\w+)/i, /lang-(\w+)/i, /\bhljs\s+(\w+)/i, /\b(javascript|typescript|python|java|cpp|c|csharp|go|rust|ruby|php|swift|kotlin|scala|sql|html|css|json|xml|yaml|markdown|bash|shell|powershell)\b/i];
    for (const r of t) {
        const u = e.match(r);
        if (u) return u[1].toLowerCase()
    }
    return ""
}

function Ju(e) {
    let t = e;
    return t = t.replace(/<ul[^>]*class=["'][^"']*code-snippet__line-index[^"']*["'][^>]*>[\s\S]*?<\/ul>/gi, ""), t = Yc(t), t = t.replace(/<h1[^>]*>([\s\S]*?)<\/h1>/gi, `
# $1
`), t = t.replace(/<h2[^>]*>([\s\S]*?)<\/h2>/gi, `
## $1
`), t = t.replace(/<h3[^>]*>([\s\S]*?)<\/h3>/gi, `
### $1
`), t = t.replace(/<h4[^>]*>([\s\S]*?)<\/h4>/gi, `
#### $1
`), t = t.replace(/<h5[^>]*>([\s\S]*?)<\/h5>/gi, `
##### $1
`), t = t.replace(/<h6[^>]*>([\s\S]*?)<\/h6>/gi, `
###### $1
`), t = t.replace(/<(strong|b)[^>]*>([\s\S]*?)<\/\1>/gi, "**$2**"), t = t.replace(/<(em|i)[^>]*>([\s\S]*?)<\/\1>/gi, "*$2*"), t = t.replace(/<a[^>]*href="([^"]*)"[^>]*>([\s\S]*?)<\/a>/gi, "[$2]($1)"), t = t.replace(/<img[^>]*src="([^"]*)"[^>]*alt="([^"]*)"[^>]*\/?>/gi, "![$2]($1)"), t = t.replace(/<img[^>]*src="([^"]*)"[^>]*\/?>/gi, "![]($1)"), t = t.replace(/<pre[^>]*>([\s\S]*?)<\/pre>/gi, (r, u) => {
        let n = "";
        const i = r.match(/<pre[^>]*data-lang(?:uage)?=["'](\w+)["']/), a = r.match(/<pre[^>]*class="([^"]*)"/);
        i ? n = i[1] : a && (n = gi(a[1]));
        const s = u.match(/<code[^>]*data-lang(?:uage)?=["'](\w+)["']/), o = u.match(/<code[^>]*class="([^"]*)"/);
        n || (s ? n = s[1] : o && (n = gi(o[1])));
        const l = Uc(u);
        return "\n```" + n + `
` + l + "\n```\n"
    }), t = t.replace(/<code[^>]*>([\s\S]*?)<\/code>/gi, "`$1`"), t = t.replace(/<ul[^>]*>([\s\S]*?)<\/ul>/gi, `$1
`), t = t.replace(/<ol[^>]*>([\s\S]*?)<\/ol>/gi, `$1
`), t = t.replace(/<li[^>]*>([\s\S]*?)<\/li>/gi, `- $1
`), t = t.replace(/<p[^>]*>([\s\S]*?)<\/p>/gi, `
$1
`), t = t.replace(/<br\s*\/?>/gi, `
`), t = t.replace(/<hr\s*\/?>/gi, `
---
`), t = t.replace(/<blockquote[^>]*>([\s\S]*?)<\/blockquote>/gi, (r, u) => `
` + u.trim().split(`
`).map(n => "> " + n).join(`
`) + `
`), t = t.replace(/<script[^>]*type=["']math\/tex[^"']*display[^"']*["'][^>]*>([\s\S]*?)<\/script>/gi, `
$$$$
$1
$$$$
`), t = t.replace(/<script[^>]*type=["']math\/tex["'][^>]*>([\s\S]*?)<\/script>/gi, " $$$$$1$$$$ "), t = t.replace(/<\/?[^>]+(>|$)/g, ""), t = t.replace(/&amp;/g, "&"), t = t.replace(/&lt;/g, "<"), t = t.replace(/&gt;/g, ">"), t = t.replace(/&quot;/g, '"'), t = t.replace(/&#039;/g, "'"), t = t.replace(/&nbsp;/g, " "), t = t.replace(/\n{3,}/g, `

`), t = t.trim(), t
}

function Yc(e) {
    return e = e.replace(/<figure[^>]*>([\s\S]*?)<\/figure>/gi, (t, r) => {
        if (/<table[^>]*>/i.test(r)) {
            const u = r.match(/<table[^>]*>([\s\S]*?)<\/table>/i),
                n = r.match(/<figcaption[^>]*>([\s\S]*?)<\/figcaption>/i);
            if (u) {
                let i = u[0];
                if (n) {
                    const a = n[1].replace(/<[^>]+>/g, "").trim();
                    a && (i += `
*` + a + `*
`)
                }
                return i
            }
        }
        return t
    }), e.replace(/<table[^>]*>([\s\S]*?)<\/table>/gi, (t, r) => {
        const u = r.match(/<thead[^>]*>([\s\S]*?)<\/thead>/i), n = [], i = [];
        let a = -1;
        const s = r.match(/<tr[^>]*>([\s\S]*?)<\/tr>/gi) || [];
        for (let p = 0; p < s.length; p++) {
            const g = s[p], d = [], E = [], A = g.match(/<t[hd][^>]*>([\s\S]*?)<\/t[hd]>/gi) || [],
                x = A.length > 0 && A.every(_ => _.startsWith("<th"));
            for (const _ of A) {
                const y = _.match(/<t[hd]([^>]*)>([\s\S]*?)<\/t[hd]>/i);
                if (y) {
                    const v = y[1], D = y[2],
                        S = v.match(/align=["']?(left|center|right)["']?/i) || v.match(/style=["'][^"']*text-align:\s*(left|center|right)/i),
                        L = S ? S[1].toLowerCase() : "";
                    E.push(L);
                    let M = D.replace(/<br\s*\/?>/gi, " ").replace(/<[^>]+>/g, "").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/\s+/g, " ").trim();
                    M = M.replace(/\|/g, "\\|"), d.push(M)
                }
            }
            d.length > 0 && (n.push(d), i.push(E), u && g.indexOf("<th") !== -1 ? a = p : p === 0 && x && (a = 0))
        }
        if (n.length === 0) return "";
        a === -1 && (a = 0);
        const o = [], l = Math.max(...n.map(p => p.length)), h = i[a] || [];
        for (let p = 0; p < n.length; p++) {
            const g = n[p];
            for (; g.length < l;) g.push("");
            if (o.push("| " + g.join(" | ") + " |"), p === a) {
                const d = [];
                for (let E = 0; E < l; E++) {
                    const A = h[E] || "";
                    A === "left" ? d.push(":---") : A === "center" ? d.push(":---:") : A === "right" ? d.push("---:") : d.push("---")
                }
                o.push("| " + d.join(" | ") + " |")
            }
        }
        return `

` + o.join(`
`) + `

`
    })
}

function O2(e, t = {}) {
    if (typeof document > "u") return qr.warn("No native DOM, falling back to regex conversion"), Ju(e);
    try {
        const r = new Yr({
            headingStyle: t.headingStyle || "atx",
            hr: t.hr || "---",
            bulletListMarker: t.bulletListMarker || "-",
            codeBlockStyle: t.codeBlockStyle || "fenced",
            fence: t.fence || "```",
            emDelimiter: t.emDelimiter || "*",
            strongDelimiter: t.strongDelimiter || "**",
            linkStyle: t.linkStyle || "inlined",
            linkReferenceStyle: t.linkReferenceStyle || "full"
        });
        Qc(r);
        const u = document.createElement("div");
        return u.innerHTML = e, u.querySelectorAll('ul.code-snippet__line-index, ul[class*="code-snippet__line-index"]').forEach(n => n.remove()), r.turndown(u)
    } catch (r) {
        return qr.error("Native DOM conversion failed:", r), Ju(e)
    }
}

function L2(e) {
    return xe.parse(e, {async: !1})
}

var Nr;

function Ba(e) {
    return Nr = Nr || document.createElement("textarea"), Nr.innerHTML = "&" + e + ";", Nr.value
}

var Gc = Object.prototype.hasOwnProperty;

function Wc(e, t) {
    return e ? Gc.call(e, t) : !1
}

function Ra(e) {
    var t = [].slice.call(arguments, 1);
    return t.forEach(function (r) {
        if (r) {
            if (typeof r != "object") throw new TypeError(r + "must be object");
            Object.keys(r).forEach(function (u) {
                e[u] = r[u]
            })
        }
    }), e
}

var Kc = /\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;

function or(e) {
    return e.indexOf("\\") < 0 ? e : e.replace(Kc, "$1")
}

function Oa(e) {
    return !(e >= 55296 && e <= 57343 || e >= 64976 && e <= 65007 || (e & 65535) === 65535 || (e & 65535) === 65534 || e >= 0 && e <= 8 || e === 11 || e >= 14 && e <= 31 || e >= 127 && e <= 159 || e > 1114111)
}

function Vu(e) {
    if (e > 65535) {
        e -= 65536;
        var t = 55296 + (e >> 10), r = 56320 + (e & 1023);
        return String.fromCharCode(t, r)
    }
    return String.fromCharCode(e)
}

var qc = /&([a-z#][a-z0-9]{1,31});/gi, Zc = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;

function zc(e, t) {
    var r = 0, u = Ba(t);
    return t !== u ? u : t.charCodeAt(0) === 35 && Zc.test(t) && (r = t[1].toLowerCase() === "x" ? parseInt(t.slice(2), 16) : parseInt(t.slice(1), 10), Oa(r)) ? Vu(r) : e
}

function kt(e) {
    return e.indexOf("&") < 0 ? e : e.replace(qc, zc)
}

var Jc = /[&<>"]/, Vc = /[&<>"]/g, jc = {"&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;"};

function Xc(e) {
    return jc[e]
}

function Ke(e) {
    return Jc.test(e) ? e.replace(Vc, Xc) : e
}

var oe = {};
oe.blockquote_open = function () {
    return `<blockquote>
`
};
oe.blockquote_close = function (e, t) {
    return "</blockquote>" + wt(e, t)
};
oe.code = function (e, t) {
    return e[t].block ? "<pre><code>" + Ke(e[t].content) + "</code></pre>" + wt(e, t) : "<code>" + Ke(e[t].content) + "</code>"
};
oe.fence = function (e, t, r, u, n) {
    var i = e[t], a = "", s = r.langPrefix, o = "", l, h, p;
    if (i.params) {
        if (l = i.params.split(/\s+/g), h = l.join(" "), Wc(n.rules.fence_custom, l[0])) return n.rules.fence_custom[l[0]](e, t, r, u, n);
        o = Ke(kt(or(h))), a = ' class="' + s + o + '"'
    }
    return r.highlight ? p = r.highlight.apply(r.highlight, [i.content].concat(l)) || Ke(i.content) : p = Ke(i.content), "<pre><code" + a + ">" + p + "</code></pre>" + wt(e, t)
};
oe.fence_custom = {};
oe.heading_open = function (e, t) {
    return "<h" + e[t].hLevel + ">"
};
oe.heading_close = function (e, t) {
    return "</h" + e[t].hLevel + `>
`
};
oe.hr = function (e, t, r) {
    return (r.xhtmlOut ? "<hr />" : "<hr>") + wt(e, t)
};
oe.bullet_list_open = function () {
    return `<ul>
`
};
oe.bullet_list_close = function (e, t) {
    return "</ul>" + wt(e, t)
};
oe.list_item_open = function () {
    return "<li>"
};
oe.list_item_close = function () {
    return `</li>
`
};
oe.ordered_list_open = function (e, t) {
    var r = e[t], u = r.order > 1 ? ' start="' + r.order + '"' : "";
    return "<ol" + u + `>
`
};
oe.ordered_list_close = function (e, t) {
    return "</ol>" + wt(e, t)
};
oe.paragraph_open = function (e, t) {
    return e[t].tight ? "" : "<p>"
};
oe.paragraph_close = function (e, t) {
    var r = !(e[t].tight && t && e[t - 1].type === "inline" && !e[t - 1].content);
    return (e[t].tight ? "" : "</p>") + (r ? wt(e, t) : "")
};
oe.link_open = function (e, t, r) {
    var u = e[t].title ? ' title="' + Ke(kt(e[t].title)) + '"' : "",
        n = r.linkTarget ? ' target="' + r.linkTarget + '"' : "";
    return '<a href="' + Ke(e[t].href) + '"' + u + n + ">"
};
oe.link_close = function () {
    return "</a>"
};
oe.image = function (e, t, r) {
    var u = ' src="' + Ke(e[t].src) + '"', n = e[t].title ? ' title="' + Ke(kt(e[t].title)) + '"' : "",
        i = ' alt="' + (e[t].alt ? Ke(kt(or(e[t].alt))) : "") + '"', a = r.xhtmlOut ? " /" : "";
    return "<img" + u + i + n + a + ">"
};
oe.table_open = function () {
    return `<table>
`
};
oe.table_close = function () {
    return `</table>
`
};
oe.thead_open = function () {
    return `<thead>
`
};
oe.thead_close = function () {
    return `</thead>
`
};
oe.tbody_open = function () {
    return `<tbody>
`
};
oe.tbody_close = function () {
    return `</tbody>
`
};
oe.tr_open = function () {
    return "<tr>"
};
oe.tr_close = function () {
    return `</tr>
`
};
oe.th_open = function (e, t) {
    var r = e[t];
    return "<th" + (r.align ? ' style="text-align:' + r.align + '"' : "") + ">"
};
oe.th_close = function () {
    return "</th>"
};
oe.td_open = function (e, t) {
    var r = e[t];
    return "<td" + (r.align ? ' style="text-align:' + r.align + '"' : "") + ">"
};
oe.td_close = function () {
    return "</td>"
};
oe.strong_open = function () {
    return "<strong>"
};
oe.strong_close = function () {
    return "</strong>"
};
oe.em_open = function () {
    return "<em>"
};
oe.em_close = function () {
    return "</em>"
};
oe.del_open = function () {
    return "<del>"
};
oe.del_close = function () {
    return "</del>"
};
oe.ins_open = function () {
    return "<ins>"
};
oe.ins_close = function () {
    return "</ins>"
};
oe.mark_open = function () {
    return "<mark>"
};
oe.mark_close = function () {
    return "</mark>"
};
oe.sub = function (e, t) {
    return "<sub>" + Ke(e[t].content) + "</sub>"
};
oe.sup = function (e, t) {
    return "<sup>" + Ke(e[t].content) + "</sup>"
};
oe.hardbreak = function (e, t, r) {
    return r.xhtmlOut ? `<br />
` : `<br>
`
};
oe.softbreak = function (e, t, r) {
    return r.breaks ? r.xhtmlOut ? `<br />
` : `<br>
` : `
`
};
oe.text = function (e, t) {
    return Ke(e[t].content)
};
oe.htmlblock = function (e, t) {
    return e[t].content
};
oe.htmltag = function (e, t) {
    return e[t].content
};
oe.abbr_open = function (e, t) {
    return '<abbr title="' + Ke(kt(e[t].title)) + '">'
};
oe.abbr_close = function () {
    return "</abbr>"
};
oe.footnote_ref = function (e, t) {
    var r = Number(e[t].id + 1).toString(), u = "fnref" + r;
    return e[t].subId > 0 && (u += ":" + e[t].subId), '<sup class="footnote-ref"><a href="#fn' + r + '" id="' + u + '">[' + r + "]</a></sup>"
};
oe.footnote_block_open = function (e, t, r) {
    var u = r.xhtmlOut ? `<hr class="footnotes-sep" />
` : `<hr class="footnotes-sep">
`;
    return u + `<section class="footnotes">
<ol class="footnotes-list">
`
};
oe.footnote_block_close = function () {
    return `</ol>
</section>
`
};
oe.footnote_open = function (e, t) {
    var r = Number(e[t].id + 1).toString();
    return '<li id="fn' + r + '"  class="footnote-item">'
};
oe.footnote_close = function () {
    return `</li>
`
};
oe.footnote_anchor = function (e, t) {
    var r = Number(e[t].id + 1).toString(), u = "fnref" + r;
    return e[t].subId > 0 && (u += ":" + e[t].subId), ' <a href="#' + u + '" class="footnote-backref">↩</a>'
};
oe.dl_open = function () {
    return `<dl>
`
};
oe.dt_open = function () {
    return "<dt>"
};
oe.dd_open = function () {
    return "<dd>"
};
oe.dl_close = function () {
    return `</dl>
`
};
oe.dt_close = function () {
    return `</dt>
`
};
oe.dd_close = function () {
    return `</dd>
`
};

function La(e, t) {
    return ++t >= e.length - 2 ? t : e[t].type === "paragraph_open" && e[t].tight && e[t + 1].type === "inline" && e[t + 1].content.length === 0 && e[t + 2].type === "paragraph_close" && e[t + 2].tight ? La(e, t + 2) : t
}

var wt = oe.getBreak = function (t, r) {
    return r = La(t, r), r < t.length && t[r].type === "list_item_close" ? "" : `
`
};

function Sn() {
    this.rules = Ra({}, oe), this.getBreak = oe.getBreak
}

Sn.prototype.renderInline = function (e, t, r) {
    for (var u = this.rules, n = e.length, i = 0, a = ""; n--;) a += u[e[i].type](e, i++, t, r, this);
    return a
};
Sn.prototype.render = function (e, t, r) {
    for (var u = this.rules, n = e.length, i = -1, a = ""; ++i < n;) e[i].type === "inline" ? a += this.renderInline(e[i].children, t, r) : a += u[e[i].type](e, i, t, r, this);
    return a
};

function ze() {
    this.__rules__ = [], this.__cache__ = null
}

ze.prototype.__find__ = function (e) {
    for (var t = this.__rules__.length, r = -1; t--;) if (this.__rules__[++r].name === e) return r;
    return -1
};
ze.prototype.__compile__ = function () {
    var e = this, t = [""];
    e.__rules__.forEach(function (r) {
        r.enabled && r.alt.forEach(function (u) {
            t.indexOf(u) < 0 && t.push(u)
        })
    }), e.__cache__ = {}, t.forEach(function (r) {
        e.__cache__[r] = [], e.__rules__.forEach(function (u) {
            u.enabled && (r && u.alt.indexOf(r) < 0 || e.__cache__[r].push(u.fn))
        })
    })
};
ze.prototype.at = function (e, t, r) {
    var u = this.__find__(e), n = r || {};
    if (u === -1) throw new Error("Parser rule not found: " + e);
    this.__rules__[u].fn = t, this.__rules__[u].alt = n.alt || [], this.__cache__ = null
};
ze.prototype.before = function (e, t, r, u) {
    var n = this.__find__(e), i = u || {};
    if (n === -1) throw new Error("Parser rule not found: " + e);
    this.__rules__.splice(n, 0, {name: t, enabled: !0, fn: r, alt: i.alt || []}), this.__cache__ = null
};
ze.prototype.after = function (e, t, r, u) {
    var n = this.__find__(e), i = u || {};
    if (n === -1) throw new Error("Parser rule not found: " + e);
    this.__rules__.splice(n + 1, 0, {name: t, enabled: !0, fn: r, alt: i.alt || []}), this.__cache__ = null
};
ze.prototype.push = function (e, t, r) {
    var u = r || {};
    this.__rules__.push({name: e, enabled: !0, fn: t, alt: u.alt || []}), this.__cache__ = null
};
ze.prototype.enable = function (e, t) {
    e = Array.isArray(e) ? e : [e], t && this.__rules__.forEach(function (r) {
        r.enabled = !1
    }), e.forEach(function (r) {
        var u = this.__find__(r);
        if (u < 0) throw new Error("Rules manager: invalid rule name " + r);
        this.__rules__[u].enabled = !0
    }, this), this.__cache__ = null
};
ze.prototype.disable = function (e) {
    e = Array.isArray(e) ? e : [e], e.forEach(function (t) {
        var r = this.__find__(t);
        if (r < 0) throw new Error("Rules manager: invalid rule name " + t);
        this.__rules__[r].enabled = !1
    }, this), this.__cache__ = null
};
ze.prototype.getRules = function (e) {
    return this.__cache__ === null && this.__compile__(), this.__cache__[e] || []
};

function $c(e) {
    e.inlineMode ? e.tokens.push({
        type: "inline",
        content: e.src.replace(/\n/g, " ").trim(),
        level: 0,
        lines: [0, 1],
        children: []
    }) : e.block.parse(e.src, e.options, e.env, e.tokens)
}

function Dt(e, t, r, u, n) {
    this.src = e, this.env = u, this.options = r, this.parser = t, this.tokens = n, this.pos = 0, this.posMax = this.src.length, this.level = 0, this.pending = "", this.pendingLevel = 0, this.cache = [], this.isInLabel = !1, this.linkLevel = 0, this.linkContent = "", this.labelUnmatchedScopes = 0
}

Dt.prototype.pushPending = function () {
    this.tokens.push({type: "text", content: this.pending, level: this.pendingLevel}), this.pending = ""
};
Dt.prototype.push = function (e) {
    this.pending && this.pushPending(), this.tokens.push(e), this.pendingLevel = this.level
};
Dt.prototype.cacheSet = function (e, t) {
    for (var r = this.cache.length; r <= e; r++) this.cache.push(0);
    this.cache[e] = t
};
Dt.prototype.cacheGet = function (e) {
    return e < this.cache.length ? this.cache[e] : 0
};

function cr(e, t) {
    var r, u, n, i = -1, a = e.posMax, s = e.pos, o = e.isInLabel;
    if (e.isInLabel) return -1;
    if (e.labelUnmatchedScopes) return e.labelUnmatchedScopes--, -1;
    for (e.pos = t + 1, e.isInLabel = !0, r = 1; e.pos < a;) {
        if (n = e.src.charCodeAt(e.pos), n === 91) r++; else if (n === 93 && (r--, r === 0)) {
            u = !0;
            break
        }
        e.parser.skipToken(e)
    }
    return u ? (i = e.pos, e.labelUnmatchedScopes = 0) : e.labelUnmatchedScopes = r - 1, e.pos = s, e.isInLabel = o, i
}

function e0(e, t, r, u) {
    var n, i, a, s, o, l;
    if (e.charCodeAt(0) !== 42 || e.charCodeAt(1) !== 91 || e.indexOf("]:") === -1 || (n = new Dt(e, t, r, u, []), i = cr(n, 1), i < 0 || e.charCodeAt(i + 1) !== 58)) return -1;
    for (s = n.posMax, a = i + 2; a < s && n.src.charCodeAt(a) !== 10; a++) ;
    return o = e.slice(2, i), l = e.slice(i + 2, a).trim(), l.length === 0 ? -1 : (u.abbreviations || (u.abbreviations = {}), typeof u.abbreviations[":" + o] > "u" && (u.abbreviations[":" + o] = l), a)
}

function t0(e) {
    var t = e.tokens, r, u, n, i;
    if (!e.inlineMode) {
        for (r = 1, u = t.length - 1; r < u; r++) if (t[r - 1].type === "paragraph_open" && t[r].type === "inline" && t[r + 1].type === "paragraph_close") {
            for (n = t[r].content; n.length && (i = e0(n, e.inline, e.options, e.env), !(i < 0));) n = n.slice(i).trim();
            t[r].content = n, n.length || (t[r - 1].tight = !0, t[r + 1].tight = !0)
        }
    }
}

function ju(e) {
    var t = kt(e);
    try {
        t = decodeURI(t)
    } catch {
    }
    return encodeURI(t)
}

function Fa(e, t) {
    var r, u, n, i = t, a = e.posMax;
    if (e.src.charCodeAt(t) === 60) {
        for (t++; t < a;) {
            if (r = e.src.charCodeAt(t), r === 10) return !1;
            if (r === 62) return n = ju(or(e.src.slice(i + 1, t))), e.parser.validateLink(n) ? (e.pos = t + 1, e.linkContent = n, !0) : !1;
            if (r === 92 && t + 1 < a) {
                t += 2;
                continue
            }
            t++
        }
        return !1
    }
    for (u = 0; t < a && (r = e.src.charCodeAt(t), !(r === 32 || r < 32 || r === 127));) {
        if (r === 92 && t + 1 < a) {
            t += 2;
            continue
        }
        if (r === 40 && (u++, u > 1) || r === 41 && (u--, u < 0)) break;
        t++
    }
    return i === t || (n = or(e.src.slice(i, t)), !e.parser.validateLink(n)) ? !1 : (e.linkContent = n, e.pos = t, !0)
}

function Ma(e, t) {
    var r, u = t, n = e.posMax, i = e.src.charCodeAt(t);
    if (i !== 34 && i !== 39 && i !== 40) return !1;
    for (t++, i === 40 && (i = 41); t < n;) {
        if (r = e.src.charCodeAt(t), r === i) return e.pos = t + 1, e.linkContent = or(e.src.slice(u + 1, t)), !0;
        if (r === 92 && t + 1 < n) {
            t += 2;
            continue
        }
        t++
    }
    return !1
}

function Pa(e) {
    return e.trim().replace(/\s+/g, " ").toUpperCase()
}

function r0(e, t, r, u) {
    var n, i, a, s, o, l, h, p, g;
    if (e.charCodeAt(0) !== 91 || e.indexOf("]:") === -1 || (n = new Dt(e, t, r, u, []), i = cr(n, 0), i < 0 || e.charCodeAt(i + 1) !== 58)) return -1;
    for (s = n.posMax, a = i + 2; a < s && (o = n.src.charCodeAt(a), !(o !== 32 && o !== 10)); a++) ;
    if (!Fa(n, a)) return -1;
    for (h = n.linkContent, a = n.pos, l = a, a = a + 1; a < s && (o = n.src.charCodeAt(a), !(o !== 32 && o !== 10)); a++) ;
    for (a < s && l !== a && Ma(n, a) ? (p = n.linkContent, a = n.pos) : (p = "", a = l); a < s && n.src.charCodeAt(a) === 32;) a++;
    return a < s && n.src.charCodeAt(a) !== 10 ? -1 : (g = Pa(e.slice(1, i)), typeof u.references[g] > "u" && (u.references[g] = {
        title: p,
        href: h
    }), a)
}

function u0(e) {
    var t = e.tokens, r, u, n, i;
    if (e.env.references = e.env.references || {}, !e.inlineMode) {
        for (r = 1, u = t.length - 1; r < u; r++) if (t[r].type === "inline" && t[r - 1].type === "paragraph_open" && t[r + 1].type === "paragraph_close") {
            for (n = t[r].content; n.length && (i = r0(n, e.inline, e.options, e.env), !(i < 0));) n = n.slice(i).trim();
            t[r].content = n, n.length || (t[r - 1].tight = !0, t[r + 1].tight = !0)
        }
    }
}

function n0(e) {
    var t = e.tokens, r, u, n;
    for (u = 0, n = t.length; u < n; u++) r = t[u], r.type === "inline" && e.inline.parse(r.content, e.options, e.env, r.children)
}

function i0(e) {
    var t, r, u, n, i, a, s, o, l, h = 0, p = !1, g = {};
    if (e.env.footnotes && (e.tokens = e.tokens.filter(function (d) {
        return d.type === "footnote_reference_open" ? (p = !0, o = [], l = d.label, !1) : d.type === "footnote_reference_close" ? (p = !1, g[":" + l] = o, !1) : (p && o.push(d), !p)
    }), !!e.env.footnotes.list)) {
        for (a = e.env.footnotes.list, e.tokens.push({
            type: "footnote_block_open",
            level: h++
        }), t = 0, r = a.length; t < r; t++) {
            for (e.tokens.push({
                type: "footnote_open",
                id: t,
                level: h++
            }), a[t].tokens ? (s = [], s.push({type: "paragraph_open", tight: !1, level: h++}), s.push({
                type: "inline",
                content: "",
                level: h,
                children: a[t].tokens
            }), s.push({
                type: "paragraph_close",
                tight: !1,
                level: --h
            })) : a[t].label && (s = g[":" + a[t].label]), e.tokens = e.tokens.concat(s), e.tokens[e.tokens.length - 1].type === "paragraph_close" ? i = e.tokens.pop() : i = null, n = a[t].count > 0 ? a[t].count : 1, u = 0; u < n; u++) e.tokens.push({
                type: "footnote_anchor",
                id: t,
                subId: u,
                level: h
            });
            i && e.tokens.push(i), e.tokens.push({type: "footnote_close", level: --h})
        }
        e.tokens.push({type: "footnote_block_close", level: --h})
    }
}

var mi = ` 
()[]'".,!?-`;

function Nu(e) {
    return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1")
}

function a0(e) {
    var t, r, u, n, i, a, s, o, l, h, p, g, d = e.tokens;
    if (e.env.abbreviations) {
        for (e.env.abbrRegExp || (g = "(^|[" + mi.split("").map(Nu).join("") + "])(" + Object.keys(e.env.abbreviations).map(function (E) {
            return E.substr(1)
        }).sort(function (E, A) {
            return A.length - E.length
        }).map(Nu).join("|") + ")($|[" + mi.split("").map(Nu).join("") + "])", e.env.abbrRegExp = new RegExp(g, "g")), h = e.env.abbrRegExp, r = 0, u = d.length; r < u; r++) if (d[r].type === "inline") {
            for (n = d[r].children, t = n.length - 1; t >= 0; t--) if (i = n[t], i.type === "text") {
                for (o = 0, a = i.content, h.lastIndex = 0, l = i.level, s = []; p = h.exec(a);) h.lastIndex > o && s.push({
                    type: "text",
                    content: a.slice(o, p.index + p[1].length),
                    level: l
                }), s.push({
                    type: "abbr_open",
                    title: e.env.abbreviations[":" + p[2]],
                    level: l++
                }), s.push({type: "text", content: p[2], level: l}), s.push({
                    type: "abbr_close",
                    level: --l
                }), o = h.lastIndex - p[3].length;
                s.length && (o < a.length && s.push({
                    type: "text",
                    content: a.slice(o),
                    level: l
                }), d[r].children = n = [].concat(n.slice(0, t), s, n.slice(t + 1)))
            }
        }
    }
}

var s0 = /\+-|\.\.|\?\?\?\?|!!!!|,,|--/, o0 = /\((c|tm|r|p)\)/ig, c0 = {c: "©", r: "®", p: "§", tm: "™"};

function l0(e) {
    return e.indexOf("(") < 0 ? e : e.replace(o0, function (t, r) {
        return c0[r.toLowerCase()]
    })
}

function f0(e) {
    var t, r, u, n, i;
    if (e.options.typographer) {
        for (i = e.tokens.length - 1; i >= 0; i--) if (e.tokens[i].type === "inline") for (n = e.tokens[i].children, t = n.length - 1; t >= 0; t--) r = n[t], r.type === "text" && (u = r.content, u = l0(u), s0.test(u) && (u = u.replace(/\+-/g, "±").replace(/\.{2,}/g, "…").replace(/([?!])…/g, "$1..").replace(/([?!]){4,}/g, "$1$1$1").replace(/,{2,}/g, ",").replace(/(^|[^-])---([^-]|$)/mg, "$1—$2").replace(/(^|\s)--(\s|$)/mg, "$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/mg, "$1–$2")), r.content = u)
    }
}

var d0 = /['"]/, Ei = /['"]/g, h0 = /[-\s()\[\]]/, Ti = "’";

function _i(e, t) {
    return t < 0 || t >= e.length ? !1 : !h0.test(e[t])
}

function Ft(e, t, r) {
    return e.substr(0, t) + r + e.substr(t + 1)
}

function A0(e) {
    var t, r, u, n, i, a, s, o, l, h, p, g, d, E, A, x, _;
    if (e.options.typographer) {
        for (_ = [], A = e.tokens.length - 1; A >= 0; A--) if (e.tokens[A].type === "inline") {
            for (x = e.tokens[A].children, _.length = 0, t = 0; t < x.length; t++) if (r = x[t], !(r.type !== "text" || d0.test(r.text))) {
                for (s = x[t].level, d = _.length - 1; d >= 0 && !(_[d].level <= s); d--) ;
                _.length = d + 1, u = r.content, i = 0, a = u.length;
                e:for (; i < a && (Ei.lastIndex = i, n = Ei.exec(u), !!n);) {
                    if (o = !_i(u, n.index - 1), i = n.index + 1, E = n[0] === "'", l = !_i(u, i), !l && !o) {
                        E && (r.content = Ft(r.content, n.index, Ti));
                        continue
                    }
                    if (p = !l, g = !o, g) {
                        for (d = _.length - 1; d >= 0 && (h = _[d], !(_[d].level < s)); d--) if (h.single === E && _[d].level === s) {
                            h = _[d], E ? (x[h.token].content = Ft(x[h.token].content, h.pos, e.options.quotes[2]), r.content = Ft(r.content, n.index, e.options.quotes[3])) : (x[h.token].content = Ft(x[h.token].content, h.pos, e.options.quotes[0]), r.content = Ft(r.content, n.index, e.options.quotes[1])), _.length = d;
                            continue e
                        }
                    }
                    p ? _.push({
                        token: t,
                        pos: n.index,
                        single: E,
                        level: s
                    }) : g && E && (r.content = Ft(r.content, n.index, Ti))
                }
            }
        }
    }
}

var wu = [["block", $c], ["abbr", t0], ["references", u0], ["inline", n0], ["footnote_tail", i0], ["abbr2", a0], ["replacements", f0], ["smartquotes", A0]];

function Ua() {
    this.options = {}, this.ruler = new ze;
    for (var e = 0; e < wu.length; e++) this.ruler.push(wu[e][0], wu[e][1])
}

Ua.prototype.process = function (e) {
    var t, r, u;
    for (u = this.ruler.getRules(""), t = 0, r = u.length; t < r; t++) u[t](e)
};

function Bt(e, t, r, u, n) {
    var i, a, s, o, l, h, p;
    for (this.src = e, this.parser = t, this.options = r, this.env = u, this.tokens = n, this.bMarks = [], this.eMarks = [], this.tShift = [], this.blkIndent = 0, this.line = 0, this.lineMax = 0, this.tight = !1, this.parentType = "root", this.ddIndent = -1, this.level = 0, this.result = "", a = this.src, h = 0, p = !1, s = o = h = 0, l = a.length; o < l; o++) {
        if (i = a.charCodeAt(o), !p) if (i === 32) {
            h++;
            continue
        } else p = !0;
        (i === 10 || o === l - 1) && (i !== 10 && o++, this.bMarks.push(s), this.eMarks.push(o), this.tShift.push(h), p = !1, h = 0, s = o + 1)
    }
    this.bMarks.push(a.length), this.eMarks.push(a.length), this.tShift.push(0), this.lineMax = this.bMarks.length - 1
}

Bt.prototype.isEmpty = function (t) {
    return this.bMarks[t] + this.tShift[t] >= this.eMarks[t]
};
Bt.prototype.skipEmptyLines = function (t) {
    for (var r = this.lineMax; t < r && !(this.bMarks[t] + this.tShift[t] < this.eMarks[t]); t++) ;
    return t
};
Bt.prototype.skipSpaces = function (t) {
    for (var r = this.src.length; t < r && this.src.charCodeAt(t) === 32; t++) ;
    return t
};
Bt.prototype.skipChars = function (t, r) {
    for (var u = this.src.length; t < u && this.src.charCodeAt(t) === r; t++) ;
    return t
};
Bt.prototype.skipCharsBack = function (t, r, u) {
    if (t <= u) return t;
    for (; t > u;) if (r !== this.src.charCodeAt(--t)) return t + 1;
    return t
};
Bt.prototype.getLines = function (t, r, u, n) {
    var i, a, s, o, l, h = t;
    if (t >= r) return "";
    if (h + 1 === r) return a = this.bMarks[h] + Math.min(this.tShift[h], u), s = n ? this.eMarks[h] + 1 : this.eMarks[h], this.src.slice(a, s);
    for (o = new Array(r - t), i = 0; h < r; h++, i++) l = this.tShift[h], l > u && (l = u), l < 0 && (l = 0), a = this.bMarks[h] + l, h + 1 < r || n ? s = this.eMarks[h] + 1 : s = this.eMarks[h], o[i] = this.src.slice(a, s);
    return o.join("")
};

function p0(e, t, r) {
    var u, n;
    if (e.tShift[t] - e.blkIndent < 4) return !1;
    for (n = u = t + 1; u < r;) {
        if (e.isEmpty(u)) {
            u++;
            continue
        }
        if (e.tShift[u] - e.blkIndent >= 4) {
            u++, n = u;
            continue
        }
        break
    }
    return e.line = u, e.tokens.push({
        type: "code",
        content: e.getLines(t, n, 4 + e.blkIndent, !0),
        block: !0,
        lines: [t, e.line],
        level: e.level
    }), !0
}

function b0(e, t, r, u) {
    var n, i, a, s, o, l = !1, h = e.bMarks[t] + e.tShift[t], p = e.eMarks[t];
    if (h + 3 > p || (n = e.src.charCodeAt(h), n !== 126 && n !== 96) || (o = h, h = e.skipChars(h, n), i = h - o, i < 3) || (a = e.src.slice(h, p).trim(), a.indexOf("`") >= 0)) return !1;
    if (u) return !0;
    for (s = t; s++, !(s >= r || (h = o = e.bMarks[s] + e.tShift[s], p = e.eMarks[s], h < p && e.tShift[s] < e.blkIndent));) if (e.src.charCodeAt(h) === n && !(e.tShift[s] - e.blkIndent >= 4) && (h = e.skipChars(h, n), !(h - o < i) && (h = e.skipSpaces(h), !(h < p)))) {
        l = !0;
        break
    }
    return i = e.tShift[t], e.line = s + (l ? 1 : 0), e.tokens.push({
        type: "fence",
        params: a,
        content: e.getLines(t + 1, s, i, !0),
        lines: [t, e.line],
        level: e.level
    }), !0
}

function g0(e, t, r, u) {
    var n, i, a, s, o, l, h, p, g, d, E, A = e.bMarks[t] + e.tShift[t], x = e.eMarks[t];
    if (A > x || e.src.charCodeAt(A++) !== 62 || e.level >= e.options.maxNesting) return !1;
    if (u) return !0;
    for (e.src.charCodeAt(A) === 32 && A++, o = e.blkIndent, e.blkIndent = 0, s = [e.bMarks[t]], e.bMarks[t] = A, A = A < x ? e.skipSpaces(A) : A, i = A >= x, a = [e.tShift[t]], e.tShift[t] = A - e.bMarks[t], p = e.parser.ruler.getRules("blockquote"), n = t + 1; n < r && (A = e.bMarks[n] + e.tShift[n], x = e.eMarks[n], !(A >= x)); n++) {
        if (e.src.charCodeAt(A++) === 62) {
            e.src.charCodeAt(A) === 32 && A++, s.push(e.bMarks[n]), e.bMarks[n] = A, A = A < x ? e.skipSpaces(A) : A, i = A >= x, a.push(e.tShift[n]), e.tShift[n] = A - e.bMarks[n];
            continue
        }
        if (i) break;
        for (E = !1, g = 0, d = p.length; g < d; g++) if (p[g](e, n, r, !0)) {
            E = !0;
            break
        }
        if (E) break;
        s.push(e.bMarks[n]), a.push(e.tShift[n]), e.tShift[n] = -1337
    }
    for (l = e.parentType, e.parentType = "blockquote", e.tokens.push({
        type: "blockquote_open",
        lines: h = [t, 0],
        level: e.level++
    }), e.parser.tokenize(e, t, n), e.tokens.push({
        type: "blockquote_close",
        level: --e.level
    }), e.parentType = l, h[1] = e.line, g = 0; g < a.length; g++) e.bMarks[g + t] = s[g], e.tShift[g + t] = a[g];
    return e.blkIndent = o, !0
}

function m0(e, t, r, u) {
    var n, i, a, s = e.bMarks[t], o = e.eMarks[t];
    if (s += e.tShift[t], s > o || (n = e.src.charCodeAt(s++), n !== 42 && n !== 45 && n !== 95)) return !1;
    for (i = 1; s < o;) {
        if (a = e.src.charCodeAt(s++), a !== n && a !== 32) return !1;
        a === n && i++
    }
    return i < 3 ? !1 : (u || (e.line = t + 1, e.tokens.push({type: "hr", lines: [t, e.line], level: e.level})), !0)
}

function xi(e, t) {
    var r, u, n;
    return u = e.bMarks[t] + e.tShift[t], n = e.eMarks[t], u >= n || (r = e.src.charCodeAt(u++), r !== 42 && r !== 45 && r !== 43) || u < n && e.src.charCodeAt(u) !== 32 ? -1 : u
}

function Ci(e, t) {
    var r, u = e.bMarks[t] + e.tShift[t], n = e.eMarks[t];
    if (u + 1 >= n || (r = e.src.charCodeAt(u++), r < 48 || r > 57)) return -1;
    for (; ;) {
        if (u >= n) return -1;
        if (r = e.src.charCodeAt(u++), !(r >= 48 && r <= 57)) {
            if (r === 41 || r === 46) break;
            return -1
        }
    }
    return u < n && e.src.charCodeAt(u) !== 32 ? -1 : u
}

function E0(e, t) {
    var r, u, n = e.level + 2;
    for (r = t + 2, u = e.tokens.length - 2; r < u; r++) e.tokens[r].level === n && e.tokens[r].type === "paragraph_open" && (e.tokens[r + 2].tight = !0, e.tokens[r].tight = !0, r += 2)
}

function T0(e, t, r, u) {
    var n, i, a, s, o, l, h, p, g, d, E, A, x, _, y, v, D, S, L = !0, M, z, B, P;
    if ((p = Ci(e, t)) >= 0) x = !0; else if ((p = xi(e, t)) >= 0) x = !1; else return !1;
    if (e.level >= e.options.maxNesting) return !1;
    if (A = e.src.charCodeAt(p - 1), u) return !0;
    for (y = e.tokens.length, x ? (h = e.bMarks[t] + e.tShift[t], E = Number(e.src.substr(h, p - h - 1)), e.tokens.push({
        type: "ordered_list_open",
        order: E,
        lines: D = [t, 0],
        level: e.level++
    })) : e.tokens.push({
        type: "bullet_list_open",
        lines: D = [t, 0],
        level: e.level++
    }), n = t, v = !1, M = e.parser.ruler.getRules("list"); n < r && (_ = e.skipSpaces(p), g = e.eMarks[n], _ >= g ? d = 1 : d = _ - p, d > 4 && (d = 1), d < 1 && (d = 1), i = p - e.bMarks[n] + d, e.tokens.push({
        type: "list_item_open",
        lines: S = [t, 0],
        level: e.level++
    }), s = e.blkIndent, o = e.tight, a = e.tShift[t], l = e.parentType, e.tShift[t] = _ - e.bMarks[t], e.blkIndent = i, e.tight = !0, e.parentType = "list", e.parser.tokenize(e, t, r, !0), (!e.tight || v) && (L = !1), v = e.line - t > 1 && e.isEmpty(e.line - 1), e.blkIndent = s, e.tShift[t] = a, e.tight = o, e.parentType = l, e.tokens.push({
        type: "list_item_close",
        level: --e.level
    }), n = t = e.line, S[1] = n, _ = e.bMarks[t], !(n >= r || e.isEmpty(n) || e.tShift[n] < e.blkIndent));) {
        for (P = !1, z = 0, B = M.length; z < B; z++) if (M[z](e, n, r, !0)) {
            P = !0;
            break
        }
        if (P) break;
        if (x) {
            if (p = Ci(e, n), p < 0) break
        } else if (p = xi(e, n), p < 0) break;
        if (A !== e.src.charCodeAt(p - 1)) break
    }
    return e.tokens.push({
        type: x ? "ordered_list_close" : "bullet_list_close",
        level: --e.level
    }), D[1] = n, e.line = n, L && E0(e, y), !0
}

function _0(e, t, r, u) {
    var n, i, a, s, o, l = e.bMarks[t] + e.tShift[t], h = e.eMarks[t];
    if (l + 4 > h || e.src.charCodeAt(l) !== 91 || e.src.charCodeAt(l + 1) !== 94 || e.level >= e.options.maxNesting) return !1;
    for (s = l + 2; s < h; s++) {
        if (e.src.charCodeAt(s) === 32) return !1;
        if (e.src.charCodeAt(s) === 93) break
    }
    return s === l + 2 || s + 1 >= h || e.src.charCodeAt(++s) !== 58 ? !1 : (u || (s++, e.env.footnotes || (e.env.footnotes = {}), e.env.footnotes.refs || (e.env.footnotes.refs = {}), o = e.src.slice(l + 2, s - 2), e.env.footnotes.refs[":" + o] = -1, e.tokens.push({
        type: "footnote_reference_open",
        label: o,
        level: e.level++
    }), n = e.bMarks[t], i = e.tShift[t], a = e.parentType, e.tShift[t] = e.skipSpaces(s) - s, e.bMarks[t] = s, e.blkIndent += 4, e.parentType = "footnote", e.tShift[t] < e.blkIndent && (e.tShift[t] += e.blkIndent, e.bMarks[t] -= e.blkIndent), e.parser.tokenize(e, t, r, !0), e.parentType = a, e.blkIndent -= 4, e.tShift[t] = i, e.bMarks[t] = n, e.tokens.push({
        type: "footnote_reference_close",
        level: --e.level
    })), !0)
}

function x0(e, t, r, u) {
    var n, i, a, s = e.bMarks[t] + e.tShift[t], o = e.eMarks[t];
    if (s >= o || (n = e.src.charCodeAt(s), n !== 35 || s >= o)) return !1;
    for (i = 1, n = e.src.charCodeAt(++s); n === 35 && s < o && i <= 6;) i++, n = e.src.charCodeAt(++s);
    return i > 6 || s < o && n !== 32 ? !1 : (u || (o = e.skipCharsBack(o, 32, s), a = e.skipCharsBack(o, 35, s), a > s && e.src.charCodeAt(a - 1) === 32 && (o = a), e.line = t + 1, e.tokens.push({
        type: "heading_open",
        hLevel: i,
        lines: [t, e.line],
        level: e.level
    }), s < o && e.tokens.push({
        type: "inline",
        content: e.src.slice(s, o).trim(),
        level: e.level + 1,
        lines: [t, e.line],
        children: []
    }), e.tokens.push({type: "heading_close", hLevel: i, level: e.level})), !0)
}

function C0(e, t, r) {
    var u, n, i, a = t + 1;
    return a >= r || e.tShift[a] < e.blkIndent || e.tShift[a] - e.blkIndent > 3 || (n = e.bMarks[a] + e.tShift[a], i = e.eMarks[a], n >= i) || (u = e.src.charCodeAt(n), u !== 45 && u !== 61) || (n = e.skipChars(n, u), n = e.skipSpaces(n), n < i) ? !1 : (n = e.bMarks[t] + e.tShift[t], e.line = a + 1, e.tokens.push({
        type: "heading_open",
        hLevel: u === 61 ? 1 : 2,
        lines: [t, e.line],
        level: e.level
    }), e.tokens.push({
        type: "inline",
        content: e.src.slice(n, e.eMarks[t]).trim(),
        level: e.level + 1,
        lines: [t, e.line - 1],
        children: []
    }), e.tokens.push({type: "heading_close", hLevel: u === 61 ? 1 : 2, level: e.level}), !0)
}

var Ha = {};
["article", "aside", "button", "blockquote", "body", "canvas", "caption", "col", "colgroup", "dd", "div", "dl", "dt", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "iframe", "li", "map", "object", "ol", "output", "p", "pre", "progress", "script", "section", "style", "table", "tbody", "td", "textarea", "tfoot", "th", "tr", "thead", "ul", "video"].forEach(function (e) {
    Ha[e] = !0
});
var I0 = /^<([a-zA-Z]{1,15})[\s\/>]/, y0 = /^<\/([a-zA-Z]{1,15})[\s>]/;

function k0(e) {
    var t = e | 32;
    return t >= 97 && t <= 122
}

function S0(e, t, r, u) {
    var n, i, a, s = e.bMarks[t], o = e.eMarks[t], l = e.tShift[t];
    if (s += l, !e.options.html || l > 3 || s + 2 >= o || e.src.charCodeAt(s) !== 60) return !1;
    if (n = e.src.charCodeAt(s + 1), n === 33 || n === 63) {
        if (u) return !0
    } else if (n === 47 || k0(n)) {
        if (n === 47) {
            if (i = e.src.slice(s, o).match(y0), !i) return !1
        } else if (i = e.src.slice(s, o).match(I0), !i) return !1;
        if (Ha[i[1].toLowerCase()] !== !0) return !1;
        if (u) return !0
    } else return !1;
    for (a = t + 1; a < e.lineMax && !e.isEmpty(a);) a++;
    return e.line = a, e.tokens.push({
        type: "htmlblock",
        level: e.level,
        lines: [t, e.line],
        content: e.getLines(t, a, 0, !0)
    }), !0
}

function Du(e, t) {
    var r = e.bMarks[t] + e.blkIndent, u = e.eMarks[t];
    return e.src.substr(r, u - r)
}

function v0(e, t, r, u) {
    var n, i, a, s, o, l, h, p, g, d, E;
    if (t + 2 > r || (o = t + 1, e.tShift[o] < e.blkIndent) || (a = e.bMarks[o] + e.tShift[o], a >= e.eMarks[o]) || (n = e.src.charCodeAt(a), n !== 124 && n !== 45 && n !== 58) || (i = Du(e, t + 1), !/^[-:| ]+$/.test(i)) || (l = i.split("|"), l <= 2)) return !1;
    for (p = [], s = 0; s < l.length; s++) {
        if (g = l[s].trim(), !g) {
            if (s === 0 || s === l.length - 1) continue;
            return !1
        }
        if (!/^:?-+:?$/.test(g)) return !1;
        g.charCodeAt(g.length - 1) === 58 ? p.push(g.charCodeAt(0) === 58 ? "center" : "right") : g.charCodeAt(0) === 58 ? p.push("left") : p.push("")
    }
    if (i = Du(e, t).trim(), i.indexOf("|") === -1 || (l = i.replace(/^\||\|$/g, "").split("|"), p.length !== l.length)) return !1;
    if (u) return !0;
    for (e.tokens.push({type: "table_open", lines: d = [t, 0], level: e.level++}), e.tokens.push({
        type: "thead_open",
        lines: [t, t + 1],
        level: e.level++
    }), e.tokens.push({
        type: "tr_open",
        lines: [t, t + 1],
        level: e.level++
    }), s = 0; s < l.length; s++) e.tokens.push({
        type: "th_open",
        align: p[s],
        lines: [t, t + 1],
        level: e.level++
    }), e.tokens.push({
        type: "inline",
        content: l[s].trim(),
        lines: [t, t + 1],
        level: e.level,
        children: []
    }), e.tokens.push({type: "th_close", level: --e.level});
    for (e.tokens.push({type: "tr_close", level: --e.level}), e.tokens.push({
        type: "thead_close",
        level: --e.level
    }), e.tokens.push({
        type: "tbody_open",
        lines: E = [t + 2, 0],
        level: e.level++
    }), o = t + 2; o < r && !(e.tShift[o] < e.blkIndent || (i = Du(e, o).trim(), i.indexOf("|") === -1)); o++) {
        for (l = i.replace(/^\||\|$/g, "").split("|"), e.tokens.push({
            type: "tr_open",
            level: e.level++
        }), s = 0; s < l.length; s++) e.tokens.push({
            type: "td_open",
            align: p[s],
            level: e.level++
        }), h = l[s].substring(l[s].charCodeAt(0) === 124 ? 1 : 0, l[s].charCodeAt(l[s].length - 1) === 124 ? l[s].length - 1 : l[s].length).trim(), e.tokens.push({
            type: "inline",
            content: h,
            level: e.level,
            children: []
        }), e.tokens.push({type: "td_close", level: --e.level});
        e.tokens.push({type: "tr_close", level: --e.level})
    }
    return e.tokens.push({type: "tbody_close", level: --e.level}), e.tokens.push({
        type: "table_close",
        level: --e.level
    }), d[1] = E[1] = o, e.line = o, !0
}

function wr(e, t) {
    var r, u, n = e.bMarks[t] + e.tShift[t], i = e.eMarks[t];
    return n >= i || (u = e.src.charCodeAt(n++), u !== 126 && u !== 58) || (r = e.skipSpaces(n), n === r) || r >= i ? -1 : r
}

function N0(e, t) {
    var r, u, n = e.level + 2;
    for (r = t + 2, u = e.tokens.length - 2; r < u; r++) e.tokens[r].level === n && e.tokens[r].type === "paragraph_open" && (e.tokens[r + 2].tight = !0, e.tokens[r].tight = !0, r += 2)
}

function w0(e, t, r, u) {
    var n, i, a, s, o, l, h, p, g, d, E, A, x, _;
    if (u) return e.ddIndent < 0 ? !1 : wr(e, t) >= 0;
    if (h = t + 1, e.isEmpty(h) && ++h > r || e.tShift[h] < e.blkIndent || (n = wr(e, h), n < 0) || e.level >= e.options.maxNesting) return !1;
    l = e.tokens.length, e.tokens.push({type: "dl_open", lines: o = [t, 0], level: e.level++}), a = t, i = h;
    e:for (; ;) {
        for (_ = !0, x = !1, e.tokens.push({
            type: "dt_open",
            lines: [a, a],
            level: e.level++
        }), e.tokens.push({
            type: "inline",
            content: e.getLines(a, a + 1, e.blkIndent, !1).trim(),
            level: e.level + 1,
            lines: [a, a],
            children: []
        }), e.tokens.push({type: "dt_close", level: --e.level}); ;) {
            if (e.tokens.push({
                type: "dd_open",
                lines: s = [h, 0],
                level: e.level++
            }), A = e.tight, g = e.ddIndent, p = e.blkIndent, E = e.tShift[i], d = e.parentType, e.blkIndent = e.ddIndent = e.tShift[i] + 2, e.tShift[i] = n - e.bMarks[i], e.tight = !0, e.parentType = "deflist", e.parser.tokenize(e, i, r, !0), (!e.tight || x) && (_ = !1), x = e.line - i > 1 && e.isEmpty(e.line - 1), e.tShift[i] = E, e.tight = A, e.parentType = d, e.blkIndent = p, e.ddIndent = g, e.tokens.push({
                type: "dd_close",
                level: --e.level
            }), s[1] = h = e.line, h >= r || e.tShift[h] < e.blkIndent) break e;
            if (n = wr(e, h), n < 0) break;
            i = h
        }
        if (h >= r || (a = h, e.isEmpty(a)) || e.tShift[a] < e.blkIndent || (i = a + 1, i >= r) || (e.isEmpty(i) && i++, i >= r) || e.tShift[i] < e.blkIndent || (n = wr(e, i), n < 0)) break
    }
    return e.tokens.push({type: "dl_close", level: --e.level}), o[1] = h, e.line = h, _ && N0(e, l), !0
}

function D0(e, t) {
    var r, u, n, i, a, s = t + 1, o;
    if (r = e.lineMax, s < r && !e.isEmpty(s)) {
        for (o = e.parser.ruler.getRules("paragraph"); s < r && !e.isEmpty(s); s++) if (!(e.tShift[s] - e.blkIndent > 3)) {
            for (n = !1, i = 0, a = o.length; i < a; i++) if (o[i](e, s, r, !0)) {
                n = !0;
                break
            }
            if (n) break
        }
    }
    return u = e.getLines(t, s, e.blkIndent, !1).trim(), e.line = s, u.length && (e.tokens.push({
        type: "paragraph_open",
        tight: !1,
        lines: [t, e.line],
        level: e.level
    }), e.tokens.push({
        type: "inline",
        content: u,
        level: e.level + 1,
        lines: [t, e.line],
        children: []
    }), e.tokens.push({type: "paragraph_close", tight: !1, level: e.level})), !0
}

var Dr = [["code", p0], ["fences", b0, ["paragraph", "blockquote", "list"]], ["blockquote", g0, ["paragraph", "blockquote", "list"]], ["hr", m0, ["paragraph", "blockquote", "list"]], ["list", T0, ["paragraph", "blockquote"]], ["footnote", _0, ["paragraph"]], ["heading", x0, ["paragraph", "blockquote"]], ["lheading", C0], ["htmlblock", S0, ["paragraph", "blockquote"]], ["table", v0, ["paragraph"]], ["deflist", w0, ["paragraph"]], ["paragraph", D0]];

function vn() {
    this.ruler = new ze;
    for (var e = 0; e < Dr.length; e++) this.ruler.push(Dr[e][0], Dr[e][1], {alt: (Dr[e][2] || []).slice()})
}

vn.prototype.tokenize = function (e, t, r) {
    for (var u = this.ruler.getRules(""), n = u.length, i = t, a = !1, s, o; i < r && (e.line = i = e.skipEmptyLines(i), !(i >= r || e.tShift[i] < e.blkIndent));) {
        for (o = 0; o < n && (s = u[o](e, i, r, !1), !s); o++) ;
        if (e.tight = !a, e.isEmpty(e.line - 1) && (a = !0), i = e.line, i < r && e.isEmpty(i)) {
            if (a = !0, i++, i < r && e.parentType === "list" && e.isEmpty(i)) break;
            e.line = i
        }
    }
};
var B0 = /[\n\t]/g, R0 = /\r[\n\u0085]|[\u2424\u2028\u0085]/g, O0 = /\u00a0/g;
vn.prototype.parse = function (e, t, r, u) {
    var n, i = 0, a = 0;
    if (!e) return [];
    e = e.replace(O0, " "), e = e.replace(R0, `
`), e.indexOf("	") >= 0 && (e = e.replace(B0, function (s, o) {
        var l;
        return e.charCodeAt(o) === 10 ? (i = o + 1, a = 0, s) : (l = "    ".slice((o - i - a) % 4), a = o - i + 1, l)
    })), n = new Bt(e, this, t, r, u), this.tokenize(n, n.line, n.lineMax)
};

function L0(e) {
    switch (e) {
        case 10:
        case 92:
        case 96:
        case 42:
        case 95:
        case 94:
        case 91:
        case 93:
        case 33:
        case 38:
        case 60:
        case 62:
        case 123:
        case 125:
        case 36:
        case 37:
        case 64:
        case 126:
        case 43:
        case 61:
        case 58:
            return !0;
        default:
            return !1
    }
}

function F0(e, t) {
    for (var r = e.pos; r < e.posMax && !L0(e.src.charCodeAt(r));) r++;
    return r === e.pos ? !1 : (t || (e.pending += e.src.slice(e.pos, r)), e.pos = r, !0)
}

function M0(e, t) {
    var r, u, n = e.pos;
    if (e.src.charCodeAt(n) !== 10) return !1;
    if (r = e.pending.length - 1, u = e.posMax, !t) if (r >= 0 && e.pending.charCodeAt(r) === 32) if (r >= 1 && e.pending.charCodeAt(r - 1) === 32) {
        for (var i = r - 2; i >= 0; i--) if (e.pending.charCodeAt(i) !== 32) {
            e.pending = e.pending.substring(0, i + 1);
            break
        }
        e.push({type: "hardbreak", level: e.level})
    } else e.pending = e.pending.slice(0, -1), e.push({
        type: "softbreak",
        level: e.level
    }); else e.push({type: "softbreak", level: e.level});
    for (n++; n < u && e.src.charCodeAt(n) === 32;) n++;
    return e.pos = n, !0
}

var Nn = [];
for (var Ii = 0; Ii < 256; Ii++) Nn.push(0);
"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function (e) {
    Nn[e.charCodeAt(0)] = 1
});

function P0(e, t) {
    var r, u = e.pos, n = e.posMax;
    if (e.src.charCodeAt(u) !== 92) return !1;
    if (u++, u < n) {
        if (r = e.src.charCodeAt(u), r < 256 && Nn[r] !== 0) return t || (e.pending += e.src[u]), e.pos += 2, !0;
        if (r === 10) {
            for (t || e.push({type: "hardbreak", level: e.level}), u++; u < n && e.src.charCodeAt(u) === 32;) u++;
            return e.pos = u, !0
        }
    }
    return t || (e.pending += "\\"), e.pos++, !0
}

function U0(e, t) {
    var r, u, n, i, a, s = e.pos, o = e.src.charCodeAt(s);
    if (o !== 96) return !1;
    for (r = s, s++, u = e.posMax; s < u && e.src.charCodeAt(s) === 96;) s++;
    for (n = e.src.slice(r, s), i = a = s; (i = e.src.indexOf("`", a)) !== -1;) {
        for (a = i + 1; a < u && e.src.charCodeAt(a) === 96;) a++;
        if (a - i === n.length) return t || e.push({
            type: "code",
            content: e.src.slice(s, i).replace(/[ \n]+/g, " ").trim(),
            block: !1,
            level: e.level
        }), e.pos = a, !0
    }
    return t || (e.pending += n), e.pos += n.length, !0
}

function H0(e, t) {
    var r, u, n, i = e.posMax, a = e.pos, s, o;
    if (e.src.charCodeAt(a) !== 126 || t || a + 4 >= i || e.src.charCodeAt(a + 1) !== 126 || e.level >= e.options.maxNesting || (s = a > 0 ? e.src.charCodeAt(a - 1) : -1, o = e.src.charCodeAt(a + 2), s === 126) || o === 126 || o === 32 || o === 10) return !1;
    for (u = a + 2; u < i && e.src.charCodeAt(u) === 126;) u++;
    if (u > a + 3) return e.pos += u - a, t || (e.pending += e.src.slice(a, u)), !0;
    for (e.pos = a + 2, n = 1; e.pos + 1 < i;) {
        if (e.src.charCodeAt(e.pos) === 126 && e.src.charCodeAt(e.pos + 1) === 126 && (s = e.src.charCodeAt(e.pos - 1), o = e.pos + 2 < i ? e.src.charCodeAt(e.pos + 2) : -1, o !== 126 && s !== 126 && (s !== 32 && s !== 10 ? n-- : o !== 32 && o !== 10 && n++, n <= 0))) {
            r = !0;
            break
        }
        e.parser.skipToken(e)
    }
    return r ? (e.posMax = e.pos, e.pos = a + 2, t || (e.push({
        type: "del_open",
        level: e.level++
    }), e.parser.tokenize(e), e.push({
        type: "del_close",
        level: --e.level
    })), e.pos = e.posMax + 2, e.posMax = i, !0) : (e.pos = a, !1)
}

function Q0(e, t) {
    var r, u, n, i = e.posMax, a = e.pos, s, o;
    if (e.src.charCodeAt(a) !== 43 || t || a + 4 >= i || e.src.charCodeAt(a + 1) !== 43 || e.level >= e.options.maxNesting || (s = a > 0 ? e.src.charCodeAt(a - 1) : -1, o = e.src.charCodeAt(a + 2), s === 43) || o === 43 || o === 32 || o === 10) return !1;
    for (u = a + 2; u < i && e.src.charCodeAt(u) === 43;) u++;
    if (u !== a + 2) return e.pos += u - a, t || (e.pending += e.src.slice(a, u)), !0;
    for (e.pos = a + 2, n = 1; e.pos + 1 < i;) {
        if (e.src.charCodeAt(e.pos) === 43 && e.src.charCodeAt(e.pos + 1) === 43 && (s = e.src.charCodeAt(e.pos - 1), o = e.pos + 2 < i ? e.src.charCodeAt(e.pos + 2) : -1, o !== 43 && s !== 43 && (s !== 32 && s !== 10 ? n-- : o !== 32 && o !== 10 && n++, n <= 0))) {
            r = !0;
            break
        }
        e.parser.skipToken(e)
    }
    return r ? (e.posMax = e.pos, e.pos = a + 2, t || (e.push({
        type: "ins_open",
        level: e.level++
    }), e.parser.tokenize(e), e.push({
        type: "ins_close",
        level: --e.level
    })), e.pos = e.posMax + 2, e.posMax = i, !0) : (e.pos = a, !1)
}

function Y0(e, t) {
    var r, u, n, i = e.posMax, a = e.pos, s, o;
    if (e.src.charCodeAt(a) !== 61 || t || a + 4 >= i || e.src.charCodeAt(a + 1) !== 61 || e.level >= e.options.maxNesting || (s = a > 0 ? e.src.charCodeAt(a - 1) : -1, o = e.src.charCodeAt(a + 2), s === 61) || o === 61 || o === 32 || o === 10) return !1;
    for (u = a + 2; u < i && e.src.charCodeAt(u) === 61;) u++;
    if (u !== a + 2) return e.pos += u - a, t || (e.pending += e.src.slice(a, u)), !0;
    for (e.pos = a + 2, n = 1; e.pos + 1 < i;) {
        if (e.src.charCodeAt(e.pos) === 61 && e.src.charCodeAt(e.pos + 1) === 61 && (s = e.src.charCodeAt(e.pos - 1), o = e.pos + 2 < i ? e.src.charCodeAt(e.pos + 2) : -1, o !== 61 && s !== 61 && (s !== 32 && s !== 10 ? n-- : o !== 32 && o !== 10 && n++, n <= 0))) {
            r = !0;
            break
        }
        e.parser.skipToken(e)
    }
    return r ? (e.posMax = e.pos, e.pos = a + 2, t || (e.push({
        type: "mark_open",
        level: e.level++
    }), e.parser.tokenize(e), e.push({
        type: "mark_close",
        level: --e.level
    })), e.pos = e.posMax + 2, e.posMax = i, !0) : (e.pos = a, !1)
}

function yi(e) {
    return e >= 48 && e <= 57 || e >= 65 && e <= 90 || e >= 97 && e <= 122
}

function ki(e, t) {
    var r = t, u, n, i, a = !0, s = !0, o = e.posMax, l = e.src.charCodeAt(t);
    for (u = t > 0 ? e.src.charCodeAt(t - 1) : -1; r < o && e.src.charCodeAt(r) === l;) r++;
    return r >= o && (a = !1), i = r - t, i >= 4 ? a = s = !1 : (n = r < o ? e.src.charCodeAt(r) : -1, (n === 32 || n === 10) && (a = !1), (u === 32 || u === 10) && (s = !1), l === 95 && (yi(u) && (a = !1), yi(n) && (s = !1))), {
        can_open: a,
        can_close: s,
        delims: i
    }
}

function G0(e, t) {
    var r, u, n, i, a, s, o, l = e.posMax, h = e.pos, p = e.src.charCodeAt(h);
    if (p !== 95 && p !== 42 || t) return !1;
    if (o = ki(e, h), r = o.delims, !o.can_open) return e.pos += r, t || (e.pending += e.src.slice(h, e.pos)), !0;
    if (e.level >= e.options.maxNesting) return !1;
    for (e.pos = h + r, s = [r]; e.pos < l;) {
        if (e.src.charCodeAt(e.pos) === p) {
            if (o = ki(e, e.pos), u = o.delims, o.can_close) {
                for (i = s.pop(), a = u; i !== a;) {
                    if (a < i) {
                        s.push(i - a);
                        break
                    }
                    if (a -= i, s.length === 0) break;
                    e.pos += i, i = s.pop()
                }
                if (s.length === 0) {
                    r = i, n = !0;
                    break
                }
                e.pos += u;
                continue
            }
            o.can_open && s.push(u), e.pos += u;
            continue
        }
        e.parser.skipToken(e)
    }
    return n ? (e.posMax = e.pos, e.pos = h + r, t || ((r === 2 || r === 3) && e.push({
        type: "strong_open",
        level: e.level++
    }), (r === 1 || r === 3) && e.push({
        type: "em_open",
        level: e.level++
    }), e.parser.tokenize(e), (r === 1 || r === 3) && e.push({
        type: "em_close",
        level: --e.level
    }), (r === 2 || r === 3) && e.push({
        type: "strong_close",
        level: --e.level
    })), e.pos = e.posMax + r, e.posMax = l, !0) : (e.pos = h, !1)
}

var W0 = /\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;

function K0(e, t) {
    var r, u, n = e.posMax, i = e.pos;
    if (e.src.charCodeAt(i) !== 126 || t || i + 2 >= n || e.level >= e.options.maxNesting) return !1;
    for (e.pos = i + 1; e.pos < n;) {
        if (e.src.charCodeAt(e.pos) === 126) {
            r = !0;
            break
        }
        e.parser.skipToken(e)
    }
    return !r || i + 1 === e.pos || (u = e.src.slice(i + 1, e.pos), u.match(/(^|[^\\])(\\\\)*\s/)) ? (e.pos = i, !1) : (e.posMax = e.pos, e.pos = i + 1, t || e.push({
        type: "sub",
        level: e.level,
        content: u.replace(W0, "$1")
    }), e.pos = e.posMax + 1, e.posMax = n, !0)
}

var q0 = /\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;

function Z0(e, t) {
    var r, u, n = e.posMax, i = e.pos;
    if (e.src.charCodeAt(i) !== 94 || t || i + 2 >= n || e.level >= e.options.maxNesting) return !1;
    for (e.pos = i + 1; e.pos < n;) {
        if (e.src.charCodeAt(e.pos) === 94) {
            r = !0;
            break
        }
        e.parser.skipToken(e)
    }
    return !r || i + 1 === e.pos || (u = e.src.slice(i + 1, e.pos), u.match(/(^|[^\\])(\\\\)*\s/)) ? (e.pos = i, !1) : (e.posMax = e.pos, e.pos = i + 1, t || e.push({
        type: "sup",
        level: e.level,
        content: u.replace(q0, "$1")
    }), e.pos = e.posMax + 1, e.posMax = n, !0)
}

function z0(e, t) {
    var r, u, n, i, a, s, o, l, h = !1, p = e.pos, g = e.posMax, d = e.pos, E = e.src.charCodeAt(d);
    if (E === 33 && (h = !0, E = e.src.charCodeAt(++d)), E !== 91 || e.level >= e.options.maxNesting || (r = d + 1, u = cr(e, d), u < 0)) return !1;
    if (s = u + 1, s < g && e.src.charCodeAt(s) === 40) {
        for (s++; s < g && (l = e.src.charCodeAt(s), !(l !== 32 && l !== 10)); s++) ;
        if (s >= g) return !1;
        for (d = s, Fa(e, s) ? (i = e.linkContent, s = e.pos) : i = "", d = s; s < g && (l = e.src.charCodeAt(s), !(l !== 32 && l !== 10)); s++) ;
        if (s < g && d !== s && Ma(e, s)) for (a = e.linkContent, s = e.pos; s < g && (l = e.src.charCodeAt(s), !(l !== 32 && l !== 10)); s++) ; else a = "";
        if (s >= g || e.src.charCodeAt(s) !== 41) return e.pos = p, !1;
        s++
    } else {
        if (e.linkLevel > 0) return !1;
        for (; s < g && (l = e.src.charCodeAt(s), !(l !== 32 && l !== 10)); s++) ;
        if (s < g && e.src.charCodeAt(s) === 91 && (d = s + 1, s = cr(e, s), s >= 0 ? n = e.src.slice(d, s++) : s = d - 1), n || (typeof n > "u" && (s = u + 1), n = e.src.slice(r, u)), o = e.env.references[Pa(n)], !o) return e.pos = p, !1;
        i = o.href, a = o.title
    }
    return t || (e.pos = r, e.posMax = u, h ? e.push({
        type: "image",
        src: i,
        title: a,
        alt: e.src.substr(r, u - r),
        level: e.level
    }) : (e.push({
        type: "link_open",
        href: i,
        title: a,
        level: e.level++
    }), e.linkLevel++, e.parser.tokenize(e), e.linkLevel--, e.push({
        type: "link_close",
        level: --e.level
    }))), e.pos = s, e.posMax = g, !0
}

function J0(e, t) {
    var r, u, n, i, a = e.posMax, s = e.pos;
    return s + 2 >= a || e.src.charCodeAt(s) !== 94 || e.src.charCodeAt(s + 1) !== 91 || e.level >= e.options.maxNesting || (r = s + 2, u = cr(e, s + 1), u < 0) ? !1 : (t || (e.env.footnotes || (e.env.footnotes = {}), e.env.footnotes.list || (e.env.footnotes.list = []), n = e.env.footnotes.list.length, e.pos = r, e.posMax = u, e.push({
        type: "footnote_ref",
        id: n,
        level: e.level
    }), e.linkLevel++, i = e.tokens.length, e.parser.tokenize(e), e.env.footnotes.list[n] = {tokens: e.tokens.splice(i)}, e.linkLevel--), e.pos = u + 1, e.posMax = a, !0)
}

function V0(e, t) {
    var r, u, n, i, a = e.posMax, s = e.pos;
    if (s + 3 > a || !e.env.footnotes || !e.env.footnotes.refs || e.src.charCodeAt(s) !== 91 || e.src.charCodeAt(s + 1) !== 94 || e.level >= e.options.maxNesting) return !1;
    for (u = s + 2; u < a; u++) {
        if (e.src.charCodeAt(u) === 32 || e.src.charCodeAt(u) === 10) return !1;
        if (e.src.charCodeAt(u) === 93) break
    }
    return u === s + 2 || u >= a || (u++, r = e.src.slice(s + 2, u - 1), typeof e.env.footnotes.refs[":" + r] > "u") ? !1 : (t || (e.env.footnotes.list || (e.env.footnotes.list = []), e.env.footnotes.refs[":" + r] < 0 ? (n = e.env.footnotes.list.length, e.env.footnotes.list[n] = {
        label: r,
        count: 0
    }, e.env.footnotes.refs[":" + r] = n) : n = e.env.footnotes.refs[":" + r], i = e.env.footnotes.list[n].count, e.env.footnotes.list[n].count++, e.push({
        type: "footnote_ref",
        id: n,
        subId: i,
        level: e.level
    })), e.pos = u, e.posMax = a, !0)
}

var j0 = ["coap", "doi", "javascript", "aaa", "aaas", "about", "acap", "cap", "cid", "crid", "data", "dav", "dict", "dns", "file", "ftp", "geo", "go", "gopher", "h323", "http", "https", "iax", "icap", "im", "imap", "info", "ipp", "iris", "iris.beep", "iris.xpc", "iris.xpcs", "iris.lwz", "ldap", "mailto", "mid", "msrp", "msrps", "mtqp", "mupdate", "news", "nfs", "ni", "nih", "nntp", "opaquelocktoken", "pop", "pres", "rtsp", "service", "session", "shttp", "sieve", "sip", "sips", "sms", "snmp", "soap.beep", "soap.beeps", "tag", "tel", "telnet", "tftp", "thismessage", "tn3270", "tip", "tv", "urn", "vemmi", "ws", "wss", "xcon", "xcon-userid", "xmlrpc.beep", "xmlrpc.beeps", "xmpp", "z39.50r", "z39.50s", "adiumxtra", "afp", "afs", "aim", "apt", "attachment", "aw", "beshare", "bitcoin", "bolo", "callto", "chrome", "chrome-extension", "com-eventbrite-attendee", "content", "cvs", "dlna-playsingle", "dlna-playcontainer", "dtn", "dvb", "ed2k", "facetime", "feed", "finger", "fish", "gg", "git", "gizmoproject", "gtalk", "hcp", "icon", "ipn", "irc", "irc6", "ircs", "itms", "jar", "jms", "keyparc", "lastfm", "ldaps", "magnet", "maps", "market", "message", "mms", "ms-help", "msnim", "mumble", "mvn", "notes", "oid", "palm", "paparazzi", "platform", "proxy", "psyc", "query", "res", "resource", "rmi", "rsync", "rtmp", "secondlife", "sftp", "sgn", "skype", "smb", "soldat", "spotify", "ssh", "steam", "svn", "teamspeak", "things", "udp", "unreal", "ut2004", "ventrilo", "view-source", "webcal", "wtai", "wyciwyg", "xfire", "xri", "ymsgr"],
    X0 = /^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,
    $0 = /^<([a-zA-Z.\-]{1,25}):([^<>\x00-\x20]*)>/;

function el(e, t) {
    var r, u, n, i, a, s = e.pos;
    return e.src.charCodeAt(s) !== 60 || (r = e.src.slice(s), r.indexOf(">") < 0) ? !1 : (u = r.match($0), u ? j0.indexOf(u[1].toLowerCase()) < 0 || (i = u[0].slice(1, -1), a = ju(i), !e.parser.validateLink(i)) ? !1 : (t || (e.push({
        type: "link_open",
        href: a,
        level: e.level
    }), e.push({type: "text", content: i, level: e.level + 1}), e.push({
        type: "link_close",
        level: e.level
    })), e.pos += u[0].length, !0) : (n = r.match(X0), n ? (i = n[0].slice(1, -1), a = ju("mailto:" + i), e.parser.validateLink(a) ? (t || (e.push({
        type: "link_open",
        href: a,
        level: e.level
    }), e.push({type: "text", content: i, level: e.level + 1}), e.push({
        type: "link_close",
        level: e.level
    })), e.pos += n[0].length, !0) : !1) : !1))
}

function ou(e, t) {
    return e = e.source, t = t || "", function r(u, n) {
        return u ? (n = n.source || n, e = e.replace(u, n), r) : new RegExp(e, t)
    }
}

var tl = /[a-zA-Z_:][a-zA-Z0-9:._-]*/, rl = /[^"'=<>`\x00-\x20]+/, ul = /'[^']*'/, nl = /"[^"]*"/,
    il = ou(/(?:unquoted|single_quoted|double_quoted)/)("unquoted", rl)("single_quoted", ul)("double_quoted", nl)(),
    al = ou(/(?:\s+attr_name(?:\s*=\s*attr_value)?)/)("attr_name", tl)("attr_value", il)(),
    sl = ou(/<[A-Za-z][A-Za-z0-9]*attribute*\s*\/?>/)("attribute", al)(), ol = /<\/[A-Za-z][A-Za-z0-9]*\s*>/,
    cl = /<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/, ll = /<[?].*?[?]>/, fl = /<![A-Z]+\s+[^>]*>/,
    dl = /<!\[CDATA\[[\s\S]*?\]\]>/,
    hl = ou(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)("open_tag", sl)("close_tag", ol)("comment", cl)("processing", ll)("declaration", fl)("cdata", dl)();

function Al(e) {
    var t = e | 32;
    return t >= 97 && t <= 122
}

function pl(e, t) {
    var r, u, n, i = e.pos;
    return !e.options.html || (n = e.posMax, e.src.charCodeAt(i) !== 60 || i + 2 >= n) || (r = e.src.charCodeAt(i + 1), r !== 33 && r !== 63 && r !== 47 && !Al(r)) || (u = e.src.slice(i).match(hl), !u) ? !1 : (t || e.push({
        type: "htmltag",
        content: e.src.slice(i, i + u[0].length),
        level: e.level
    }), e.pos += u[0].length, !0)
}

var bl = /^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i, gl = /^&([a-z][a-z0-9]{1,31});/i;

function ml(e, t) {
    var r, u, n, i = e.pos, a = e.posMax;
    if (e.src.charCodeAt(i) !== 38) return !1;
    if (i + 1 < a) {
        if (r = e.src.charCodeAt(i + 1), r === 35) {
            if (n = e.src.slice(i).match(bl), n) return t || (u = n[1][0].toLowerCase() === "x" ? parseInt(n[1].slice(1), 16) : parseInt(n[1], 10), e.pending += Oa(u) ? Vu(u) : Vu(65533)), e.pos += n[0].length, !0
        } else if (n = e.src.slice(i).match(gl), n) {
            var s = Ba(n[1]);
            if (n[1] !== s) return t || (e.pending += s), e.pos += n[0].length, !0
        }
    }
    return t || (e.pending += "&"), e.pos++, !0
}

var Bu = [["text", F0], ["newline", M0], ["escape", P0], ["backticks", U0], ["del", H0], ["ins", Q0], ["mark", Y0], ["emphasis", G0], ["sub", K0], ["sup", Z0], ["links", z0], ["footnote_inline", J0], ["footnote_ref", V0], ["autolink", el], ["htmltag", pl], ["entity", ml]];

function cu() {
    this.ruler = new ze;
    for (var e = 0; e < Bu.length; e++) this.ruler.push(Bu[e][0], Bu[e][1]);
    this.validateLink = El
}

cu.prototype.skipToken = function (e) {
    var t = this.ruler.getRules(""), r = t.length, u = e.pos, n, i;
    if ((i = e.cacheGet(u)) > 0) {
        e.pos = i;
        return
    }
    for (n = 0; n < r; n++) if (t[n](e, !0)) {
        e.cacheSet(u, e.pos);
        return
    }
    e.pos++, e.cacheSet(u, e.pos)
};
cu.prototype.tokenize = function (e) {
    for (var t = this.ruler.getRules(""), r = t.length, u = e.posMax, n, i; e.pos < u;) {
        for (i = 0; i < r && (n = t[i](e, !1), !n); i++) ;
        if (n) {
            if (e.pos >= u) break;
            continue
        }
        e.pending += e.src[e.pos++]
    }
    e.pending && e.pushPending()
};
cu.prototype.parse = function (e, t, r, u) {
    var n = new Dt(e, this, t, r, u);
    this.tokenize(n)
};

function El(e) {
    var t = ["vbscript", "javascript", "file", "data"], r = e.trim().toLowerCase();
    return r = kt(r), !(r.indexOf(":") !== -1 && t.indexOf(r.split(":")[0]) !== -1)
}

var Tl = {
    options: {
        html: !1,
        xhtmlOut: !1,
        breaks: !1,
        langPrefix: "language-",
        linkTarget: "",
        typographer: !1,
        quotes: "“”‘’",
        highlight: null,
        maxNesting: 20
    },
    components: {
        core: {rules: ["block", "inline", "references", "replacements", "smartquotes", "references", "abbr2", "footnote_tail"]},
        block: {rules: ["blockquote", "code", "fences", "footnote", "heading", "hr", "htmlblock", "lheading", "list", "paragraph", "table"]},
        inline: {rules: ["autolink", "backticks", "del", "emphasis", "entity", "escape", "footnote_ref", "htmltag", "links", "newline", "text"]}
    }
}, _l = {
    options: {
        html: !1,
        xhtmlOut: !1,
        breaks: !1,
        langPrefix: "language-",
        linkTarget: "",
        typographer: !1,
        quotes: "“”‘’",
        highlight: null,
        maxNesting: 20
    }, components: {core: {}, block: {}, inline: {}}
}, xl = {
    options: {
        html: !0,
        xhtmlOut: !0,
        breaks: !1,
        langPrefix: "language-",
        linkTarget: "",
        typographer: !1,
        quotes: "“”‘’",
        highlight: null,
        maxNesting: 20
    },
    components: {
        core: {rules: ["block", "inline", "references", "abbr2"]},
        block: {rules: ["blockquote", "code", "fences", "heading", "hr", "htmlblock", "lheading", "list", "paragraph"]},
        inline: {rules: ["autolink", "backticks", "emphasis", "entity", "escape", "htmltag", "links", "newline", "text"]}
    }
}, Cl = {default: Tl, full: _l, commonmark: xl};

function Qa(e, t, r) {
    this.src = t, this.env = r, this.options = e.options, this.tokens = [], this.inlineMode = !1, this.inline = e.inline, this.block = e.block, this.renderer = e.renderer, this.typographer = e.typographer
}

function Rt(e, t) {
    typeof e != "string" && (t = e, e = "default"), t && t.linkify != null && console.warn(`linkify option is removed. Use linkify plugin instead:

import Remarkable from 'remarkable';
import linkify from 'remarkable/linkify';
new Remarkable().use(linkify)
`), this.inline = new cu, this.block = new vn, this.core = new Ua, this.renderer = new Sn, this.ruler = new ze, this.options = {}, this.configure(Cl[e]), this.set(t || {})
}

Rt.prototype.set = function (e) {
    Ra(this.options, e)
};
Rt.prototype.configure = function (e) {
    var t = this;
    if (!e) throw new Error("Wrong `remarkable` preset, check name/content");
    e.options && t.set(e.options), e.components && Object.keys(e.components).forEach(function (r) {
        e.components[r].rules && t[r].ruler.enable(e.components[r].rules, !0)
    })
};
Rt.prototype.use = function (e, t) {
    return e(this, t), this
};
Rt.prototype.parse = function (e, t) {
    var r = new Qa(this, e, t);
    return this.core.process(r), r.tokens
};
Rt.prototype.render = function (e, t) {
    return t = t || {}, this.renderer.render(this.parse(e, t), this.options, t)
};
Rt.prototype.parseInline = function (e, t) {
    var r = new Qa(this, e, t);
    return r.inlineMode = !0, this.core.process(r), r.tokens
};
Rt.prototype.renderInline = function (e, t) {
    return t = t || {}, this.renderer.render(this.parseInline(e, t), this.options, t)
};
var Ya = {exports: {}};
const Il = {},
    yl = Object.freeze(Object.defineProperty({__proto__: null, default: Il}, Symbol.toStringTag, {value: "Module"})),
    Si = la(yl);
/**
 * [js-md5]{@link https://github.com/emn178/js-md5}
 *
 * @namespace md5
 * @version 0.8.3
 * @author Chen, Yi-Cyuan [emn178@gmail.com]
 * @copyright Chen, Yi-Cyuan 2014-2023
 * @license MIT
 */(function (e) {
    (function () {
        var t = "input is invalid type", r = "finalize already called", u = typeof window == "object",
            n = u ? window : {};
        n.JS_MD5_NO_WINDOW && (u = !1);
        var i = !u && typeof self == "object",
            a = !n.JS_MD5_NO_NODE_JS && typeof process == "object" && process.versions && process.versions.node;
        a ? n = Xt : i && (n = self);
        var s = !n.JS_MD5_NO_COMMON_JS && !0 && e.exports, o = !n.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer < "u",
            l = "0123456789abcdef".split(""), h = [128, 32768, 8388608, -2147483648], p = [0, 8, 16, 24],
            g = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"],
            d = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), E = [], A;
        if (o) {
            var x = new ArrayBuffer(68);
            A = new Uint8Array(x), E = new Uint32Array(x)
        }
        var _ = Array.isArray;
        (n.JS_MD5_NO_NODE_JS || !_) && (_ = function (b) {
            return Object.prototype.toString.call(b) === "[object Array]"
        });
        var y = ArrayBuffer.isView;
        o && (n.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !y) && (y = function (b) {
            return typeof b == "object" && b.buffer && b.buffer.constructor === ArrayBuffer
        });
        var v = function (b) {
            var T = typeof b;
            if (T === "string") return [b, !0];
            if (T !== "object" || b === null) throw new Error(t);
            if (o && b.constructor === ArrayBuffer) return [new Uint8Array(b), !1];
            if (!_(b) && !y(b)) throw new Error(t);
            return [b, !1]
        }, D = function (b) {
            return function (T) {
                return new B(!0).update(T)[b]()
            }
        }, S = function () {
            var b = D("hex");
            a && (b = L(b)), b.create = function () {
                return new B
            }, b.update = function (C) {
                return b.create().update(C)
            };
            for (var T = 0; T < g.length; ++T) {
                var f = g[T];
                b[f] = D(f)
            }
            return b
        }, L = function (b) {
            var T = Si, f = Si.Buffer, C;
            f.from && !n.JS_MD5_NO_BUFFER_FROM ? C = f.from : C = function (O) {
                return new f(O)
            };
            var q = function (O) {
                if (typeof O == "string") return T.createHash("md5").update(O, "utf8").digest("hex");
                if (O == null) throw new Error(t);
                return O.constructor === ArrayBuffer && (O = new Uint8Array(O)), _(O) || y(O) || O.constructor === f ? T.createHash("md5").update(C(O)).digest("hex") : b(O)
            };
            return q
        }, M = function (b) {
            return function (T, f) {
                return new P(T, !0).update(f)[b]()
            }
        }, z = function () {
            var b = M("hex");
            b.create = function (C) {
                return new P(C)
            }, b.update = function (C, q) {
                return b.create(C).update(q)
            };
            for (var T = 0; T < g.length; ++T) {
                var f = g[T];
                b[f] = M(f)
            }
            return b
        };

        function B(b) {
            if (b) E[0] = E[16] = E[1] = E[2] = E[3] = E[4] = E[5] = E[6] = E[7] = E[8] = E[9] = E[10] = E[11] = E[12] = E[13] = E[14] = E[15] = 0, this.blocks = E, this.buffer8 = A; else if (o) {
                var T = new ArrayBuffer(68);
                this.buffer8 = new Uint8Array(T), this.blocks = new Uint32Array(T)
            } else this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
            this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0, this.finalized = this.hashed = !1, this.first = !0
        }

        B.prototype.update = function (b) {
            if (this.finalized) throw new Error(r);
            var T = v(b);
            b = T[0];
            for (var f = T[1], C, q = 0, O, U = b.length, G = this.blocks, ae = this.buffer8; q < U;) {
                if (this.hashed && (this.hashed = !1, G[0] = G[16], G[16] = G[1] = G[2] = G[3] = G[4] = G[5] = G[6] = G[7] = G[8] = G[9] = G[10] = G[11] = G[12] = G[13] = G[14] = G[15] = 0), f) if (o) for (O = this.start; q < U && O < 64; ++q) C = b.charCodeAt(q), C < 128 ? ae[O++] = C : C < 2048 ? (ae[O++] = 192 | C >>> 6, ae[O++] = 128 | C & 63) : C < 55296 || C >= 57344 ? (ae[O++] = 224 | C >>> 12, ae[O++] = 128 | C >>> 6 & 63, ae[O++] = 128 | C & 63) : (C = 65536 + ((C & 1023) << 10 | b.charCodeAt(++q) & 1023), ae[O++] = 240 | C >>> 18, ae[O++] = 128 | C >>> 12 & 63, ae[O++] = 128 | C >>> 6 & 63, ae[O++] = 128 | C & 63); else for (O = this.start; q < U && O < 64; ++q) C = b.charCodeAt(q), C < 128 ? G[O >>> 2] |= C << p[O++ & 3] : C < 2048 ? (G[O >>> 2] |= (192 | C >>> 6) << p[O++ & 3], G[O >>> 2] |= (128 | C & 63) << p[O++ & 3]) : C < 55296 || C >= 57344 ? (G[O >>> 2] |= (224 | C >>> 12) << p[O++ & 3], G[O >>> 2] |= (128 | C >>> 6 & 63) << p[O++ & 3], G[O >>> 2] |= (128 | C & 63) << p[O++ & 3]) : (C = 65536 + ((C & 1023) << 10 | b.charCodeAt(++q) & 1023), G[O >>> 2] |= (240 | C >>> 18) << p[O++ & 3], G[O >>> 2] |= (128 | C >>> 12 & 63) << p[O++ & 3], G[O >>> 2] |= (128 | C >>> 6 & 63) << p[O++ & 3], G[O >>> 2] |= (128 | C & 63) << p[O++ & 3]); else if (o) for (O = this.start; q < U && O < 64; ++q) ae[O++] = b[q]; else for (O = this.start; q < U && O < 64; ++q) G[O >>> 2] |= b[q] << p[O++ & 3];
                this.lastByteIndex = O, this.bytes += O - this.start, O >= 64 ? (this.start = O - 64, this.hash(), this.hashed = !0) : this.start = O
            }
            return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this
        }, B.prototype.finalize = function () {
            if (!this.finalized) {
                this.finalized = !0;
                var b = this.blocks, T = this.lastByteIndex;
                b[T >>> 2] |= h[T & 3], T >= 56 && (this.hashed || this.hash(), b[0] = b[16], b[16] = b[1] = b[2] = b[3] = b[4] = b[5] = b[6] = b[7] = b[8] = b[9] = b[10] = b[11] = b[12] = b[13] = b[14] = b[15] = 0), b[14] = this.bytes << 3, b[15] = this.hBytes << 3 | this.bytes >>> 29, this.hash()
            }
        }, B.prototype.hash = function () {
            var b, T, f, C, q, O, U = this.blocks;
            this.first ? (b = U[0] - 680876937, b = (b << 7 | b >>> 25) - 271733879 << 0, C = (-1732584194 ^ b & 2004318071) + U[1] - 117830708, C = (C << 12 | C >>> 20) + b << 0, f = (-271733879 ^ C & (b ^ -271733879)) + U[2] - 1126478375, f = (f << 17 | f >>> 15) + C << 0, T = (b ^ f & (C ^ b)) + U[3] - 1316259209, T = (T << 22 | T >>> 10) + f << 0) : (b = this.h0, T = this.h1, f = this.h2, C = this.h3, b += (C ^ T & (f ^ C)) + U[0] - 680876936, b = (b << 7 | b >>> 25) + T << 0, C += (f ^ b & (T ^ f)) + U[1] - 389564586, C = (C << 12 | C >>> 20) + b << 0, f += (T ^ C & (b ^ T)) + U[2] + 606105819, f = (f << 17 | f >>> 15) + C << 0, T += (b ^ f & (C ^ b)) + U[3] - 1044525330, T = (T << 22 | T >>> 10) + f << 0), b += (C ^ T & (f ^ C)) + U[4] - 176418897, b = (b << 7 | b >>> 25) + T << 0, C += (f ^ b & (T ^ f)) + U[5] + 1200080426, C = (C << 12 | C >>> 20) + b << 0, f += (T ^ C & (b ^ T)) + U[6] - 1473231341, f = (f << 17 | f >>> 15) + C << 0, T += (b ^ f & (C ^ b)) + U[7] - 45705983, T = (T << 22 | T >>> 10) + f << 0, b += (C ^ T & (f ^ C)) + U[8] + 1770035416, b = (b << 7 | b >>> 25) + T << 0, C += (f ^ b & (T ^ f)) + U[9] - 1958414417, C = (C << 12 | C >>> 20) + b << 0, f += (T ^ C & (b ^ T)) + U[10] - 42063, f = (f << 17 | f >>> 15) + C << 0, T += (b ^ f & (C ^ b)) + U[11] - 1990404162, T = (T << 22 | T >>> 10) + f << 0, b += (C ^ T & (f ^ C)) + U[12] + 1804603682, b = (b << 7 | b >>> 25) + T << 0, C += (f ^ b & (T ^ f)) + U[13] - 40341101, C = (C << 12 | C >>> 20) + b << 0, f += (T ^ C & (b ^ T)) + U[14] - 1502002290, f = (f << 17 | f >>> 15) + C << 0, T += (b ^ f & (C ^ b)) + U[15] + 1236535329, T = (T << 22 | T >>> 10) + f << 0, b += (f ^ C & (T ^ f)) + U[1] - 165796510, b = (b << 5 | b >>> 27) + T << 0, C += (T ^ f & (b ^ T)) + U[6] - 1069501632, C = (C << 9 | C >>> 23) + b << 0, f += (b ^ T & (C ^ b)) + U[11] + 643717713, f = (f << 14 | f >>> 18) + C << 0, T += (C ^ b & (f ^ C)) + U[0] - 373897302, T = (T << 20 | T >>> 12) + f << 0, b += (f ^ C & (T ^ f)) + U[5] - 701558691, b = (b << 5 | b >>> 27) + T << 0, C += (T ^ f & (b ^ T)) + U[10] + 38016083, C = (C << 9 | C >>> 23) + b << 0, f += (b ^ T & (C ^ b)) + U[15] - 660478335, f = (f << 14 | f >>> 18) + C << 0, T += (C ^ b & (f ^ C)) + U[4] - 405537848, T = (T << 20 | T >>> 12) + f << 0, b += (f ^ C & (T ^ f)) + U[9] + 568446438, b = (b << 5 | b >>> 27) + T << 0, C += (T ^ f & (b ^ T)) + U[14] - 1019803690, C = (C << 9 | C >>> 23) + b << 0, f += (b ^ T & (C ^ b)) + U[3] - 187363961, f = (f << 14 | f >>> 18) + C << 0, T += (C ^ b & (f ^ C)) + U[8] + 1163531501, T = (T << 20 | T >>> 12) + f << 0, b += (f ^ C & (T ^ f)) + U[13] - 1444681467, b = (b << 5 | b >>> 27) + T << 0, C += (T ^ f & (b ^ T)) + U[2] - 51403784, C = (C << 9 | C >>> 23) + b << 0, f += (b ^ T & (C ^ b)) + U[7] + 1735328473, f = (f << 14 | f >>> 18) + C << 0, T += (C ^ b & (f ^ C)) + U[12] - 1926607734, T = (T << 20 | T >>> 12) + f << 0, q = T ^ f, b += (q ^ C) + U[5] - 378558, b = (b << 4 | b >>> 28) + T << 0, C += (q ^ b) + U[8] - 2022574463, C = (C << 11 | C >>> 21) + b << 0, O = C ^ b, f += (O ^ T) + U[11] + 1839030562, f = (f << 16 | f >>> 16) + C << 0, T += (O ^ f) + U[14] - 35309556, T = (T << 23 | T >>> 9) + f << 0, q = T ^ f, b += (q ^ C) + U[1] - 1530992060, b = (b << 4 | b >>> 28) + T << 0, C += (q ^ b) + U[4] + 1272893353, C = (C << 11 | C >>> 21) + b << 0, O = C ^ b, f += (O ^ T) + U[7] - 155497632, f = (f << 16 | f >>> 16) + C << 0, T += (O ^ f) + U[10] - 1094730640, T = (T << 23 | T >>> 9) + f << 0, q = T ^ f, b += (q ^ C) + U[13] + 681279174, b = (b << 4 | b >>> 28) + T << 0, C += (q ^ b) + U[0] - 358537222, C = (C << 11 | C >>> 21) + b << 0, O = C ^ b, f += (O ^ T) + U[3] - 722521979, f = (f << 16 | f >>> 16) + C << 0, T += (O ^ f) + U[6] + 76029189, T = (T << 23 | T >>> 9) + f << 0, q = T ^ f, b += (q ^ C) + U[9] - 640364487, b = (b << 4 | b >>> 28) + T << 0, C += (q ^ b) + U[12] - 421815835, C = (C << 11 | C >>> 21) + b << 0, O = C ^ b, f += (O ^ T) + U[15] + 530742520, f = (f << 16 | f >>> 16) + C << 0, T += (O ^ f) + U[2] - 995338651, T = (T << 23 | T >>> 9) + f << 0, b += (f ^ (T | ~C)) + U[0] - 198630844, b = (b << 6 | b >>> 26) + T << 0, C += (T ^ (b | ~f)) + U[7] + 1126891415, C = (C << 10 | C >>> 22) + b << 0,f += (b ^ (C | ~T)) + U[14] - 1416354905,f = (f << 15 | f >>> 17) + C << 0,T += (C ^ (f | ~b)) + U[5] - 57434055,T = (T << 21 | T >>> 11) + f << 0,b += (f ^ (T | ~C)) + U[12] + 1700485571,b = (b << 6 | b >>> 26) + T << 0,C += (T ^ (b | ~f)) + U[3] - 1894986606,C = (C << 10 | C >>> 22) + b << 0,f += (b ^ (C | ~T)) + U[10] - 1051523,f = (f << 15 | f >>> 17) + C << 0,T += (C ^ (f | ~b)) + U[1] - 2054922799,T = (T << 21 | T >>> 11) + f << 0,b += (f ^ (T | ~C)) + U[8] + 1873313359,b = (b << 6 | b >>> 26) + T << 0,C += (T ^ (b | ~f)) + U[15] - 30611744,C = (C << 10 | C >>> 22) + b << 0,f += (b ^ (C | ~T)) + U[6] - 1560198380,f = (f << 15 | f >>> 17) + C << 0,T += (C ^ (f | ~b)) + U[13] + 1309151649,T = (T << 21 | T >>> 11) + f << 0,b += (f ^ (T | ~C)) + U[4] - 145523070,b = (b << 6 | b >>> 26) + T << 0,C += (T ^ (b | ~f)) + U[11] - 1120210379,C = (C << 10 | C >>> 22) + b << 0,f += (b ^ (C | ~T)) + U[2] + 718787259,f = (f << 15 | f >>> 17) + C << 0,T += (C ^ (f | ~b)) + U[9] - 343485551,T = (T << 21 | T >>> 11) + f << 0,this.first ? (this.h0 = b + 1732584193 << 0, this.h1 = T - 271733879 << 0, this.h2 = f - 1732584194 << 0, this.h3 = C + 271733878 << 0, this.first = !1) : (this.h0 = this.h0 + b << 0, this.h1 = this.h1 + T << 0, this.h2 = this.h2 + f << 0, this.h3 = this.h3 + C << 0)
        }, B.prototype.hex = function () {
            this.finalize();
            var b = this.h0, T = this.h1, f = this.h2, C = this.h3;
            return l[b >>> 4 & 15] + l[b & 15] + l[b >>> 12 & 15] + l[b >>> 8 & 15] + l[b >>> 20 & 15] + l[b >>> 16 & 15] + l[b >>> 28 & 15] + l[b >>> 24 & 15] + l[T >>> 4 & 15] + l[T & 15] + l[T >>> 12 & 15] + l[T >>> 8 & 15] + l[T >>> 20 & 15] + l[T >>> 16 & 15] + l[T >>> 28 & 15] + l[T >>> 24 & 15] + l[f >>> 4 & 15] + l[f & 15] + l[f >>> 12 & 15] + l[f >>> 8 & 15] + l[f >>> 20 & 15] + l[f >>> 16 & 15] + l[f >>> 28 & 15] + l[f >>> 24 & 15] + l[C >>> 4 & 15] + l[C & 15] + l[C >>> 12 & 15] + l[C >>> 8 & 15] + l[C >>> 20 & 15] + l[C >>> 16 & 15] + l[C >>> 28 & 15] + l[C >>> 24 & 15]
        }, B.prototype.toString = B.prototype.hex, B.prototype.digest = function () {
            this.finalize();
            var b = this.h0, T = this.h1, f = this.h2, C = this.h3;
            return [b & 255, b >>> 8 & 255, b >>> 16 & 255, b >>> 24 & 255, T & 255, T >>> 8 & 255, T >>> 16 & 255, T >>> 24 & 255, f & 255, f >>> 8 & 255, f >>> 16 & 255, f >>> 24 & 255, C & 255, C >>> 8 & 255, C >>> 16 & 255, C >>> 24 & 255]
        }, B.prototype.array = B.prototype.digest, B.prototype.arrayBuffer = function () {
            this.finalize();
            var b = new ArrayBuffer(16), T = new Uint32Array(b);
            return T[0] = this.h0, T[1] = this.h1, T[2] = this.h2, T[3] = this.h3, b
        }, B.prototype.buffer = B.prototype.arrayBuffer, B.prototype.base64 = function () {
            for (var b, T, f, C = "", q = this.array(), O = 0; O < 15;) b = q[O++], T = q[O++], f = q[O++], C += d[b >>> 2] + d[(b << 4 | T >>> 4) & 63] + d[(T << 2 | f >>> 6) & 63] + d[f & 63];
            return b = q[O], C += d[b >>> 2] + d[b << 4 & 63] + "==", C
        };

        function P(b, T) {
            var f, C = v(b);
            if (b = C[0], C[1]) {
                var q = [], O = b.length, U = 0, G;
                for (f = 0; f < O; ++f) G = b.charCodeAt(f), G < 128 ? q[U++] = G : G < 2048 ? (q[U++] = 192 | G >>> 6, q[U++] = 128 | G & 63) : G < 55296 || G >= 57344 ? (q[U++] = 224 | G >>> 12, q[U++] = 128 | G >>> 6 & 63, q[U++] = 128 | G & 63) : (G = 65536 + ((G & 1023) << 10 | b.charCodeAt(++f) & 1023), q[U++] = 240 | G >>> 18, q[U++] = 128 | G >>> 12 & 63, q[U++] = 128 | G >>> 6 & 63, q[U++] = 128 | G & 63);
                b = q
            }
            b.length > 64 && (b = new B(!0).update(b).array());
            var ae = [], W = [];
            for (f = 0; f < 64; ++f) {
                var Y = b[f] || 0;
                ae[f] = 92 ^ Y, W[f] = 54 ^ Y
            }
            B.call(this, T), this.update(W), this.oKeyPad = ae, this.inner = !0, this.sharedMemory = T
        }

        P.prototype = new B, P.prototype.finalize = function () {
            if (B.prototype.finalize.call(this), this.inner) {
                this.inner = !1;
                var b = this.array();
                B.call(this, this.sharedMemory), this.update(this.oKeyPad), this.update(b), B.prototype.finalize.call(this)
            }
        };
        var j = S();
        j.md5 = j, j.md5.hmac = z(), s ? e.exports = j : n.md5 = j
    })()
})(Ya);
var kl = Ya.exports;
const F2 = iu(kl);
var Ga = {exports: {}}, _e;
(function (e) {
    e.Root = "root", e.Text = "text", e.Directive = "directive", e.Comment = "comment", e.Script = "script", e.Style = "style", e.Tag = "tag", e.CDATA = "cdata", e.Doctype = "doctype"
})(_e || (_e = {}));

function Sl(e) {
    return e.type === _e.Tag || e.type === _e.Script || e.type === _e.Style
}

const vl = _e.Root, Nl = _e.Text, wl = _e.Directive, Dl = _e.Comment, Bl = _e.Script, Rl = _e.Style, Ol = _e.Tag,
    Ll = _e.CDATA, Fl = _e.Doctype;

class Wa {
    constructor() {
        this.parent = null, this.prev = null, this.next = null, this.startIndex = null, this.endIndex = null
    }

    get parentNode() {
        return this.parent
    }

    set parentNode(t) {
        this.parent = t
    }

    get previousSibling() {
        return this.prev
    }

    set previousSibling(t) {
        this.prev = t
    }

    get nextSibling() {
        return this.next
    }

    set nextSibling(t) {
        this.next = t
    }

    cloneNode(t = !1) {
        return fr(this, t)
    }
}

class wn extends Wa {
    constructor(t) {
        super(), this.data = t
    }

    get nodeValue() {
        return this.data
    }

    set nodeValue(t) {
        this.data = t
    }
}

class lr extends wn {
    constructor() {
        super(...arguments), this.type = _e.Text
    }

    get nodeType() {
        return 3
    }
}

class Dn extends wn {
    constructor() {
        super(...arguments), this.type = _e.Comment
    }

    get nodeType() {
        return 8
    }
}

class Bn extends wn {
    constructor(t, r) {
        super(r), this.name = t, this.type = _e.Directive
    }

    get nodeType() {
        return 1
    }
}

class Rn extends Wa {
    constructor(t) {
        super(), this.children = t
    }

    get firstChild() {
        var t;
        return (t = this.children[0]) !== null && t !== void 0 ? t : null
    }

    get lastChild() {
        return this.children.length > 0 ? this.children[this.children.length - 1] : null
    }

    get childNodes() {
        return this.children
    }

    set childNodes(t) {
        this.children = t
    }
}

class Ka extends Rn {
    constructor() {
        super(...arguments), this.type = _e.CDATA
    }

    get nodeType() {
        return 4
    }
}

class St extends Rn {
    constructor() {
        super(...arguments), this.type = _e.Root
    }

    get nodeType() {
        return 9
    }
}

class On extends Rn {
    constructor(t, r, u = [], n = t === "script" ? _e.Script : t === "style" ? _e.Style : _e.Tag) {
        super(u), this.name = t, this.attribs = r, this.type = n
    }

    get nodeType() {
        return 1
    }

    get tagName() {
        return this.name
    }

    set tagName(t) {
        this.name = t
    }

    get attributes() {
        return Object.keys(this.attribs).map(t => {
            var r, u;
            return {
                name: t,
                value: this.attribs[t],
                namespace: (r = this["x-attribsNamespace"]) === null || r === void 0 ? void 0 : r[t],
                prefix: (u = this["x-attribsPrefix"]) === null || u === void 0 ? void 0 : u[t]
            }
        })
    }
}

function he(e) {
    return Sl(e)
}

function lu(e) {
    return e.type === _e.CDATA
}

function it(e) {
    return e.type === _e.Text
}

function fu(e) {
    return e.type === _e.Comment
}

function Xu(e) {
    return e.type === _e.Directive
}

function mt(e) {
    return e.type === _e.Root
}

function Be(e) {
    return Object.prototype.hasOwnProperty.call(e, "children")
}

function fr(e, t = !1) {
    let r;
    if (it(e)) r = new lr(e.data); else if (fu(e)) r = new Dn(e.data); else if (he(e)) {
        const u = t ? Ru(e.children) : [], n = new On(e.name, {...e.attribs}, u);
        u.forEach(i => i.parent = n), e.namespace != null && (n.namespace = e.namespace), e["x-attribsNamespace"] && (n["x-attribsNamespace"] = {...e["x-attribsNamespace"]}), e["x-attribsPrefix"] && (n["x-attribsPrefix"] = {...e["x-attribsPrefix"]}), r = n
    } else if (lu(e)) {
        const u = t ? Ru(e.children) : [], n = new Ka(u);
        u.forEach(i => i.parent = n), r = n
    } else if (mt(e)) {
        const u = t ? Ru(e.children) : [], n = new St(u);
        u.forEach(i => i.parent = n), e["x-mode"] && (n["x-mode"] = e["x-mode"]), r = n
    } else if (Xu(e)) {
        const u = new Bn(e.name, e.data);
        e["x-name"] != null && (u["x-name"] = e["x-name"], u["x-publicId"] = e["x-publicId"], u["x-systemId"] = e["x-systemId"]), r = u
    } else throw new Error(`Not implemented yet: ${e.type}`);
    return r.startIndex = e.startIndex, r.endIndex = e.endIndex, e.sourceCodeLocation != null && (r.sourceCodeLocation = e.sourceCodeLocation), r
}

function Ru(e) {
    const t = e.map(r => fr(r, !0));
    for (let r = 1; r < t.length; r++) t[r].prev = t[r - 1], t[r - 1].next = t[r];
    return t
}

const vi = {withStartIndices: !1, withEndIndices: !1, xmlMode: !1};

class Ml {
    constructor(t, r, u) {
        this.dom = [], this.root = new St(this.dom), this.done = !1, this.tagStack = [this.root], this.lastNode = null, this.parser = null, typeof r == "function" && (u = r, r = vi), typeof t == "object" && (r = t, t = void 0), this.callback = t ?? null, this.options = r ?? vi, this.elementCB = u ?? null
    }

    onparserinit(t) {
        this.parser = t
    }

    onreset() {
        this.dom = [], this.root = new St(this.dom), this.done = !1, this.tagStack = [this.root], this.lastNode = null, this.parser = null
    }

    onend() {
        this.done || (this.done = !0, this.parser = null, this.handleCallback(null))
    }

    onerror(t) {
        this.handleCallback(t)
    }

    onclosetag() {
        this.lastNode = null;
        const t = this.tagStack.pop();
        this.options.withEndIndices && (t.endIndex = this.parser.endIndex), this.elementCB && this.elementCB(t)
    }

    onopentag(t, r) {
        const u = this.options.xmlMode ? _e.Tag : void 0, n = new On(t, r, void 0, u);
        this.addNode(n), this.tagStack.push(n)
    }

    ontext(t) {
        const {lastNode: r} = this;
        if (r && r.type === _e.Text) r.data += t, this.options.withEndIndices && (r.endIndex = this.parser.endIndex); else {
            const u = new lr(t);
            this.addNode(u), this.lastNode = u
        }
    }

    oncomment(t) {
        if (this.lastNode && this.lastNode.type === _e.Comment) {
            this.lastNode.data += t;
            return
        }
        const r = new Dn(t);
        this.addNode(r), this.lastNode = r
    }

    oncommentend() {
        this.lastNode = null
    }

    oncdatastart() {
        const t = new lr(""), r = new Ka([t]);
        this.addNode(r), t.parent = r, this.lastNode = t
    }

    oncdataend() {
        this.lastNode = null
    }

    onprocessinginstruction(t, r) {
        const u = new Bn(t, r);
        this.addNode(u)
    }

    handleCallback(t) {
        if (typeof this.callback == "function") this.callback(t, this.dom); else if (t) throw t
    }

    addNode(t) {
        const r = this.tagStack[this.tagStack.length - 1], u = r.children[r.children.length - 1];
        this.options.withStartIndices && (t.startIndex = this.parser.startIndex), this.options.withEndIndices && (t.endIndex = this.parser.endIndex), r.children.push(t), u && (t.prev = u, u.next = t), t.parent = r, this.lastNode = null
    }
}

const qa = new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTǇǋǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉ǲኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻ǲᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤĳạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ﬃɩᾹ\0\0᾽g;耀ﬀig;耀ﬄ;쀀𝔣lig;耀ﬁlig;쀀fjƀaltῙ῜ῡt;晭ig;耀ﬂns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒α‚‰‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସǳ⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗǈⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼ǲ㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e => e.charCodeAt(0))),
    Za = new Uint16Array("Ȁaglq	\x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e => e.charCodeAt(0)));
var Ou;
const Pl = new Map([[0, 65533], [128, 8364], [130, 8218], [131, 402], [132, 8222], [133, 8230], [134, 8224], [135, 8225], [136, 710], [137, 8240], [138, 352], [139, 8249], [140, 338], [142, 381], [145, 8216], [146, 8217], [147, 8220], [148, 8221], [149, 8226], [150, 8211], [151, 8212], [152, 732], [153, 8482], [154, 353], [155, 8250], [156, 339], [158, 382], [159, 376]]),
    $u = (Ou = String.fromCodePoint) !== null && Ou !== void 0 ? Ou : function (e) {
        let t = "";
        return e > 65535 && (e -= 65536, t += String.fromCharCode(e >>> 10 & 1023 | 55296), e = 56320 | e & 1023), t += String.fromCharCode(e), t
    };

function Ul(e) {
    var t;
    return e >= 55296 && e <= 57343 || e > 1114111 ? 65533 : (t = Pl.get(e)) !== null && t !== void 0 ? t : e
}

var Fe;
(function (e) {
    e[e.NUM = 35] = "NUM", e[e.SEMI = 59] = "SEMI", e[e.EQUALS = 61] = "EQUALS", e[e.ZERO = 48] = "ZERO", e[e.NINE = 57] = "NINE", e[e.LOWER_A = 97] = "LOWER_A", e[e.LOWER_F = 102] = "LOWER_F", e[e.LOWER_X = 120] = "LOWER_X", e[e.LOWER_Z = 122] = "LOWER_Z", e[e.UPPER_A = 65] = "UPPER_A", e[e.UPPER_F = 70] = "UPPER_F", e[e.UPPER_Z = 90] = "UPPER_Z"
})(Fe || (Fe = {}));
const Hl = 32;
var pt;
(function (e) {
    e[e.VALUE_LENGTH = 49152] = "VALUE_LENGTH", e[e.BRANCH_LENGTH = 16256] = "BRANCH_LENGTH", e[e.JUMP_TABLE = 127] = "JUMP_TABLE"
})(pt || (pt = {}));

function en(e) {
    return e >= Fe.ZERO && e <= Fe.NINE
}

function Ql(e) {
    return e >= Fe.UPPER_A && e <= Fe.UPPER_F || e >= Fe.LOWER_A && e <= Fe.LOWER_F
}

function Yl(e) {
    return e >= Fe.UPPER_A && e <= Fe.UPPER_Z || e >= Fe.LOWER_A && e <= Fe.LOWER_Z || en(e)
}

function Gl(e) {
    return e === Fe.EQUALS || Yl(e)
}

var Oe;
(function (e) {
    e[e.EntityStart = 0] = "EntityStart", e[e.NumericStart = 1] = "NumericStart", e[e.NumericDecimal = 2] = "NumericDecimal", e[e.NumericHex = 3] = "NumericHex", e[e.NamedEntity = 4] = "NamedEntity"
})(Oe || (Oe = {}));
var ut;
(function (e) {
    e[e.Legacy = 0] = "Legacy", e[e.Strict = 1] = "Strict", e[e.Attribute = 2] = "Attribute"
})(ut || (ut = {}));
let za = class {
    constructor(t, r, u) {
        this.decodeTree = t, this.emitCodePoint = r, this.errors = u, this.state = Oe.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = ut.Strict
    }

    startEntity(t) {
        this.decodeMode = t, this.state = Oe.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1
    }

    write(t, r) {
        switch (this.state) {
            case Oe.EntityStart:
                return t.charCodeAt(r) === Fe.NUM ? (this.state = Oe.NumericStart, this.consumed += 1, this.stateNumericStart(t, r + 1)) : (this.state = Oe.NamedEntity, this.stateNamedEntity(t, r));
            case Oe.NumericStart:
                return this.stateNumericStart(t, r);
            case Oe.NumericDecimal:
                return this.stateNumericDecimal(t, r);
            case Oe.NumericHex:
                return this.stateNumericHex(t, r);
            case Oe.NamedEntity:
                return this.stateNamedEntity(t, r)
        }
    }

    stateNumericStart(t, r) {
        return r >= t.length ? -1 : (t.charCodeAt(r) | Hl) === Fe.LOWER_X ? (this.state = Oe.NumericHex, this.consumed += 1, this.stateNumericHex(t, r + 1)) : (this.state = Oe.NumericDecimal, this.stateNumericDecimal(t, r))
    }

    addToNumericResult(t, r, u, n) {
        if (r !== u) {
            const i = u - r;
            this.result = this.result * Math.pow(n, i) + parseInt(t.substr(r, i), n), this.consumed += i
        }
    }

    stateNumericHex(t, r) {
        const u = r;
        for (; r < t.length;) {
            const n = t.charCodeAt(r);
            if (en(n) || Ql(n)) r += 1; else return this.addToNumericResult(t, u, r, 16), this.emitNumericEntity(n, 3)
        }
        return this.addToNumericResult(t, u, r, 16), -1
    }

    stateNumericDecimal(t, r) {
        const u = r;
        for (; r < t.length;) {
            const n = t.charCodeAt(r);
            if (en(n)) r += 1; else return this.addToNumericResult(t, u, r, 10), this.emitNumericEntity(n, 2)
        }
        return this.addToNumericResult(t, u, r, 10), -1
    }

    emitNumericEntity(t, r) {
        var u;
        if (this.consumed <= r) return (u = this.errors) === null || u === void 0 || u.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
        if (t === Fe.SEMI) this.consumed += 1; else if (this.decodeMode === ut.Strict) return 0;
        return this.emitCodePoint(Ul(this.result), this.consumed), this.errors && (t !== Fe.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed
    }

    stateNamedEntity(t, r) {
        const {decodeTree: u} = this;
        let n = u[this.treeIndex], i = (n & pt.VALUE_LENGTH) >> 14;
        for (; r < t.length; r++, this.excess++) {
            const a = t.charCodeAt(r);
            if (this.treeIndex = Wl(u, n, this.treeIndex + Math.max(1, i), a), this.treeIndex < 0) return this.result === 0 || this.decodeMode === ut.Attribute && (i === 0 || Gl(a)) ? 0 : this.emitNotTerminatedNamedEntity();
            if (n = u[this.treeIndex], i = (n & pt.VALUE_LENGTH) >> 14, i !== 0) {
                if (a === Fe.SEMI) return this.emitNamedEntityData(this.treeIndex, i, this.consumed + this.excess);
                this.decodeMode !== ut.Strict && (this.result = this.treeIndex, this.consumed += this.excess, this.excess = 0)
            }
        }
        return -1
    }

    emitNotTerminatedNamedEntity() {
        var t;
        const {result: r, decodeTree: u} = this, n = (u[r] & pt.VALUE_LENGTH) >> 14;
        return this.emitNamedEntityData(r, n, this.consumed), (t = this.errors) === null || t === void 0 || t.missingSemicolonAfterCharacterReference(), this.consumed
    }

    emitNamedEntityData(t, r, u) {
        const {decodeTree: n} = this;
        return this.emitCodePoint(r === 1 ? n[t] & ~pt.VALUE_LENGTH : n[t + 1], u), r === 3 && this.emitCodePoint(n[t + 2], u), u
    }

    end() {
        var t;
        switch (this.state) {
            case Oe.NamedEntity:
                return this.result !== 0 && (this.decodeMode !== ut.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
            case Oe.NumericDecimal:
                return this.emitNumericEntity(0, 2);
            case Oe.NumericHex:
                return this.emitNumericEntity(0, 3);
            case Oe.NumericStart:
                return (t = this.errors) === null || t === void 0 || t.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
            case Oe.EntityStart:
                return 0
        }
    }
};

function Ja(e) {
    let t = "";
    const r = new za(e, u => t += $u(u));
    return function (n, i) {
        let a = 0, s = 0;
        for (; (s = n.indexOf("&", s)) >= 0;) {
            t += n.slice(a, s), r.startEntity(i);
            const l = r.write(n, s + 1);
            if (l < 0) {
                a = s + r.end();
                break
            }
            a = s + l, s = l === 0 ? a + 1 : a
        }
        const o = t + n.slice(a);
        return t = "", o
    }
}

function Wl(e, t, r, u) {
    const n = (t & pt.BRANCH_LENGTH) >> 7, i = t & pt.JUMP_TABLE;
    if (n === 0) return i !== 0 && u === i ? r : -1;
    if (i) {
        const o = u - i;
        return o < 0 || o >= n ? -1 : e[r + o] - 1
    }
    let a = r, s = a + n - 1;
    for (; a <= s;) {
        const o = a + s >>> 1, l = e[o];
        if (l < u) a = o + 1; else if (l > u) s = o - 1; else return e[o + n]
    }
    return -1
}

Ja(qa);
Ja(Za);
const Ni = /["&'<>$\x80-\uFFFF]/g,
    Kl = new Map([[34, "&quot;"], [38, "&amp;"], [39, "&apos;"], [60, "&lt;"], [62, "&gt;"]]),
    ql = String.prototype.codePointAt != null ? (e, t) => e.codePointAt(t) : (e, t) => (e.charCodeAt(t) & 64512) === 55296 ? (e.charCodeAt(t) - 55296) * 1024 + e.charCodeAt(t + 1) - 56320 + 65536 : e.charCodeAt(t);

function Va(e) {
    let t = "", r = 0, u;
    for (; (u = Ni.exec(e)) !== null;) {
        const n = u.index, i = e.charCodeAt(n), a = Kl.get(i);
        a !== void 0 ? (t += e.substring(r, n) + a, r = n + 1) : (t += `${e.substring(r, n)}&#x${ql(e, n).toString(16)};`, r = Ni.lastIndex += +((i & 64512) === 55296))
    }
    return t + e.substr(r)
}

function ja(e, t) {
    return function (u) {
        let n, i = 0, a = "";
        for (; n = e.exec(u);) i !== n.index && (a += u.substring(i, n.index)), a += t.get(n[0].charCodeAt(0)), i = n.index + 1;
        return a + u.substring(i)
    }
}

const Zl = ja(/["&\u00A0]/g, new Map([[34, "&quot;"], [38, "&amp;"], [160, "&nbsp;"]])),
    zl = ja(/[&<>\u00A0]/g, new Map([[38, "&amp;"], [60, "&lt;"], [62, "&gt;"], [160, "&nbsp;"]])),
    Jl = new Map(["altGlyph", "altGlyphDef", "altGlyphItem", "animateColor", "animateMotion", "animateTransform", "clipPath", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "foreignObject", "glyphRef", "linearGradient", "radialGradient", "textPath"].map(e => [e.toLowerCase(), e])),
    Vl = new Map(["definitionURL", "attributeName", "attributeType", "baseFrequency", "baseProfile", "calcMode", "clipPathUnits", "diffuseConstant", "edgeMode", "filterUnits", "glyphRef", "gradientTransform", "gradientUnits", "kernelMatrix", "kernelUnitLength", "keyPoints", "keySplines", "keyTimes", "lengthAdjust", "limitingConeAngle", "markerHeight", "markerUnits", "markerWidth", "maskContentUnits", "maskUnits", "numOctaves", "pathLength", "patternContentUnits", "patternTransform", "patternUnits", "pointsAtX", "pointsAtY", "pointsAtZ", "preserveAlpha", "preserveAspectRatio", "primitiveUnits", "refX", "refY", "repeatCount", "repeatDur", "requiredExtensions", "requiredFeatures", "specularConstant", "specularExponent", "spreadMethod", "startOffset", "stdDeviation", "stitchTiles", "surfaceScale", "systemLanguage", "tableValues", "targetX", "targetY", "textLength", "viewBox", "viewTarget", "xChannelSelector", "yChannelSelector", "zoomAndPan"].map(e => [e.toLowerCase(), e])),
    jl = new Set(["style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript"]);

function Xl(e) {
    return e.replace(/"/g, "&quot;")
}

function $l(e, t) {
    var r;
    if (!e) return;
    const u = ((r = t.encodeEntities) !== null && r !== void 0 ? r : t.decodeEntities) === !1 ? Xl : t.xmlMode || t.encodeEntities !== "utf8" ? Va : Zl;
    return Object.keys(e).map(n => {
        var i, a;
        const s = (i = e[n]) !== null && i !== void 0 ? i : "";
        return t.xmlMode === "foreign" && (n = (a = Vl.get(n)) !== null && a !== void 0 ? a : n), !t.emptyAttrs && !t.xmlMode && s === "" ? n : `${n}="${u(s)}"`
    }).join(" ")
}

const wi = new Set(["area", "base", "basefont", "br", "col", "command", "embed", "frame", "hr", "img", "input", "isindex", "keygen", "link", "meta", "param", "source", "track", "wbr"]);

function du(e, t = {}) {
    const r = "length" in e ? e : [e];
    let u = "";
    for (let n = 0; n < r.length; n++) u += ef(r[n], t);
    return u
}

function ef(e, t) {
    switch (e.type) {
        case vl:
            return du(e.children, t);
        case Fl:
        case wl:
            return nf(e);
        case Dl:
            return of(e);
        case Ll:
            return sf(e);
        case Bl:
        case Rl:
        case Ol:
            return uf(e, t);
        case Nl:
            return af(e, t)
    }
}

const tf = new Set(["mi", "mo", "mn", "ms", "mtext", "annotation-xml", "foreignObject", "desc", "title"]),
    rf = new Set(["svg", "math"]);

function uf(e, t) {
    var r;
    t.xmlMode === "foreign" && (e.name = (r = Jl.get(e.name)) !== null && r !== void 0 ? r : e.name, e.parent && tf.has(e.parent.name) && (t = {
        ...t,
        xmlMode: !1
    })), !t.xmlMode && rf.has(e.name) && (t = {...t, xmlMode: "foreign"});
    let u = `<${e.name}`;
    const n = $l(e.attribs, t);
    return n && (u += ` ${n}`), e.children.length === 0 && (t.xmlMode ? t.selfClosingTags !== !1 : t.selfClosingTags && wi.has(e.name)) ? (t.xmlMode || (u += " "), u += "/>") : (u += ">", e.children.length > 0 && (u += du(e.children, t)), (t.xmlMode || !wi.has(e.name)) && (u += `</${e.name}>`)), u
}

function nf(e) {
    return `<${e.data}>`
}

function af(e, t) {
    var r;
    let u = e.data || "";
    return ((r = t.encodeEntities) !== null && r !== void 0 ? r : t.decodeEntities) !== !1 && !(!t.xmlMode && e.parent && jl.has(e.parent.name)) && (u = t.xmlMode || t.encodeEntities !== "utf8" ? Va(u) : zl(u)), u
}

function sf(e) {
    return `<![CDATA[${e.children[0].data}]]>`
}

function of(e) {
    return `<!--${e.data}-->`
}

function Xa(e, t) {
    return du(e, t)
}

function cf(e, t) {
    return Be(e) ? e.children.map(r => Xa(r, t)).join("") : ""
}

function Ur(e) {
    return Array.isArray(e) ? e.map(Ur).join("") : he(e) ? e.name === "br" ? `
` : Ur(e.children) : lu(e) ? Ur(e.children) : it(e) ? e.data : ""
}

function Ut(e) {
    return Array.isArray(e) ? e.map(Ut).join("") : Be(e) && !fu(e) ? Ut(e.children) : it(e) ? e.data : ""
}

function Zr(e) {
    return Array.isArray(e) ? e.map(Zr).join("") : Be(e) && (e.type === _e.Tag || lu(e)) ? Zr(e.children) : it(e) ? e.data : ""
}

function hu(e) {
    return Be(e) ? e.children : []
}

function $a(e) {
    return e.parent || null
}

function es(e) {
    const t = $a(e);
    if (t != null) return hu(t);
    const r = [e];
    let {prev: u, next: n} = e;
    for (; u != null;) r.unshift(u), {prev: u} = u;
    for (; n != null;) r.push(n), {next: n} = n;
    return r
}

function lf(e, t) {
    var r;
    return (r = e.attribs) === null || r === void 0 ? void 0 : r[t]
}

function ff(e, t) {
    return e.attribs != null && Object.prototype.hasOwnProperty.call(e.attribs, t) && e.attribs[t] != null
}

function df(e) {
    return e.name
}

function Ln(e) {
    let {next: t} = e;
    for (; t !== null && !he(t);) ({next: t} = t);
    return t
}

function Fn(e) {
    let {prev: t} = e;
    for (; t !== null && !he(t);) ({prev: t} = t);
    return t
}

function Ot(e) {
    if (e.prev && (e.prev.next = e.next), e.next && (e.next.prev = e.prev), e.parent) {
        const t = e.parent.children, r = t.lastIndexOf(e);
        r >= 0 && t.splice(r, 1)
    }
    e.next = null, e.prev = null, e.parent = null
}

function hf(e, t) {
    const r = t.prev = e.prev;
    r && (r.next = t);
    const u = t.next = e.next;
    u && (u.prev = t);
    const n = t.parent = e.parent;
    if (n) {
        const i = n.children;
        i[i.lastIndexOf(e)] = t, e.parent = null
    }
}

function Af(e, t) {
    if (Ot(t), t.next = null, t.parent = e, e.children.push(t) > 1) {
        const r = e.children[e.children.length - 2];
        r.next = t, t.prev = r
    } else t.prev = null
}

function pf(e, t) {
    Ot(t);
    const {parent: r} = e, u = e.next;
    if (t.next = u, t.prev = e, e.next = t, t.parent = r, u) {
        if (u.prev = t, r) {
            const n = r.children;
            n.splice(n.lastIndexOf(u), 0, t)
        }
    } else r && r.children.push(t)
}

function bf(e, t) {
    if (Ot(t), t.parent = e, t.prev = null, e.children.unshift(t) !== 1) {
        const r = e.children[1];
        r.prev = t, t.next = r
    } else t.next = null
}

function gf(e, t) {
    Ot(t);
    const {parent: r} = e;
    if (r) {
        const u = r.children;
        u.splice(u.indexOf(e), 0, t)
    }
    e.prev && (e.prev.next = t), t.parent = r, t.prev = e.prev, t.next = e, e.prev = t
}

function _r(e, t, r = !0, u = 1 / 0) {
    return Mn(e, Array.isArray(t) ? t : [t], r, u)
}

function Mn(e, t, r, u) {
    const n = [], i = [Array.isArray(t) ? t : [t]], a = [0];
    for (; ;) {
        if (a[0] >= i[0].length) {
            if (a.length === 1) return n;
            i.shift(), a.shift();
            continue
        }
        const s = i[0][a[0]++];
        if (e(s) && (n.push(s), --u <= 0)) return n;
        r && Be(s) && s.children.length > 0 && (a.unshift(0), i.unshift(s.children))
    }
}

function mf(e, t) {
    return t.find(e)
}

function Pn(e, t, r = !0) {
    const u = Array.isArray(t) ? t : [t];
    for (let n = 0; n < u.length; n++) {
        const i = u[n];
        if (he(i) && e(i)) return i;
        if (r && Be(i) && i.children.length > 0) {
            const a = Pn(e, i.children, !0);
            if (a) return a
        }
    }
    return null
}

function ts(e, t) {
    return (Array.isArray(t) ? t : [t]).some(r => he(r) && e(r) || Be(r) && ts(e, r.children))
}

function Ef(e, t) {
    const r = [], u = [Array.isArray(t) ? t : [t]], n = [0];
    for (; ;) {
        if (n[0] >= u[0].length) {
            if (u.length === 1) return r;
            u.shift(), n.shift();
            continue
        }
        const i = u[0][n[0]++];
        he(i) && e(i) && r.push(i), Be(i) && i.children.length > 0 && (n.unshift(0), u.unshift(i.children))
    }
}

const zr = {
    tag_name(e) {
        return typeof e == "function" ? t => he(t) && e(t.name) : e === "*" ? he : t => he(t) && t.name === e
    }, tag_type(e) {
        return typeof e == "function" ? t => e(t.type) : t => t.type === e
    }, tag_contains(e) {
        return typeof e == "function" ? t => it(t) && e(t.data) : t => it(t) && t.data === e
    }
};

function Un(e, t) {
    return typeof t == "function" ? r => he(r) && t(r.attribs[e]) : r => he(r) && r.attribs[e] === t
}

function Tf(e, t) {
    return r => e(r) || t(r)
}

function rs(e) {
    const t = Object.keys(e).map(r => {
        const u = e[r];
        return Object.prototype.hasOwnProperty.call(zr, r) ? zr[r](u) : Un(r, u)
    });
    return t.length === 0 ? null : t.reduce(Tf)
}

function _f(e, t) {
    const r = rs(e);
    return r ? r(t) : !0
}

function xf(e, t, r, u = 1 / 0) {
    const n = rs(e);
    return n ? _r(n, t, r, u) : []
}

function Cf(e, t, r = !0) {
    return Array.isArray(t) || (t = [t]), Pn(Un("id", e), t, r)
}

function Qt(e, t, r = !0, u = 1 / 0) {
    return _r(zr.tag_name(e), t, r, u)
}

function If(e, t, r = !0, u = 1 / 0) {
    return _r(Un("class", e), t, r, u)
}

function yf(e, t, r = !0, u = 1 / 0) {
    return _r(zr.tag_type(e), t, r, u)
}

function kf(e) {
    let t = e.length;
    for (; --t >= 0;) {
        const r = e[t];
        if (t > 0 && e.lastIndexOf(r, t - 1) >= 0) {
            e.splice(t, 1);
            continue
        }
        for (let u = r.parent; u; u = u.parent) if (e.includes(u)) {
            e.splice(t, 1);
            break
        }
    }
    return e
}

var je;
(function (e) {
    e[e.DISCONNECTED = 1] = "DISCONNECTED", e[e.PRECEDING = 2] = "PRECEDING", e[e.FOLLOWING = 4] = "FOLLOWING", e[e.CONTAINS = 8] = "CONTAINS", e[e.CONTAINED_BY = 16] = "CONTAINED_BY"
})(je || (je = {}));

function us(e, t) {
    const r = [], u = [];
    if (e === t) return 0;
    let n = Be(e) ? e : e.parent;
    for (; n;) r.unshift(n), n = n.parent;
    for (n = Be(t) ? t : t.parent; n;) u.unshift(n), n = n.parent;
    const i = Math.min(r.length, u.length);
    let a = 0;
    for (; a < i && r[a] === u[a];) a++;
    if (a === 0) return je.DISCONNECTED;
    const s = r[a - 1], o = s.children, l = r[a], h = u[a];
    return o.indexOf(l) > o.indexOf(h) ? s === t ? je.FOLLOWING | je.CONTAINED_BY : je.FOLLOWING : s === e ? je.PRECEDING | je.CONTAINS : je.PRECEDING
}

function Yt(e) {
    return e = e.filter((t, r, u) => !u.includes(t, r + 1)), e.sort((t, r) => {
        const u = us(t, r);
        return u & je.PRECEDING ? -1 : u & je.FOLLOWING ? 1 : 0
    }), e
}

function Sf(e) {
    const t = Jr(Bf, e);
    return t ? t.name === "feed" ? vf(t) : Nf(t) : null
}

function vf(e) {
    var t;
    const r = e.children, u = {
        type: "atom", items: Qt("entry", r).map(a => {
            var s;
            const {children: o} = a, l = {media: ns(o)};
            Ge(l, "id", "id", o), Ge(l, "title", "title", o);
            const h = (s = Jr("link", o)) === null || s === void 0 ? void 0 : s.attribs.href;
            h && (l.link = h);
            const p = bt("summary", o) || bt("content", o);
            p && (l.description = p);
            const g = bt("updated", o);
            return g && (l.pubDate = new Date(g)), l
        })
    };
    Ge(u, "id", "id", r), Ge(u, "title", "title", r);
    const n = (t = Jr("link", r)) === null || t === void 0 ? void 0 : t.attribs.href;
    n && (u.link = n), Ge(u, "description", "subtitle", r);
    const i = bt("updated", r);
    return i && (u.updated = new Date(i)), Ge(u, "author", "email", r, !0), u
}

function Nf(e) {
    var t, r;
    const u = (r = (t = Jr("channel", e.children)) === null || t === void 0 ? void 0 : t.children) !== null && r !== void 0 ? r : [],
        n = {
            type: e.name.substr(0, 3), id: "", items: Qt("item", e.children).map(a => {
                const {children: s} = a, o = {media: ns(s)};
                Ge(o, "id", "guid", s), Ge(o, "title", "title", s), Ge(o, "link", "link", s), Ge(o, "description", "description", s);
                const l = bt("pubDate", s) || bt("dc:date", s);
                return l && (o.pubDate = new Date(l)), o
            })
        };
    Ge(n, "title", "title", u), Ge(n, "link", "link", u), Ge(n, "description", "description", u);
    const i = bt("lastBuildDate", u);
    return i && (n.updated = new Date(i)), Ge(n, "author", "managingEditor", u, !0), n
}

const wf = ["url", "type", "lang"],
    Df = ["fileSize", "bitrate", "framerate", "samplingrate", "channels", "duration", "height", "width"];

function ns(e) {
    return Qt("media:content", e).map(t => {
        const {attribs: r} = t, u = {medium: r.medium, isDefault: !!r.isDefault};
        for (const n of wf) r[n] && (u[n] = r[n]);
        for (const n of Df) r[n] && (u[n] = parseInt(r[n], 10));
        return r.expression && (u.expression = r.expression), u
    })
}

function Jr(e, t) {
    return Qt(e, t, !0, 1)[0]
}

function bt(e, t, r = !1) {
    return Ut(Qt(e, t, r, 1)).trim()
}

function Ge(e, t, r, u, n = !1) {
    const i = bt(r, u, n);
    i && (e[t] = i)
}

function Bf(e) {
    return e === "rss" || e === "feed" || e === "rdf:RDF"
}

const Au = Object.freeze(Object.defineProperty({
    __proto__: null,
    get DocumentPosition() {
        return je
    },
    append: pf,
    appendChild: Af,
    compareDocumentPosition: us,
    existsOne: ts,
    filter: _r,
    find: Mn,
    findAll: Ef,
    findOne: Pn,
    findOneChild: mf,
    getAttributeValue: lf,
    getChildren: hu,
    getElementById: Cf,
    getElements: xf,
    getElementsByClassName: If,
    getElementsByTagName: Qt,
    getElementsByTagType: yf,
    getFeed: Sf,
    getInnerHTML: cf,
    getName: df,
    getOuterHTML: Xa,
    getParent: $a,
    getSiblings: es,
    getText: Ur,
    hasAttrib: ff,
    hasChildren: Be,
    innerText: Zr,
    isCDATA: lu,
    isComment: fu,
    isDocument: mt,
    isTag: he,
    isText: it,
    nextElementSibling: Ln,
    prepend: gf,
    prependChild: bf,
    prevElementSibling: Fn,
    removeElement: Ot,
    removeSubsets: kf,
    replaceElement: hf,
    testElement: _f,
    textContent: Ut,
    uniqueSort: Yt
}, Symbol.toStringTag, {value: "Module"})), Rf = {_useHtmlParser2: !1};

function tn(e, t) {
    if (!e) return t ?? Rf;
    const r = {_useHtmlParser2: !!e.xmlMode, ...t, ...e};
    return e.xml ? (r._useHtmlParser2 = !0, r.xmlMode = !0, e.xml !== !0 && Object.assign(r, e.xml)) : e.xmlMode && (r._useHtmlParser2 = !0), r
}

function is(e, t, r) {
    return e ? e(t ?? e._root.children, null, void 0, r).toString() : ""
}

function Of(e, t) {
    return typeof e == "object" && e != null && !("length" in e) && !("type" in e)
}

function Lf(e, t) {
    const r = Of(e) ? (t = e, void 0) : e, u = {...this === null || this === void 0 ? void 0 : this._options, ...tn(t)};
    return is(this, r, u)
}

function Ff(e) {
    const t = {...this._options, xmlMode: !0};
    return is(this, e, t)
}

function dr(e) {
    const t = e ?? (this ? this.root() : []);
    let r = "";
    for (let u = 0; u < t.length; u++) r += Ut(t[u]);
    return r
}

function Mf(e, t, r = typeof t == "boolean" ? t : !1) {
    if (!e || typeof e != "string") return null;
    typeof t == "boolean" && (r = t);
    const u = this.load(e, this._options, !1);
    return r || u("script").remove(), [...u.root()[0].children]
}

function Pf() {
    return this(this._root)
}

function Hn(e, t) {
    if (t === e) return !1;
    let r = t;
    for (; r && r !== r.parent;) if (r = r.parent, r === e) return !0;
    return !1
}

function Uf(e) {
    return this.root().extract(e)
}

function as(e, t) {
    if (!Di(e) || !Di(t)) return;
    let r = e.length;
    const u = +t.length;
    for (let n = 0; n < u; n++) e[r++] = t[n];
    return e.length = r, e
}

function Di(e) {
    if (Array.isArray(e)) return !0;
    if (typeof e != "object" || e === null || !("length" in e) || typeof e.length != "number" || e.length < 0) return !1;
    for (let t = 0; t < e.length; t++) if (!(t in e)) return !1;
    return !0
}

const Hf = Object.freeze(Object.defineProperty({
    __proto__: null,
    contains: Hn,
    extract: Uf,
    html: Lf,
    merge: as,
    parseHTML: Mf,
    root: Pf,
    text: dr,
    xml: Ff
}, Symbol.toStringTag, {value: "Module"}));

function dt(e) {
    return e.cheerio != null
}

function Qf(e) {
    return e.replace(/[._-](\w|$)/g, (t, r) => r.toUpperCase())
}

function Yf(e) {
    return e.replace(/[A-Z]/g, "-$&").toLowerCase()
}

function Ne(e, t) {
    const r = e.length;
    for (let u = 0; u < r; u++) t(e[u], u);
    return e
}

var Ct;
(function (e) {
    e[e.LowerA = 97] = "LowerA", e[e.LowerZ = 122] = "LowerZ", e[e.UpperA = 65] = "UpperA", e[e.UpperZ = 90] = "UpperZ", e[e.Exclamation = 33] = "Exclamation"
})(Ct || (Ct = {}));

function rn(e) {
    const t = e.indexOf("<");
    if (t < 0 || t > e.length - 3) return !1;
    const r = e.charCodeAt(t + 1);
    return (r >= Ct.LowerA && r <= Ct.LowerZ || r >= Ct.UpperA && r <= Ct.UpperZ || r === Ct.Exclamation) && e.includes(">", t + 2)
}

const hr = Object.prototype.hasOwnProperty, Ar = /\s+/, un = "data-",
    Qn = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
    Gf = /^{[^]*}$|^\[[^]*]$/;

function Vr(e, t, r) {
    var u;
    if (!(!e || !he(e))) {
        if ((u = e.attribs) !== null && u !== void 0 || (e.attribs = {}), !t) return e.attribs;
        if (hr.call(e.attribs, t)) return !r && Qn.test(t) ? t : e.attribs[t];
        if (e.name === "option" && t === "value") return dr(e.children);
        if (e.name === "input" && (e.attribs.type === "radio" || e.attribs.type === "checkbox") && t === "value") return "on"
    }
}

function Pt(e, t, r) {
    r === null ? os(e, t) : e.attribs[t] = `${r}`
}

function Wf(e, t) {
    if (typeof e == "object" || t !== void 0) {
        if (typeof t == "function") {
            if (typeof e != "string") throw new Error("Bad combination of arguments.");
            return Ne(this, (r, u) => {
                he(r) && Pt(r, e, t.call(r, u, r.attribs[e]))
            })
        }
        return Ne(this, r => {
            if (he(r)) if (typeof e == "object") for (const u of Object.keys(e)) {
                const n = e[u];
                Pt(r, u, n)
            } else Pt(r, e, t)
        })
    }
    return arguments.length > 1 ? this : Vr(this[0], e, this.options.xmlMode)
}

function Bi(e, t, r) {
    return t in e ? e[t] : !r && Qn.test(t) ? Vr(e, t, !1) !== void 0 : Vr(e, t, r)
}

function Lu(e, t, r, u) {
    t in e ? e[t] = r : Pt(e, t, !u && Qn.test(t) ? r ? "" : null : `${r}`)
}

function Kf(e, t) {
    var r;
    if (typeof e == "string" && t === void 0) {
        const u = this[0];
        if (!u || !he(u)) return;
        switch (e) {
            case"style": {
                const n = this.css(), i = Object.keys(n);
                for (let a = 0; a < i.length; a++) n[a] = i[a];
                return n.length = i.length, n
            }
            case"tagName":
            case"nodeName":
                return u.name.toUpperCase();
            case"href":
            case"src": {
                const n = (r = u.attribs) === null || r === void 0 ? void 0 : r[e];
                return typeof URL < "u" && (e === "href" && (u.tagName === "a" || u.tagName === "link") || e === "src" && (u.tagName === "img" || u.tagName === "iframe" || u.tagName === "audio" || u.tagName === "video" || u.tagName === "source")) && n !== void 0 && this.options.baseURI ? new URL(n, this.options.baseURI).href : n
            }
            case"innerText":
                return Zr(u);
            case"textContent":
                return Ut(u);
            case"outerHTML":
                return this.clone().wrap("<container />").parent().html();
            case"innerHTML":
                return this.html();
            default:
                return Bi(u, e, this.options.xmlMode)
        }
    }
    if (typeof e == "object" || t !== void 0) {
        if (typeof t == "function") {
            if (typeof e == "object") throw new TypeError("Bad combination of arguments.");
            return Ne(this, (u, n) => {
                he(u) && Lu(u, e, t.call(u, n, Bi(u, e, this.options.xmlMode)), this.options.xmlMode)
            })
        }
        return Ne(this, u => {
            if (he(u)) if (typeof e == "object") for (const n of Object.keys(e)) {
                const i = e[n];
                Lu(u, n, i, this.options.xmlMode)
            } else Lu(u, e, t, this.options.xmlMode)
        })
    }
}

function Ri(e, t, r) {
    var u;
    (u = e.data) !== null && u !== void 0 || (e.data = {}), typeof t == "object" ? Object.assign(e.data, t) : typeof t == "string" && r !== void 0 && (e.data[t] = r)
}

function qf(e) {
    for (const t of Object.keys(e.attribs)) {
        if (!t.startsWith(un)) continue;
        const r = Qf(t.slice(un.length));
        hr.call(e.data, r) || (e.data[r] = ss(e.attribs[t]))
    }
    return e.data
}

function Zf(e, t) {
    const r = un + Yf(t), u = e.data;
    if (hr.call(u, t)) return u[t];
    if (hr.call(e.attribs, r)) return u[t] = ss(e.attribs[r])
}

function ss(e) {
    if (e === "null") return null;
    if (e === "true") return !0;
    if (e === "false") return !1;
    const t = Number(e);
    if (e === String(t)) return t;
    if (Gf.test(e)) try {
        return JSON.parse(e)
    } catch {
    }
    return e
}

function zf(e, t) {
    var r;
    const u = this[0];
    if (!u || !he(u)) return;
    const n = u;
    return (r = n.data) !== null && r !== void 0 || (n.data = {}), e == null ? qf(n) : typeof e == "object" || t !== void 0 ? (Ne(this, i => {
        he(i) && (typeof e == "object" ? Ri(i, e) : Ri(i, e, t))
    }), this) : Zf(n, e)
}

function Jf(e) {
    const t = arguments.length === 0, r = this[0];
    if (!r || !he(r)) return t ? void 0 : this;
    switch (r.name) {
        case"textarea":
            return this.text(e);
        case"select": {
            const u = this.find("option:selected");
            if (!t) {
                if (this.attr("multiple") == null && typeof e == "object") return this;
                this.find("option").removeAttr("selected");
                const n = typeof e == "object" ? e : [e];
                for (const i of n) this.find(`option[value="${i}"]`).attr("selected", "");
                return this
            }
            return this.attr("multiple") ? u.toArray().map(n => dr(n.children)) : u.attr("value")
        }
        case"input":
        case"option":
            return t ? this.attr("value") : this.attr("value", e)
    }
}

function os(e, t) {
    !e.attribs || !hr.call(e.attribs, t) || delete e.attribs[t]
}

function jr(e) {
    return e ? e.trim().split(Ar) : []
}

function Vf(e) {
    const t = jr(e);
    for (const r of t) Ne(this, u => {
        he(u) && os(u, r)
    });
    return this
}

function jf(e) {
    return this.toArray().some(t => {
        const r = he(t) && t.attribs.class;
        let u = -1;
        if (r && e.length > 0) for (; (u = r.indexOf(e, u + 1)) > -1;) {
            const n = u + e.length;
            if ((u === 0 || Ar.test(r[u - 1])) && (n === r.length || Ar.test(r[n]))) return !0
        }
        return !1
    })
}

function cs(e) {
    if (typeof e == "function") return Ne(this, (u, n) => {
        if (he(u)) {
            const i = u.attribs.class || "";
            cs.call([u], e.call(u, n, i))
        }
    });
    if (!e || typeof e != "string") return this;
    const t = e.split(Ar), r = this.length;
    for (let u = 0; u < r; u++) {
        const n = this[u];
        if (!he(n)) continue;
        const i = Vr(n, "class", !1);
        if (i) {
            let a = ` ${i} `;
            for (const s of t) {
                const o = `${s} `;
                a.includes(` ${o}`) || (a += o)
            }
            Pt(n, "class", a.trim())
        } else Pt(n, "class", t.join(" ").trim())
    }
    return this
}

function ls(e) {
    if (typeof e == "function") return Ne(this, (n, i) => {
        he(n) && ls.call([n], e.call(n, i, n.attribs.class || ""))
    });
    const t = jr(e), r = t.length, u = arguments.length === 0;
    return Ne(this, n => {
        if (he(n)) if (u) n.attribs.class = ""; else {
            const i = jr(n.attribs.class);
            let a = !1;
            for (let s = 0; s < r; s++) {
                const o = i.indexOf(t[s]);
                o >= 0 && (i.splice(o, 1), a = !0, s--)
            }
            a && (n.attribs.class = i.join(" "))
        }
    })
}

function fs(e, t) {
    if (typeof e == "function") return Ne(this, (a, s) => {
        he(a) && fs.call([a], e.call(a, s, a.attribs.class || "", t), t)
    });
    if (!e || typeof e != "string") return this;
    const r = e.split(Ar), u = r.length, n = typeof t == "boolean" ? t ? 1 : -1 : 0, i = this.length;
    for (let a = 0; a < i; a++) {
        const s = this[a];
        if (!he(s)) continue;
        const o = jr(s.attribs.class);
        for (let l = 0; l < u; l++) {
            const h = o.indexOf(r[l]);
            n >= 0 && h < 0 ? o.push(r[l]) : n <= 0 && h >= 0 && o.splice(h, 1)
        }
        s.attribs.class = o.join(" ")
    }
    return this
}

const Xf = Object.freeze(Object.defineProperty({
    __proto__: null,
    addClass: cs,
    attr: Wf,
    data: zf,
    hasClass: jf,
    prop: Kf,
    removeAttr: Vf,
    removeClass: ls,
    toggleClass: fs,
    val: Jf
}, Symbol.toStringTag, {value: "Module"}));
var fe;
(function (e) {
    e.Attribute = "attribute", e.Pseudo = "pseudo", e.PseudoElement = "pseudo-element", e.Tag = "tag", e.Universal = "universal", e.Adjacent = "adjacent", e.Child = "child", e.Descendant = "descendant", e.Parent = "parent", e.Sibling = "sibling", e.ColumnCombinator = "column-combinator"
})(fe || (fe = {}));
var Re;
(function (e) {
    e.Any = "any", e.Element = "element", e.End = "end", e.Equals = "equals", e.Exists = "exists", e.Hyphen = "hyphen", e.Not = "not", e.Start = "start"
})(Re || (Re = {}));
const Oi = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/, $f = /\\([\da-f]{1,6}\s?|(\s)|.)/gi,
    ed = new Map([[126, Re.Element], [94, Re.Start], [36, Re.End], [42, Re.Any], [33, Re.Not], [124, Re.Hyphen]]),
    td = new Set(["has", "not", "matches", "is", "where", "host", "host-context"]);

function rr(e) {
    switch (e.type) {
        case fe.Adjacent:
        case fe.Child:
        case fe.Descendant:
        case fe.Parent:
        case fe.Sibling:
        case fe.ColumnCombinator:
            return !0;
        default:
            return !1
    }
}

const rd = new Set(["contains", "icontains"]);

function ud(e, t, r) {
    const u = parseInt(t, 16) - 65536;
    return u !== u || r ? t : u < 0 ? String.fromCharCode(u + 65536) : String.fromCharCode(u >> 10 | 55296, u & 1023 | 56320)
}

function Jt(e) {
    return e.replace($f, ud)
}

function Fu(e) {
    return e === 39 || e === 34
}

function Li(e) {
    return e === 32 || e === 9 || e === 10 || e === 12 || e === 13
}

function pu(e) {
    const t = [], r = ds(t, `${e}`, 0);
    if (r < e.length) throw new Error(`Unmatched selector: ${e.slice(r)}`);
    return t
}

function ds(e, t, r) {
    let u = [];

    function n(g) {
        const d = t.slice(r + g).match(Oi);
        if (!d) throw new Error(`Expected name, found ${t.slice(r)}`);
        const [E] = d;
        return r += g + E.length, Jt(E)
    }

    function i(g) {
        for (r += g; r < t.length && Li(t.charCodeAt(r));) r++
    }

    function a() {
        r += 1;
        const g = r;
        let d = 1;
        for (; d > 0 && r < t.length; r++) t.charCodeAt(r) === 40 && !s(r) ? d++ : t.charCodeAt(r) === 41 && !s(r) && d--;
        if (d) throw new Error("Parenthesis not matched");
        return Jt(t.slice(g, r - 1))
    }

    function s(g) {
        let d = 0;
        for (; t.charCodeAt(--g) === 92;) d++;
        return (d & 1) === 1
    }

    function o() {
        if (u.length > 0 && rr(u[u.length - 1])) throw new Error("Did not expect successive traversals.")
    }

    function l(g) {
        if (u.length > 0 && u[u.length - 1].type === fe.Descendant) {
            u[u.length - 1].type = g;
            return
        }
        o(), u.push({type: g})
    }

    function h(g, d) {
        u.push({type: fe.Attribute, name: g, action: d, value: n(1), namespace: null, ignoreCase: "quirks"})
    }

    function p() {
        if (u.length && u[u.length - 1].type === fe.Descendant && u.pop(), u.length === 0) throw new Error("Empty sub-selector");
        e.push(u)
    }

    if (i(0), t.length === r) return r;
    e:for (; r < t.length;) {
        const g = t.charCodeAt(r);
        switch (g) {
            case 32:
            case 9:
            case 10:
            case 12:
            case 13: {
                (u.length === 0 || u[0].type !== fe.Descendant) && (o(), u.push({type: fe.Descendant})), i(1);
                break
            }
            case 62: {
                l(fe.Child), i(1);
                break
            }
            case 60: {
                l(fe.Parent), i(1);
                break
            }
            case 126: {
                l(fe.Sibling), i(1);
                break
            }
            case 43: {
                l(fe.Adjacent), i(1);
                break
            }
            case 46: {
                h("class", Re.Element);
                break
            }
            case 35: {
                h("id", Re.Equals);
                break
            }
            case 91: {
                i(1);
                let d, E = null;
                t.charCodeAt(r) === 124 ? d = n(1) : t.startsWith("*|", r) ? (E = "*", d = n(2)) : (d = n(0), t.charCodeAt(r) === 124 && t.charCodeAt(r + 1) !== 61 && (E = d, d = n(1))), i(0);
                let A = Re.Exists;
                const x = ed.get(t.charCodeAt(r));
                if (x) {
                    if (A = x, t.charCodeAt(r + 1) !== 61) throw new Error("Expected `=`");
                    i(2)
                } else t.charCodeAt(r) === 61 && (A = Re.Equals, i(1));
                let _ = "", y = null;
                if (A !== "exists") {
                    if (Fu(t.charCodeAt(r))) {
                        const S = t.charCodeAt(r);
                        let L = r + 1;
                        for (; L < t.length && (t.charCodeAt(L) !== S || s(L));) L += 1;
                        if (t.charCodeAt(L) !== S) throw new Error("Attribute value didn't end");
                        _ = Jt(t.slice(r + 1, L)), r = L + 1
                    } else {
                        const S = r;
                        for (; r < t.length && (!Li(t.charCodeAt(r)) && t.charCodeAt(r) !== 93 || s(r));) r += 1;
                        _ = Jt(t.slice(S, r))
                    }
                    i(0);
                    const D = t.charCodeAt(r) | 32;
                    D === 115 ? (y = !1, i(1)) : D === 105 && (y = !0, i(1))
                }
                if (t.charCodeAt(r) !== 93) throw new Error("Attribute selector didn't terminate");
                r += 1;
                const v = {type: fe.Attribute, name: d, action: A, value: _, namespace: E, ignoreCase: y};
                u.push(v);
                break
            }
            case 58: {
                if (t.charCodeAt(r + 1) === 58) {
                    u.push({
                        type: fe.PseudoElement,
                        name: n(2).toLowerCase(),
                        data: t.charCodeAt(r) === 40 ? a() : null
                    });
                    continue
                }
                const d = n(1).toLowerCase();
                let E = null;
                if (t.charCodeAt(r) === 40) if (td.has(d)) {
                    if (Fu(t.charCodeAt(r + 1))) throw new Error(`Pseudo-selector ${d} cannot be quoted`);
                    if (E = [], r = ds(E, t, r + 1), t.charCodeAt(r) !== 41) throw new Error(`Missing closing parenthesis in :${d} (${t})`);
                    r += 1
                } else {
                    if (E = a(), rd.has(d)) {
                        const A = E.charCodeAt(0);
                        A === E.charCodeAt(E.length - 1) && Fu(A) && (E = E.slice(1, -1))
                    }
                    E = Jt(E)
                }
                u.push({type: fe.Pseudo, name: d, data: E});
                break
            }
            case 44: {
                p(), u = [], i(1);
                break
            }
            default: {
                if (t.startsWith("/*", r)) {
                    const A = t.indexOf("*/", r + 2);
                    if (A < 0) throw new Error("Comment was not terminated");
                    r = A + 2, u.length === 0 && i(0);
                    break
                }
                let d = null, E;
                if (g === 42) r += 1, E = "*"; else if (g === 124) {
                    if (E = "", t.charCodeAt(r + 1) === 124) {
                        l(fe.ColumnCombinator), i(2);
                        break
                    }
                } else if (Oi.test(t.slice(r))) E = n(0); else break e;
                t.charCodeAt(r) === 124 && t.charCodeAt(r + 1) !== 124 && (d = E, t.charCodeAt(r + 1) === 42 ? (E = "*", r += 2) : E = n(1)), u.push(E === "*" ? {
                    type: fe.Universal,
                    namespace: d
                } : {type: fe.Tag, name: E, namespace: d})
            }
        }
    }
    return p(), r
}

var Xr = {
    trueFunc: function () {
        return !0
    }, falseFunc: function () {
        return !1
    }
};
const ge = iu(Xr), hs = new Map([[fe.Universal, 50], [fe.Tag, 30], [fe.Attribute, 1], [fe.Pseudo, 0]]);

function Yn(e) {
    return !hs.has(e.type)
}

const nd = new Map([[Re.Exists, 10], [Re.Equals, 8], [Re.Not, 7], [Re.Start, 6], [Re.End, 6], [Re.Any, 5]]);

function id(e) {
    const t = e.map(As);
    for (let r = 1; r < e.length; r++) {
        const u = t[r];
        if (!(u < 0)) for (let n = r - 1; n >= 0 && u < t[n]; n--) {
            const i = e[n + 1];
            e[n + 1] = e[n], e[n] = i, t[n + 1] = t[n], t[n] = u
        }
    }
}

function As(e) {
    var t, r;
    let u = (t = hs.get(e.type)) !== null && t !== void 0 ? t : -1;
    return e.type === fe.Attribute ? (u = (r = nd.get(e.action)) !== null && r !== void 0 ? r : 4, e.action === Re.Equals && e.name === "id" && (u = 9), e.ignoreCase && (u >>= 1)) : e.type === fe.Pseudo && (e.data ? e.name === "has" || e.name === "contains" ? u = 0 : Array.isArray(e.data) ? (u = Math.min(...e.data.map(n => Math.min(...n.map(As)))), u < 0 && (u = 0)) : u = 2 : u = 3), u
}

const ad = /[-[\]{}()*+?.,\\^$|#\s]/g;

function Fi(e) {
    return e.replace(ad, "\\$&")
}

const sd = new Set(["accept", "accept-charset", "align", "alink", "axis", "bgcolor", "charset", "checked", "clear", "codetype", "color", "compact", "declare", "defer", "dir", "direction", "disabled", "enctype", "face", "frame", "hreflang", "http-equiv", "lang", "language", "link", "media", "method", "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly", "rel", "rev", "rules", "scope", "scrolling", "selected", "shape", "target", "text", "type", "valign", "valuetype", "vlink"]);

function Tt(e, t) {
    return typeof e.ignoreCase == "boolean" ? e.ignoreCase : e.ignoreCase === "quirks" ? !!t.quirksMode : !t.xmlMode && sd.has(e.name)
}

const od = {
    equals(e, t, r) {
        const {adapter: u} = r, {name: n} = t;
        let {value: i} = t;
        return Tt(t, r) ? (i = i.toLowerCase(), a => {
            const s = u.getAttributeValue(a, n);
            return s != null && s.length === i.length && s.toLowerCase() === i && e(a)
        }) : a => u.getAttributeValue(a, n) === i && e(a)
    }, hyphen(e, t, r) {
        const {adapter: u} = r, {name: n} = t;
        let {value: i} = t;
        const a = i.length;
        return Tt(t, r) ? (i = i.toLowerCase(), function (o) {
            const l = u.getAttributeValue(o, n);
            return l != null && (l.length === a || l.charAt(a) === "-") && l.substr(0, a).toLowerCase() === i && e(o)
        }) : function (o) {
            const l = u.getAttributeValue(o, n);
            return l != null && (l.length === a || l.charAt(a) === "-") && l.substr(0, a) === i && e(o)
        }
    }, element(e, t, r) {
        const {adapter: u} = r, {name: n, value: i} = t;
        if (/\s/.test(i)) return ge.falseFunc;
        const a = new RegExp(`(?:^|\\s)${Fi(i)}(?:$|\\s)`, Tt(t, r) ? "i" : "");
        return function (o) {
            const l = u.getAttributeValue(o, n);
            return l != null && l.length >= i.length && a.test(l) && e(o)
        }
    }, exists(e, {name: t}, {adapter: r}) {
        return u => r.hasAttrib(u, t) && e(u)
    }, start(e, t, r) {
        const {adapter: u} = r, {name: n} = t;
        let {value: i} = t;
        const a = i.length;
        return a === 0 ? ge.falseFunc : Tt(t, r) ? (i = i.toLowerCase(), s => {
            const o = u.getAttributeValue(s, n);
            return o != null && o.length >= a && o.substr(0, a).toLowerCase() === i && e(s)
        }) : s => {
            var o;
            return !!(!((o = u.getAttributeValue(s, n)) === null || o === void 0) && o.startsWith(i)) && e(s)
        }
    }, end(e, t, r) {
        const {adapter: u} = r, {name: n} = t;
        let {value: i} = t;
        const a = -i.length;
        return a === 0 ? ge.falseFunc : Tt(t, r) ? (i = i.toLowerCase(), s => {
            var o;
            return ((o = u.getAttributeValue(s, n)) === null || o === void 0 ? void 0 : o.substr(a).toLowerCase()) === i && e(s)
        }) : s => {
            var o;
            return !!(!((o = u.getAttributeValue(s, n)) === null || o === void 0) && o.endsWith(i)) && e(s)
        }
    }, any(e, t, r) {
        const {adapter: u} = r, {name: n, value: i} = t;
        if (i === "") return ge.falseFunc;
        if (Tt(t, r)) {
            const a = new RegExp(Fi(i), "i");
            return function (o) {
                const l = u.getAttributeValue(o, n);
                return l != null && l.length >= i.length && a.test(l) && e(o)
            }
        }
        return a => {
            var s;
            return !!(!((s = u.getAttributeValue(a, n)) === null || s === void 0) && s.includes(i)) && e(a)
        }
    }, not(e, t, r) {
        const {adapter: u} = r, {name: n} = t;
        let {value: i} = t;
        return i === "" ? a => !!u.getAttributeValue(a, n) && e(a) : Tt(t, r) ? (i = i.toLowerCase(), a => {
            const s = u.getAttributeValue(a, n);
            return (s == null || s.length !== i.length || s.toLowerCase() !== i) && e(a)
        }) : a => u.getAttributeValue(a, n) !== i && e(a)
    }
}, cd = new Set([9, 10, 12, 13, 32]), Mi = 48, ld = 57;

function fd(e) {
    if (e = e.trim().toLowerCase(), e === "even") return [2, 0];
    if (e === "odd") return [2, 1];
    let t = 0, r = 0, u = i(), n = a();
    if (t < e.length && e.charAt(t) === "n" && (t++, r = u * (n ?? 1), s(), t < e.length ? (u = i(), s(), n = a()) : u = n = 0), n === null || t < e.length) throw new Error(`n-th rule couldn't be parsed ('${e}')`);
    return [r, u * n];

    function i() {
        return e.charAt(t) === "-" ? (t++, -1) : (e.charAt(t) === "+" && t++, 1)
    }

    function a() {
        const o = t;
        let l = 0;
        for (; t < e.length && e.charCodeAt(t) >= Mi && e.charCodeAt(t) <= ld;) l = l * 10 + (e.charCodeAt(t) - Mi), t++;
        return t === o ? null : l
    }

    function s() {
        for (; t < e.length && cd.has(e.charCodeAt(t));) t++
    }
}

function dd(e) {
    const t = e[0], r = e[1] - 1;
    if (r < 0 && t <= 0) return ge.falseFunc;
    if (t === -1) return i => i <= r;
    if (t === 0) return i => i === r;
    if (t === 1) return r < 0 ? ge.trueFunc : i => i >= r;
    const u = Math.abs(t), n = (r % u + u) % u;
    return t > 1 ? i => i >= r && i % u === n : i => i <= r && i % u === n
}

function Br(e) {
    return dd(fd(e))
}

function Rr(e, t) {
    return r => {
        const u = t.getParent(r);
        return u != null && t.isTag(u) && e(r)
    }
}

const nn = {
    contains(e, t, {adapter: r}) {
        return function (n) {
            return e(n) && r.getText(n).includes(t)
        }
    }, icontains(e, t, {adapter: r}) {
        const u = t.toLowerCase();
        return function (i) {
            return e(i) && r.getText(i).toLowerCase().includes(u)
        }
    }, "nth-child"(e, t, {adapter: r, equals: u}) {
        const n = Br(t);
        return n === ge.falseFunc ? ge.falseFunc : n === ge.trueFunc ? Rr(e, r) : function (a) {
            const s = r.getSiblings(a);
            let o = 0;
            for (let l = 0; l < s.length && !u(a, s[l]); l++) r.isTag(s[l]) && o++;
            return n(o) && e(a)
        }
    }, "nth-last-child"(e, t, {adapter: r, equals: u}) {
        const n = Br(t);
        return n === ge.falseFunc ? ge.falseFunc : n === ge.trueFunc ? Rr(e, r) : function (a) {
            const s = r.getSiblings(a);
            let o = 0;
            for (let l = s.length - 1; l >= 0 && !u(a, s[l]); l--) r.isTag(s[l]) && o++;
            return n(o) && e(a)
        }
    }, "nth-of-type"(e, t, {adapter: r, equals: u}) {
        const n = Br(t);
        return n === ge.falseFunc ? ge.falseFunc : n === ge.trueFunc ? Rr(e, r) : function (a) {
            const s = r.getSiblings(a);
            let o = 0;
            for (let l = 0; l < s.length; l++) {
                const h = s[l];
                if (u(a, h)) break;
                r.isTag(h) && r.getName(h) === r.getName(a) && o++
            }
            return n(o) && e(a)
        }
    }, "nth-last-of-type"(e, t, {adapter: r, equals: u}) {
        const n = Br(t);
        return n === ge.falseFunc ? ge.falseFunc : n === ge.trueFunc ? Rr(e, r) : function (a) {
            const s = r.getSiblings(a);
            let o = 0;
            for (let l = s.length - 1; l >= 0; l--) {
                const h = s[l];
                if (u(a, h)) break;
                r.isTag(h) && r.getName(h) === r.getName(a) && o++
            }
            return n(o) && e(a)
        }
    }, root(e, t, {adapter: r}) {
        return u => {
            const n = r.getParent(u);
            return (n == null || !r.isTag(n)) && e(u)
        }
    }, scope(e, t, r, u) {
        const {equals: n} = r;
        return !u || u.length === 0 ? nn.root(e, t, r) : u.length === 1 ? i => n(u[0], i) && e(i) : i => u.includes(i) && e(i)
    }, hover: Mu("isHovered"), visited: Mu("isVisited"), active: Mu("isActive")
};

function Mu(e) {
    return function (r, u, {adapter: n}) {
        const i = n[e];
        return typeof i != "function" ? ge.falseFunc : function (s) {
            return i(s) && r(s)
        }
    }
}

const Pi = {
    empty(e, {adapter: t}) {
        return !t.getChildren(e).some(r => t.isTag(r) || t.getText(r) !== "")
    }, "first-child"(e, {adapter: t, equals: r}) {
        if (t.prevElementSibling) return t.prevElementSibling(e) == null;
        const u = t.getSiblings(e).find(n => t.isTag(n));
        return u != null && r(e, u)
    }, "last-child"(e, {adapter: t, equals: r}) {
        const u = t.getSiblings(e);
        for (let n = u.length - 1; n >= 0; n--) {
            if (r(e, u[n])) return !0;
            if (t.isTag(u[n])) break
        }
        return !1
    }, "first-of-type"(e, {adapter: t, equals: r}) {
        const u = t.getSiblings(e), n = t.getName(e);
        for (let i = 0; i < u.length; i++) {
            const a = u[i];
            if (r(e, a)) return !0;
            if (t.isTag(a) && t.getName(a) === n) break
        }
        return !1
    }, "last-of-type"(e, {adapter: t, equals: r}) {
        const u = t.getSiblings(e), n = t.getName(e);
        for (let i = u.length - 1; i >= 0; i--) {
            const a = u[i];
            if (r(e, a)) return !0;
            if (t.isTag(a) && t.getName(a) === n) break
        }
        return !1
    }, "only-of-type"(e, {adapter: t, equals: r}) {
        const u = t.getName(e);
        return t.getSiblings(e).every(n => r(e, n) || !t.isTag(n) || t.getName(n) !== u)
    }, "only-child"(e, {adapter: t, equals: r}) {
        return t.getSiblings(e).every(u => r(e, u) || !t.isTag(u))
    }
};

function Ui(e, t, r, u) {
    if (r === null) {
        if (e.length > u) throw new Error(`Pseudo-class :${t} requires an argument`)
    } else if (e.length === u) throw new Error(`Pseudo-class :${t} doesn't have any arguments`)
}

const hd = {
    "any-link": ":is(a, area, link)[href]",
    link: ":any-link:not(:visited)",
    disabled: `:is(
        :is(button, input, select, textarea, optgroup, option)[disabled],
        optgroup[disabled] > option,
        fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)
    )`,
    enabled: ":not(:disabled)",
    checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",
    required: ":is(input, select, textarea)[required]",
    optional: ":is(input, select, textarea):not([required])",
    selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",
    checkbox: "[type=checkbox]",
    file: "[type=file]",
    password: "[type=password]",
    radio: "[type=radio]",
    reset: "[type=reset]",
    image: "[type=image]",
    submit: "[type=submit]",
    parent: ":not(:empty)",
    header: ":is(h1, h2, h3, h4, h5, h6)",
    button: ":is(button, input[type=button])",
    input: ":is(input, textarea, select, button)",
    text: "input:is(:not([type!='']), [type=text])"
}, ps = {};

function Ad(e, t) {
    return e === ge.falseFunc ? ge.falseFunc : r => t.isTag(r) && e(r)
}

function bs(e, t) {
    const r = t.getSiblings(e);
    if (r.length <= 1) return [];
    const u = r.indexOf(e);
    return u < 0 || u === r.length - 1 ? [] : r.slice(u + 1).filter(t.isTag)
}

function an(e) {
    return {
        xmlMode: !!e.xmlMode,
        lowerCaseAttributeNames: !!e.lowerCaseAttributeNames,
        lowerCaseTags: !!e.lowerCaseTags,
        quirksMode: !!e.quirksMode,
        cacheResults: !!e.cacheResults,
        pseudos: e.pseudos,
        adapter: e.adapter,
        equals: e.equals
    }
}

const Pu = (e, t, r, u, n) => {
    const i = n(t, an(r), u);
    return i === ge.trueFunc ? e : i === ge.falseFunc ? ge.falseFunc : a => i(a) && e(a)
}, Uu = {
    is: Pu, matches: Pu, where: Pu, not(e, t, r, u, n) {
        const i = n(t, an(r), u);
        return i === ge.falseFunc ? e : i === ge.trueFunc ? ge.falseFunc : a => !i(a) && e(a)
    }, has(e, t, r, u, n) {
        const {adapter: i} = r, a = an(r);
        a.relativeSelector = !0;
        const s = t.some(h => h.some(Yn)) ? [ps] : void 0, o = n(t, a, s);
        if (o === ge.falseFunc) return ge.falseFunc;
        const l = Ad(o, i);
        if (s && o !== ge.trueFunc) {
            const {shouldTestNextSiblings: h = !1} = o;
            return p => {
                if (!e(p)) return !1;
                s[0] = p;
                const g = i.getChildren(p), d = h ? [...g, ...bs(p, i)] : g;
                return i.existsOne(l, d)
            }
        }
        return h => e(h) && i.existsOne(l, i.getChildren(h))
    }
};

function pd(e, t, r, u, n) {
    var i;
    const {name: a, data: s} = t;
    if (Array.isArray(s)) {
        if (!(a in Uu)) throw new Error(`Unknown pseudo-class :${a}(${s})`);
        return Uu[a](e, s, r, u, n)
    }
    const o = (i = r.pseudos) === null || i === void 0 ? void 0 : i[a], l = typeof o == "string" ? o : hd[a];
    if (typeof l == "string") {
        if (s != null) throw new Error(`Pseudo ${a} doesn't have any arguments`);
        const h = pu(l);
        return Uu.is(e, h, r, u, n)
    }
    if (typeof o == "function") return Ui(o, a, s, 1), h => o(h, s) && e(h);
    if (a in nn) return nn[a](e, s, r, u);
    if (a in Pi) {
        const h = Pi[a];
        return Ui(h, a, s, 2), p => h(p, r, s) && e(p)
    }
    throw new Error(`Unknown pseudo-class :${a}`)
}

function Hu(e, t) {
    const r = t.getParent(e);
    return r && t.isTag(r) ? r : null
}

function bd(e, t, r, u, n) {
    const {adapter: i, equals: a} = r;
    switch (t.type) {
        case fe.PseudoElement:
            throw new Error("Pseudo-elements are not supported by css-select");
        case fe.ColumnCombinator:
            throw new Error("Column combinators are not yet supported by css-select");
        case fe.Attribute: {
            if (t.namespace != null) throw new Error("Namespaced attributes are not yet supported by css-select");
            return (!r.xmlMode || r.lowerCaseAttributeNames) && (t.name = t.name.toLowerCase()), od[t.action](e, t, r)
        }
        case fe.Pseudo:
            return pd(e, t, r, u, n);
        case fe.Tag: {
            if (t.namespace != null) throw new Error("Namespaced tag names are not yet supported by css-select");
            let {name: s} = t;
            return (!r.xmlMode || r.lowerCaseTags) && (s = s.toLowerCase()), function (l) {
                return i.getName(l) === s && e(l)
            }
        }
        case fe.Descendant: {
            if (r.cacheResults === !1 || typeof WeakSet > "u") return function (l) {
                let h = l;
                for (; h = Hu(h, i);) if (e(h)) return !0;
                return !1
            };
            const s = new WeakSet;
            return function (l) {
                let h = l;
                for (; h = Hu(h, i);) if (!s.has(h)) {
                    if (i.isTag(h) && e(h)) return !0;
                    s.add(h)
                }
                return !1
            }
        }
        case"_flexibleDescendant":
            return function (o) {
                let l = o;
                do if (e(l)) return !0; while (l = Hu(l, i));
                return !1
            };
        case fe.Parent:
            return function (o) {
                return i.getChildren(o).some(l => i.isTag(l) && e(l))
            };
        case fe.Child:
            return function (o) {
                const l = i.getParent(o);
                return l != null && i.isTag(l) && e(l)
            };
        case fe.Sibling:
            return function (o) {
                const l = i.getSiblings(o);
                for (let h = 0; h < l.length; h++) {
                    const p = l[h];
                    if (a(o, p)) break;
                    if (i.isTag(p) && e(p)) return !0
                }
                return !1
            };
        case fe.Adjacent:
            return i.prevElementSibling ? function (o) {
                const l = i.prevElementSibling(o);
                return l != null && e(l)
            } : function (o) {
                const l = i.getSiblings(o);
                let h;
                for (let p = 0; p < l.length; p++) {
                    const g = l[p];
                    if (a(o, g)) break;
                    i.isTag(g) && (h = g)
                }
                return !!h && e(h)
            };
        case fe.Universal: {
            if (t.namespace != null && t.namespace !== "*") throw new Error("Namespaced universal selectors are not yet supported by css-select");
            return e
        }
    }
}

function gs(e) {
    return e.type === fe.Pseudo && (e.name === "scope" || Array.isArray(e.data) && e.data.some(t => t.some(gs)))
}

const gd = {type: fe.Descendant}, md = {type: "_flexibleDescendant"}, Ed = {type: fe.Pseudo, name: "scope", data: null};

function Td(e, {adapter: t}, r) {
    const u = !!(r != null && r.every(n => {
        const i = t.isTag(n) && t.getParent(n);
        return n === ps || i && t.isTag(i)
    }));
    for (const n of e) {
        if (!(n.length > 0 && Yn(n[0]) && n[0].type !== fe.Descendant)) if (u && !n.some(gs)) n.unshift(gd); else continue;
        n.unshift(Ed)
    }
}

function ms(e, t, r) {
    var u;
    e.forEach(id), r = (u = t.context) !== null && u !== void 0 ? u : r;
    const n = Array.isArray(r), i = r && (Array.isArray(r) ? r : [r]);
    if (t.relativeSelector !== !1) Td(e, t, i); else if (e.some(o => o.length > 0 && Yn(o[0]))) throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");
    let a = !1;
    const s = e.map(o => {
        if (o.length >= 2) {
            const [l, h] = o;
            l.type !== fe.Pseudo || l.name !== "scope" || (n && h.type === fe.Descendant ? o[1] = md : (h.type === fe.Adjacent || h.type === fe.Sibling) && (a = !0))
        }
        return _d(o, t, i)
    }).reduce(xd, ge.falseFunc);
    return s.shouldTestNextSiblings = a, s
}

function _d(e, t, r) {
    var u;
    return e.reduce((n, i) => n === ge.falseFunc ? ge.falseFunc : bd(n, i, t, r, ms), (u = t.rootFunc) !== null && u !== void 0 ? u : ge.trueFunc)
}

function xd(e, t) {
    return t === ge.falseFunc || e === ge.trueFunc ? e : e === ge.falseFunc || t === ge.trueFunc ? t : function (u) {
        return e(u) || t(u)
    }
}

const Es = (e, t) => e === t, Cd = {adapter: Au, equals: Es};

function Id(e) {
    var t, r, u, n;
    const i = e ?? Cd;
    return (t = i.adapter) !== null && t !== void 0 || (i.adapter = Au), (r = i.equals) !== null && r !== void 0 || (i.equals = (n = (u = i.adapter) === null || u === void 0 ? void 0 : u.equals) !== null && n !== void 0 ? n : Es), i
}

function yd(e) {
    return function (r, u, n) {
        const i = Id(u);
        return e(r, i, n)
    }
}

const Gn = yd(ms);

function Ts(e, t, r = !1) {
    return r && (e = kd(e, t)), Array.isArray(e) ? t.removeSubsets(e) : t.getChildren(e)
}

function kd(e, t) {
    const r = Array.isArray(e) ? e.slice(0) : [e], u = r.length;
    for (let n = 0; n < u; n++) {
        const i = bs(r[n], t);
        r.push(...i)
    }
    return r
}

const Sd = new Set(["first", "last", "eq", "gt", "nth", "lt", "even", "odd"]);

function $r(e) {
    return e.type !== "pseudo" ? !1 : Sd.has(e.name) ? !0 : e.name === "not" && Array.isArray(e.data) ? e.data.some(t => t.some($r)) : !1
}

function vd(e, t, r) {
    const u = t != null ? parseInt(t, 10) : NaN;
    switch (e) {
        case"first":
            return 1;
        case"nth":
        case"eq":
            return isFinite(u) ? u >= 0 ? u + 1 : 1 / 0 : 0;
        case"lt":
            return isFinite(u) ? u >= 0 ? Math.min(u, r) : 1 / 0 : 0;
        case"gt":
            return isFinite(u) ? 1 / 0 : 0;
        case"odd":
            return 2 * r;
        case"even":
            return 2 * r - 1;
        case"last":
        case"not":
            return 1 / 0
    }
}

function Nd(e) {
    for (; e.parent;) e = e.parent;
    return e
}

function Wn(e) {
    const t = [], r = [];
    for (const u of e) u.some($r) ? t.push(u) : r.push(u);
    return [r, t]
}

const wd = {type: fe.Universal, namespace: null}, Dd = {type: fe.Pseudo, name: "scope", data: null};

function _s(e, t, r = {}) {
    return xs([e], t, r)
}

function xs(e, t, r = {}) {
    if (typeof t == "function") return e.some(t);
    const [u, n] = Wn(pu(t));
    return u.length > 0 && e.some(Gn(u, r)) || n.some(i => ys(i, e, r).length > 0)
}

function Bd(e, t, r, u) {
    const n = typeof r == "string" ? parseInt(r, 10) : NaN;
    switch (e) {
        case"first":
        case"lt":
            return t;
        case"last":
            return t.length > 0 ? [t[t.length - 1]] : t;
        case"nth":
        case"eq":
            return isFinite(n) && Math.abs(n) < t.length ? [n < 0 ? t[t.length + n] : t[n]] : [];
        case"gt":
            return isFinite(n) ? t.slice(n + 1) : [];
        case"even":
            return t.filter((i, a) => a % 2 === 0);
        case"odd":
            return t.filter((i, a) => a % 2 === 1);
        case"not": {
            const i = new Set(Is(r, t, u));
            return t.filter(a => !i.has(a))
        }
    }
}

function Cs(e, t, r = {}) {
    return Is(pu(e), t, r)
}

function Is(e, t, r) {
    if (t.length === 0) return [];
    const [u, n] = Wn(e);
    let i;
    if (u.length) {
        const a = on(t, u, r);
        if (n.length === 0) return a;
        a.length && (i = new Set(a))
    }
    for (let a = 0; a < n.length && (i == null ? void 0 : i.size) !== t.length; a++) {
        const s = n[a];
        if ((i ? t.filter(h => he(h) && !i.has(h)) : t).length === 0) break;
        const l = ys(s, t, r);
        if (l.length) if (i) l.forEach(h => i.add(h)); else {
            if (a === n.length - 1) return l;
            i = new Set(l)
        }
    }
    return typeof i < "u" ? i.size === t.length ? t : t.filter(a => i.has(a)) : []
}

function ys(e, t, r) {
    var u;
    if (e.some(rr)) {
        const n = (u = r.root) !== null && u !== void 0 ? u : Nd(t[0]), i = {...r, context: t, relativeSelector: !1};
        return e.push(Dd), eu(n, e, i, !0, t.length)
    }
    return eu(t, e, r, !1, t.length)
}

function Rd(e, t, r = {}, u = 1 / 0) {
    if (typeof e == "function") return ks(t, e);
    const [n, i] = Wn(pu(e)), a = i.map(s => eu(t, s, r, !0, u));
    return n.length && a.push(sn(t, n, r, u)), a.length === 0 ? [] : a.length === 1 ? a[0] : Yt(a.reduce((s, o) => [...s, ...o]))
}

function eu(e, t, r, u, n) {
    const i = t.findIndex($r), a = t.slice(0, i), s = t[i], o = t.length - 1 === i ? n : 1 / 0,
        l = vd(s.name, s.data, o);
    if (l === 0) return [];
    const p = (a.length === 0 && !Array.isArray(e) ? hu(e).filter(he) : a.length === 0 ? (Array.isArray(e) ? e : [e]).filter(he) : u || a.some(rr) ? sn(e, [a], r, l) : on(e, [a], r)).slice(0, l);
    let g = Bd(s.name, p, s.data, r);
    if (g.length === 0 || t.length === i + 1) return g;
    const d = t.slice(i + 1), E = d.some(rr);
    if (E) {
        if (rr(d[0])) {
            const {type: A} = d[0];
            (A === fe.Sibling || A === fe.Adjacent) && (g = Ts(g, Au, !0)), d.unshift(wd)
        }
        r = {...r, relativeSelector: !1, rootFunc: A => g.includes(A)}
    } else r.rootFunc && r.rootFunc !== Xr.trueFunc && (r = {...r, rootFunc: Xr.trueFunc});
    return d.some($r) ? eu(g, d, r, !1, n) : E ? sn(g, [d], r, n) : on(g, [d], r)
}

function sn(e, t, r, u) {
    const n = Gn(t, r, e);
    return ks(e, n, u)
}

function ks(e, t, r = 1 / 0) {
    const u = Ts(e, Au, t.shouldTestNextSiblings);
    return Mn(n => he(n) && t(n), u, !0, r)
}

function on(e, t, r) {
    const u = (Array.isArray(e) ? e : [e]).filter(he);
    if (u.length === 0) return u;
    const n = Gn(t, r);
    return n === Xr.trueFunc ? u : u.filter(n)
}

const Od = /^\s*[+~]/;

function Ld(e) {
    if (!e) return this._make([]);
    if (typeof e != "string") {
        const t = dt(e) ? e.toArray() : [e], r = this.toArray();
        return this._make(t.filter(u => r.some(n => Hn(n, u))))
    }
    return this._findBySelector(e, Number.POSITIVE_INFINITY)
}

function Fd(e, t) {
    var r;
    const u = this.toArray(), n = Od.test(e) ? u : this.children().toArray(), i = {
        context: u,
        root: (r = this._root) === null || r === void 0 ? void 0 : r[0],
        xmlMode: this.options.xmlMode,
        lowerCaseTags: this.options.lowerCaseTags,
        lowerCaseAttributeNames: this.options.lowerCaseAttributeNames,
        pseudos: this.options.pseudos,
        quirksMode: this.options.quirksMode
    };
    return this._make(Rd(e, n, i, t))
}

function Kn(e) {
    return function (t, ...r) {
        return function (u) {
            var n;
            let i = e(t, this);
            return u && (i = zn(i, u, this.options.xmlMode, (n = this._root) === null || n === void 0 ? void 0 : n[0])), this._make(this.length > 1 && i.length > 1 ? r.reduce((a, s) => s(a), i) : i)
        }
    }
}

const xr = Kn((e, t) => {
    let r = [];
    for (let u = 0; u < t.length; u++) {
        const n = e(t[u]);
        n.length > 0 && (r = r.concat(n))
    }
    return r
}), qn = Kn((e, t) => {
    const r = [];
    for (let u = 0; u < t.length; u++) {
        const n = e(t[u]);
        n !== null && r.push(n)
    }
    return r
});

function Zn(e, ...t) {
    let r = null;
    const u = Kn((n, i) => {
        const a = [];
        return Ne(i, s => {
            for (let o; (o = n(s)) && !(r != null && r(o, a.length)); s = o) a.push(o)
        }), a
    })(e, ...t);
    return function (n, i) {
        r = typeof n == "string" ? s => _s(s, n, this.options) : n ? Cr(n) : null;
        const a = u.call(this, i);
        return r = null, a
    }
}

function Gt(e) {
    return e.length > 1 ? Array.from(new Set(e)) : e
}

const Md = qn(({parent: e}) => e && !mt(e) ? e : null, Gt), Pd = xr(e => {
    const t = [];
    for (; e.parent && !mt(e.parent);) t.push(e.parent), e = e.parent;
    return t
}, Yt, e => e.reverse()), Ud = Zn(({parent: e}) => e && !mt(e) ? e : null, Yt, e => e.reverse());

function Hd(e) {
    var t;
    const r = [];
    if (!e) return this._make(r);
    const u = {xmlMode: this.options.xmlMode, root: (t = this._root) === null || t === void 0 ? void 0 : t[0]},
        n = typeof e == "string" ? i => _s(i, e, u) : Cr(e);
    return Ne(this, i => {
        for (i && !mt(i) && !he(i) && (i = i.parent); i && he(i);) {
            if (n(i, 0)) {
                r.includes(i) || r.push(i);
                break
            }
            i = i.parent
        }
    }), this._make(r)
}

const Qd = qn(e => Ln(e)), Yd = xr(e => {
        const t = [];
        for (; e.next;) e = e.next, he(e) && t.push(e);
        return t
    }, Gt), Gd = Zn(e => Ln(e), Gt), Wd = qn(e => Fn(e)), Kd = xr(e => {
        const t = [];
        for (; e.prev;) e = e.prev, he(e) && t.push(e);
        return t
    }, Gt), qd = Zn(e => Fn(e), Gt), Zd = xr(e => es(e).filter(t => he(t) && t !== e), Yt),
    zd = xr(e => hu(e).filter(he), Gt);

function Jd() {
    const e = this.toArray().reduce((t, r) => Be(r) ? t.concat(r.children) : t, []);
    return this._make(e)
}

function Vd(e) {
    let t = 0;
    const r = this.length;
    for (; t < r && e.call(this[t], t, this[t]) !== !1;) ++t;
    return this
}

function jd(e) {
    let t = [];
    for (let r = 0; r < this.length; r++) {
        const u = this[r], n = e.call(u, r, u);
        n != null && (t = t.concat(n))
    }
    return this._make(t)
}

function Cr(e) {
    return typeof e == "function" ? (t, r) => e.call(t, r, t) : dt(e) ? t => Array.prototype.includes.call(e, t) : function (t) {
        return e === t
    }
}

function Xd(e) {
    var t;
    return this._make(zn(this.toArray(), e, this.options.xmlMode, (t = this._root) === null || t === void 0 ? void 0 : t[0]))
}

function zn(e, t, r, u) {
    return typeof t == "string" ? Cs(t, e, {xmlMode: r, root: u}) : e.filter(Cr(t))
}

function $d(e) {
    const t = this.toArray();
    return typeof e == "string" ? xs(t.filter(he), e, this.options) : e ? t.some(Cr(e)) : !1
}

function eh(e) {
    let t = this.toArray();
    if (typeof e == "string") {
        const r = new Set(Cs(e, t, this.options));
        t = t.filter(u => !r.has(u))
    } else {
        const r = Cr(e);
        t = t.filter((u, n) => !r(u, n))
    }
    return this._make(t)
}

function th(e) {
    return this.filter(typeof e == "string" ? `:has(${e})` : (t, r) => this._make(r).find(e).length > 0)
}

function rh() {
    return this.length > 1 ? this._make(this[0]) : this
}

function uh() {
    return this.length > 0 ? this._make(this[this.length - 1]) : this
}

function nh(e) {
    var t;
    return e = +e, e === 0 && this.length <= 1 ? this : (e < 0 && (e = this.length + e), this._make((t = this[e]) !== null && t !== void 0 ? t : []))
}

function ih(e) {
    return e == null ? this.toArray() : this[e < 0 ? this.length + e : e]
}

function ah() {
    return Array.prototype.slice.call(this)
}

function sh(e) {
    let t, r;
    return e == null ? (t = this.parent().children(), r = this[0]) : typeof e == "string" ? (t = this._make(e), r = this[0]) : (t = this, r = dt(e) ? e[0] : e), Array.prototype.indexOf.call(t, r)
}

function oh(e, t) {
    return this._make(Array.prototype.slice.call(this, e, t))
}

function ch() {
    var e;
    return (e = this.prevObject) !== null && e !== void 0 ? e : this._make([])
}

function lh(e, t) {
    const r = this._make(e, t), u = Yt([...this.get(), ...r.get()]);
    return this._make(u)
}

function fh(e) {
    return this.prevObject ? this.add(e ? this.prevObject.filter(e) : this.prevObject) : this
}

const dh = Object.freeze(Object.defineProperty({
    __proto__: null,
    _findBySelector: Fd,
    add: lh,
    addBack: fh,
    children: zd,
    closest: Hd,
    contents: Jd,
    each: Vd,
    end: ch,
    eq: nh,
    filter: Xd,
    filterArray: zn,
    find: Ld,
    first: rh,
    get: ih,
    has: th,
    index: sh,
    is: $d,
    last: uh,
    map: jd,
    next: Qd,
    nextAll: Yd,
    nextUntil: Gd,
    not: eh,
    parent: Md,
    parents: Pd,
    parentsUntil: Ud,
    prev: Wd,
    prevAll: Kd,
    prevUntil: qd,
    siblings: Zd,
    slice: oh,
    toArray: ah
}, Symbol.toStringTag, {value: "Module"}));

function hh(e) {
    return function (r, u, n, i) {
        if (typeof Buffer < "u" && Buffer.isBuffer(r) && (r = r.toString()), typeof r == "string") return e(r, u, n, i);
        const a = r;
        if (!Array.isArray(a) && mt(a)) return a;
        const s = new St([]);
        return vt(a, s), s
    }
}

function vt(e, t) {
    const r = Array.isArray(e) ? e : [e];
    t ? t.children = r : t = null;
    for (let u = 0; u < r.length; u++) {
        const n = r[u];
        n.parent && n.parent.children !== r && Ot(n), t ? (n.prev = r[u - 1] || null, n.next = r[u + 1] || null) : n.prev = n.next = null, n.parent = t
    }
    return t
}

function Ah(e, t) {
    if (e == null) return [];
    if (typeof e == "string") return this._parse(e, this.options, !1, null).children.slice(0);
    if ("length" in e) {
        if (e.length === 1) return this._makeDomArray(e[0], t);
        const r = [];
        for (let u = 0; u < e.length; u++) {
            const n = e[u];
            if (typeof n == "object") {
                if (n == null) continue;
                if (!("length" in n)) {
                    r.push(t ? fr(n, !0) : n);
                    continue
                }
            }
            r.push(...this._makeDomArray(n, t))
        }
        return r
    }
    return [t ? fr(e, !0) : e]
}

function Ss(e) {
    return function (...t) {
        const r = this.length - 1;
        return Ne(this, (u, n) => {
            if (!Be(u)) return;
            const i = typeof t[0] == "function" ? t[0].call(u, n, this._render(u.children)) : t,
                a = this._makeDomArray(i, n < r);
            e(a, u.children, u)
        })
    }
}

function Et(e, t, r, u, n) {
    var i, a;
    const s = [t, r, ...u], o = t === 0 ? null : e[t - 1], l = t + r >= e.length ? null : e[t + r];
    for (let h = 0; h < u.length; ++h) {
        const p = u[h], g = p.parent;
        if (g) {
            const E = g.children.indexOf(p);
            E > -1 && (g.children.splice(E, 1), n === g && t > E && s[0]--)
        }
        p.parent = n, p.prev && (p.prev.next = (i = p.next) !== null && i !== void 0 ? i : null), p.next && (p.next.prev = (a = p.prev) !== null && a !== void 0 ? a : null), p.prev = h === 0 ? o : u[h - 1], p.next = h === u.length - 1 ? l : u[h + 1]
    }
    return o && (o.next = u[0]), l && (l.prev = u[u.length - 1]), e.splice(...s)
}

function ph(e) {
    return (dt(e) ? e : this._make(e)).append(this), this
}

function bh(e) {
    return (dt(e) ? e : this._make(e)).prepend(this), this
}

const gh = Ss((e, t, r) => {
    Et(t, t.length, 0, e, r)
}), mh = Ss((e, t, r) => {
    Et(t, 0, 0, e, r)
});

function vs(e) {
    return function (t) {
        const r = this.length - 1, u = this.parents().last();
        for (let n = 0; n < this.length; n++) {
            const i = this[n],
                a = typeof t == "function" ? t.call(i, n, i) : typeof t == "string" && !rn(t) ? u.find(t).clone() : t, [s] = this._makeDomArray(a, n < r);
            if (!s || !Be(s)) continue;
            let o = s, l = 0;
            for (; l < o.children.length;) {
                const h = o.children[l];
                he(h) ? (o = h, l = 0) : l++
            }
            e(i, o, [s])
        }
        return this
    }
}

const Eh = vs((e, t, r) => {
    const {parent: u} = e;
    if (!u) return;
    const n = u.children, i = n.indexOf(e);
    vt([e], t), Et(n, i, 0, r, u)
}), Th = vs((e, t, r) => {
    Be(e) && (vt(e.children, t), vt(r, e))
});

function _h(e) {
    return this.parent(e).not("body").each((t, r) => {
        this._make(r).replaceWith(r.children)
    }), this
}

function xh(e) {
    const t = this[0];
    if (t) {
        const r = this._make(typeof e == "function" ? e.call(t, 0, t) : e).insertBefore(t);
        let u;
        for (let i = 0; i < r.length; i++) r[i].type === "tag" && (u = r[i]);
        let n = 0;
        for (; u && n < u.children.length;) {
            const i = u.children[n];
            i.type === "tag" ? (u = i, n = 0) : n++
        }
        u && this._make(u).append(this)
    }
    return this
}

function Ch(...e) {
    const t = this.length - 1;
    return Ne(this, (r, u) => {
        if (!Be(r) || !r.parent) return;
        const n = r.parent.children, i = n.indexOf(r);
        if (i < 0) return;
        const a = typeof e[0] == "function" ? e[0].call(r, u, this._render(r.children)) : e,
            s = this._makeDomArray(a, u < t);
        Et(n, i + 1, 0, s, r.parent)
    })
}

function Ih(e) {
    typeof e == "string" && (e = this._make(e)), this.remove();
    const t = [];
    for (const r of this._makeDomArray(e)) {
        const u = this.clone().toArray(), {parent: n} = r;
        if (!n) continue;
        const i = n.children, a = i.indexOf(r);
        a < 0 || (Et(i, a + 1, 0, u, n), t.push(...u))
    }
    return this._make(t)
}

function yh(...e) {
    const t = this.length - 1;
    return Ne(this, (r, u) => {
        if (!Be(r) || !r.parent) return;
        const n = r.parent.children, i = n.indexOf(r);
        if (i < 0) return;
        const a = typeof e[0] == "function" ? e[0].call(r, u, this._render(r.children)) : e,
            s = this._makeDomArray(a, u < t);
        Et(n, i, 0, s, r.parent)
    })
}

function kh(e) {
    const t = this._make(e);
    this.remove();
    const r = [];
    return Ne(t, u => {
        const n = this.clone().toArray(), {parent: i} = u;
        if (!i) return;
        const a = i.children, s = a.indexOf(u);
        s < 0 || (Et(a, s, 0, n, i), r.push(...n))
    }), this._make(r)
}

function Sh(e) {
    const t = e ? this.filter(e) : this;
    return Ne(t, r => {
        Ot(r), r.prev = r.next = r.parent = null
    }), this
}

function vh(e) {
    return Ne(this, (t, r) => {
        const {parent: u} = t;
        if (!u) return;
        const n = u.children, i = typeof e == "function" ? e.call(t, r, t) : e, a = this._makeDomArray(i);
        vt(a, null);
        const s = n.indexOf(t);
        Et(n, s, 1, a, u), a.includes(t) || (t.parent = t.prev = t.next = null)
    })
}

function Nh() {
    return Ne(this, e => {
        if (Be(e)) {
            for (const t of e.children) t.next = t.prev = t.parent = null;
            e.children.length = 0
        }
    })
}

function wh(e) {
    if (e === void 0) {
        const t = this[0];
        return !t || !Be(t) ? null : this._render(t.children)
    }
    return Ne(this, t => {
        if (!Be(t)) return;
        for (const u of t.children) u.next = u.prev = u.parent = null;
        const r = dt(e) ? e.toArray() : this._parse(`${e}`, this.options, !1, t).children;
        vt(r, t)
    })
}

function Dh() {
    return this._render(this)
}

function Bh(e) {
    return e === void 0 ? dr(this) : typeof e == "function" ? Ne(this, (t, r) => this._make(t).text(e.call(t, r, dr([t])))) : Ne(this, t => {
        if (!Be(t)) return;
        for (const u of t.children) u.next = u.prev = u.parent = null;
        const r = new lr(`${e}`);
        vt(r, t)
    })
}

function Rh() {
    const e = Array.prototype.map.call(this.get(), r => fr(r, !0)), t = new St(e);
    for (const r of e) r.parent = t;
    return this._make(e)
}

const Oh = Object.freeze(Object.defineProperty({
    __proto__: null,
    _makeDomArray: Ah,
    after: Ch,
    append: gh,
    appendTo: ph,
    before: yh,
    clone: Rh,
    empty: Nh,
    html: wh,
    insertAfter: Ih,
    insertBefore: kh,
    prepend: mh,
    prependTo: bh,
    remove: Sh,
    replaceWith: vh,
    text: Bh,
    toString: Dh,
    unwrap: _h,
    wrap: Eh,
    wrapAll: xh,
    wrapInner: Th
}, Symbol.toStringTag, {value: "Module"}));

function Lh(e, t) {
    if (e != null && t != null || typeof e == "object" && !Array.isArray(e)) return Ne(this, (r, u) => {
        he(r) && Ns(r, e, t, u)
    });
    if (this.length !== 0) return ws(this[0], e)
}

function Ns(e, t, r, u) {
    if (typeof t == "string") {
        const n = ws(e), i = typeof r == "function" ? r.call(e, u, n[t]) : r;
        i === "" ? delete n[t] : i != null && (n[t] = i), e.attribs.style = Fh(n)
    } else if (typeof t == "object") {
        const n = Object.keys(t);
        for (let i = 0; i < n.length; i++) {
            const a = n[i];
            Ns(e, a, t[a], i)
        }
    }
}

function ws(e, t) {
    if (!e || !he(e)) return;
    const r = Mh(e.attribs.style);
    if (typeof t == "string") return r[t];
    if (Array.isArray(t)) {
        const u = {};
        for (const n of t) r[n] != null && (u[n] = r[n]);
        return u
    }
    return r
}

function Fh(e) {
    return Object.keys(e).reduce((t, r) => `${t}${t ? " " : ""}${r}: ${e[r]};`, "")
}

function Mh(e) {
    if (e = (e || "").trim(), !e) return {};
    const t = {};
    let r;
    for (const u of e.split(";")) {
        const n = u.indexOf(":");
        if (n < 1 || n === u.length - 1) {
            const i = u.trimEnd();
            i.length > 0 && r !== void 0 && (t[r] += `;${i}`)
        } else r = u.slice(0, n).trim(), t[r] = u.slice(n + 1).trim()
    }
    return t
}

const Ph = Object.freeze(Object.defineProperty({__proto__: null, css: Lh}, Symbol.toStringTag, {value: "Module"})),
    Hi = "input,select,textarea,keygen", Uh = /%20/g, Qi = /\r?\n/g;

function Hh() {
    return this.serializeArray().map(r => `${encodeURIComponent(r.name)}=${encodeURIComponent(r.value)}`).join("&").replace(Uh, "+")
}

function Qh() {
    return this.map((e, t) => {
        const r = this._make(t);
        return he(t) && t.name === "form" ? r.find(Hi).toArray() : r.filter(Hi).toArray()
    }).filter('[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))').map((e, t) => {
        var r;
        const u = this._make(t), n = u.attr("name"), i = (r = u.val()) !== null && r !== void 0 ? r : "";
        return Array.isArray(i) ? i.map(a => ({
            name: n, value: a.replace(Qi, `\r
`)
        })) : {
            name: n, value: i.replace(Qi, `\r
`)
        }
    }).toArray()
}

const Yh = Object.freeze(Object.defineProperty({
    __proto__: null,
    serialize: Hh,
    serializeArray: Qh
}, Symbol.toStringTag, {value: "Module"}));

function Gh(e) {
    var t;
    return typeof e == "string" ? {selector: e, value: "textContent"} : {
        selector: e.selector,
        value: (t = e.value) !== null && t !== void 0 ? t : "textContent"
    }
}

function Wh(e) {
    const t = {};
    for (const r in e) {
        const u = e[r], n = Array.isArray(u), {selector: i, value: a} = Gh(n ? u[0] : u),
            s = typeof a == "function" ? a : typeof a == "string" ? o => this._make(o).prop(a) : o => this._make(o).extract(a);
        if (n) t[r] = this._findBySelector(i, Number.POSITIVE_INFINITY).map((o, l) => s(l, r, t)).get(); else {
            const o = this._findBySelector(i, 1);
            t[r] = o.length > 0 ? s(o[0], r, t) : void 0
        }
    }
    return t
}

const Kh = Object.freeze(Object.defineProperty({__proto__: null, extract: Wh}, Symbol.toStringTag, {value: "Module"}));

class Ir {
    constructor(t, r, u) {
        if (this.length = 0, this.options = u, this._root = r, t) {
            for (let n = 0; n < t.length; n++) this[n] = t[n];
            this.length = t.length
        }
    }
}

Ir.prototype.cheerio = "[cheerio object]";
Ir.prototype.splice = Array.prototype.splice;
Ir.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
Object.assign(Ir.prototype, Xf, dh, Oh, Ph, Yh, Kh);

function qh(e, t) {
    return function r(u, n, i = !0) {
        if (u == null) throw new Error("cheerio.load() expects a string");
        const a = tn(n), s = e(u, a, i, null);

        class o extends Ir {
            _make(p, g) {
                const d = l(p, g);
                return d.prevObject = this, d
            }

            _parse(p, g, d, E) {
                return e(p, g, d, E)
            }

            _render(p) {
                return t(p, this.options)
            }
        }

        function l(h, p, g = s, d) {
            if (h && dt(h)) return h;
            const E = tn(d, a), A = typeof g == "string" ? [e(g, E, !1, null)] : "length" in g ? g : [g],
                x = dt(A) ? A : new o(A, null, E);
            if (x._root = x, !h) return new o(void 0, x, E);
            const _ = typeof h == "string" && rn(h) ? e(h, E, !1, null).children : Zh(h) ? [h] : Array.isArray(h) ? h : void 0,
                y = new o(_, x, E);
            if (_) return y;
            if (typeof h != "string") throw new TypeError("Unexpected type of selector");
            let v = h;
            const D = p ? typeof p == "string" ? rn(p) ? new o([e(p, E, !1, null)], x, E) : (v = `${p} ${v}`, x) : dt(p) ? p : new o(Array.isArray(p) ? p : [p], x, E) : x;
            return D ? D.find(v) : y
        }

        return Object.assign(l, Hf, {load: r, _root: s, _options: a, fn: o.prototype, prototype: o.prototype}), l
    }
}

function Zh(e) {
    return !!e.name || e.type === "root" || e.type === "text" || e.type === "comment"
}

const zh = new Set([65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111]),
    Se = "�";
var I;
(function (e) {
    e[e.EOF = -1] = "EOF", e[e.NULL = 0] = "NULL", e[e.TABULATION = 9] = "TABULATION", e[e.CARRIAGE_RETURN = 13] = "CARRIAGE_RETURN", e[e.LINE_FEED = 10] = "LINE_FEED", e[e.FORM_FEED = 12] = "FORM_FEED", e[e.SPACE = 32] = "SPACE", e[e.EXCLAMATION_MARK = 33] = "EXCLAMATION_MARK", e[e.QUOTATION_MARK = 34] = "QUOTATION_MARK", e[e.AMPERSAND = 38] = "AMPERSAND", e[e.APOSTROPHE = 39] = "APOSTROPHE", e[e.HYPHEN_MINUS = 45] = "HYPHEN_MINUS", e[e.SOLIDUS = 47] = "SOLIDUS", e[e.DIGIT_0 = 48] = "DIGIT_0", e[e.DIGIT_9 = 57] = "DIGIT_9", e[e.SEMICOLON = 59] = "SEMICOLON", e[e.LESS_THAN_SIGN = 60] = "LESS_THAN_SIGN", e[e.EQUALS_SIGN = 61] = "EQUALS_SIGN", e[e.GREATER_THAN_SIGN = 62] = "GREATER_THAN_SIGN", e[e.QUESTION_MARK = 63] = "QUESTION_MARK", e[e.LATIN_CAPITAL_A = 65] = "LATIN_CAPITAL_A", e[e.LATIN_CAPITAL_Z = 90] = "LATIN_CAPITAL_Z", e[e.RIGHT_SQUARE_BRACKET = 93] = "RIGHT_SQUARE_BRACKET", e[e.GRAVE_ACCENT = 96] = "GRAVE_ACCENT", e[e.LATIN_SMALL_A = 97] = "LATIN_SMALL_A", e[e.LATIN_SMALL_Z = 122] = "LATIN_SMALL_Z"
})(I || (I = {}));
const Ye = {
    DASH_DASH: "--",
    CDATA_START: "[CDATA[",
    DOCTYPE: "doctype",
    SCRIPT: "script",
    PUBLIC: "public",
    SYSTEM: "system"
};

function Ds(e) {
    return e >= 55296 && e <= 57343
}

function Jh(e) {
    return e >= 56320 && e <= 57343
}

function Vh(e, t) {
    return (e - 55296) * 1024 + 9216 + t
}

function Bs(e) {
    return e !== 32 && e !== 10 && e !== 13 && e !== 9 && e !== 12 && e >= 1 && e <= 31 || e >= 127 && e <= 159
}

function Rs(e) {
    return e >= 64976 && e <= 65007 || zh.has(e)
}

var Z;
(function (e) {
    e.controlCharacterInInputStream = "control-character-in-input-stream", e.noncharacterInInputStream = "noncharacter-in-input-stream", e.surrogateInInputStream = "surrogate-in-input-stream", e.nonVoidHtmlElementStartTagWithTrailingSolidus = "non-void-html-element-start-tag-with-trailing-solidus", e.endTagWithAttributes = "end-tag-with-attributes", e.endTagWithTrailingSolidus = "end-tag-with-trailing-solidus", e.unexpectedSolidusInTag = "unexpected-solidus-in-tag", e.unexpectedNullCharacter = "unexpected-null-character", e.unexpectedQuestionMarkInsteadOfTagName = "unexpected-question-mark-instead-of-tag-name", e.invalidFirstCharacterOfTagName = "invalid-first-character-of-tag-name", e.unexpectedEqualsSignBeforeAttributeName = "unexpected-equals-sign-before-attribute-name", e.missingEndTagName = "missing-end-tag-name", e.unexpectedCharacterInAttributeName = "unexpected-character-in-attribute-name", e.unknownNamedCharacterReference = "unknown-named-character-reference", e.missingSemicolonAfterCharacterReference = "missing-semicolon-after-character-reference", e.unexpectedCharacterAfterDoctypeSystemIdentifier = "unexpected-character-after-doctype-system-identifier", e.unexpectedCharacterInUnquotedAttributeValue = "unexpected-character-in-unquoted-attribute-value", e.eofBeforeTagName = "eof-before-tag-name", e.eofInTag = "eof-in-tag", e.missingAttributeValue = "missing-attribute-value", e.missingWhitespaceBetweenAttributes = "missing-whitespace-between-attributes", e.missingWhitespaceAfterDoctypePublicKeyword = "missing-whitespace-after-doctype-public-keyword", e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers = "missing-whitespace-between-doctype-public-and-system-identifiers", e.missingWhitespaceAfterDoctypeSystemKeyword = "missing-whitespace-after-doctype-system-keyword", e.missingQuoteBeforeDoctypePublicIdentifier = "missing-quote-before-doctype-public-identifier", e.missingQuoteBeforeDoctypeSystemIdentifier = "missing-quote-before-doctype-system-identifier", e.missingDoctypePublicIdentifier = "missing-doctype-public-identifier", e.missingDoctypeSystemIdentifier = "missing-doctype-system-identifier", e.abruptDoctypePublicIdentifier = "abrupt-doctype-public-identifier", e.abruptDoctypeSystemIdentifier = "abrupt-doctype-system-identifier", e.cdataInHtmlContent = "cdata-in-html-content", e.incorrectlyOpenedComment = "incorrectly-opened-comment", e.eofInScriptHtmlCommentLikeText = "eof-in-script-html-comment-like-text", e.eofInDoctype = "eof-in-doctype", e.nestedComment = "nested-comment", e.abruptClosingOfEmptyComment = "abrupt-closing-of-empty-comment", e.eofInComment = "eof-in-comment", e.incorrectlyClosedComment = "incorrectly-closed-comment", e.eofInCdata = "eof-in-cdata", e.absenceOfDigitsInNumericCharacterReference = "absence-of-digits-in-numeric-character-reference", e.nullCharacterReference = "null-character-reference", e.surrogateCharacterReference = "surrogate-character-reference", e.characterReferenceOutsideUnicodeRange = "character-reference-outside-unicode-range", e.controlCharacterReference = "control-character-reference", e.noncharacterCharacterReference = "noncharacter-character-reference", e.missingWhitespaceBeforeDoctypeName = "missing-whitespace-before-doctype-name", e.missingDoctypeName = "missing-doctype-name", e.invalidCharacterSequenceAfterDoctypeName = "invalid-character-sequence-after-doctype-name", e.duplicateAttribute = "duplicate-attribute", e.nonConformingDoctype = "non-conforming-doctype", e.missingDoctype = "missing-doctype", e.misplacedDoctype = "misplaced-doctype", e.endTagWithoutMatchingOpenElement = "end-tag-without-matching-open-element", e.closingOfElementWithOpenChildElements = "closing-of-element-with-open-child-elements", e.disallowedContentInNoscriptInHead = "disallowed-content-in-noscript-in-head", e.openElementsLeftAfterEof = "open-elements-left-after-eof", e.abandonedHeadElementChild = "abandoned-head-element-child", e.misplacedStartTagForHeadElement = "misplaced-start-tag-for-head-element", e.nestedNoscriptInHead = "nested-noscript-in-head", e.eofInElementThatCanContainOnlyText = "eof-in-element-that-can-contain-only-text"
})(Z || (Z = {}));
const jh = 65536;

class Xh {
    constructor(t) {
        this.handler = t, this.html = "", this.pos = -1, this.lastGapPos = -2, this.gapStack = [], this.skipNextNewLine = !1, this.lastChunkWritten = !1, this.endOfChunkHit = !1, this.bufferWaterline = jh, this.isEol = !1, this.lineStartPos = 0, this.droppedBufferSize = 0, this.line = 1, this.lastErrOffset = -1
    }

    get col() {
        return this.pos - this.lineStartPos + +(this.lastGapPos !== this.pos)
    }

    get offset() {
        return this.droppedBufferSize + this.pos
    }

    getError(t, r) {
        const {line: u, col: n, offset: i} = this, a = n + r, s = i + r;
        return {code: t, startLine: u, endLine: u, startCol: a, endCol: a, startOffset: s, endOffset: s}
    }

    _err(t) {
        this.handler.onParseError && this.lastErrOffset !== this.offset && (this.lastErrOffset = this.offset, this.handler.onParseError(this.getError(t, 0)))
    }

    _addGap() {
        this.gapStack.push(this.lastGapPos), this.lastGapPos = this.pos
    }

    _processSurrogate(t) {
        if (this.pos !== this.html.length - 1) {
            const r = this.html.charCodeAt(this.pos + 1);
            if (Jh(r)) return this.pos++, this._addGap(), Vh(t, r)
        } else if (!this.lastChunkWritten) return this.endOfChunkHit = !0, I.EOF;
        return this._err(Z.surrogateInInputStream), t
    }

    willDropParsedChunk() {
        return this.pos > this.bufferWaterline
    }

    dropParsedChunk() {
        this.willDropParsedChunk() && (this.html = this.html.substring(this.pos), this.lineStartPos -= this.pos, this.droppedBufferSize += this.pos, this.pos = 0, this.lastGapPos = -2, this.gapStack.length = 0)
    }

    write(t, r) {
        this.html.length > 0 ? this.html += t : this.html = t, this.endOfChunkHit = !1, this.lastChunkWritten = r
    }

    insertHtmlAtCurrentPos(t) {
        this.html = this.html.substring(0, this.pos + 1) + t + this.html.substring(this.pos + 1), this.endOfChunkHit = !1
    }

    startsWith(t, r) {
        if (this.pos + t.length > this.html.length) return this.endOfChunkHit = !this.lastChunkWritten, !1;
        if (r) return this.html.startsWith(t, this.pos);
        for (let u = 0; u < t.length; u++) if ((this.html.charCodeAt(this.pos + u) | 32) !== t.charCodeAt(u)) return !1;
        return !0
    }

    peek(t) {
        const r = this.pos + t;
        if (r >= this.html.length) return this.endOfChunkHit = !this.lastChunkWritten, I.EOF;
        const u = this.html.charCodeAt(r);
        return u === I.CARRIAGE_RETURN ? I.LINE_FEED : u
    }

    advance() {
        if (this.pos++, this.isEol && (this.isEol = !1, this.line++, this.lineStartPos = this.pos), this.pos >= this.html.length) return this.endOfChunkHit = !this.lastChunkWritten, I.EOF;
        let t = this.html.charCodeAt(this.pos);
        return t === I.CARRIAGE_RETURN ? (this.isEol = !0, this.skipNextNewLine = !0, I.LINE_FEED) : t === I.LINE_FEED && (this.isEol = !0, this.skipNextNewLine) ? (this.line--, this.skipNextNewLine = !1, this._addGap(), this.advance()) : (this.skipNextNewLine = !1, Ds(t) && (t = this._processSurrogate(t)), this.handler.onParseError === null || t > 31 && t < 127 || t === I.LINE_FEED || t === I.CARRIAGE_RETURN || t > 159 && t < 64976 || this._checkForProblematicCharacters(t), t)
    }

    _checkForProblematicCharacters(t) {
        Bs(t) ? this._err(Z.controlCharacterInInputStream) : Rs(t) && this._err(Z.noncharacterInInputStream)
    }

    retreat(t) {
        for (this.pos -= t; this.pos < this.lastGapPos;) this.lastGapPos = this.gapStack.pop(), this.pos--;
        this.isEol = !1
    }
}

var Ee;
(function (e) {
    e[e.CHARACTER = 0] = "CHARACTER", e[e.NULL_CHARACTER = 1] = "NULL_CHARACTER", e[e.WHITESPACE_CHARACTER = 2] = "WHITESPACE_CHARACTER", e[e.START_TAG = 3] = "START_TAG", e[e.END_TAG = 4] = "END_TAG", e[e.COMMENT = 5] = "COMMENT", e[e.DOCTYPE = 6] = "DOCTYPE", e[e.EOF = 7] = "EOF", e[e.HIBERNATION = 8] = "HIBERNATION"
})(Ee || (Ee = {}));

function Os(e, t) {
    for (let r = e.attrs.length - 1; r >= 0; r--) if (e.attrs[r].name === t) return e.attrs[r].value;
    return null
}

const $h = new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTǇǋǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉ǲኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻ǲᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤĳạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ﬃɩᾹ\0\0᾽g;耀ﬀig;耀ﬄ;쀀𝔣lig;耀ﬁlig;쀀fjƀaltῙ῜ῡt;晭ig;耀ﬂns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒α‚‰‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସǳ⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗǈⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼ǲ㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e => e.charCodeAt(0))),
    eA = new Map([[0, 65533], [128, 8364], [130, 8218], [131, 402], [132, 8222], [133, 8230], [134, 8224], [135, 8225], [136, 710], [137, 8240], [138, 352], [139, 8249], [140, 338], [142, 381], [145, 8216], [146, 8217], [147, 8220], [148, 8221], [149, 8226], [150, 8211], [151, 8212], [152, 732], [153, 8482], [154, 353], [155, 8250], [156, 339], [158, 382], [159, 376]]);

function tA(e) {
    var t;
    return e >= 55296 && e <= 57343 || e > 1114111 ? 65533 : (t = eA.get(e)) !== null && t !== void 0 ? t : e
}

var Me;
(function (e) {
    e[e.NUM = 35] = "NUM", e[e.SEMI = 59] = "SEMI", e[e.EQUALS = 61] = "EQUALS", e[e.ZERO = 48] = "ZERO", e[e.NINE = 57] = "NINE", e[e.LOWER_A = 97] = "LOWER_A", e[e.LOWER_F = 102] = "LOWER_F", e[e.LOWER_X = 120] = "LOWER_X", e[e.LOWER_Z = 122] = "LOWER_Z", e[e.UPPER_A = 65] = "UPPER_A", e[e.UPPER_F = 70] = "UPPER_F", e[e.UPPER_Z = 90] = "UPPER_Z"
})(Me || (Me = {}));
const rA = 32;
var gt;
(function (e) {
    e[e.VALUE_LENGTH = 49152] = "VALUE_LENGTH", e[e.BRANCH_LENGTH = 16256] = "BRANCH_LENGTH", e[e.JUMP_TABLE = 127] = "JUMP_TABLE"
})(gt || (gt = {}));

function cn(e) {
    return e >= Me.ZERO && e <= Me.NINE
}

function uA(e) {
    return e >= Me.UPPER_A && e <= Me.UPPER_F || e >= Me.LOWER_A && e <= Me.LOWER_F
}

function nA(e) {
    return e >= Me.UPPER_A && e <= Me.UPPER_Z || e >= Me.LOWER_A && e <= Me.LOWER_Z || cn(e)
}

function iA(e) {
    return e === Me.EQUALS || nA(e)
}

var Le;
(function (e) {
    e[e.EntityStart = 0] = "EntityStart", e[e.NumericStart = 1] = "NumericStart", e[e.NumericDecimal = 2] = "NumericDecimal", e[e.NumericHex = 3] = "NumericHex", e[e.NamedEntity = 4] = "NamedEntity"
})(Le || (Le = {}));
var ft;
(function (e) {
    e[e.Legacy = 0] = "Legacy", e[e.Strict = 1] = "Strict", e[e.Attribute = 2] = "Attribute"
})(ft || (ft = {}));

class aA {
    constructor(t, r, u) {
        this.decodeTree = t, this.emitCodePoint = r, this.errors = u, this.state = Le.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = ft.Strict
    }

    startEntity(t) {
        this.decodeMode = t, this.state = Le.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1
    }

    write(t, r) {
        switch (this.state) {
            case Le.EntityStart:
                return t.charCodeAt(r) === Me.NUM ? (this.state = Le.NumericStart, this.consumed += 1, this.stateNumericStart(t, r + 1)) : (this.state = Le.NamedEntity, this.stateNamedEntity(t, r));
            case Le.NumericStart:
                return this.stateNumericStart(t, r);
            case Le.NumericDecimal:
                return this.stateNumericDecimal(t, r);
            case Le.NumericHex:
                return this.stateNumericHex(t, r);
            case Le.NamedEntity:
                return this.stateNamedEntity(t, r)
        }
    }

    stateNumericStart(t, r) {
        return r >= t.length ? -1 : (t.charCodeAt(r) | rA) === Me.LOWER_X ? (this.state = Le.NumericHex, this.consumed += 1, this.stateNumericHex(t, r + 1)) : (this.state = Le.NumericDecimal, this.stateNumericDecimal(t, r))
    }

    addToNumericResult(t, r, u, n) {
        if (r !== u) {
            const i = u - r;
            this.result = this.result * Math.pow(n, i) + Number.parseInt(t.substr(r, i), n), this.consumed += i
        }
    }

    stateNumericHex(t, r) {
        const u = r;
        for (; r < t.length;) {
            const n = t.charCodeAt(r);
            if (cn(n) || uA(n)) r += 1; else return this.addToNumericResult(t, u, r, 16), this.emitNumericEntity(n, 3)
        }
        return this.addToNumericResult(t, u, r, 16), -1
    }

    stateNumericDecimal(t, r) {
        const u = r;
        for (; r < t.length;) {
            const n = t.charCodeAt(r);
            if (cn(n)) r += 1; else return this.addToNumericResult(t, u, r, 10), this.emitNumericEntity(n, 2)
        }
        return this.addToNumericResult(t, u, r, 10), -1
    }

    emitNumericEntity(t, r) {
        var u;
        if (this.consumed <= r) return (u = this.errors) === null || u === void 0 || u.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
        if (t === Me.SEMI) this.consumed += 1; else if (this.decodeMode === ft.Strict) return 0;
        return this.emitCodePoint(tA(this.result), this.consumed), this.errors && (t !== Me.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed
    }

    stateNamedEntity(t, r) {
        const {decodeTree: u} = this;
        let n = u[this.treeIndex], i = (n & gt.VALUE_LENGTH) >> 14;
        for (; r < t.length; r++, this.excess++) {
            const a = t.charCodeAt(r);
            if (this.treeIndex = sA(u, n, this.treeIndex + Math.max(1, i), a), this.treeIndex < 0) return this.result === 0 || this.decodeMode === ft.Attribute && (i === 0 || iA(a)) ? 0 : this.emitNotTerminatedNamedEntity();
            if (n = u[this.treeIndex], i = (n & gt.VALUE_LENGTH) >> 14, i !== 0) {
                if (a === Me.SEMI) return this.emitNamedEntityData(this.treeIndex, i, this.consumed + this.excess);
                this.decodeMode !== ft.Strict && (this.result = this.treeIndex, this.consumed += this.excess, this.excess = 0)
            }
        }
        return -1
    }

    emitNotTerminatedNamedEntity() {
        var t;
        const {result: r, decodeTree: u} = this, n = (u[r] & gt.VALUE_LENGTH) >> 14;
        return this.emitNamedEntityData(r, n, this.consumed), (t = this.errors) === null || t === void 0 || t.missingSemicolonAfterCharacterReference(), this.consumed
    }

    emitNamedEntityData(t, r, u) {
        const {decodeTree: n} = this;
        return this.emitCodePoint(r === 1 ? n[t] & ~gt.VALUE_LENGTH : n[t + 1], u), r === 3 && this.emitCodePoint(n[t + 2], u), u
    }

    end() {
        var t;
        switch (this.state) {
            case Le.NamedEntity:
                return this.result !== 0 && (this.decodeMode !== ft.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
            case Le.NumericDecimal:
                return this.emitNumericEntity(0, 2);
            case Le.NumericHex:
                return this.emitNumericEntity(0, 3);
            case Le.NumericStart:
                return (t = this.errors) === null || t === void 0 || t.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
            case Le.EntityStart:
                return 0
        }
    }
}

function sA(e, t, r, u) {
    const n = (t & gt.BRANCH_LENGTH) >> 7, i = t & gt.JUMP_TABLE;
    if (n === 0) return i !== 0 && u === i ? r : -1;
    if (i) {
        const o = u - i;
        return o < 0 || o >= n ? -1 : e[r + o] - 1
    }
    let a = r, s = a + n - 1;
    for (; a <= s;) {
        const o = a + s >>> 1, l = e[o];
        if (l < u) a = o + 1; else if (l > u) s = o - 1; else return e[o + n]
    }
    return -1
}

var $;
(function (e) {
    e.HTML = "http://www.w3.org/1999/xhtml", e.MATHML = "http://www.w3.org/1998/Math/MathML", e.SVG = "http://www.w3.org/2000/svg", e.XLINK = "http://www.w3.org/1999/xlink", e.XML = "http://www.w3.org/XML/1998/namespace", e.XMLNS = "http://www.w3.org/2000/xmlns/"
})($ || ($ = {}));
var It;
(function (e) {
    e.TYPE = "type", e.ACTION = "action", e.ENCODING = "encoding", e.PROMPT = "prompt", e.NAME = "name", e.COLOR = "color", e.FACE = "face", e.SIZE = "size"
})(It || (It = {}));
var Ze;
(function (e) {
    e.NO_QUIRKS = "no-quirks", e.QUIRKS = "quirks", e.LIMITED_QUIRKS = "limited-quirks"
})(Ze || (Ze = {}));
var H;
(function (e) {
    e.A = "a", e.ADDRESS = "address", e.ANNOTATION_XML = "annotation-xml", e.APPLET = "applet", e.AREA = "area", e.ARTICLE = "article", e.ASIDE = "aside", e.B = "b", e.BASE = "base", e.BASEFONT = "basefont", e.BGSOUND = "bgsound", e.BIG = "big", e.BLOCKQUOTE = "blockquote", e.BODY = "body", e.BR = "br", e.BUTTON = "button", e.CAPTION = "caption", e.CENTER = "center", e.CODE = "code", e.COL = "col", e.COLGROUP = "colgroup", e.DD = "dd", e.DESC = "desc", e.DETAILS = "details", e.DIALOG = "dialog", e.DIR = "dir", e.DIV = "div", e.DL = "dl", e.DT = "dt", e.EM = "em", e.EMBED = "embed", e.FIELDSET = "fieldset", e.FIGCAPTION = "figcaption", e.FIGURE = "figure", e.FONT = "font", e.FOOTER = "footer", e.FOREIGN_OBJECT = "foreignObject", e.FORM = "form", e.FRAME = "frame", e.FRAMESET = "frameset", e.H1 = "h1", e.H2 = "h2", e.H3 = "h3", e.H4 = "h4", e.H5 = "h5", e.H6 = "h6", e.HEAD = "head", e.HEADER = "header", e.HGROUP = "hgroup", e.HR = "hr", e.HTML = "html", e.I = "i", e.IMG = "img", e.IMAGE = "image", e.INPUT = "input", e.IFRAME = "iframe", e.KEYGEN = "keygen", e.LABEL = "label", e.LI = "li", e.LINK = "link", e.LISTING = "listing", e.MAIN = "main", e.MALIGNMARK = "malignmark", e.MARQUEE = "marquee", e.MATH = "math", e.MENU = "menu", e.META = "meta", e.MGLYPH = "mglyph", e.MI = "mi", e.MO = "mo", e.MN = "mn", e.MS = "ms", e.MTEXT = "mtext", e.NAV = "nav", e.NOBR = "nobr", e.NOFRAMES = "noframes", e.NOEMBED = "noembed", e.NOSCRIPT = "noscript", e.OBJECT = "object", e.OL = "ol", e.OPTGROUP = "optgroup", e.OPTION = "option", e.P = "p", e.PARAM = "param", e.PLAINTEXT = "plaintext", e.PRE = "pre", e.RB = "rb", e.RP = "rp", e.RT = "rt", e.RTC = "rtc", e.RUBY = "ruby", e.S = "s", e.SCRIPT = "script", e.SEARCH = "search", e.SECTION = "section", e.SELECT = "select", e.SOURCE = "source", e.SMALL = "small", e.SPAN = "span", e.STRIKE = "strike", e.STRONG = "strong",e.STYLE = "style",e.SUB = "sub",e.SUMMARY = "summary",e.SUP = "sup",e.TABLE = "table",e.TBODY = "tbody",e.TEMPLATE = "template",e.TEXTAREA = "textarea",e.TFOOT = "tfoot",e.TD = "td",e.TH = "th",e.THEAD = "thead",e.TITLE = "title",e.TR = "tr",e.TRACK = "track",e.TT = "tt",e.U = "u",e.UL = "ul",e.SVG = "svg",e.VAR = "var",e.WBR = "wbr",e.XMP = "xmp"
})(H || (H = {}));
var c;
(function (e) {
    e[e.UNKNOWN = 0] = "UNKNOWN", e[e.A = 1] = "A", e[e.ADDRESS = 2] = "ADDRESS", e[e.ANNOTATION_XML = 3] = "ANNOTATION_XML", e[e.APPLET = 4] = "APPLET", e[e.AREA = 5] = "AREA", e[e.ARTICLE = 6] = "ARTICLE", e[e.ASIDE = 7] = "ASIDE", e[e.B = 8] = "B", e[e.BASE = 9] = "BASE", e[e.BASEFONT = 10] = "BASEFONT", e[e.BGSOUND = 11] = "BGSOUND", e[e.BIG = 12] = "BIG", e[e.BLOCKQUOTE = 13] = "BLOCKQUOTE", e[e.BODY = 14] = "BODY", e[e.BR = 15] = "BR", e[e.BUTTON = 16] = "BUTTON", e[e.CAPTION = 17] = "CAPTION", e[e.CENTER = 18] = "CENTER", e[e.CODE = 19] = "CODE", e[e.COL = 20] = "COL", e[e.COLGROUP = 21] = "COLGROUP", e[e.DD = 22] = "DD", e[e.DESC = 23] = "DESC", e[e.DETAILS = 24] = "DETAILS", e[e.DIALOG = 25] = "DIALOG", e[e.DIR = 26] = "DIR", e[e.DIV = 27] = "DIV", e[e.DL = 28] = "DL", e[e.DT = 29] = "DT", e[e.EM = 30] = "EM", e[e.EMBED = 31] = "EMBED", e[e.FIELDSET = 32] = "FIELDSET", e[e.FIGCAPTION = 33] = "FIGCAPTION", e[e.FIGURE = 34] = "FIGURE", e[e.FONT = 35] = "FONT", e[e.FOOTER = 36] = "FOOTER", e[e.FOREIGN_OBJECT = 37] = "FOREIGN_OBJECT", e[e.FORM = 38] = "FORM", e[e.FRAME = 39] = "FRAME", e[e.FRAMESET = 40] = "FRAMESET", e[e.H1 = 41] = "H1", e[e.H2 = 42] = "H2", e[e.H3 = 43] = "H3", e[e.H4 = 44] = "H4", e[e.H5 = 45] = "H5", e[e.H6 = 46] = "H6", e[e.HEAD = 47] = "HEAD", e[e.HEADER = 48] = "HEADER", e[e.HGROUP = 49] = "HGROUP", e[e.HR = 50] = "HR", e[e.HTML = 51] = "HTML", e[e.I = 52] = "I", e[e.IMG = 53] = "IMG", e[e.IMAGE = 54] = "IMAGE", e[e.INPUT = 55] = "INPUT", e[e.IFRAME = 56] = "IFRAME", e[e.KEYGEN = 57] = "KEYGEN", e[e.LABEL = 58] = "LABEL", e[e.LI = 59] = "LI", e[e.LINK = 60] = "LINK", e[e.LISTING = 61] = "LISTING", e[e.MAIN = 62] = "MAIN", e[e.MALIGNMARK = 63] = "MALIGNMARK", e[e.MARQUEE = 64] = "MARQUEE", e[e.MATH = 65] = "MATH", e[e.MENU = 66] = "MENU", e[e.META = 67] = "META", e[e.MGLYPH = 68] = "MGLYPH", e[e.MI = 69] = "MI", e[e.MO = 70] = "MO", e[e.MN = 71] = "MN", e[e.MS = 72] = "MS", e[e.MTEXT = 73] = "MTEXT", e[e.NAV = 74] = "NAV", e[e.NOBR = 75] = "NOBR", e[e.NOFRAMES = 76] = "NOFRAMES", e[e.NOEMBED = 77] = "NOEMBED", e[e.NOSCRIPT = 78] = "NOSCRIPT", e[e.OBJECT = 79] = "OBJECT", e[e.OL = 80] = "OL", e[e.OPTGROUP = 81] = "OPTGROUP", e[e.OPTION = 82] = "OPTION", e[e.P = 83] = "P", e[e.PARAM = 84] = "PARAM", e[e.PLAINTEXT = 85] = "PLAINTEXT", e[e.PRE = 86] = "PRE", e[e.RB = 87] = "RB", e[e.RP = 88] = "RP", e[e.RT = 89] = "RT", e[e.RTC = 90] = "RTC", e[e.RUBY = 91] = "RUBY", e[e.S = 92] = "S", e[e.SCRIPT = 93] = "SCRIPT", e[e.SEARCH = 94] = "SEARCH", e[e.SECTION = 95] = "SECTION", e[e.SELECT = 96] = "SELECT", e[e.SOURCE = 97] = "SOURCE", e[e.SMALL = 98] = "SMALL", e[e.SPAN = 99] = "SPAN", e[e.STRIKE = 100] = "STRIKE",e[e.STRONG = 101] = "STRONG",e[e.STYLE = 102] = "STYLE",e[e.SUB = 103] = "SUB",e[e.SUMMARY = 104] = "SUMMARY",e[e.SUP = 105] = "SUP",e[e.TABLE = 106] = "TABLE",e[e.TBODY = 107] = "TBODY",e[e.TEMPLATE = 108] = "TEMPLATE",e[e.TEXTAREA = 109] = "TEXTAREA",e[e.TFOOT = 110] = "TFOOT",e[e.TD = 111] = "TD",e[e.TH = 112] = "TH",e[e.THEAD = 113] = "THEAD",e[e.TITLE = 114] = "TITLE",e[e.TR = 115] = "TR",e[e.TRACK = 116] = "TRACK",e[e.TT = 117] = "TT",e[e.U = 118] = "U",e[e.UL = 119] = "UL",e[e.SVG = 120] = "SVG",e[e.VAR = 121] = "VAR",e[e.WBR = 122] = "WBR",e[e.XMP = 123] = "XMP"
})(c || (c = {}));
const oA = new Map([[H.A, c.A], [H.ADDRESS, c.ADDRESS], [H.ANNOTATION_XML, c.ANNOTATION_XML], [H.APPLET, c.APPLET], [H.AREA, c.AREA], [H.ARTICLE, c.ARTICLE], [H.ASIDE, c.ASIDE], [H.B, c.B], [H.BASE, c.BASE], [H.BASEFONT, c.BASEFONT], [H.BGSOUND, c.BGSOUND], [H.BIG, c.BIG], [H.BLOCKQUOTE, c.BLOCKQUOTE], [H.BODY, c.BODY], [H.BR, c.BR], [H.BUTTON, c.BUTTON], [H.CAPTION, c.CAPTION], [H.CENTER, c.CENTER], [H.CODE, c.CODE], [H.COL, c.COL], [H.COLGROUP, c.COLGROUP], [H.DD, c.DD], [H.DESC, c.DESC], [H.DETAILS, c.DETAILS], [H.DIALOG, c.DIALOG], [H.DIR, c.DIR], [H.DIV, c.DIV], [H.DL, c.DL], [H.DT, c.DT], [H.EM, c.EM], [H.EMBED, c.EMBED], [H.FIELDSET, c.FIELDSET], [H.FIGCAPTION, c.FIGCAPTION], [H.FIGURE, c.FIGURE], [H.FONT, c.FONT], [H.FOOTER, c.FOOTER], [H.FOREIGN_OBJECT, c.FOREIGN_OBJECT], [H.FORM, c.FORM], [H.FRAME, c.FRAME], [H.FRAMESET, c.FRAMESET], [H.H1, c.H1], [H.H2, c.H2], [H.H3, c.H3], [H.H4, c.H4], [H.H5, c.H5], [H.H6, c.H6], [H.HEAD, c.HEAD], [H.HEADER, c.HEADER], [H.HGROUP, c.HGROUP], [H.HR, c.HR], [H.HTML, c.HTML], [H.I, c.I], [H.IMG, c.IMG], [H.IMAGE, c.IMAGE], [H.INPUT, c.INPUT], [H.IFRAME, c.IFRAME], [H.KEYGEN, c.KEYGEN], [H.LABEL, c.LABEL], [H.LI, c.LI], [H.LINK, c.LINK], [H.LISTING, c.LISTING], [H.MAIN, c.MAIN], [H.MALIGNMARK, c.MALIGNMARK], [H.MARQUEE, c.MARQUEE], [H.MATH, c.MATH], [H.MENU, c.MENU], [H.META, c.META], [H.MGLYPH, c.MGLYPH], [H.MI, c.MI], [H.MO, c.MO], [H.MN, c.MN], [H.MS, c.MS], [H.MTEXT, c.MTEXT], [H.NAV, c.NAV], [H.NOBR, c.NOBR], [H.NOFRAMES, c.NOFRAMES], [H.NOEMBED, c.NOEMBED], [H.NOSCRIPT, c.NOSCRIPT], [H.OBJECT, c.OBJECT], [H.OL, c.OL], [H.OPTGROUP, c.OPTGROUP], [H.OPTION, c.OPTION], [H.P, c.P], [H.PARAM, c.PARAM], [H.PLAINTEXT, c.PLAINTEXT], [H.PRE, c.PRE], [H.RB, c.RB], [H.RP, c.RP], [H.RT, c.RT], [H.RTC, c.RTC], [H.RUBY, c.RUBY], [H.S, c.S], [H.SCRIPT, c.SCRIPT], [H.SEARCH, c.SEARCH], [H.SECTION, c.SECTION], [H.SELECT, c.SELECT], [H.SOURCE, c.SOURCE], [H.SMALL, c.SMALL], [H.SPAN, c.SPAN], [H.STRIKE, c.STRIKE], [H.STRONG, c.STRONG], [H.STYLE, c.STYLE], [H.SUB, c.SUB], [H.SUMMARY, c.SUMMARY], [H.SUP, c.SUP], [H.TABLE, c.TABLE], [H.TBODY, c.TBODY], [H.TEMPLATE, c.TEMPLATE], [H.TEXTAREA, c.TEXTAREA], [H.TFOOT, c.TFOOT], [H.TD, c.TD], [H.TH, c.TH], [H.THEAD, c.THEAD], [H.TITLE, c.TITLE], [H.TR, c.TR], [H.TRACK, c.TRACK], [H.TT, c.TT], [H.U, c.U], [H.UL, c.UL], [H.SVG, c.SVG], [H.VAR, c.VAR], [H.WBR, c.WBR], [H.XMP, c.XMP]]);

function bu(e) {
    var t;
    return (t = oA.get(e)) !== null && t !== void 0 ? t : c.UNKNOWN
}

const te = c, cA = {
        [$.HTML]: new Set([te.ADDRESS, te.APPLET, te.AREA, te.ARTICLE, te.ASIDE, te.BASE, te.BASEFONT, te.BGSOUND, te.BLOCKQUOTE, te.BODY, te.BR, te.BUTTON, te.CAPTION, te.CENTER, te.COL, te.COLGROUP, te.DD, te.DETAILS, te.DIR, te.DIV, te.DL, te.DT, te.EMBED, te.FIELDSET, te.FIGCAPTION, te.FIGURE, te.FOOTER, te.FORM, te.FRAME, te.FRAMESET, te.H1, te.H2, te.H3, te.H4, te.H5, te.H6, te.HEAD, te.HEADER, te.HGROUP, te.HR, te.HTML, te.IFRAME, te.IMG, te.INPUT, te.LI, te.LINK, te.LISTING, te.MAIN, te.MARQUEE, te.MENU, te.META, te.NAV, te.NOEMBED, te.NOFRAMES, te.NOSCRIPT, te.OBJECT, te.OL, te.P, te.PARAM, te.PLAINTEXT, te.PRE, te.SCRIPT, te.SECTION, te.SELECT, te.SOURCE, te.STYLE, te.SUMMARY, te.TABLE, te.TBODY, te.TD, te.TEMPLATE, te.TEXTAREA, te.TFOOT, te.TH, te.THEAD, te.TITLE, te.TR, te.TRACK, te.UL, te.WBR, te.XMP]),
        [$.MATHML]: new Set([te.MI, te.MO, te.MN, te.MS, te.MTEXT, te.ANNOTATION_XML]),
        [$.SVG]: new Set([te.TITLE, te.FOREIGN_OBJECT, te.DESC]),
        [$.XLINK]: new Set,
        [$.XML]: new Set,
        [$.XMLNS]: new Set
    }, ln = new Set([te.H1, te.H2, te.H3, te.H4, te.H5, te.H6]),
    lA = new Set([H.STYLE, H.SCRIPT, H.XMP, H.IFRAME, H.NOEMBED, H.NOFRAMES, H.PLAINTEXT]);

function fA(e, t) {
    return lA.has(e) || t && e === H.NOSCRIPT
}

var N;
(function (e) {
    e[e.DATA = 0] = "DATA", e[e.RCDATA = 1] = "RCDATA", e[e.RAWTEXT = 2] = "RAWTEXT", e[e.SCRIPT_DATA = 3] = "SCRIPT_DATA", e[e.PLAINTEXT = 4] = "PLAINTEXT", e[e.TAG_OPEN = 5] = "TAG_OPEN", e[e.END_TAG_OPEN = 6] = "END_TAG_OPEN", e[e.TAG_NAME = 7] = "TAG_NAME", e[e.RCDATA_LESS_THAN_SIGN = 8] = "RCDATA_LESS_THAN_SIGN", e[e.RCDATA_END_TAG_OPEN = 9] = "RCDATA_END_TAG_OPEN", e[e.RCDATA_END_TAG_NAME = 10] = "RCDATA_END_TAG_NAME", e[e.RAWTEXT_LESS_THAN_SIGN = 11] = "RAWTEXT_LESS_THAN_SIGN", e[e.RAWTEXT_END_TAG_OPEN = 12] = "RAWTEXT_END_TAG_OPEN", e[e.RAWTEXT_END_TAG_NAME = 13] = "RAWTEXT_END_TAG_NAME", e[e.SCRIPT_DATA_LESS_THAN_SIGN = 14] = "SCRIPT_DATA_LESS_THAN_SIGN", e[e.SCRIPT_DATA_END_TAG_OPEN = 15] = "SCRIPT_DATA_END_TAG_OPEN", e[e.SCRIPT_DATA_END_TAG_NAME = 16] = "SCRIPT_DATA_END_TAG_NAME", e[e.SCRIPT_DATA_ESCAPE_START = 17] = "SCRIPT_DATA_ESCAPE_START", e[e.SCRIPT_DATA_ESCAPE_START_DASH = 18] = "SCRIPT_DATA_ESCAPE_START_DASH", e[e.SCRIPT_DATA_ESCAPED = 19] = "SCRIPT_DATA_ESCAPED", e[e.SCRIPT_DATA_ESCAPED_DASH = 20] = "SCRIPT_DATA_ESCAPED_DASH", e[e.SCRIPT_DATA_ESCAPED_DASH_DASH = 21] = "SCRIPT_DATA_ESCAPED_DASH_DASH", e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN = 22] = "SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN", e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN = 23] = "SCRIPT_DATA_ESCAPED_END_TAG_OPEN", e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME = 24] = "SCRIPT_DATA_ESCAPED_END_TAG_NAME", e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START = 25] = "SCRIPT_DATA_DOUBLE_ESCAPE_START", e[e.SCRIPT_DATA_DOUBLE_ESCAPED = 26] = "SCRIPT_DATA_DOUBLE_ESCAPED", e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH = 27] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH", e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH = 28] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH", e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN = 29] = "SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN", e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END = 30] = "SCRIPT_DATA_DOUBLE_ESCAPE_END", e[e.BEFORE_ATTRIBUTE_NAME = 31] = "BEFORE_ATTRIBUTE_NAME", e[e.ATTRIBUTE_NAME = 32] = "ATTRIBUTE_NAME", e[e.AFTER_ATTRIBUTE_NAME = 33] = "AFTER_ATTRIBUTE_NAME", e[e.BEFORE_ATTRIBUTE_VALUE = 34] = "BEFORE_ATTRIBUTE_VALUE", e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED = 35] = "ATTRIBUTE_VALUE_DOUBLE_QUOTED", e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED = 36] = "ATTRIBUTE_VALUE_SINGLE_QUOTED", e[e.ATTRIBUTE_VALUE_UNQUOTED = 37] = "ATTRIBUTE_VALUE_UNQUOTED", e[e.AFTER_ATTRIBUTE_VALUE_QUOTED = 38] = "AFTER_ATTRIBUTE_VALUE_QUOTED", e[e.SELF_CLOSING_START_TAG = 39] = "SELF_CLOSING_START_TAG", e[e.BOGUS_COMMENT = 40] = "BOGUS_COMMENT", e[e.MARKUP_DECLARATION_OPEN = 41] = "MARKUP_DECLARATION_OPEN", e[e.COMMENT_START = 42] = "COMMENT_START", e[e.COMMENT_START_DASH = 43] = "COMMENT_START_DASH", e[e.COMMENT = 44] = "COMMENT", e[e.COMMENT_LESS_THAN_SIGN = 45] = "COMMENT_LESS_THAN_SIGN", e[e.COMMENT_LESS_THAN_SIGN_BANG = 46] = "COMMENT_LESS_THAN_SIGN_BANG", e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH = 47] = "COMMENT_LESS_THAN_SIGN_BANG_DASH", e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH = 48] = "COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH", e[e.COMMENT_END_DASH = 49] = "COMMENT_END_DASH", e[e.COMMENT_END = 50] = "COMMENT_END", e[e.COMMENT_END_BANG = 51] = "COMMENT_END_BANG", e[e.DOCTYPE = 52] = "DOCTYPE", e[e.BEFORE_DOCTYPE_NAME = 53] = "BEFORE_DOCTYPE_NAME", e[e.DOCTYPE_NAME = 54] = "DOCTYPE_NAME", e[e.AFTER_DOCTYPE_NAME = 55] = "AFTER_DOCTYPE_NAME", e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD = 56] = "AFTER_DOCTYPE_PUBLIC_KEYWORD", e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER = 57] = "BEFORE_DOCTYPE_PUBLIC_IDENTIFIER", e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED = 58] = "DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED", e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED = 59] = "DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED", e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER = 60] = "AFTER_DOCTYPE_PUBLIC_IDENTIFIER", e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS = 61] = "BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS", e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD = 62] = "AFTER_DOCTYPE_SYSTEM_KEYWORD", e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER = 63] = "BEFORE_DOCTYPE_SYSTEM_IDENTIFIER", e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED = 64] = "DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED", e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED = 65] = "DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED", e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER = 66] = "AFTER_DOCTYPE_SYSTEM_IDENTIFIER", e[e.BOGUS_DOCTYPE = 67] = "BOGUS_DOCTYPE", e[e.CDATA_SECTION = 68] = "CDATA_SECTION", e[e.CDATA_SECTION_BRACKET = 69] = "CDATA_SECTION_BRACKET", e[e.CDATA_SECTION_END = 70] = "CDATA_SECTION_END", e[e.CHARACTER_REFERENCE = 71] = "CHARACTER_REFERENCE", e[e.AMBIGUOUS_AMPERSAND = 72] = "AMBIGUOUS_AMPERSAND"
})(N || (N = {}));
const We = {
    DATA: N.DATA,
    RCDATA: N.RCDATA,
    RAWTEXT: N.RAWTEXT,
    SCRIPT_DATA: N.SCRIPT_DATA,
    PLAINTEXT: N.PLAINTEXT,
    CDATA_SECTION: N.CDATA_SECTION
};

function dA(e) {
    return e >= I.DIGIT_0 && e <= I.DIGIT_9
}

function er(e) {
    return e >= I.LATIN_CAPITAL_A && e <= I.LATIN_CAPITAL_Z
}

function hA(e) {
    return e >= I.LATIN_SMALL_A && e <= I.LATIN_SMALL_Z
}

function ht(e) {
    return hA(e) || er(e)
}

function Yi(e) {
    return ht(e) || dA(e)
}

function Or(e) {
    return e + 32
}

function Ls(e) {
    return e === I.SPACE || e === I.LINE_FEED || e === I.TABULATION || e === I.FORM_FEED
}

function Gi(e) {
    return Ls(e) || e === I.SOLIDUS || e === I.GREATER_THAN_SIGN
}

function AA(e) {
    return e === I.NULL ? Z.nullCharacterReference : e > 1114111 ? Z.characterReferenceOutsideUnicodeRange : Ds(e) ? Z.surrogateCharacterReference : Rs(e) ? Z.noncharacterCharacterReference : Bs(e) || e === I.CARRIAGE_RETURN ? Z.controlCharacterReference : null
}

let pA = class {
    constructor(t, r) {
        this.options = t, this.handler = r, this.paused = !1, this.inLoop = !1, this.inForeignNode = !1, this.lastStartTagName = "", this.active = !1, this.state = N.DATA, this.returnState = N.DATA, this.entityStartPos = 0, this.consumedAfterSnapshot = -1, this.currentCharacterToken = null, this.currentToken = null, this.currentAttr = {
            name: "",
            value: ""
        }, this.preprocessor = new Xh(r), this.currentLocation = this.getCurrentLocation(-1), this.entityDecoder = new aA($h, (u, n) => {
            this.preprocessor.pos = this.entityStartPos + n - 1, this._flushCodePointConsumedAsCharacterReference(u)
        }, r.onParseError ? {
            missingSemicolonAfterCharacterReference: () => {
                this._err(Z.missingSemicolonAfterCharacterReference, 1)
            }, absenceOfDigitsInNumericCharacterReference: u => {
                this._err(Z.absenceOfDigitsInNumericCharacterReference, this.entityStartPos - this.preprocessor.pos + u)
            }, validateNumericCharacterReference: u => {
                const n = AA(u);
                n && this._err(n, 1)
            }
        } : void 0)
    }

    _err(t, r = 0) {
        var u, n;
        (n = (u = this.handler).onParseError) === null || n === void 0 || n.call(u, this.preprocessor.getError(t, r))
    }

    getCurrentLocation(t) {
        return this.options.sourceCodeLocationInfo ? {
            startLine: this.preprocessor.line,
            startCol: this.preprocessor.col - t,
            startOffset: this.preprocessor.offset - t,
            endLine: -1,
            endCol: -1,
            endOffset: -1
        } : null
    }

    _runParsingLoop() {
        if (!this.inLoop) {
            for (this.inLoop = !0; this.active && !this.paused;) {
                this.consumedAfterSnapshot = 0;
                const t = this._consume();
                this._ensureHibernation() || this._callState(t)
            }
            this.inLoop = !1
        }
    }

    pause() {
        this.paused = !0
    }

    resume(t) {
        if (!this.paused) throw new Error("Parser was already resumed");
        this.paused = !1, !this.inLoop && (this._runParsingLoop(), this.paused || t == null || t())
    }

    write(t, r, u) {
        this.active = !0, this.preprocessor.write(t, r), this._runParsingLoop(), this.paused || u == null || u()
    }

    insertHtmlAtCurrentPos(t) {
        this.active = !0, this.preprocessor.insertHtmlAtCurrentPos(t), this._runParsingLoop()
    }

    _ensureHibernation() {
        return this.preprocessor.endOfChunkHit ? (this.preprocessor.retreat(this.consumedAfterSnapshot), this.consumedAfterSnapshot = 0, this.active = !1, !0) : !1
    }

    _consume() {
        return this.consumedAfterSnapshot++, this.preprocessor.advance()
    }

    _advanceBy(t) {
        this.consumedAfterSnapshot += t;
        for (let r = 0; r < t; r++) this.preprocessor.advance()
    }

    _consumeSequenceIfMatch(t, r) {
        return this.preprocessor.startsWith(t, r) ? (this._advanceBy(t.length - 1), !0) : !1
    }

    _createStartTagToken() {
        this.currentToken = {
            type: Ee.START_TAG,
            tagName: "",
            tagID: c.UNKNOWN,
            selfClosing: !1,
            ackSelfClosing: !1,
            attrs: [],
            location: this.getCurrentLocation(1)
        }
    }

    _createEndTagToken() {
        this.currentToken = {
            type: Ee.END_TAG,
            tagName: "",
            tagID: c.UNKNOWN,
            selfClosing: !1,
            ackSelfClosing: !1,
            attrs: [],
            location: this.getCurrentLocation(2)
        }
    }

    _createCommentToken(t) {
        this.currentToken = {type: Ee.COMMENT, data: "", location: this.getCurrentLocation(t)}
    }

    _createDoctypeToken(t) {
        this.currentToken = {
            type: Ee.DOCTYPE,
            name: t,
            forceQuirks: !1,
            publicId: null,
            systemId: null,
            location: this.currentLocation
        }
    }

    _createCharacterToken(t, r) {
        this.currentCharacterToken = {type: t, chars: r, location: this.currentLocation}
    }

    _createAttr(t) {
        this.currentAttr = {name: t, value: ""}, this.currentLocation = this.getCurrentLocation(0)
    }

    _leaveAttrName() {
        var t, r;
        const u = this.currentToken;
        if (Os(u, this.currentAttr.name) === null) {
            if (u.attrs.push(this.currentAttr), u.location && this.currentLocation) {
                const n = (t = (r = u.location).attrs) !== null && t !== void 0 ? t : r.attrs = Object.create(null);
                n[this.currentAttr.name] = this.currentLocation, this._leaveAttrValue()
            }
        } else this._err(Z.duplicateAttribute)
    }

    _leaveAttrValue() {
        this.currentLocation && (this.currentLocation.endLine = this.preprocessor.line, this.currentLocation.endCol = this.preprocessor.col, this.currentLocation.endOffset = this.preprocessor.offset)
    }

    prepareToken(t) {
        this._emitCurrentCharacterToken(t.location), this.currentToken = null, t.location && (t.location.endLine = this.preprocessor.line, t.location.endCol = this.preprocessor.col + 1, t.location.endOffset = this.preprocessor.offset + 1), this.currentLocation = this.getCurrentLocation(-1)
    }

    emitCurrentTagToken() {
        const t = this.currentToken;
        this.prepareToken(t), t.tagID = bu(t.tagName), t.type === Ee.START_TAG ? (this.lastStartTagName = t.tagName, this.handler.onStartTag(t)) : (t.attrs.length > 0 && this._err(Z.endTagWithAttributes), t.selfClosing && this._err(Z.endTagWithTrailingSolidus), this.handler.onEndTag(t)), this.preprocessor.dropParsedChunk()
    }

    emitCurrentComment(t) {
        this.prepareToken(t), this.handler.onComment(t), this.preprocessor.dropParsedChunk()
    }

    emitCurrentDoctype(t) {
        this.prepareToken(t), this.handler.onDoctype(t), this.preprocessor.dropParsedChunk()
    }

    _emitCurrentCharacterToken(t) {
        if (this.currentCharacterToken) {
            switch (t && this.currentCharacterToken.location && (this.currentCharacterToken.location.endLine = t.startLine, this.currentCharacterToken.location.endCol = t.startCol, this.currentCharacterToken.location.endOffset = t.startOffset), this.currentCharacterToken.type) {
                case Ee.CHARACTER: {
                    this.handler.onCharacter(this.currentCharacterToken);
                    break
                }
                case Ee.NULL_CHARACTER: {
                    this.handler.onNullCharacter(this.currentCharacterToken);
                    break
                }
                case Ee.WHITESPACE_CHARACTER: {
                    this.handler.onWhitespaceCharacter(this.currentCharacterToken);
                    break
                }
            }
            this.currentCharacterToken = null
        }
    }

    _emitEOFToken() {
        const t = this.getCurrentLocation(0);
        t && (t.endLine = t.startLine, t.endCol = t.startCol, t.endOffset = t.startOffset), this._emitCurrentCharacterToken(t), this.handler.onEof({
            type: Ee.EOF,
            location: t
        }), this.active = !1
    }

    _appendCharToCurrentCharacterToken(t, r) {
        if (this.currentCharacterToken) if (this.currentCharacterToken.type === t) {
            this.currentCharacterToken.chars += r;
            return
        } else this.currentLocation = this.getCurrentLocation(0), this._emitCurrentCharacterToken(this.currentLocation), this.preprocessor.dropParsedChunk();
        this._createCharacterToken(t, r)
    }

    _emitCodePoint(t) {
        const r = Ls(t) ? Ee.WHITESPACE_CHARACTER : t === I.NULL ? Ee.NULL_CHARACTER : Ee.CHARACTER;
        this._appendCharToCurrentCharacterToken(r, String.fromCodePoint(t))
    }

    _emitChars(t) {
        this._appendCharToCurrentCharacterToken(Ee.CHARACTER, t)
    }

    _startCharacterReference() {
        this.returnState = this.state, this.state = N.CHARACTER_REFERENCE, this.entityStartPos = this.preprocessor.pos, this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute() ? ft.Attribute : ft.Legacy)
    }

    _isCharacterReferenceInAttribute() {
        return this.returnState === N.ATTRIBUTE_VALUE_DOUBLE_QUOTED || this.returnState === N.ATTRIBUTE_VALUE_SINGLE_QUOTED || this.returnState === N.ATTRIBUTE_VALUE_UNQUOTED
    }

    _flushCodePointConsumedAsCharacterReference(t) {
        this._isCharacterReferenceInAttribute() ? this.currentAttr.value += String.fromCodePoint(t) : this._emitCodePoint(t)
    }

    _callState(t) {
        switch (this.state) {
            case N.DATA: {
                this._stateData(t);
                break
            }
            case N.RCDATA: {
                this._stateRcdata(t);
                break
            }
            case N.RAWTEXT: {
                this._stateRawtext(t);
                break
            }
            case N.SCRIPT_DATA: {
                this._stateScriptData(t);
                break
            }
            case N.PLAINTEXT: {
                this._statePlaintext(t);
                break
            }
            case N.TAG_OPEN: {
                this._stateTagOpen(t);
                break
            }
            case N.END_TAG_OPEN: {
                this._stateEndTagOpen(t);
                break
            }
            case N.TAG_NAME: {
                this._stateTagName(t);
                break
            }
            case N.RCDATA_LESS_THAN_SIGN: {
                this._stateRcdataLessThanSign(t);
                break
            }
            case N.RCDATA_END_TAG_OPEN: {
                this._stateRcdataEndTagOpen(t);
                break
            }
            case N.RCDATA_END_TAG_NAME: {
                this._stateRcdataEndTagName(t);
                break
            }
            case N.RAWTEXT_LESS_THAN_SIGN: {
                this._stateRawtextLessThanSign(t);
                break
            }
            case N.RAWTEXT_END_TAG_OPEN: {
                this._stateRawtextEndTagOpen(t);
                break
            }
            case N.RAWTEXT_END_TAG_NAME: {
                this._stateRawtextEndTagName(t);
                break
            }
            case N.SCRIPT_DATA_LESS_THAN_SIGN: {
                this._stateScriptDataLessThanSign(t);
                break
            }
            case N.SCRIPT_DATA_END_TAG_OPEN: {
                this._stateScriptDataEndTagOpen(t);
                break
            }
            case N.SCRIPT_DATA_END_TAG_NAME: {
                this._stateScriptDataEndTagName(t);
                break
            }
            case N.SCRIPT_DATA_ESCAPE_START: {
                this._stateScriptDataEscapeStart(t);
                break
            }
            case N.SCRIPT_DATA_ESCAPE_START_DASH: {
                this._stateScriptDataEscapeStartDash(t);
                break
            }
            case N.SCRIPT_DATA_ESCAPED: {
                this._stateScriptDataEscaped(t);
                break
            }
            case N.SCRIPT_DATA_ESCAPED_DASH: {
                this._stateScriptDataEscapedDash(t);
                break
            }
            case N.SCRIPT_DATA_ESCAPED_DASH_DASH: {
                this._stateScriptDataEscapedDashDash(t);
                break
            }
            case N.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
                this._stateScriptDataEscapedLessThanSign(t);
                break
            }
            case N.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {
                this._stateScriptDataEscapedEndTagOpen(t);
                break
            }
            case N.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {
                this._stateScriptDataEscapedEndTagName(t);
                break
            }
            case N.SCRIPT_DATA_DOUBLE_ESCAPE_START: {
                this._stateScriptDataDoubleEscapeStart(t);
                break
            }
            case N.SCRIPT_DATA_DOUBLE_ESCAPED: {
                this._stateScriptDataDoubleEscaped(t);
                break
            }
            case N.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {
                this._stateScriptDataDoubleEscapedDash(t);
                break
            }
            case N.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {
                this._stateScriptDataDoubleEscapedDashDash(t);
                break
            }
            case N.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {
                this._stateScriptDataDoubleEscapedLessThanSign(t);
                break
            }
            case N.SCRIPT_DATA_DOUBLE_ESCAPE_END: {
                this._stateScriptDataDoubleEscapeEnd(t);
                break
            }
            case N.BEFORE_ATTRIBUTE_NAME: {
                this._stateBeforeAttributeName(t);
                break
            }
            case N.ATTRIBUTE_NAME: {
                this._stateAttributeName(t);
                break
            }
            case N.AFTER_ATTRIBUTE_NAME: {
                this._stateAfterAttributeName(t);
                break
            }
            case N.BEFORE_ATTRIBUTE_VALUE: {
                this._stateBeforeAttributeValue(t);
                break
            }
            case N.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
                this._stateAttributeValueDoubleQuoted(t);
                break
            }
            case N.ATTRIBUTE_VALUE_SINGLE_QUOTED: {
                this._stateAttributeValueSingleQuoted(t);
                break
            }
            case N.ATTRIBUTE_VALUE_UNQUOTED: {
                this._stateAttributeValueUnquoted(t);
                break
            }
            case N.AFTER_ATTRIBUTE_VALUE_QUOTED: {
                this._stateAfterAttributeValueQuoted(t);
                break
            }
            case N.SELF_CLOSING_START_TAG: {
                this._stateSelfClosingStartTag(t);
                break
            }
            case N.BOGUS_COMMENT: {
                this._stateBogusComment(t);
                break
            }
            case N.MARKUP_DECLARATION_OPEN: {
                this._stateMarkupDeclarationOpen(t);
                break
            }
            case N.COMMENT_START: {
                this._stateCommentStart(t);
                break
            }
            case N.COMMENT_START_DASH: {
                this._stateCommentStartDash(t);
                break
            }
            case N.COMMENT: {
                this._stateComment(t);
                break
            }
            case N.COMMENT_LESS_THAN_SIGN: {
                this._stateCommentLessThanSign(t);
                break
            }
            case N.COMMENT_LESS_THAN_SIGN_BANG: {
                this._stateCommentLessThanSignBang(t);
                break
            }
            case N.COMMENT_LESS_THAN_SIGN_BANG_DASH: {
                this._stateCommentLessThanSignBangDash(t);
                break
            }
            case N.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {
                this._stateCommentLessThanSignBangDashDash(t);
                break
            }
            case N.COMMENT_END_DASH: {
                this._stateCommentEndDash(t);
                break
            }
            case N.COMMENT_END: {
                this._stateCommentEnd(t);
                break
            }
            case N.COMMENT_END_BANG: {
                this._stateCommentEndBang(t);
                break
            }
            case N.DOCTYPE: {
                this._stateDoctype(t);
                break
            }
            case N.BEFORE_DOCTYPE_NAME: {
                this._stateBeforeDoctypeName(t);
                break
            }
            case N.DOCTYPE_NAME: {
                this._stateDoctypeName(t);
                break
            }
            case N.AFTER_DOCTYPE_NAME: {
                this._stateAfterDoctypeName(t);
                break
            }
            case N.AFTER_DOCTYPE_PUBLIC_KEYWORD: {
                this._stateAfterDoctypePublicKeyword(t);
                break
            }
            case N.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
                this._stateBeforeDoctypePublicIdentifier(t);
                break
            }
            case N.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {
                this._stateDoctypePublicIdentifierDoubleQuoted(t);
                break
            }
            case N.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
                this._stateDoctypePublicIdentifierSingleQuoted(t);
                break
            }
            case N.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {
                this._stateAfterDoctypePublicIdentifier(t);
                break
            }
            case N.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
                this._stateBetweenDoctypePublicAndSystemIdentifiers(t);
                break
            }
            case N.AFTER_DOCTYPE_SYSTEM_KEYWORD: {
                this._stateAfterDoctypeSystemKeyword(t);
                break
            }
            case N.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {
                this._stateBeforeDoctypeSystemIdentifier(t);
                break
            }
            case N.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {
                this._stateDoctypeSystemIdentifierDoubleQuoted(t);
                break
            }
            case N.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
                this._stateDoctypeSystemIdentifierSingleQuoted(t);
                break
            }
            case N.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
                this._stateAfterDoctypeSystemIdentifier(t);
                break
            }
            case N.BOGUS_DOCTYPE: {
                this._stateBogusDoctype(t);
                break
            }
            case N.CDATA_SECTION: {
                this._stateCdataSection(t);
                break
            }
            case N.CDATA_SECTION_BRACKET: {
                this._stateCdataSectionBracket(t);
                break
            }
            case N.CDATA_SECTION_END: {
                this._stateCdataSectionEnd(t);
                break
            }
            case N.CHARACTER_REFERENCE: {
                this._stateCharacterReference();
                break
            }
            case N.AMBIGUOUS_AMPERSAND: {
                this._stateAmbiguousAmpersand(t);
                break
            }
            default:
                throw new Error("Unknown state")
        }
    }

    _stateData(t) {
        switch (t) {
            case I.LESS_THAN_SIGN: {
                this.state = N.TAG_OPEN;
                break
            }
            case I.AMPERSAND: {
                this._startCharacterReference();
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this._emitCodePoint(t);
                break
            }
            case I.EOF: {
                this._emitEOFToken();
                break
            }
            default:
                this._emitCodePoint(t)
        }
    }

    _stateRcdata(t) {
        switch (t) {
            case I.AMPERSAND: {
                this._startCharacterReference();
                break
            }
            case I.LESS_THAN_SIGN: {
                this.state = N.RCDATA_LESS_THAN_SIGN;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._emitEOFToken();
                break
            }
            default:
                this._emitCodePoint(t)
        }
    }

    _stateRawtext(t) {
        switch (t) {
            case I.LESS_THAN_SIGN: {
                this.state = N.RAWTEXT_LESS_THAN_SIGN;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._emitEOFToken();
                break
            }
            default:
                this._emitCodePoint(t)
        }
    }

    _stateScriptData(t) {
        switch (t) {
            case I.LESS_THAN_SIGN: {
                this.state = N.SCRIPT_DATA_LESS_THAN_SIGN;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._emitEOFToken();
                break
            }
            default:
                this._emitCodePoint(t)
        }
    }

    _statePlaintext(t) {
        switch (t) {
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._emitEOFToken();
                break
            }
            default:
                this._emitCodePoint(t)
        }
    }

    _stateTagOpen(t) {
        if (ht(t)) this._createStartTagToken(), this.state = N.TAG_NAME, this._stateTagName(t); else switch (t) {
            case I.EXCLAMATION_MARK: {
                this.state = N.MARKUP_DECLARATION_OPEN;
                break
            }
            case I.SOLIDUS: {
                this.state = N.END_TAG_OPEN;
                break
            }
            case I.QUESTION_MARK: {
                this._err(Z.unexpectedQuestionMarkInsteadOfTagName), this._createCommentToken(1), this.state = N.BOGUS_COMMENT, this._stateBogusComment(t);
                break
            }
            case I.EOF: {
                this._err(Z.eofBeforeTagName), this._emitChars("<"), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.invalidFirstCharacterOfTagName), this._emitChars("<"), this.state = N.DATA, this._stateData(t)
        }
    }

    _stateEndTagOpen(t) {
        if (ht(t)) this._createEndTagToken(), this.state = N.TAG_NAME, this._stateTagName(t); else switch (t) {
            case I.GREATER_THAN_SIGN: {
                this._err(Z.missingEndTagName), this.state = N.DATA;
                break
            }
            case I.EOF: {
                this._err(Z.eofBeforeTagName), this._emitChars("</"), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.invalidFirstCharacterOfTagName), this._createCommentToken(2), this.state = N.BOGUS_COMMENT, this._stateBogusComment(t)
        }
    }

    _stateTagName(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED: {
                this.state = N.BEFORE_ATTRIBUTE_NAME;
                break
            }
            case I.SOLIDUS: {
                this.state = N.SELF_CLOSING_START_TAG;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this.state = N.DATA, this.emitCurrentTagToken();
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), r.tagName += Se;
                break
            }
            case I.EOF: {
                this._err(Z.eofInTag), this._emitEOFToken();
                break
            }
            default:
                r.tagName += String.fromCodePoint(er(t) ? Or(t) : t)
        }
    }

    _stateRcdataLessThanSign(t) {
        t === I.SOLIDUS ? this.state = N.RCDATA_END_TAG_OPEN : (this._emitChars("<"), this.state = N.RCDATA, this._stateRcdata(t))
    }

    _stateRcdataEndTagOpen(t) {
        ht(t) ? (this.state = N.RCDATA_END_TAG_NAME, this._stateRcdataEndTagName(t)) : (this._emitChars("</"), this.state = N.RCDATA, this._stateRcdata(t))
    }

    handleSpecialEndTag(t) {
        if (!this.preprocessor.startsWith(this.lastStartTagName, !1)) return !this._ensureHibernation();
        this._createEndTagToken();
        const r = this.currentToken;
        switch (r.tagName = this.lastStartTagName, this.preprocessor.peek(this.lastStartTagName.length)) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                return this._advanceBy(this.lastStartTagName.length), this.state = N.BEFORE_ATTRIBUTE_NAME, !1;
            case I.SOLIDUS:
                return this._advanceBy(this.lastStartTagName.length), this.state = N.SELF_CLOSING_START_TAG, !1;
            case I.GREATER_THAN_SIGN:
                return this._advanceBy(this.lastStartTagName.length), this.emitCurrentTagToken(), this.state = N.DATA, !1;
            default:
                return !this._ensureHibernation()
        }
    }

    _stateRcdataEndTagName(t) {
        this.handleSpecialEndTag(t) && (this._emitChars("</"), this.state = N.RCDATA, this._stateRcdata(t))
    }

    _stateRawtextLessThanSign(t) {
        t === I.SOLIDUS ? this.state = N.RAWTEXT_END_TAG_OPEN : (this._emitChars("<"), this.state = N.RAWTEXT, this._stateRawtext(t))
    }

    _stateRawtextEndTagOpen(t) {
        ht(t) ? (this.state = N.RAWTEXT_END_TAG_NAME, this._stateRawtextEndTagName(t)) : (this._emitChars("</"), this.state = N.RAWTEXT, this._stateRawtext(t))
    }

    _stateRawtextEndTagName(t) {
        this.handleSpecialEndTag(t) && (this._emitChars("</"), this.state = N.RAWTEXT, this._stateRawtext(t))
    }

    _stateScriptDataLessThanSign(t) {
        switch (t) {
            case I.SOLIDUS: {
                this.state = N.SCRIPT_DATA_END_TAG_OPEN;
                break
            }
            case I.EXCLAMATION_MARK: {
                this.state = N.SCRIPT_DATA_ESCAPE_START, this._emitChars("<!");
                break
            }
            default:
                this._emitChars("<"), this.state = N.SCRIPT_DATA, this._stateScriptData(t)
        }
    }

    _stateScriptDataEndTagOpen(t) {
        ht(t) ? (this.state = N.SCRIPT_DATA_END_TAG_NAME, this._stateScriptDataEndTagName(t)) : (this._emitChars("</"), this.state = N.SCRIPT_DATA, this._stateScriptData(t))
    }

    _stateScriptDataEndTagName(t) {
        this.handleSpecialEndTag(t) && (this._emitChars("</"), this.state = N.SCRIPT_DATA, this._stateScriptData(t))
    }

    _stateScriptDataEscapeStart(t) {
        t === I.HYPHEN_MINUS ? (this.state = N.SCRIPT_DATA_ESCAPE_START_DASH, this._emitChars("-")) : (this.state = N.SCRIPT_DATA, this._stateScriptData(t))
    }

    _stateScriptDataEscapeStartDash(t) {
        t === I.HYPHEN_MINUS ? (this.state = N.SCRIPT_DATA_ESCAPED_DASH_DASH, this._emitChars("-")) : (this.state = N.SCRIPT_DATA, this._stateScriptData(t))
    }

    _stateScriptDataEscaped(t) {
        switch (t) {
            case I.HYPHEN_MINUS: {
                this.state = N.SCRIPT_DATA_ESCAPED_DASH, this._emitChars("-");
                break
            }
            case I.LESS_THAN_SIGN: {
                this.state = N.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._err(Z.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
                break
            }
            default:
                this._emitCodePoint(t)
        }
    }

    _stateScriptDataEscapedDash(t) {
        switch (t) {
            case I.HYPHEN_MINUS: {
                this.state = N.SCRIPT_DATA_ESCAPED_DASH_DASH, this._emitChars("-");
                break
            }
            case I.LESS_THAN_SIGN: {
                this.state = N.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this.state = N.SCRIPT_DATA_ESCAPED, this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._err(Z.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
                break
            }
            default:
                this.state = N.SCRIPT_DATA_ESCAPED, this._emitCodePoint(t)
        }
    }

    _stateScriptDataEscapedDashDash(t) {
        switch (t) {
            case I.HYPHEN_MINUS: {
                this._emitChars("-");
                break
            }
            case I.LESS_THAN_SIGN: {
                this.state = N.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this.state = N.SCRIPT_DATA, this._emitChars(">");
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this.state = N.SCRIPT_DATA_ESCAPED, this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._err(Z.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
                break
            }
            default:
                this.state = N.SCRIPT_DATA_ESCAPED, this._emitCodePoint(t)
        }
    }

    _stateScriptDataEscapedLessThanSign(t) {
        t === I.SOLIDUS ? this.state = N.SCRIPT_DATA_ESCAPED_END_TAG_OPEN : ht(t) ? (this._emitChars("<"), this.state = N.SCRIPT_DATA_DOUBLE_ESCAPE_START, this._stateScriptDataDoubleEscapeStart(t)) : (this._emitChars("<"), this.state = N.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(t))
    }

    _stateScriptDataEscapedEndTagOpen(t) {
        ht(t) ? (this.state = N.SCRIPT_DATA_ESCAPED_END_TAG_NAME, this._stateScriptDataEscapedEndTagName(t)) : (this._emitChars("</"), this.state = N.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(t))
    }

    _stateScriptDataEscapedEndTagName(t) {
        this.handleSpecialEndTag(t) && (this._emitChars("</"), this.state = N.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(t))
    }

    _stateScriptDataDoubleEscapeStart(t) {
        if (this.preprocessor.startsWith(Ye.SCRIPT, !1) && Gi(this.preprocessor.peek(Ye.SCRIPT.length))) {
            this._emitCodePoint(t);
            for (let r = 0; r < Ye.SCRIPT.length; r++) this._emitCodePoint(this._consume());
            this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED
        } else this._ensureHibernation() || (this.state = N.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(t))
    }

    _stateScriptDataDoubleEscaped(t) {
        switch (t) {
            case I.HYPHEN_MINUS: {
                this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED_DASH, this._emitChars("-");
                break
            }
            case I.LESS_THAN_SIGN: {
                this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._err(Z.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
                break
            }
            default:
                this._emitCodePoint(t)
        }
    }

    _stateScriptDataDoubleEscapedDash(t) {
        switch (t) {
            case I.HYPHEN_MINUS: {
                this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH, this._emitChars("-");
                break
            }
            case I.LESS_THAN_SIGN: {
                this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._err(Z.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
                break
            }
            default:
                this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitCodePoint(t)
        }
    }

    _stateScriptDataDoubleEscapedDashDash(t) {
        switch (t) {
            case I.HYPHEN_MINUS: {
                this._emitChars("-");
                break
            }
            case I.LESS_THAN_SIGN: {
                this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
                break
            }
            case I.GREATER_THAN_SIGN: {
                this.state = N.SCRIPT_DATA, this._emitChars(">");
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitChars(Se);
                break
            }
            case I.EOF: {
                this._err(Z.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
                break
            }
            default:
                this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitCodePoint(t)
        }
    }

    _stateScriptDataDoubleEscapedLessThanSign(t) {
        t === I.SOLIDUS ? (this.state = N.SCRIPT_DATA_DOUBLE_ESCAPE_END, this._emitChars("/")) : (this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED, this._stateScriptDataDoubleEscaped(t))
    }

    _stateScriptDataDoubleEscapeEnd(t) {
        if (this.preprocessor.startsWith(Ye.SCRIPT, !1) && Gi(this.preprocessor.peek(Ye.SCRIPT.length))) {
            this._emitCodePoint(t);
            for (let r = 0; r < Ye.SCRIPT.length; r++) this._emitCodePoint(this._consume());
            this.state = N.SCRIPT_DATA_ESCAPED
        } else this._ensureHibernation() || (this.state = N.SCRIPT_DATA_DOUBLE_ESCAPED, this._stateScriptDataDoubleEscaped(t))
    }

    _stateBeforeAttributeName(t) {
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.SOLIDUS:
            case I.GREATER_THAN_SIGN:
            case I.EOF: {
                this.state = N.AFTER_ATTRIBUTE_NAME, this._stateAfterAttributeName(t);
                break
            }
            case I.EQUALS_SIGN: {
                this._err(Z.unexpectedEqualsSignBeforeAttributeName), this._createAttr("="), this.state = N.ATTRIBUTE_NAME;
                break
            }
            default:
                this._createAttr(""), this.state = N.ATTRIBUTE_NAME, this._stateAttributeName(t)
        }
    }

    _stateAttributeName(t) {
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
            case I.SOLIDUS:
            case I.GREATER_THAN_SIGN:
            case I.EOF: {
                this._leaveAttrName(), this.state = N.AFTER_ATTRIBUTE_NAME, this._stateAfterAttributeName(t);
                break
            }
            case I.EQUALS_SIGN: {
                this._leaveAttrName(), this.state = N.BEFORE_ATTRIBUTE_VALUE;
                break
            }
            case I.QUOTATION_MARK:
            case I.APOSTROPHE:
            case I.LESS_THAN_SIGN: {
                this._err(Z.unexpectedCharacterInAttributeName), this.currentAttr.name += String.fromCodePoint(t);
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this.currentAttr.name += Se;
                break
            }
            default:
                this.currentAttr.name += String.fromCodePoint(er(t) ? Or(t) : t)
        }
    }

    _stateAfterAttributeName(t) {
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.SOLIDUS: {
                this.state = N.SELF_CLOSING_START_TAG;
                break
            }
            case I.EQUALS_SIGN: {
                this.state = N.BEFORE_ATTRIBUTE_VALUE;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this.state = N.DATA, this.emitCurrentTagToken();
                break
            }
            case I.EOF: {
                this._err(Z.eofInTag), this._emitEOFToken();
                break
            }
            default:
                this._createAttr(""), this.state = N.ATTRIBUTE_NAME, this._stateAttributeName(t)
        }
    }

    _stateBeforeAttributeValue(t) {
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.QUOTATION_MARK: {
                this.state = N.ATTRIBUTE_VALUE_DOUBLE_QUOTED;
                break
            }
            case I.APOSTROPHE: {
                this.state = N.ATTRIBUTE_VALUE_SINGLE_QUOTED;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.missingAttributeValue), this.state = N.DATA, this.emitCurrentTagToken();
                break
            }
            default:
                this.state = N.ATTRIBUTE_VALUE_UNQUOTED, this._stateAttributeValueUnquoted(t)
        }
    }

    _stateAttributeValueDoubleQuoted(t) {
        switch (t) {
            case I.QUOTATION_MARK: {
                this.state = N.AFTER_ATTRIBUTE_VALUE_QUOTED;
                break
            }
            case I.AMPERSAND: {
                this._startCharacterReference();
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this.currentAttr.value += Se;
                break
            }
            case I.EOF: {
                this._err(Z.eofInTag), this._emitEOFToken();
                break
            }
            default:
                this.currentAttr.value += String.fromCodePoint(t)
        }
    }

    _stateAttributeValueSingleQuoted(t) {
        switch (t) {
            case I.APOSTROPHE: {
                this.state = N.AFTER_ATTRIBUTE_VALUE_QUOTED;
                break
            }
            case I.AMPERSAND: {
                this._startCharacterReference();
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this.currentAttr.value += Se;
                break
            }
            case I.EOF: {
                this._err(Z.eofInTag), this._emitEOFToken();
                break
            }
            default:
                this.currentAttr.value += String.fromCodePoint(t)
        }
    }

    _stateAttributeValueUnquoted(t) {
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED: {
                this._leaveAttrValue(), this.state = N.BEFORE_ATTRIBUTE_NAME;
                break
            }
            case I.AMPERSAND: {
                this._startCharacterReference();
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._leaveAttrValue(), this.state = N.DATA, this.emitCurrentTagToken();
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this.currentAttr.value += Se;
                break
            }
            case I.QUOTATION_MARK:
            case I.APOSTROPHE:
            case I.LESS_THAN_SIGN:
            case I.EQUALS_SIGN:
            case I.GRAVE_ACCENT: {
                this._err(Z.unexpectedCharacterInUnquotedAttributeValue), this.currentAttr.value += String.fromCodePoint(t);
                break
            }
            case I.EOF: {
                this._err(Z.eofInTag), this._emitEOFToken();
                break
            }
            default:
                this.currentAttr.value += String.fromCodePoint(t)
        }
    }

    _stateAfterAttributeValueQuoted(t) {
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED: {
                this._leaveAttrValue(), this.state = N.BEFORE_ATTRIBUTE_NAME;
                break
            }
            case I.SOLIDUS: {
                this._leaveAttrValue(), this.state = N.SELF_CLOSING_START_TAG;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._leaveAttrValue(), this.state = N.DATA, this.emitCurrentTagToken();
                break
            }
            case I.EOF: {
                this._err(Z.eofInTag), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.missingWhitespaceBetweenAttributes), this.state = N.BEFORE_ATTRIBUTE_NAME, this._stateBeforeAttributeName(t)
        }
    }

    _stateSelfClosingStartTag(t) {
        switch (t) {
            case I.GREATER_THAN_SIGN: {
                const r = this.currentToken;
                r.selfClosing = !0, this.state = N.DATA, this.emitCurrentTagToken();
                break
            }
            case I.EOF: {
                this._err(Z.eofInTag), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.unexpectedSolidusInTag), this.state = N.BEFORE_ATTRIBUTE_NAME, this._stateBeforeAttributeName(t)
        }
    }

    _stateBogusComment(t) {
        const r = this.currentToken;
        switch (t) {
            case I.GREATER_THAN_SIGN: {
                this.state = N.DATA, this.emitCurrentComment(r);
                break
            }
            case I.EOF: {
                this.emitCurrentComment(r), this._emitEOFToken();
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), r.data += Se;
                break
            }
            default:
                r.data += String.fromCodePoint(t)
        }
    }

    _stateMarkupDeclarationOpen(t) {
        this._consumeSequenceIfMatch(Ye.DASH_DASH, !0) ? (this._createCommentToken(Ye.DASH_DASH.length + 1), this.state = N.COMMENT_START) : this._consumeSequenceIfMatch(Ye.DOCTYPE, !1) ? (this.currentLocation = this.getCurrentLocation(Ye.DOCTYPE.length + 1), this.state = N.DOCTYPE) : this._consumeSequenceIfMatch(Ye.CDATA_START, !0) ? this.inForeignNode ? this.state = N.CDATA_SECTION : (this._err(Z.cdataInHtmlContent), this._createCommentToken(Ye.CDATA_START.length + 1), this.currentToken.data = "[CDATA[", this.state = N.BOGUS_COMMENT) : this._ensureHibernation() || (this._err(Z.incorrectlyOpenedComment), this._createCommentToken(2), this.state = N.BOGUS_COMMENT, this._stateBogusComment(t))
    }

    _stateCommentStart(t) {
        switch (t) {
            case I.HYPHEN_MINUS: {
                this.state = N.COMMENT_START_DASH;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.abruptClosingOfEmptyComment), this.state = N.DATA;
                const r = this.currentToken;
                this.emitCurrentComment(r);
                break
            }
            default:
                this.state = N.COMMENT, this._stateComment(t)
        }
    }

    _stateCommentStartDash(t) {
        const r = this.currentToken;
        switch (t) {
            case I.HYPHEN_MINUS: {
                this.state = N.COMMENT_END;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.abruptClosingOfEmptyComment), this.state = N.DATA, this.emitCurrentComment(r);
                break
            }
            case I.EOF: {
                this._err(Z.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
                break
            }
            default:
                r.data += "-", this.state = N.COMMENT, this._stateComment(t)
        }
    }

    _stateComment(t) {
        const r = this.currentToken;
        switch (t) {
            case I.HYPHEN_MINUS: {
                this.state = N.COMMENT_END_DASH;
                break
            }
            case I.LESS_THAN_SIGN: {
                r.data += "<", this.state = N.COMMENT_LESS_THAN_SIGN;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), r.data += Se;
                break
            }
            case I.EOF: {
                this._err(Z.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
                break
            }
            default:
                r.data += String.fromCodePoint(t)
        }
    }

    _stateCommentLessThanSign(t) {
        const r = this.currentToken;
        switch (t) {
            case I.EXCLAMATION_MARK: {
                r.data += "!", this.state = N.COMMENT_LESS_THAN_SIGN_BANG;
                break
            }
            case I.LESS_THAN_SIGN: {
                r.data += "<";
                break
            }
            default:
                this.state = N.COMMENT, this._stateComment(t)
        }
    }

    _stateCommentLessThanSignBang(t) {
        t === I.HYPHEN_MINUS ? this.state = N.COMMENT_LESS_THAN_SIGN_BANG_DASH : (this.state = N.COMMENT, this._stateComment(t))
    }

    _stateCommentLessThanSignBangDash(t) {
        t === I.HYPHEN_MINUS ? this.state = N.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH : (this.state = N.COMMENT_END_DASH, this._stateCommentEndDash(t))
    }

    _stateCommentLessThanSignBangDashDash(t) {
        t !== I.GREATER_THAN_SIGN && t !== I.EOF && this._err(Z.nestedComment), this.state = N.COMMENT_END, this._stateCommentEnd(t)
    }

    _stateCommentEndDash(t) {
        const r = this.currentToken;
        switch (t) {
            case I.HYPHEN_MINUS: {
                this.state = N.COMMENT_END;
                break
            }
            case I.EOF: {
                this._err(Z.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
                break
            }
            default:
                r.data += "-", this.state = N.COMMENT, this._stateComment(t)
        }
    }

    _stateCommentEnd(t) {
        const r = this.currentToken;
        switch (t) {
            case I.GREATER_THAN_SIGN: {
                this.state = N.DATA, this.emitCurrentComment(r);
                break
            }
            case I.EXCLAMATION_MARK: {
                this.state = N.COMMENT_END_BANG;
                break
            }
            case I.HYPHEN_MINUS: {
                r.data += "-";
                break
            }
            case I.EOF: {
                this._err(Z.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
                break
            }
            default:
                r.data += "--", this.state = N.COMMENT, this._stateComment(t)
        }
    }

    _stateCommentEndBang(t) {
        const r = this.currentToken;
        switch (t) {
            case I.HYPHEN_MINUS: {
                r.data += "--!", this.state = N.COMMENT_END_DASH;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.incorrectlyClosedComment), this.state = N.DATA, this.emitCurrentComment(r);
                break
            }
            case I.EOF: {
                this._err(Z.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
                break
            }
            default:
                r.data += "--!", this.state = N.COMMENT, this._stateComment(t)
        }
    }

    _stateDoctype(t) {
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED: {
                this.state = N.BEFORE_DOCTYPE_NAME;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this.state = N.BEFORE_DOCTYPE_NAME, this._stateBeforeDoctypeName(t);
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), this._createDoctypeToken(null);
                const r = this.currentToken;
                r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.missingWhitespaceBeforeDoctypeName), this.state = N.BEFORE_DOCTYPE_NAME, this._stateBeforeDoctypeName(t)
        }
    }

    _stateBeforeDoctypeName(t) {
        if (er(t)) this._createDoctypeToken(String.fromCharCode(Or(t))), this.state = N.DOCTYPE_NAME; else switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), this._createDoctypeToken(Se), this.state = N.DOCTYPE_NAME;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.missingDoctypeName), this._createDoctypeToken(null);
                const r = this.currentToken;
                r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = N.DATA;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), this._createDoctypeToken(null);
                const r = this.currentToken;
                r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._createDoctypeToken(String.fromCodePoint(t)), this.state = N.DOCTYPE_NAME
        }
    }

    _stateDoctypeName(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED: {
                this.state = N.AFTER_DOCTYPE_NAME;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this.state = N.DATA, this.emitCurrentDoctype(r);
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), r.name += Se;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                r.name += String.fromCodePoint(er(t) ? Or(t) : t)
        }
    }

    _stateAfterDoctypeName(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.GREATER_THAN_SIGN: {
                this.state = N.DATA, this.emitCurrentDoctype(r);
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._consumeSequenceIfMatch(Ye.PUBLIC, !1) ? this.state = N.AFTER_DOCTYPE_PUBLIC_KEYWORD : this._consumeSequenceIfMatch(Ye.SYSTEM, !1) ? this.state = N.AFTER_DOCTYPE_SYSTEM_KEYWORD : this._ensureHibernation() || (this._err(Z.invalidCharacterSequenceAfterDoctypeName), r.forceQuirks = !0, this.state = N.BOGUS_DOCTYPE, this._stateBogusDoctype(t))
        }
    }

    _stateAfterDoctypePublicKeyword(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED: {
                this.state = N.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;
                break
            }
            case I.QUOTATION_MARK: {
                this._err(Z.missingWhitespaceAfterDoctypePublicKeyword), r.publicId = "", this.state = N.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
                break
            }
            case I.APOSTROPHE: {
                this._err(Z.missingWhitespaceAfterDoctypePublicKeyword), r.publicId = "", this.state = N.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.missingDoctypePublicIdentifier), r.forceQuirks = !0, this.state = N.DATA, this.emitCurrentDoctype(r);
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.missingQuoteBeforeDoctypePublicIdentifier), r.forceQuirks = !0, this.state = N.BOGUS_DOCTYPE, this._stateBogusDoctype(t)
        }
    }

    _stateBeforeDoctypePublicIdentifier(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.QUOTATION_MARK: {
                r.publicId = "", this.state = N.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
                break
            }
            case I.APOSTROPHE: {
                r.publicId = "", this.state = N.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.missingDoctypePublicIdentifier), r.forceQuirks = !0, this.state = N.DATA, this.emitCurrentDoctype(r);
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.missingQuoteBeforeDoctypePublicIdentifier), r.forceQuirks = !0, this.state = N.BOGUS_DOCTYPE, this._stateBogusDoctype(t)
        }
    }

    _stateDoctypePublicIdentifierDoubleQuoted(t) {
        const r = this.currentToken;
        switch (t) {
            case I.QUOTATION_MARK: {
                this.state = N.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), r.publicId += Se;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.abruptDoctypePublicIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = N.DATA;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                r.publicId += String.fromCodePoint(t)
        }
    }

    _stateDoctypePublicIdentifierSingleQuoted(t) {
        const r = this.currentToken;
        switch (t) {
            case I.APOSTROPHE: {
                this.state = N.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), r.publicId += Se;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.abruptDoctypePublicIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = N.DATA;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                r.publicId += String.fromCodePoint(t)
        }
    }

    _stateAfterDoctypePublicIdentifier(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED: {
                this.state = N.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this.state = N.DATA, this.emitCurrentDoctype(r);
                break
            }
            case I.QUOTATION_MARK: {
                this._err(Z.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers), r.systemId = "", this.state = N.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
                break
            }
            case I.APOSTROPHE: {
                this._err(Z.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers), r.systemId = "", this.state = N.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = N.BOGUS_DOCTYPE, this._stateBogusDoctype(t)
        }
    }

    _stateBetweenDoctypePublicAndSystemIdentifiers(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.GREATER_THAN_SIGN: {
                this.emitCurrentDoctype(r), this.state = N.DATA;
                break
            }
            case I.QUOTATION_MARK: {
                r.systemId = "", this.state = N.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
                break
            }
            case I.APOSTROPHE: {
                r.systemId = "", this.state = N.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = N.BOGUS_DOCTYPE, this._stateBogusDoctype(t)
        }
    }

    _stateAfterDoctypeSystemKeyword(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED: {
                this.state = N.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;
                break
            }
            case I.QUOTATION_MARK: {
                this._err(Z.missingWhitespaceAfterDoctypeSystemKeyword), r.systemId = "", this.state = N.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
                break
            }
            case I.APOSTROPHE: {
                this._err(Z.missingWhitespaceAfterDoctypeSystemKeyword), r.systemId = "", this.state = N.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.missingDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = N.DATA, this.emitCurrentDoctype(r);
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = N.BOGUS_DOCTYPE, this._stateBogusDoctype(t)
        }
    }

    _stateBeforeDoctypeSystemIdentifier(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.QUOTATION_MARK: {
                r.systemId = "", this.state = N.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
                break
            }
            case I.APOSTROPHE: {
                r.systemId = "", this.state = N.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.missingDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = N.DATA, this.emitCurrentDoctype(r);
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = N.BOGUS_DOCTYPE, this._stateBogusDoctype(t)
        }
    }

    _stateDoctypeSystemIdentifierDoubleQuoted(t) {
        const r = this.currentToken;
        switch (t) {
            case I.QUOTATION_MARK: {
                this.state = N.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), r.systemId += Se;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.abruptDoctypeSystemIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = N.DATA;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                r.systemId += String.fromCodePoint(t)
        }
    }

    _stateDoctypeSystemIdentifierSingleQuoted(t) {
        const r = this.currentToken;
        switch (t) {
            case I.APOSTROPHE: {
                this.state = N.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter), r.systemId += Se;
                break
            }
            case I.GREATER_THAN_SIGN: {
                this._err(Z.abruptDoctypeSystemIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = N.DATA;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                r.systemId += String.fromCodePoint(t)
        }
    }

    _stateAfterDoctypeSystemIdentifier(t) {
        const r = this.currentToken;
        switch (t) {
            case I.SPACE:
            case I.LINE_FEED:
            case I.TABULATION:
            case I.FORM_FEED:
                break;
            case I.GREATER_THAN_SIGN: {
                this.emitCurrentDoctype(r), this.state = N.DATA;
                break
            }
            case I.EOF: {
                this._err(Z.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
            default:
                this._err(Z.unexpectedCharacterAfterDoctypeSystemIdentifier), this.state = N.BOGUS_DOCTYPE, this._stateBogusDoctype(t)
        }
    }

    _stateBogusDoctype(t) {
        const r = this.currentToken;
        switch (t) {
            case I.GREATER_THAN_SIGN: {
                this.emitCurrentDoctype(r), this.state = N.DATA;
                break
            }
            case I.NULL: {
                this._err(Z.unexpectedNullCharacter);
                break
            }
            case I.EOF: {
                this.emitCurrentDoctype(r), this._emitEOFToken();
                break
            }
        }
    }

    _stateCdataSection(t) {
        switch (t) {
            case I.RIGHT_SQUARE_BRACKET: {
                this.state = N.CDATA_SECTION_BRACKET;
                break
            }
            case I.EOF: {
                this._err(Z.eofInCdata), this._emitEOFToken();
                break
            }
            default:
                this._emitCodePoint(t)
        }
    }

    _stateCdataSectionBracket(t) {
        t === I.RIGHT_SQUARE_BRACKET ? this.state = N.CDATA_SECTION_END : (this._emitChars("]"), this.state = N.CDATA_SECTION, this._stateCdataSection(t))
    }

    _stateCdataSectionEnd(t) {
        switch (t) {
            case I.GREATER_THAN_SIGN: {
                this.state = N.DATA;
                break
            }
            case I.RIGHT_SQUARE_BRACKET: {
                this._emitChars("]");
                break
            }
            default:
                this._emitChars("]]"), this.state = N.CDATA_SECTION, this._stateCdataSection(t)
        }
    }

    _stateCharacterReference() {
        let t = this.entityDecoder.write(this.preprocessor.html, this.preprocessor.pos);
        if (t < 0) if (this.preprocessor.lastChunkWritten) t = this.entityDecoder.end(); else {
            this.active = !1, this.preprocessor.pos = this.preprocessor.html.length - 1, this.consumedAfterSnapshot = 0, this.preprocessor.endOfChunkHit = !0;
            return
        }
        t === 0 ? (this.preprocessor.pos = this.entityStartPos, this._flushCodePointConsumedAsCharacterReference(I.AMPERSAND), this.state = !this._isCharacterReferenceInAttribute() && Yi(this.preprocessor.peek(1)) ? N.AMBIGUOUS_AMPERSAND : this.returnState) : this.state = this.returnState
    }

    _stateAmbiguousAmpersand(t) {
        Yi(t) ? this._flushCodePointConsumedAsCharacterReference(t) : (t === I.SEMICOLON && this._err(Z.unknownNamedCharacterReference), this.state = this.returnState, this._callState(t))
    }
};
const Fs = new Set([c.DD, c.DT, c.LI, c.OPTGROUP, c.OPTION, c.P, c.RB, c.RP, c.RT, c.RTC]),
    Wi = new Set([...Fs, c.CAPTION, c.COLGROUP, c.TBODY, c.TD, c.TFOOT, c.TH, c.THEAD, c.TR]),
    tu = new Set([c.APPLET, c.CAPTION, c.HTML, c.MARQUEE, c.OBJECT, c.TABLE, c.TD, c.TEMPLATE, c.TH]),
    bA = new Set([...tu, c.OL, c.UL]), gA = new Set([...tu, c.BUTTON]),
    Ki = new Set([c.ANNOTATION_XML, c.MI, c.MN, c.MO, c.MS, c.MTEXT]),
    qi = new Set([c.DESC, c.FOREIGN_OBJECT, c.TITLE]), mA = new Set([c.TR, c.TEMPLATE, c.HTML]),
    EA = new Set([c.TBODY, c.TFOOT, c.THEAD, c.TEMPLATE, c.HTML]), TA = new Set([c.TABLE, c.TEMPLATE, c.HTML]),
    _A = new Set([c.TD, c.TH]);

class xA {
    get currentTmplContentOrNode() {
        return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current
    }

    constructor(t, r, u) {
        this.treeAdapter = r, this.handler = u, this.items = [], this.tagIDs = [], this.stackTop = -1, this.tmplCount = 0, this.currentTagId = c.UNKNOWN, this.current = t
    }

    _indexOf(t) {
        return this.items.lastIndexOf(t, this.stackTop)
    }

    _isInTemplate() {
        return this.currentTagId === c.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === $.HTML
    }

    _updateCurrentElement() {
        this.current = this.items[this.stackTop], this.currentTagId = this.tagIDs[this.stackTop]
    }

    push(t, r) {
        this.stackTop++, this.items[this.stackTop] = t, this.current = t, this.tagIDs[this.stackTop] = r, this.currentTagId = r, this._isInTemplate() && this.tmplCount++, this.handler.onItemPush(t, r, !0)
    }

    pop() {
        const t = this.current;
        this.tmplCount > 0 && this._isInTemplate() && this.tmplCount--, this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(t, !0)
    }

    replace(t, r) {
        const u = this._indexOf(t);
        this.items[u] = r, u === this.stackTop && (this.current = r)
    }

    insertAfter(t, r, u) {
        const n = this._indexOf(t) + 1;
        this.items.splice(n, 0, r), this.tagIDs.splice(n, 0, u), this.stackTop++, n === this.stackTop && this._updateCurrentElement(), this.current && this.currentTagId !== void 0 && this.handler.onItemPush(this.current, this.currentTagId, n === this.stackTop)
    }

    popUntilTagNamePopped(t) {
        let r = this.stackTop + 1;
        do r = this.tagIDs.lastIndexOf(t, r - 1); while (r > 0 && this.treeAdapter.getNamespaceURI(this.items[r]) !== $.HTML);
        this.shortenToLength(Math.max(r, 0))
    }

    shortenToLength(t) {
        for (; this.stackTop >= t;) {
            const r = this.current;
            this.tmplCount > 0 && this._isInTemplate() && (this.tmplCount -= 1), this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(r, this.stackTop < t)
        }
    }

    popUntilElementPopped(t) {
        const r = this._indexOf(t);
        this.shortenToLength(Math.max(r, 0))
    }

    popUntilPopped(t, r) {
        const u = this._indexOfTagNames(t, r);
        this.shortenToLength(Math.max(u, 0))
    }

    popUntilNumberedHeaderPopped() {
        this.popUntilPopped(ln, $.HTML)
    }

    popUntilTableCellPopped() {
        this.popUntilPopped(_A, $.HTML)
    }

    popAllUpToHtmlElement() {
        this.tmplCount = 0, this.shortenToLength(1)
    }

    _indexOfTagNames(t, r) {
        for (let u = this.stackTop; u >= 0; u--) if (t.has(this.tagIDs[u]) && this.treeAdapter.getNamespaceURI(this.items[u]) === r) return u;
        return -1
    }

    clearBackTo(t, r) {
        const u = this._indexOfTagNames(t, r);
        this.shortenToLength(u + 1)
    }

    clearBackToTableContext() {
        this.clearBackTo(TA, $.HTML)
    }

    clearBackToTableBodyContext() {
        this.clearBackTo(EA, $.HTML)
    }

    clearBackToTableRowContext() {
        this.clearBackTo(mA, $.HTML)
    }

    remove(t) {
        const r = this._indexOf(t);
        r >= 0 && (r === this.stackTop ? this.pop() : (this.items.splice(r, 1), this.tagIDs.splice(r, 1), this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(t, !1)))
    }

    tryPeekProperlyNestedBodyElement() {
        return this.stackTop >= 1 && this.tagIDs[1] === c.BODY ? this.items[1] : null
    }

    contains(t) {
        return this._indexOf(t) > -1
    }

    getCommonAncestor(t) {
        const r = this._indexOf(t) - 1;
        return r >= 0 ? this.items[r] : null
    }

    isRootHtmlElementCurrent() {
        return this.stackTop === 0 && this.tagIDs[0] === c.HTML
    }

    hasInDynamicScope(t, r) {
        for (let u = this.stackTop; u >= 0; u--) {
            const n = this.tagIDs[u];
            switch (this.treeAdapter.getNamespaceURI(this.items[u])) {
                case $.HTML: {
                    if (n === t) return !0;
                    if (r.has(n)) return !1;
                    break
                }
                case $.SVG: {
                    if (qi.has(n)) return !1;
                    break
                }
                case $.MATHML: {
                    if (Ki.has(n)) return !1;
                    break
                }
            }
        }
        return !0
    }

    hasInScope(t) {
        return this.hasInDynamicScope(t, tu)
    }

    hasInListItemScope(t) {
        return this.hasInDynamicScope(t, bA)
    }

    hasInButtonScope(t) {
        return this.hasInDynamicScope(t, gA)
    }

    hasNumberedHeaderInScope() {
        for (let t = this.stackTop; t >= 0; t--) {
            const r = this.tagIDs[t];
            switch (this.treeAdapter.getNamespaceURI(this.items[t])) {
                case $.HTML: {
                    if (ln.has(r)) return !0;
                    if (tu.has(r)) return !1;
                    break
                }
                case $.SVG: {
                    if (qi.has(r)) return !1;
                    break
                }
                case $.MATHML: {
                    if (Ki.has(r)) return !1;
                    break
                }
            }
        }
        return !0
    }

    hasInTableScope(t) {
        for (let r = this.stackTop; r >= 0; r--) if (this.treeAdapter.getNamespaceURI(this.items[r]) === $.HTML) switch (this.tagIDs[r]) {
            case t:
                return !0;
            case c.TABLE:
            case c.HTML:
                return !1
        }
        return !0
    }

    hasTableBodyContextInTableScope() {
        for (let t = this.stackTop; t >= 0; t--) if (this.treeAdapter.getNamespaceURI(this.items[t]) === $.HTML) switch (this.tagIDs[t]) {
            case c.TBODY:
            case c.THEAD:
            case c.TFOOT:
                return !0;
            case c.TABLE:
            case c.HTML:
                return !1
        }
        return !0
    }

    hasInSelectScope(t) {
        for (let r = this.stackTop; r >= 0; r--) if (this.treeAdapter.getNamespaceURI(this.items[r]) === $.HTML) switch (this.tagIDs[r]) {
            case t:
                return !0;
            case c.OPTION:
            case c.OPTGROUP:
                break;
            default:
                return !1
        }
        return !0
    }

    generateImpliedEndTags() {
        for (; this.currentTagId !== void 0 && Fs.has(this.currentTagId);) this.pop()
    }

    generateImpliedEndTagsThoroughly() {
        for (; this.currentTagId !== void 0 && Wi.has(this.currentTagId);) this.pop()
    }

    generateImpliedEndTagsWithExclusion(t) {
        for (; this.currentTagId !== void 0 && this.currentTagId !== t && Wi.has(this.currentTagId);) this.pop()
    }
}

const Qu = 3;
var rt;
(function (e) {
    e[e.Marker = 0] = "Marker", e[e.Element = 1] = "Element"
})(rt || (rt = {}));
const Zi = {type: rt.Marker};

class CA {
    constructor(t) {
        this.treeAdapter = t, this.entries = [], this.bookmark = null
    }

    _getNoahArkConditionCandidates(t, r) {
        const u = [], n = r.length, i = this.treeAdapter.getTagName(t), a = this.treeAdapter.getNamespaceURI(t);
        for (let s = 0; s < this.entries.length; s++) {
            const o = this.entries[s];
            if (o.type === rt.Marker) break;
            const {element: l} = o;
            if (this.treeAdapter.getTagName(l) === i && this.treeAdapter.getNamespaceURI(l) === a) {
                const h = this.treeAdapter.getAttrList(l);
                h.length === n && u.push({idx: s, attrs: h})
            }
        }
        return u
    }

    _ensureNoahArkCondition(t) {
        if (this.entries.length < Qu) return;
        const r = this.treeAdapter.getAttrList(t), u = this._getNoahArkConditionCandidates(t, r);
        if (u.length < Qu) return;
        const n = new Map(r.map(a => [a.name, a.value]));
        let i = 0;
        for (let a = 0; a < u.length; a++) {
            const s = u[a];
            s.attrs.every(o => n.get(o.name) === o.value) && (i += 1, i >= Qu && this.entries.splice(s.idx, 1))
        }
    }

    insertMarker() {
        this.entries.unshift(Zi)
    }

    pushElement(t, r) {
        this._ensureNoahArkCondition(t), this.entries.unshift({type: rt.Element, element: t, token: r})
    }

    insertElementAfterBookmark(t, r) {
        const u = this.entries.indexOf(this.bookmark);
        this.entries.splice(u, 0, {type: rt.Element, element: t, token: r})
    }

    removeEntry(t) {
        const r = this.entries.indexOf(t);
        r !== -1 && this.entries.splice(r, 1)
    }

    clearToLastMarker() {
        const t = this.entries.indexOf(Zi);
        t === -1 ? this.entries.length = 0 : this.entries.splice(0, t + 1)
    }

    getElementEntryInScopeWithTagName(t) {
        const r = this.entries.find(u => u.type === rt.Marker || this.treeAdapter.getTagName(u.element) === t);
        return r && r.type === rt.Element ? r : null
    }

    getElementEntry(t) {
        return this.entries.find(r => r.type === rt.Element && r.element === t)
    }
}

const lt = {
        createDocument() {
            return {nodeName: "#document", mode: Ze.NO_QUIRKS, childNodes: []}
        }, createDocumentFragment() {
            return {nodeName: "#document-fragment", childNodes: []}
        }, createElement(e, t, r) {
            return {nodeName: e, tagName: e, attrs: r, namespaceURI: t, childNodes: [], parentNode: null}
        }, createCommentNode(e) {
            return {nodeName: "#comment", data: e, parentNode: null}
        }, createTextNode(e) {
            return {nodeName: "#text", value: e, parentNode: null}
        }, appendChild(e, t) {
            e.childNodes.push(t), t.parentNode = e
        }, insertBefore(e, t, r) {
            const u = e.childNodes.indexOf(r);
            e.childNodes.splice(u, 0, t), t.parentNode = e
        }, setTemplateContent(e, t) {
            e.content = t
        }, getTemplateContent(e) {
            return e.content
        }, setDocumentType(e, t, r, u) {
            const n = e.childNodes.find(i => i.nodeName === "#documentType");
            if (n) n.name = t, n.publicId = r, n.systemId = u; else {
                const i = {nodeName: "#documentType", name: t, publicId: r, systemId: u, parentNode: null};
                lt.appendChild(e, i)
            }
        }, setDocumentMode(e, t) {
            e.mode = t
        }, getDocumentMode(e) {
            return e.mode
        }, detachNode(e) {
            if (e.parentNode) {
                const t = e.parentNode.childNodes.indexOf(e);
                e.parentNode.childNodes.splice(t, 1), e.parentNode = null
            }
        }, insertText(e, t) {
            if (e.childNodes.length > 0) {
                const r = e.childNodes[e.childNodes.length - 1];
                if (lt.isTextNode(r)) {
                    r.value += t;
                    return
                }
            }
            lt.appendChild(e, lt.createTextNode(t))
        }, insertTextBefore(e, t, r) {
            const u = e.childNodes[e.childNodes.indexOf(r) - 1];
            u && lt.isTextNode(u) ? u.value += t : lt.insertBefore(e, lt.createTextNode(t), r)
        }, adoptAttributes(e, t) {
            const r = new Set(e.attrs.map(u => u.name));
            for (let u = 0; u < t.length; u++) r.has(t[u].name) || e.attrs.push(t[u])
        }, getFirstChild(e) {
            return e.childNodes[0]
        }, getChildNodes(e) {
            return e.childNodes
        }, getParentNode(e) {
            return e.parentNode
        }, getAttrList(e) {
            return e.attrs
        }, getTagName(e) {
            return e.tagName
        }, getNamespaceURI(e) {
            return e.namespaceURI
        }, getTextNodeContent(e) {
            return e.value
        }, getCommentNodeContent(e) {
            return e.data
        }, getDocumentTypeNodeName(e) {
            return e.name
        }, getDocumentTypeNodePublicId(e) {
            return e.publicId
        }, getDocumentTypeNodeSystemId(e) {
            return e.systemId
        }, isTextNode(e) {
            return e.nodeName === "#text"
        }, isCommentNode(e) {
            return e.nodeName === "#comment"
        }, isDocumentTypeNode(e) {
            return e.nodeName === "#documentType"
        }, isElementNode(e) {
            return Object.prototype.hasOwnProperty.call(e, "tagName")
        }, setNodeSourceCodeLocation(e, t) {
            e.sourceCodeLocation = t
        }, getNodeSourceCodeLocation(e) {
            return e.sourceCodeLocation
        }, updateNodeSourceCodeLocation(e, t) {
            e.sourceCodeLocation = {...e.sourceCodeLocation, ...t}
        }
    }, Ms = "html", IA = "about:legacy-compat", yA = "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd",
    Ps = ["+//silmaril//dtd html pro v0r11 19970101//", "-//as//dtd html 3.0 aswedit + extensions//", "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", "-//ietf//dtd html 2.0 level 1//", "-//ietf//dtd html 2.0 level 2//", "-//ietf//dtd html 2.0 strict level 1//", "-//ietf//dtd html 2.0 strict level 2//", "-//ietf//dtd html 2.0 strict//", "-//ietf//dtd html 2.0//", "-//ietf//dtd html 2.1e//", "-//ietf//dtd html 3.0//", "-//ietf//dtd html 3.2 final//", "-//ietf//dtd html 3.2//", "-//ietf//dtd html 3//", "-//ietf//dtd html level 0//", "-//ietf//dtd html level 1//", "-//ietf//dtd html level 2//", "-//ietf//dtd html level 3//", "-//ietf//dtd html strict level 0//", "-//ietf//dtd html strict level 1//", "-//ietf//dtd html strict level 2//", "-//ietf//dtd html strict level 3//", "-//ietf//dtd html strict//", "-//ietf//dtd html//", "-//metrius//dtd metrius presentational//", "-//microsoft//dtd internet explorer 2.0 html strict//", "-//microsoft//dtd internet explorer 2.0 html//", "-//microsoft//dtd internet explorer 2.0 tables//", "-//microsoft//dtd internet explorer 3.0 html strict//", "-//microsoft//dtd internet explorer 3.0 html//", "-//microsoft//dtd internet explorer 3.0 tables//", "-//netscape comm. corp.//dtd html//", "-//netscape comm. corp.//dtd strict html//", "-//o'reilly and associates//dtd html 2.0//", "-//o'reilly and associates//dtd html extended 1.0//", "-//o'reilly and associates//dtd html extended relaxed 1.0//", "-//sq//dtd html 2.0 hotmetal + extensions//", "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", "-//spyglass//dtd html 2.0 extended//", "-//sun microsystems corp.//dtd hotjava html//", "-//sun microsystems corp.//dtd hotjava strict html//", "-//w3c//dtd html 3 1995-03-24//", "-//w3c//dtd html 3.2 draft//", "-//w3c//dtd html 3.2 final//", "-//w3c//dtd html 3.2//", "-//w3c//dtd html 3.2s draft//", "-//w3c//dtd html 4.0 frameset//", "-//w3c//dtd html 4.0 transitional//", "-//w3c//dtd html experimental 19960712//", "-//w3c//dtd html experimental 970421//", "-//w3c//dtd w3 html//", "-//w3o//dtd w3 html 3.0//", "-//webtechs//dtd mozilla html 2.0//", "-//webtechs//dtd mozilla html//"],
    kA = [...Ps, "-//w3c//dtd html 4.01 frameset//", "-//w3c//dtd html 4.01 transitional//"],
    SA = new Set(["-//w3o//dtd w3 html strict 3.0//en//", "-/w3c/dtd html 4.0 transitional/en", "html"]),
    Us = ["-//w3c//dtd xhtml 1.0 frameset//", "-//w3c//dtd xhtml 1.0 transitional//"],
    vA = [...Us, "-//w3c//dtd html 4.01 frameset//", "-//w3c//dtd html 4.01 transitional//"];

function zi(e, t) {
    return t.some(r => e.startsWith(r))
}

function NA(e) {
    return e.name === Ms && e.publicId === null && (e.systemId === null || e.systemId === IA)
}

function wA(e) {
    if (e.name !== Ms) return Ze.QUIRKS;
    const {systemId: t} = e;
    if (t && t.toLowerCase() === yA) return Ze.QUIRKS;
    let {publicId: r} = e;
    if (r !== null) {
        if (r = r.toLowerCase(), SA.has(r)) return Ze.QUIRKS;
        let u = t === null ? kA : Ps;
        if (zi(r, u)) return Ze.QUIRKS;
        if (u = t === null ? Us : vA, zi(r, u)) return Ze.LIMITED_QUIRKS
    }
    return Ze.NO_QUIRKS
}

const Ji = {TEXT_HTML: "text/html", APPLICATION_XML: "application/xhtml+xml"}, DA = "definitionurl",
    BA = "definitionURL",
    RA = new Map(["attributeName", "attributeType", "baseFrequency", "baseProfile", "calcMode", "clipPathUnits", "diffuseConstant", "edgeMode", "filterUnits", "glyphRef", "gradientTransform", "gradientUnits", "kernelMatrix", "kernelUnitLength", "keyPoints", "keySplines", "keyTimes", "lengthAdjust", "limitingConeAngle", "markerHeight", "markerUnits", "markerWidth", "maskContentUnits", "maskUnits", "numOctaves", "pathLength", "patternContentUnits", "patternTransform", "patternUnits", "pointsAtX", "pointsAtY", "pointsAtZ", "preserveAlpha", "preserveAspectRatio", "primitiveUnits", "refX", "refY", "repeatCount", "repeatDur", "requiredExtensions", "requiredFeatures", "specularConstant", "specularExponent", "spreadMethod", "startOffset", "stdDeviation", "stitchTiles", "surfaceScale", "systemLanguage", "tableValues", "targetX", "targetY", "textLength", "viewBox", "viewTarget", "xChannelSelector", "yChannelSelector", "zoomAndPan"].map(e => [e.toLowerCase(), e])),
    OA = new Map([["xlink:actuate", {
        prefix: "xlink",
        name: "actuate",
        namespace: $.XLINK
    }], ["xlink:arcrole", {prefix: "xlink", name: "arcrole", namespace: $.XLINK}], ["xlink:href", {
        prefix: "xlink",
        name: "href",
        namespace: $.XLINK
    }], ["xlink:role", {prefix: "xlink", name: "role", namespace: $.XLINK}], ["xlink:show", {
        prefix: "xlink",
        name: "show",
        namespace: $.XLINK
    }], ["xlink:title", {prefix: "xlink", name: "title", namespace: $.XLINK}], ["xlink:type", {
        prefix: "xlink",
        name: "type",
        namespace: $.XLINK
    }], ["xml:lang", {prefix: "xml", name: "lang", namespace: $.XML}], ["xml:space", {
        prefix: "xml",
        name: "space",
        namespace: $.XML
    }], ["xmlns", {prefix: "", name: "xmlns", namespace: $.XMLNS}], ["xmlns:xlink", {
        prefix: "xmlns",
        name: "xlink",
        namespace: $.XMLNS
    }]]),
    LA = new Map(["altGlyph", "altGlyphDef", "altGlyphItem", "animateColor", "animateMotion", "animateTransform", "clipPath", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "foreignObject", "glyphRef", "linearGradient", "radialGradient", "textPath"].map(e => [e.toLowerCase(), e])),
    FA = new Set([c.B, c.BIG, c.BLOCKQUOTE, c.BODY, c.BR, c.CENTER, c.CODE, c.DD, c.DIV, c.DL, c.DT, c.EM, c.EMBED, c.H1, c.H2, c.H3, c.H4, c.H5, c.H6, c.HEAD, c.HR, c.I, c.IMG, c.LI, c.LISTING, c.MENU, c.META, c.NOBR, c.OL, c.P, c.PRE, c.RUBY, c.S, c.SMALL, c.SPAN, c.STRONG, c.STRIKE, c.SUB, c.SUP, c.TABLE, c.TT, c.U, c.UL, c.VAR]);

function MA(e) {
    const t = e.tagID;
    return t === c.FONT && e.attrs.some(({name: u}) => u === It.COLOR || u === It.SIZE || u === It.FACE) || FA.has(t)
}

function Hs(e) {
    for (let t = 0; t < e.attrs.length; t++) if (e.attrs[t].name === DA) {
        e.attrs[t].name = BA;
        break
    }
}

function Qs(e) {
    for (let t = 0; t < e.attrs.length; t++) {
        const r = RA.get(e.attrs[t].name);
        r != null && (e.attrs[t].name = r)
    }
}

function Jn(e) {
    for (let t = 0; t < e.attrs.length; t++) {
        const r = OA.get(e.attrs[t].name);
        r && (e.attrs[t].prefix = r.prefix, e.attrs[t].name = r.name, e.attrs[t].namespace = r.namespace)
    }
}

function PA(e) {
    const t = LA.get(e.tagName);
    t != null && (e.tagName = t, e.tagID = bu(e.tagName))
}

function UA(e, t) {
    return t === $.MATHML && (e === c.MI || e === c.MO || e === c.MN || e === c.MS || e === c.MTEXT)
}

function HA(e, t, r) {
    if (t === $.MATHML && e === c.ANNOTATION_XML) {
        for (let u = 0; u < r.length; u++) if (r[u].name === It.ENCODING) {
            const n = r[u].value.toLowerCase();
            return n === Ji.TEXT_HTML || n === Ji.APPLICATION_XML
        }
    }
    return t === $.SVG && (e === c.FOREIGN_OBJECT || e === c.DESC || e === c.TITLE)
}

function QA(e, t, r, u) {
    return (!u || u === $.HTML) && HA(e, t, r) || (!u || u === $.MATHML) && UA(e, t)
}

const YA = "hidden", GA = 8, WA = 3;
var R;
(function (e) {
    e[e.INITIAL = 0] = "INITIAL", e[e.BEFORE_HTML = 1] = "BEFORE_HTML", e[e.BEFORE_HEAD = 2] = "BEFORE_HEAD", e[e.IN_HEAD = 3] = "IN_HEAD", e[e.IN_HEAD_NO_SCRIPT = 4] = "IN_HEAD_NO_SCRIPT", e[e.AFTER_HEAD = 5] = "AFTER_HEAD", e[e.IN_BODY = 6] = "IN_BODY", e[e.TEXT = 7] = "TEXT", e[e.IN_TABLE = 8] = "IN_TABLE", e[e.IN_TABLE_TEXT = 9] = "IN_TABLE_TEXT", e[e.IN_CAPTION = 10] = "IN_CAPTION", e[e.IN_COLUMN_GROUP = 11] = "IN_COLUMN_GROUP", e[e.IN_TABLE_BODY = 12] = "IN_TABLE_BODY", e[e.IN_ROW = 13] = "IN_ROW", e[e.IN_CELL = 14] = "IN_CELL", e[e.IN_SELECT = 15] = "IN_SELECT", e[e.IN_SELECT_IN_TABLE = 16] = "IN_SELECT_IN_TABLE", e[e.IN_TEMPLATE = 17] = "IN_TEMPLATE", e[e.AFTER_BODY = 18] = "AFTER_BODY", e[e.IN_FRAMESET = 19] = "IN_FRAMESET", e[e.AFTER_FRAMESET = 20] = "AFTER_FRAMESET", e[e.AFTER_AFTER_BODY = 21] = "AFTER_AFTER_BODY", e[e.AFTER_AFTER_FRAMESET = 22] = "AFTER_AFTER_FRAMESET"
})(R || (R = {}));
const KA = {startLine: -1, startCol: -1, startOffset: -1, endLine: -1, endCol: -1, endOffset: -1},
    Ys = new Set([c.TABLE, c.TBODY, c.TFOOT, c.THEAD, c.TR]),
    Vi = {scriptingEnabled: !0, sourceCodeLocationInfo: !1, treeAdapter: lt, onParseError: null};
let Gs = class {
    constructor(t, r, u = null, n = null) {
        this.fragmentContext = u, this.scriptHandler = n, this.currentToken = null, this.stopped = !1, this.insertionMode = R.INITIAL, this.originalInsertionMode = R.INITIAL, this.headElement = null, this.formElement = null, this.currentNotInHTML = !1, this.tmplInsertionModeStack = [], this.pendingCharacterTokens = [], this.hasNonWhitespacePendingCharacterToken = !1, this.framesetOk = !0, this.skipNextNewLine = !1, this.fosterParentingEnabled = !1, this.options = {...Vi, ...t}, this.treeAdapter = this.options.treeAdapter, this.onParseError = this.options.onParseError, this.onParseError && (this.options.sourceCodeLocationInfo = !0), this.document = r ?? this.treeAdapter.createDocument(), this.tokenizer = new pA(this.options, this), this.activeFormattingElements = new CA(this.treeAdapter), this.fragmentContextID = u ? bu(this.treeAdapter.getTagName(u)) : c.UNKNOWN, this._setContextModes(u ?? this.document, this.fragmentContextID), this.openElements = new xA(this.document, this.treeAdapter, this)
    }

    static parse(t, r) {
        const u = new this(r);
        return u.tokenizer.write(t, !0), u.document
    }

    static getFragmentParser(t, r) {
        const u = {...Vi, ...r};
        t ?? (t = u.treeAdapter.createElement(H.TEMPLATE, $.HTML, []));
        const n = u.treeAdapter.createElement("documentmock", $.HTML, []), i = new this(u, n, t);
        return i.fragmentContextID === c.TEMPLATE && i.tmplInsertionModeStack.unshift(R.IN_TEMPLATE), i._initTokenizerForFragmentParsing(), i._insertFakeRootElement(), i._resetInsertionMode(), i._findFormInFragmentContext(), i
    }

    getFragment() {
        const t = this.treeAdapter.getFirstChild(this.document), r = this.treeAdapter.createDocumentFragment();
        return this._adoptNodes(t, r), r
    }

    _err(t, r, u) {
        var n;
        if (!this.onParseError) return;
        const i = (n = t.location) !== null && n !== void 0 ? n : KA, a = {
            code: r,
            startLine: i.startLine,
            startCol: i.startCol,
            startOffset: i.startOffset,
            endLine: u ? i.startLine : i.endLine,
            endCol: u ? i.startCol : i.endCol,
            endOffset: u ? i.startOffset : i.endOffset
        };
        this.onParseError(a)
    }

    onItemPush(t, r, u) {
        var n, i;
        (i = (n = this.treeAdapter).onItemPush) === null || i === void 0 || i.call(n, t), u && this.openElements.stackTop > 0 && this._setContextModes(t, r)
    }

    onItemPop(t, r) {
        var u, n;
        if (this.options.sourceCodeLocationInfo && this._setEndLocation(t, this.currentToken), (n = (u = this.treeAdapter).onItemPop) === null || n === void 0 || n.call(u, t, this.openElements.current), r) {
            let i, a;
            this.openElements.stackTop === 0 && this.fragmentContext ? (i = this.fragmentContext, a = this.fragmentContextID) : {
                current: i,
                currentTagId: a
            } = this.openElements, this._setContextModes(i, a)
        }
    }

    _setContextModes(t, r) {
        const u = t === this.document || t && this.treeAdapter.getNamespaceURI(t) === $.HTML;
        this.currentNotInHTML = !u, this.tokenizer.inForeignNode = !u && t !== void 0 && r !== void 0 && !this._isIntegrationPoint(r, t)
    }

    _switchToTextParsing(t, r) {
        this._insertElement(t, $.HTML), this.tokenizer.state = r, this.originalInsertionMode = this.insertionMode, this.insertionMode = R.TEXT
    }

    switchToPlaintextParsing() {
        this.insertionMode = R.TEXT, this.originalInsertionMode = R.IN_BODY, this.tokenizer.state = We.PLAINTEXT
    }

    _getAdjustedCurrentElement() {
        return this.openElements.stackTop === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.current
    }

    _findFormInFragmentContext() {
        let t = this.fragmentContext;
        for (; t;) {
            if (this.treeAdapter.getTagName(t) === H.FORM) {
                this.formElement = t;
                break
            }
            t = this.treeAdapter.getParentNode(t)
        }
    }

    _initTokenizerForFragmentParsing() {
        if (!(!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== $.HTML)) switch (this.fragmentContextID) {
            case c.TITLE:
            case c.TEXTAREA: {
                this.tokenizer.state = We.RCDATA;
                break
            }
            case c.STYLE:
            case c.XMP:
            case c.IFRAME:
            case c.NOEMBED:
            case c.NOFRAMES:
            case c.NOSCRIPT: {
                this.tokenizer.state = We.RAWTEXT;
                break
            }
            case c.SCRIPT: {
                this.tokenizer.state = We.SCRIPT_DATA;
                break
            }
            case c.PLAINTEXT: {
                this.tokenizer.state = We.PLAINTEXT;
                break
            }
        }
    }

    _setDocumentType(t) {
        const r = t.name || "", u = t.publicId || "", n = t.systemId || "";
        if (this.treeAdapter.setDocumentType(this.document, r, u, n), t.location) {
            const a = this.treeAdapter.getChildNodes(this.document).find(s => this.treeAdapter.isDocumentTypeNode(s));
            a && this.treeAdapter.setNodeSourceCodeLocation(a, t.location)
        }
    }

    _attachElementToTree(t, r) {
        if (this.options.sourceCodeLocationInfo) {
            const u = r && {...r, startTag: r};
            this.treeAdapter.setNodeSourceCodeLocation(t, u)
        }
        if (this._shouldFosterParentOnInsertion()) this._fosterParentElement(t); else {
            const u = this.openElements.currentTmplContentOrNode;
            this.treeAdapter.appendChild(u ?? this.document, t)
        }
    }

    _appendElement(t, r) {
        const u = this.treeAdapter.createElement(t.tagName, r, t.attrs);
        this._attachElementToTree(u, t.location)
    }

    _insertElement(t, r) {
        const u = this.treeAdapter.createElement(t.tagName, r, t.attrs);
        this._attachElementToTree(u, t.location), this.openElements.push(u, t.tagID)
    }

    _insertFakeElement(t, r) {
        const u = this.treeAdapter.createElement(t, $.HTML, []);
        this._attachElementToTree(u, null), this.openElements.push(u, r)
    }

    _insertTemplate(t) {
        const r = this.treeAdapter.createElement(t.tagName, $.HTML, t.attrs),
            u = this.treeAdapter.createDocumentFragment();
        this.treeAdapter.setTemplateContent(r, u), this._attachElementToTree(r, t.location), this.openElements.push(r, t.tagID), this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(u, null)
    }

    _insertFakeRootElement() {
        const t = this.treeAdapter.createElement(H.HTML, $.HTML, []);
        this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(t, null), this.treeAdapter.appendChild(this.openElements.current, t), this.openElements.push(t, c.HTML)
    }

    _appendCommentNode(t, r) {
        const u = this.treeAdapter.createCommentNode(t.data);
        this.treeAdapter.appendChild(r, u), this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(u, t.location)
    }

    _insertCharacters(t) {
        let r, u;
        if (this._shouldFosterParentOnInsertion() ? ({
            parent: r,
            beforeElement: u
        } = this._findFosterParentingLocation(), u ? this.treeAdapter.insertTextBefore(r, t.chars, u) : this.treeAdapter.insertText(r, t.chars)) : (r = this.openElements.currentTmplContentOrNode, this.treeAdapter.insertText(r, t.chars)), !t.location) return;
        const n = this.treeAdapter.getChildNodes(r), i = u ? n.lastIndexOf(u) : n.length, a = n[i - 1];
        if (this.treeAdapter.getNodeSourceCodeLocation(a)) {
            const {endLine: o, endCol: l, endOffset: h} = t.location;
            this.treeAdapter.updateNodeSourceCodeLocation(a, {endLine: o, endCol: l, endOffset: h})
        } else this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(a, t.location)
    }

    _adoptNodes(t, r) {
        for (let u = this.treeAdapter.getFirstChild(t); u; u = this.treeAdapter.getFirstChild(t)) this.treeAdapter.detachNode(u), this.treeAdapter.appendChild(r, u)
    }

    _setEndLocation(t, r) {
        if (this.treeAdapter.getNodeSourceCodeLocation(t) && r.location) {
            const u = r.location, n = this.treeAdapter.getTagName(t), i = r.type === Ee.END_TAG && n === r.tagName ? {
                endTag: {...u},
                endLine: u.endLine,
                endCol: u.endCol,
                endOffset: u.endOffset
            } : {endLine: u.startLine, endCol: u.startCol, endOffset: u.startOffset};
            this.treeAdapter.updateNodeSourceCodeLocation(t, i)
        }
    }

    shouldProcessStartTagTokenInForeignContent(t) {
        if (!this.currentNotInHTML) return !1;
        let r, u;
        return this.openElements.stackTop === 0 && this.fragmentContext ? (r = this.fragmentContext, u = this.fragmentContextID) : {
            current: r,
            currentTagId: u
        } = this.openElements, t.tagID === c.SVG && this.treeAdapter.getTagName(r) === H.ANNOTATION_XML && this.treeAdapter.getNamespaceURI(r) === $.MATHML ? !1 : this.tokenizer.inForeignNode || (t.tagID === c.MGLYPH || t.tagID === c.MALIGNMARK) && u !== void 0 && !this._isIntegrationPoint(u, r, $.HTML)
    }

    _processToken(t) {
        switch (t.type) {
            case Ee.CHARACTER: {
                this.onCharacter(t);
                break
            }
            case Ee.NULL_CHARACTER: {
                this.onNullCharacter(t);
                break
            }
            case Ee.COMMENT: {
                this.onComment(t);
                break
            }
            case Ee.DOCTYPE: {
                this.onDoctype(t);
                break
            }
            case Ee.START_TAG: {
                this._processStartTag(t);
                break
            }
            case Ee.END_TAG: {
                this.onEndTag(t);
                break
            }
            case Ee.EOF: {
                this.onEof(t);
                break
            }
            case Ee.WHITESPACE_CHARACTER: {
                this.onWhitespaceCharacter(t);
                break
            }
        }
    }

    _isIntegrationPoint(t, r, u) {
        const n = this.treeAdapter.getNamespaceURI(r), i = this.treeAdapter.getAttrList(r);
        return QA(t, n, i, u)
    }

    _reconstructActiveFormattingElements() {
        const t = this.activeFormattingElements.entries.length;
        if (t) {
            const r = this.activeFormattingElements.entries.findIndex(n => n.type === rt.Marker || this.openElements.contains(n.element)),
                u = r === -1 ? t - 1 : r - 1;
            for (let n = u; n >= 0; n--) {
                const i = this.activeFormattingElements.entries[n];
                this._insertElement(i.token, this.treeAdapter.getNamespaceURI(i.element)), i.element = this.openElements.current
            }
        }
    }

    _closeTableCell() {
        this.openElements.generateImpliedEndTags(), this.openElements.popUntilTableCellPopped(), this.activeFormattingElements.clearToLastMarker(), this.insertionMode = R.IN_ROW
    }

    _closePElement() {
        this.openElements.generateImpliedEndTagsWithExclusion(c.P), this.openElements.popUntilTagNamePopped(c.P)
    }

    _resetInsertionMode() {
        for (let t = this.openElements.stackTop; t >= 0; t--) switch (t === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[t]) {
            case c.TR: {
                this.insertionMode = R.IN_ROW;
                return
            }
            case c.TBODY:
            case c.THEAD:
            case c.TFOOT: {
                this.insertionMode = R.IN_TABLE_BODY;
                return
            }
            case c.CAPTION: {
                this.insertionMode = R.IN_CAPTION;
                return
            }
            case c.COLGROUP: {
                this.insertionMode = R.IN_COLUMN_GROUP;
                return
            }
            case c.TABLE: {
                this.insertionMode = R.IN_TABLE;
                return
            }
            case c.BODY: {
                this.insertionMode = R.IN_BODY;
                return
            }
            case c.FRAMESET: {
                this.insertionMode = R.IN_FRAMESET;
                return
            }
            case c.SELECT: {
                this._resetInsertionModeForSelect(t);
                return
            }
            case c.TEMPLATE: {
                this.insertionMode = this.tmplInsertionModeStack[0];
                return
            }
            case c.HTML: {
                this.insertionMode = this.headElement ? R.AFTER_HEAD : R.BEFORE_HEAD;
                return
            }
            case c.TD:
            case c.TH: {
                if (t > 0) {
                    this.insertionMode = R.IN_CELL;
                    return
                }
                break
            }
            case c.HEAD: {
                if (t > 0) {
                    this.insertionMode = R.IN_HEAD;
                    return
                }
                break
            }
        }
        this.insertionMode = R.IN_BODY
    }

    _resetInsertionModeForSelect(t) {
        if (t > 0) for (let r = t - 1; r > 0; r--) {
            const u = this.openElements.tagIDs[r];
            if (u === c.TEMPLATE) break;
            if (u === c.TABLE) {
                this.insertionMode = R.IN_SELECT_IN_TABLE;
                return
            }
        }
        this.insertionMode = R.IN_SELECT
    }

    _isElementCausesFosterParenting(t) {
        return Ys.has(t)
    }

    _shouldFosterParentOnInsertion() {
        return this.fosterParentingEnabled && this.openElements.currentTagId !== void 0 && this._isElementCausesFosterParenting(this.openElements.currentTagId)
    }

    _findFosterParentingLocation() {
        for (let t = this.openElements.stackTop; t >= 0; t--) {
            const r = this.openElements.items[t];
            switch (this.openElements.tagIDs[t]) {
                case c.TEMPLATE: {
                    if (this.treeAdapter.getNamespaceURI(r) === $.HTML) return {
                        parent: this.treeAdapter.getTemplateContent(r),
                        beforeElement: null
                    };
                    break
                }
                case c.TABLE: {
                    const u = this.treeAdapter.getParentNode(r);
                    return u ? {parent: u, beforeElement: r} : {
                        parent: this.openElements.items[t - 1],
                        beforeElement: null
                    }
                }
            }
        }
        return {parent: this.openElements.items[0], beforeElement: null}
    }

    _fosterParentElement(t) {
        const r = this._findFosterParentingLocation();
        r.beforeElement ? this.treeAdapter.insertBefore(r.parent, t, r.beforeElement) : this.treeAdapter.appendChild(r.parent, t)
    }

    _isSpecialElement(t, r) {
        const u = this.treeAdapter.getNamespaceURI(t);
        return cA[u].has(r)
    }

    onCharacter(t) {
        if (this.skipNextNewLine = !1, this.tokenizer.inForeignNode) {
            _p(this, t);
            return
        }
        switch (this.insertionMode) {
            case R.INITIAL: {
                Vt(this, t);
                break
            }
            case R.BEFORE_HTML: {
                ur(this, t);
                break
            }
            case R.BEFORE_HEAD: {
                nr(this, t);
                break
            }
            case R.IN_HEAD: {
                ir(this, t);
                break
            }
            case R.IN_HEAD_NO_SCRIPT: {
                ar(this, t);
                break
            }
            case R.AFTER_HEAD: {
                sr(this, t);
                break
            }
            case R.IN_BODY:
            case R.IN_CAPTION:
            case R.IN_CELL:
            case R.IN_TEMPLATE: {
                Ks(this, t);
                break
            }
            case R.TEXT:
            case R.IN_SELECT:
            case R.IN_SELECT_IN_TABLE: {
                this._insertCharacters(t);
                break
            }
            case R.IN_TABLE:
            case R.IN_TABLE_BODY:
            case R.IN_ROW: {
                Yu(this, t);
                break
            }
            case R.IN_TABLE_TEXT: {
                js(this, t);
                break
            }
            case R.IN_COLUMN_GROUP: {
                ru(this, t);
                break
            }
            case R.AFTER_BODY: {
                uu(this, t);
                break
            }
            case R.AFTER_AFTER_BODY: {
                Hr(this, t);
                break
            }
        }
    }

    onNullCharacter(t) {
        if (this.skipNextNewLine = !1, this.tokenizer.inForeignNode) {
            Tp(this, t);
            return
        }
        switch (this.insertionMode) {
            case R.INITIAL: {
                Vt(this, t);
                break
            }
            case R.BEFORE_HTML: {
                ur(this, t);
                break
            }
            case R.BEFORE_HEAD: {
                nr(this, t);
                break
            }
            case R.IN_HEAD: {
                ir(this, t);
                break
            }
            case R.IN_HEAD_NO_SCRIPT: {
                ar(this, t);
                break
            }
            case R.AFTER_HEAD: {
                sr(this, t);
                break
            }
            case R.TEXT: {
                this._insertCharacters(t);
                break
            }
            case R.IN_TABLE:
            case R.IN_TABLE_BODY:
            case R.IN_ROW: {
                Yu(this, t);
                break
            }
            case R.IN_COLUMN_GROUP: {
                ru(this, t);
                break
            }
            case R.AFTER_BODY: {
                uu(this, t);
                break
            }
            case R.AFTER_AFTER_BODY: {
                Hr(this, t);
                break
            }
        }
    }

    onComment(t) {
        if (this.skipNextNewLine = !1, this.currentNotInHTML) {
            fn(this, t);
            return
        }
        switch (this.insertionMode) {
            case R.INITIAL:
            case R.BEFORE_HTML:
            case R.BEFORE_HEAD:
            case R.IN_HEAD:
            case R.IN_HEAD_NO_SCRIPT:
            case R.AFTER_HEAD:
            case R.IN_BODY:
            case R.IN_TABLE:
            case R.IN_CAPTION:
            case R.IN_COLUMN_GROUP:
            case R.IN_TABLE_BODY:
            case R.IN_ROW:
            case R.IN_CELL:
            case R.IN_SELECT:
            case R.IN_SELECT_IN_TABLE:
            case R.IN_TEMPLATE:
            case R.IN_FRAMESET:
            case R.AFTER_FRAMESET: {
                fn(this, t);
                break
            }
            case R.IN_TABLE_TEXT: {
                jt(this, t);
                break
            }
            case R.AFTER_BODY: {
                XA(this, t);
                break
            }
            case R.AFTER_AFTER_BODY:
            case R.AFTER_AFTER_FRAMESET: {
                $A(this, t);
                break
            }
        }
    }

    onDoctype(t) {
        switch (this.skipNextNewLine = !1, this.insertionMode) {
            case R.INITIAL: {
                e1(this, t);
                break
            }
            case R.BEFORE_HEAD:
            case R.IN_HEAD:
            case R.IN_HEAD_NO_SCRIPT:
            case R.AFTER_HEAD: {
                this._err(t, Z.misplacedDoctype);
                break
            }
            case R.IN_TABLE_TEXT: {
                jt(this, t);
                break
            }
        }
    }

    onStartTag(t) {
        this.skipNextNewLine = !1, this.currentToken = t, this._processStartTag(t), t.selfClosing && !t.ackSelfClosing && this._err(t, Z.nonVoidHtmlElementStartTagWithTrailingSolidus)
    }

    _processStartTag(t) {
        this.shouldProcessStartTagTokenInForeignContent(t) ? xp(this, t) : this._startTagOutsideForeignContent(t)
    }

    _startTagOutsideForeignContent(t) {
        switch (this.insertionMode) {
            case R.INITIAL: {
                Vt(this, t);
                break
            }
            case R.BEFORE_HTML: {
                t1(this, t);
                break
            }
            case R.BEFORE_HEAD: {
                u1(this, t);
                break
            }
            case R.IN_HEAD: {
                et(this, t);
                break
            }
            case R.IN_HEAD_NO_SCRIPT: {
                a1(this, t);
                break
            }
            case R.AFTER_HEAD: {
                o1(this, t);
                break
            }
            case R.IN_BODY: {
                He(this, t);
                break
            }
            case R.IN_TABLE: {
                Ht(this, t);
                break
            }
            case R.IN_TABLE_TEXT: {
                jt(this, t);
                break
            }
            case R.IN_CAPTION: {
                np(this, t);
                break
            }
            case R.IN_COLUMN_GROUP: {
                Xn(this, t);
                break
            }
            case R.IN_TABLE_BODY: {
                Eu(this, t);
                break
            }
            case R.IN_ROW: {
                Tu(this, t);
                break
            }
            case R.IN_CELL: {
                sp(this, t);
                break
            }
            case R.IN_SELECT: {
                eo(this, t);
                break
            }
            case R.IN_SELECT_IN_TABLE: {
                cp(this, t);
                break
            }
            case R.IN_TEMPLATE: {
                fp(this, t);
                break
            }
            case R.AFTER_BODY: {
                hp(this, t);
                break
            }
            case R.IN_FRAMESET: {
                Ap(this, t);
                break
            }
            case R.AFTER_FRAMESET: {
                bp(this, t);
                break
            }
            case R.AFTER_AFTER_BODY: {
                mp(this, t);
                break
            }
            case R.AFTER_AFTER_FRAMESET: {
                Ep(this, t);
                break
            }
        }
    }

    onEndTag(t) {
        this.skipNextNewLine = !1, this.currentToken = t, this.currentNotInHTML ? Cp(this, t) : this._endTagOutsideForeignContent(t)
    }

    _endTagOutsideForeignContent(t) {
        switch (this.insertionMode) {
            case R.INITIAL: {
                Vt(this, t);
                break
            }
            case R.BEFORE_HTML: {
                r1(this, t);
                break
            }
            case R.BEFORE_HEAD: {
                n1(this, t);
                break
            }
            case R.IN_HEAD: {
                i1(this, t);
                break
            }
            case R.IN_HEAD_NO_SCRIPT: {
                s1(this, t);
                break
            }
            case R.AFTER_HEAD: {
                c1(this, t);
                break
            }
            case R.IN_BODY: {
                mu(this, t);
                break
            }
            case R.TEXT: {
                z1(this, t);
                break
            }
            case R.IN_TABLE: {
                pr(this, t);
                break
            }
            case R.IN_TABLE_TEXT: {
                jt(this, t);
                break
            }
            case R.IN_CAPTION: {
                ip(this, t);
                break
            }
            case R.IN_COLUMN_GROUP: {
                ap(this, t);
                break
            }
            case R.IN_TABLE_BODY: {
                dn(this, t);
                break
            }
            case R.IN_ROW: {
                $s(this, t);
                break
            }
            case R.IN_CELL: {
                op(this, t);
                break
            }
            case R.IN_SELECT: {
                to(this, t);
                break
            }
            case R.IN_SELECT_IN_TABLE: {
                lp(this, t);
                break
            }
            case R.IN_TEMPLATE: {
                dp(this, t);
                break
            }
            case R.AFTER_BODY: {
                uo(this, t);
                break
            }
            case R.IN_FRAMESET: {
                pp(this, t);
                break
            }
            case R.AFTER_FRAMESET: {
                gp(this, t);
                break
            }
            case R.AFTER_AFTER_BODY: {
                Hr(this, t);
                break
            }
        }
    }

    onEof(t) {
        switch (this.insertionMode) {
            case R.INITIAL: {
                Vt(this, t);
                break
            }
            case R.BEFORE_HTML: {
                ur(this, t);
                break
            }
            case R.BEFORE_HEAD: {
                nr(this, t);
                break
            }
            case R.IN_HEAD: {
                ir(this, t);
                break
            }
            case R.IN_HEAD_NO_SCRIPT: {
                ar(this, t);
                break
            }
            case R.AFTER_HEAD: {
                sr(this, t);
                break
            }
            case R.IN_BODY:
            case R.IN_TABLE:
            case R.IN_CAPTION:
            case R.IN_COLUMN_GROUP:
            case R.IN_TABLE_BODY:
            case R.IN_ROW:
            case R.IN_CELL:
            case R.IN_SELECT:
            case R.IN_SELECT_IN_TABLE: {
                Js(this, t);
                break
            }
            case R.TEXT: {
                J1(this, t);
                break
            }
            case R.IN_TABLE_TEXT: {
                jt(this, t);
                break
            }
            case R.IN_TEMPLATE: {
                ro(this, t);
                break
            }
            case R.AFTER_BODY:
            case R.IN_FRAMESET:
            case R.AFTER_FRAMESET:
            case R.AFTER_AFTER_BODY:
            case R.AFTER_AFTER_FRAMESET: {
                jn(this, t);
                break
            }
        }
    }

    onWhitespaceCharacter(t) {
        if (this.skipNextNewLine && (this.skipNextNewLine = !1, t.chars.charCodeAt(0) === I.LINE_FEED)) {
            if (t.chars.length === 1) return;
            t.chars = t.chars.substr(1)
        }
        if (this.tokenizer.inForeignNode) {
            this._insertCharacters(t);
            return
        }
        switch (this.insertionMode) {
            case R.IN_HEAD:
            case R.IN_HEAD_NO_SCRIPT:
            case R.AFTER_HEAD:
            case R.TEXT:
            case R.IN_COLUMN_GROUP:
            case R.IN_SELECT:
            case R.IN_SELECT_IN_TABLE:
            case R.IN_FRAMESET:
            case R.AFTER_FRAMESET: {
                this._insertCharacters(t);
                break
            }
            case R.IN_BODY:
            case R.IN_CAPTION:
            case R.IN_CELL:
            case R.IN_TEMPLATE:
            case R.AFTER_BODY:
            case R.AFTER_AFTER_BODY:
            case R.AFTER_AFTER_FRAMESET: {
                Ws(this, t);
                break
            }
            case R.IN_TABLE:
            case R.IN_TABLE_BODY:
            case R.IN_ROW: {
                Yu(this, t);
                break
            }
            case R.IN_TABLE_TEXT: {
                Vs(this, t);
                break
            }
        }
    }
};

function qA(e, t) {
    let r = e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);
    return r ? e.openElements.contains(r.element) ? e.openElements.hasInScope(t.tagID) || (r = null) : (e.activeFormattingElements.removeEntry(r), r = null) : zs(e, t), r
}

function ZA(e, t) {
    let r = null, u = e.openElements.stackTop;
    for (; u >= 0; u--) {
        const n = e.openElements.items[u];
        if (n === t.element) break;
        e._isSpecialElement(n, e.openElements.tagIDs[u]) && (r = n)
    }
    return r || (e.openElements.shortenToLength(Math.max(u, 0)), e.activeFormattingElements.removeEntry(t)), r
}

function zA(e, t, r) {
    let u = t, n = e.openElements.getCommonAncestor(t);
    for (let i = 0, a = n; a !== r; i++, a = n) {
        n = e.openElements.getCommonAncestor(a);
        const s = e.activeFormattingElements.getElementEntry(a), o = s && i >= WA;
        !s || o ? (o && e.activeFormattingElements.removeEntry(s), e.openElements.remove(a)) : (a = JA(e, s), u === t && (e.activeFormattingElements.bookmark = s), e.treeAdapter.detachNode(u), e.treeAdapter.appendChild(a, u), u = a)
    }
    return u
}

function JA(e, t) {
    const r = e.treeAdapter.getNamespaceURI(t.element),
        u = e.treeAdapter.createElement(t.token.tagName, r, t.token.attrs);
    return e.openElements.replace(t.element, u), t.element = u, u
}

function VA(e, t, r) {
    const u = e.treeAdapter.getTagName(t), n = bu(u);
    if (e._isElementCausesFosterParenting(n)) e._fosterParentElement(r); else {
        const i = e.treeAdapter.getNamespaceURI(t);
        n === c.TEMPLATE && i === $.HTML && (t = e.treeAdapter.getTemplateContent(t)), e.treeAdapter.appendChild(t, r)
    }
}

function jA(e, t, r) {
    const u = e.treeAdapter.getNamespaceURI(r.element), {token: n} = r,
        i = e.treeAdapter.createElement(n.tagName, u, n.attrs);
    e._adoptNodes(t, i), e.treeAdapter.appendChild(t, i), e.activeFormattingElements.insertElementAfterBookmark(i, n), e.activeFormattingElements.removeEntry(r), e.openElements.remove(r.element), e.openElements.insertAfter(t, i, n.tagID)
}

function Vn(e, t) {
    for (let r = 0; r < GA; r++) {
        const u = qA(e, t);
        if (!u) break;
        const n = ZA(e, u);
        if (!n) break;
        e.activeFormattingElements.bookmark = u;
        const i = zA(e, n, u.element), a = e.openElements.getCommonAncestor(u.element);
        e.treeAdapter.detachNode(i), a && VA(e, a, i), jA(e, n, u)
    }
}

function fn(e, t) {
    e._appendCommentNode(t, e.openElements.currentTmplContentOrNode)
}

function XA(e, t) {
    e._appendCommentNode(t, e.openElements.items[0])
}

function $A(e, t) {
    e._appendCommentNode(t, e.document)
}

function jn(e, t) {
    if (e.stopped = !0, t.location) {
        const r = e.fragmentContext ? 0 : 2;
        for (let u = e.openElements.stackTop; u >= r; u--) e._setEndLocation(e.openElements.items[u], t);
        if (!e.fragmentContext && e.openElements.stackTop >= 0) {
            const u = e.openElements.items[0], n = e.treeAdapter.getNodeSourceCodeLocation(u);
            if (n && !n.endTag && (e._setEndLocation(u, t), e.openElements.stackTop >= 1)) {
                const i = e.openElements.items[1], a = e.treeAdapter.getNodeSourceCodeLocation(i);
                a && !a.endTag && e._setEndLocation(i, t)
            }
        }
    }
}

function e1(e, t) {
    e._setDocumentType(t);
    const r = t.forceQuirks ? Ze.QUIRKS : wA(t);
    NA(t) || e._err(t, Z.nonConformingDoctype), e.treeAdapter.setDocumentMode(e.document, r), e.insertionMode = R.BEFORE_HTML
}

function Vt(e, t) {
    e._err(t, Z.missingDoctype, !0), e.treeAdapter.setDocumentMode(e.document, Ze.QUIRKS), e.insertionMode = R.BEFORE_HTML, e._processToken(t)
}

function t1(e, t) {
    t.tagID === c.HTML ? (e._insertElement(t, $.HTML), e.insertionMode = R.BEFORE_HEAD) : ur(e, t)
}

function r1(e, t) {
    const r = t.tagID;
    (r === c.HTML || r === c.HEAD || r === c.BODY || r === c.BR) && ur(e, t)
}

function ur(e, t) {
    e._insertFakeRootElement(), e.insertionMode = R.BEFORE_HEAD, e._processToken(t)
}

function u1(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.HEAD: {
            e._insertElement(t, $.HTML), e.headElement = e.openElements.current, e.insertionMode = R.IN_HEAD;
            break
        }
        default:
            nr(e, t)
    }
}

function n1(e, t) {
    const r = t.tagID;
    r === c.HEAD || r === c.BODY || r === c.HTML || r === c.BR ? nr(e, t) : e._err(t, Z.endTagWithoutMatchingOpenElement)
}

function nr(e, t) {
    e._insertFakeElement(H.HEAD, c.HEAD), e.headElement = e.openElements.current, e.insertionMode = R.IN_HEAD, e._processToken(t)
}

function et(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.BASE:
        case c.BASEFONT:
        case c.BGSOUND:
        case c.LINK:
        case c.META: {
            e._appendElement(t, $.HTML), t.ackSelfClosing = !0;
            break
        }
        case c.TITLE: {
            e._switchToTextParsing(t, We.RCDATA);
            break
        }
        case c.NOSCRIPT: {
            e.options.scriptingEnabled ? e._switchToTextParsing(t, We.RAWTEXT) : (e._insertElement(t, $.HTML), e.insertionMode = R.IN_HEAD_NO_SCRIPT);
            break
        }
        case c.NOFRAMES:
        case c.STYLE: {
            e._switchToTextParsing(t, We.RAWTEXT);
            break
        }
        case c.SCRIPT: {
            e._switchToTextParsing(t, We.SCRIPT_DATA);
            break
        }
        case c.TEMPLATE: {
            e._insertTemplate(t), e.activeFormattingElements.insertMarker(), e.framesetOk = !1, e.insertionMode = R.IN_TEMPLATE, e.tmplInsertionModeStack.unshift(R.IN_TEMPLATE);
            break
        }
        case c.HEAD: {
            e._err(t, Z.misplacedStartTagForHeadElement);
            break
        }
        default:
            ir(e, t)
    }
}

function i1(e, t) {
    switch (t.tagID) {
        case c.HEAD: {
            e.openElements.pop(), e.insertionMode = R.AFTER_HEAD;
            break
        }
        case c.BODY:
        case c.BR:
        case c.HTML: {
            ir(e, t);
            break
        }
        case c.TEMPLATE: {
            Lt(e, t);
            break
        }
        default:
            e._err(t, Z.endTagWithoutMatchingOpenElement)
    }
}

function Lt(e, t) {
    e.openElements.tmplCount > 0 ? (e.openElements.generateImpliedEndTagsThoroughly(), e.openElements.currentTagId !== c.TEMPLATE && e._err(t, Z.closingOfElementWithOpenChildElements), e.openElements.popUntilTagNamePopped(c.TEMPLATE), e.activeFormattingElements.clearToLastMarker(), e.tmplInsertionModeStack.shift(), e._resetInsertionMode()) : e._err(t, Z.endTagWithoutMatchingOpenElement)
}

function ir(e, t) {
    e.openElements.pop(), e.insertionMode = R.AFTER_HEAD, e._processToken(t)
}

function a1(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.BASEFONT:
        case c.BGSOUND:
        case c.HEAD:
        case c.LINK:
        case c.META:
        case c.NOFRAMES:
        case c.STYLE: {
            et(e, t);
            break
        }
        case c.NOSCRIPT: {
            e._err(t, Z.nestedNoscriptInHead);
            break
        }
        default:
            ar(e, t)
    }
}

function s1(e, t) {
    switch (t.tagID) {
        case c.NOSCRIPT: {
            e.openElements.pop(), e.insertionMode = R.IN_HEAD;
            break
        }
        case c.BR: {
            ar(e, t);
            break
        }
        default:
            e._err(t, Z.endTagWithoutMatchingOpenElement)
    }
}

function ar(e, t) {
    const r = t.type === Ee.EOF ? Z.openElementsLeftAfterEof : Z.disallowedContentInNoscriptInHead;
    e._err(t, r), e.openElements.pop(), e.insertionMode = R.IN_HEAD, e._processToken(t)
}

function o1(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.BODY: {
            e._insertElement(t, $.HTML), e.framesetOk = !1, e.insertionMode = R.IN_BODY;
            break
        }
        case c.FRAMESET: {
            e._insertElement(t, $.HTML), e.insertionMode = R.IN_FRAMESET;
            break
        }
        case c.BASE:
        case c.BASEFONT:
        case c.BGSOUND:
        case c.LINK:
        case c.META:
        case c.NOFRAMES:
        case c.SCRIPT:
        case c.STYLE:
        case c.TEMPLATE:
        case c.TITLE: {
            e._err(t, Z.abandonedHeadElementChild), e.openElements.push(e.headElement, c.HEAD), et(e, t), e.openElements.remove(e.headElement);
            break
        }
        case c.HEAD: {
            e._err(t, Z.misplacedStartTagForHeadElement);
            break
        }
        default:
            sr(e, t)
    }
}

function c1(e, t) {
    switch (t.tagID) {
        case c.BODY:
        case c.HTML:
        case c.BR: {
            sr(e, t);
            break
        }
        case c.TEMPLATE: {
            Lt(e, t);
            break
        }
        default:
            e._err(t, Z.endTagWithoutMatchingOpenElement)
    }
}

function sr(e, t) {
    e._insertFakeElement(H.BODY, c.BODY), e.insertionMode = R.IN_BODY, gu(e, t)
}

function gu(e, t) {
    switch (t.type) {
        case Ee.CHARACTER: {
            Ks(e, t);
            break
        }
        case Ee.WHITESPACE_CHARACTER: {
            Ws(e, t);
            break
        }
        case Ee.COMMENT: {
            fn(e, t);
            break
        }
        case Ee.START_TAG: {
            He(e, t);
            break
        }
        case Ee.END_TAG: {
            mu(e, t);
            break
        }
        case Ee.EOF: {
            Js(e, t);
            break
        }
    }
}

function Ws(e, t) {
    e._reconstructActiveFormattingElements(), e._insertCharacters(t)
}

function Ks(e, t) {
    e._reconstructActiveFormattingElements(), e._insertCharacters(t), e.framesetOk = !1
}

function l1(e, t) {
    e.openElements.tmplCount === 0 && e.treeAdapter.adoptAttributes(e.openElements.items[0], t.attrs)
}

function f1(e, t) {
    const r = e.openElements.tryPeekProperlyNestedBodyElement();
    r && e.openElements.tmplCount === 0 && (e.framesetOk = !1, e.treeAdapter.adoptAttributes(r, t.attrs))
}

function d1(e, t) {
    const r = e.openElements.tryPeekProperlyNestedBodyElement();
    e.framesetOk && r && (e.treeAdapter.detachNode(r), e.openElements.popAllUpToHtmlElement(), e._insertElement(t, $.HTML), e.insertionMode = R.IN_FRAMESET)
}

function h1(e, t) {
    e.openElements.hasInButtonScope(c.P) && e._closePElement(), e._insertElement(t, $.HTML)
}

function A1(e, t) {
    e.openElements.hasInButtonScope(c.P) && e._closePElement(), e.openElements.currentTagId !== void 0 && ln.has(e.openElements.currentTagId) && e.openElements.pop(), e._insertElement(t, $.HTML)
}

function p1(e, t) {
    e.openElements.hasInButtonScope(c.P) && e._closePElement(), e._insertElement(t, $.HTML), e.skipNextNewLine = !0, e.framesetOk = !1
}

function b1(e, t) {
    const r = e.openElements.tmplCount > 0;
    (!e.formElement || r) && (e.openElements.hasInButtonScope(c.P) && e._closePElement(), e._insertElement(t, $.HTML), r || (e.formElement = e.openElements.current))
}

function g1(e, t) {
    e.framesetOk = !1;
    const r = t.tagID;
    for (let u = e.openElements.stackTop; u >= 0; u--) {
        const n = e.openElements.tagIDs[u];
        if (r === c.LI && n === c.LI || (r === c.DD || r === c.DT) && (n === c.DD || n === c.DT)) {
            e.openElements.generateImpliedEndTagsWithExclusion(n), e.openElements.popUntilTagNamePopped(n);
            break
        }
        if (n !== c.ADDRESS && n !== c.DIV && n !== c.P && e._isSpecialElement(e.openElements.items[u], n)) break
    }
    e.openElements.hasInButtonScope(c.P) && e._closePElement(), e._insertElement(t, $.HTML)
}

function m1(e, t) {
    e.openElements.hasInButtonScope(c.P) && e._closePElement(), e._insertElement(t, $.HTML), e.tokenizer.state = We.PLAINTEXT
}

function E1(e, t) {
    e.openElements.hasInScope(c.BUTTON) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(c.BUTTON)), e._reconstructActiveFormattingElements(), e._insertElement(t, $.HTML), e.framesetOk = !1
}

function T1(e, t) {
    const r = e.activeFormattingElements.getElementEntryInScopeWithTagName(H.A);
    r && (Vn(e, t), e.openElements.remove(r.element), e.activeFormattingElements.removeEntry(r)), e._reconstructActiveFormattingElements(), e._insertElement(t, $.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t)
}

function _1(e, t) {
    e._reconstructActiveFormattingElements(), e._insertElement(t, $.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t)
}

function x1(e, t) {
    e._reconstructActiveFormattingElements(), e.openElements.hasInScope(c.NOBR) && (Vn(e, t), e._reconstructActiveFormattingElements()), e._insertElement(t, $.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t)
}

function C1(e, t) {
    e._reconstructActiveFormattingElements(), e._insertElement(t, $.HTML), e.activeFormattingElements.insertMarker(), e.framesetOk = !1
}

function I1(e, t) {
    e.treeAdapter.getDocumentMode(e.document) !== Ze.QUIRKS && e.openElements.hasInButtonScope(c.P) && e._closePElement(), e._insertElement(t, $.HTML), e.framesetOk = !1, e.insertionMode = R.IN_TABLE
}

function qs(e, t) {
    e._reconstructActiveFormattingElements(), e._appendElement(t, $.HTML), e.framesetOk = !1, t.ackSelfClosing = !0
}

function Zs(e) {
    const t = Os(e, It.TYPE);
    return t != null && t.toLowerCase() === YA
}

function y1(e, t) {
    e._reconstructActiveFormattingElements(), e._appendElement(t, $.HTML), Zs(t) || (e.framesetOk = !1), t.ackSelfClosing = !0
}

function k1(e, t) {
    e._appendElement(t, $.HTML), t.ackSelfClosing = !0
}

function S1(e, t) {
    e.openElements.hasInButtonScope(c.P) && e._closePElement(), e._appendElement(t, $.HTML), e.framesetOk = !1, t.ackSelfClosing = !0
}

function v1(e, t) {
    t.tagName = H.IMG, t.tagID = c.IMG, qs(e, t)
}

function N1(e, t) {
    e._insertElement(t, $.HTML), e.skipNextNewLine = !0, e.tokenizer.state = We.RCDATA, e.originalInsertionMode = e.insertionMode, e.framesetOk = !1, e.insertionMode = R.TEXT
}

function w1(e, t) {
    e.openElements.hasInButtonScope(c.P) && e._closePElement(), e._reconstructActiveFormattingElements(), e.framesetOk = !1, e._switchToTextParsing(t, We.RAWTEXT)
}

function D1(e, t) {
    e.framesetOk = !1, e._switchToTextParsing(t, We.RAWTEXT)
}

function ji(e, t) {
    e._switchToTextParsing(t, We.RAWTEXT)
}

function B1(e, t) {
    e._reconstructActiveFormattingElements(), e._insertElement(t, $.HTML), e.framesetOk = !1, e.insertionMode = e.insertionMode === R.IN_TABLE || e.insertionMode === R.IN_CAPTION || e.insertionMode === R.IN_TABLE_BODY || e.insertionMode === R.IN_ROW || e.insertionMode === R.IN_CELL ? R.IN_SELECT_IN_TABLE : R.IN_SELECT
}

function R1(e, t) {
    e.openElements.currentTagId === c.OPTION && e.openElements.pop(), e._reconstructActiveFormattingElements(), e._insertElement(t, $.HTML)
}

function O1(e, t) {
    e.openElements.hasInScope(c.RUBY) && e.openElements.generateImpliedEndTags(), e._insertElement(t, $.HTML)
}

function L1(e, t) {
    e.openElements.hasInScope(c.RUBY) && e.openElements.generateImpliedEndTagsWithExclusion(c.RTC), e._insertElement(t, $.HTML)
}

function F1(e, t) {
    e._reconstructActiveFormattingElements(), Hs(t), Jn(t), t.selfClosing ? e._appendElement(t, $.MATHML) : e._insertElement(t, $.MATHML), t.ackSelfClosing = !0
}

function M1(e, t) {
    e._reconstructActiveFormattingElements(), Qs(t), Jn(t), t.selfClosing ? e._appendElement(t, $.SVG) : e._insertElement(t, $.SVG), t.ackSelfClosing = !0
}

function Xi(e, t) {
    e._reconstructActiveFormattingElements(), e._insertElement(t, $.HTML)
}

function He(e, t) {
    switch (t.tagID) {
        case c.I:
        case c.S:
        case c.B:
        case c.U:
        case c.EM:
        case c.TT:
        case c.BIG:
        case c.CODE:
        case c.FONT:
        case c.SMALL:
        case c.STRIKE:
        case c.STRONG: {
            _1(e, t);
            break
        }
        case c.A: {
            T1(e, t);
            break
        }
        case c.H1:
        case c.H2:
        case c.H3:
        case c.H4:
        case c.H5:
        case c.H6: {
            A1(e, t);
            break
        }
        case c.P:
        case c.DL:
        case c.OL:
        case c.UL:
        case c.DIV:
        case c.DIR:
        case c.NAV:
        case c.MAIN:
        case c.MENU:
        case c.ASIDE:
        case c.CENTER:
        case c.FIGURE:
        case c.FOOTER:
        case c.HEADER:
        case c.HGROUP:
        case c.DIALOG:
        case c.DETAILS:
        case c.ADDRESS:
        case c.ARTICLE:
        case c.SEARCH:
        case c.SECTION:
        case c.SUMMARY:
        case c.FIELDSET:
        case c.BLOCKQUOTE:
        case c.FIGCAPTION: {
            h1(e, t);
            break
        }
        case c.LI:
        case c.DD:
        case c.DT: {
            g1(e, t);
            break
        }
        case c.BR:
        case c.IMG:
        case c.WBR:
        case c.AREA:
        case c.EMBED:
        case c.KEYGEN: {
            qs(e, t);
            break
        }
        case c.HR: {
            S1(e, t);
            break
        }
        case c.RB:
        case c.RTC: {
            O1(e, t);
            break
        }
        case c.RT:
        case c.RP: {
            L1(e, t);
            break
        }
        case c.PRE:
        case c.LISTING: {
            p1(e, t);
            break
        }
        case c.XMP: {
            w1(e, t);
            break
        }
        case c.SVG: {
            M1(e, t);
            break
        }
        case c.HTML: {
            l1(e, t);
            break
        }
        case c.BASE:
        case c.LINK:
        case c.META:
        case c.STYLE:
        case c.TITLE:
        case c.SCRIPT:
        case c.BGSOUND:
        case c.BASEFONT:
        case c.TEMPLATE: {
            et(e, t);
            break
        }
        case c.BODY: {
            f1(e, t);
            break
        }
        case c.FORM: {
            b1(e, t);
            break
        }
        case c.NOBR: {
            x1(e, t);
            break
        }
        case c.MATH: {
            F1(e, t);
            break
        }
        case c.TABLE: {
            I1(e, t);
            break
        }
        case c.INPUT: {
            y1(e, t);
            break
        }
        case c.PARAM:
        case c.TRACK:
        case c.SOURCE: {
            k1(e, t);
            break
        }
        case c.IMAGE: {
            v1(e, t);
            break
        }
        case c.BUTTON: {
            E1(e, t);
            break
        }
        case c.APPLET:
        case c.OBJECT:
        case c.MARQUEE: {
            C1(e, t);
            break
        }
        case c.IFRAME: {
            D1(e, t);
            break
        }
        case c.SELECT: {
            B1(e, t);
            break
        }
        case c.OPTION:
        case c.OPTGROUP: {
            R1(e, t);
            break
        }
        case c.NOEMBED:
        case c.NOFRAMES: {
            ji(e, t);
            break
        }
        case c.FRAMESET: {
            d1(e, t);
            break
        }
        case c.TEXTAREA: {
            N1(e, t);
            break
        }
        case c.NOSCRIPT: {
            e.options.scriptingEnabled ? ji(e, t) : Xi(e, t);
            break
        }
        case c.PLAINTEXT: {
            m1(e, t);
            break
        }
        case c.COL:
        case c.TH:
        case c.TD:
        case c.TR:
        case c.HEAD:
        case c.FRAME:
        case c.TBODY:
        case c.TFOOT:
        case c.THEAD:
        case c.CAPTION:
        case c.COLGROUP:
            break;
        default:
            Xi(e, t)
    }
}

function P1(e, t) {
    if (e.openElements.hasInScope(c.BODY) && (e.insertionMode = R.AFTER_BODY, e.options.sourceCodeLocationInfo)) {
        const r = e.openElements.tryPeekProperlyNestedBodyElement();
        r && e._setEndLocation(r, t)
    }
}

function U1(e, t) {
    e.openElements.hasInScope(c.BODY) && (e.insertionMode = R.AFTER_BODY, uo(e, t))
}

function H1(e, t) {
    const r = t.tagID;
    e.openElements.hasInScope(r) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(r))
}

function Q1(e) {
    const t = e.openElements.tmplCount > 0, {formElement: r} = e;
    t || (e.formElement = null), (r || t) && e.openElements.hasInScope(c.FORM) && (e.openElements.generateImpliedEndTags(), t ? e.openElements.popUntilTagNamePopped(c.FORM) : r && e.openElements.remove(r))
}

function Y1(e) {
    e.openElements.hasInButtonScope(c.P) || e._insertFakeElement(H.P, c.P), e._closePElement()
}

function G1(e) {
    e.openElements.hasInListItemScope(c.LI) && (e.openElements.generateImpliedEndTagsWithExclusion(c.LI), e.openElements.popUntilTagNamePopped(c.LI))
}

function W1(e, t) {
    const r = t.tagID;
    e.openElements.hasInScope(r) && (e.openElements.generateImpliedEndTagsWithExclusion(r), e.openElements.popUntilTagNamePopped(r))
}

function K1(e) {
    e.openElements.hasNumberedHeaderInScope() && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilNumberedHeaderPopped())
}

function q1(e, t) {
    const r = t.tagID;
    e.openElements.hasInScope(r) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(r), e.activeFormattingElements.clearToLastMarker())
}

function Z1(e) {
    e._reconstructActiveFormattingElements(), e._insertFakeElement(H.BR, c.BR), e.openElements.pop(), e.framesetOk = !1
}

function zs(e, t) {
    const r = t.tagName, u = t.tagID;
    for (let n = e.openElements.stackTop; n > 0; n--) {
        const i = e.openElements.items[n], a = e.openElements.tagIDs[n];
        if (u === a && (u !== c.UNKNOWN || e.treeAdapter.getTagName(i) === r)) {
            e.openElements.generateImpliedEndTagsWithExclusion(u), e.openElements.stackTop >= n && e.openElements.shortenToLength(n);
            break
        }
        if (e._isSpecialElement(i, a)) break
    }
}

function mu(e, t) {
    switch (t.tagID) {
        case c.A:
        case c.B:
        case c.I:
        case c.S:
        case c.U:
        case c.EM:
        case c.TT:
        case c.BIG:
        case c.CODE:
        case c.FONT:
        case c.NOBR:
        case c.SMALL:
        case c.STRIKE:
        case c.STRONG: {
            Vn(e, t);
            break
        }
        case c.P: {
            Y1(e);
            break
        }
        case c.DL:
        case c.UL:
        case c.OL:
        case c.DIR:
        case c.DIV:
        case c.NAV:
        case c.PRE:
        case c.MAIN:
        case c.MENU:
        case c.ASIDE:
        case c.BUTTON:
        case c.CENTER:
        case c.FIGURE:
        case c.FOOTER:
        case c.HEADER:
        case c.HGROUP:
        case c.DIALOG:
        case c.ADDRESS:
        case c.ARTICLE:
        case c.DETAILS:
        case c.SEARCH:
        case c.SECTION:
        case c.SUMMARY:
        case c.LISTING:
        case c.FIELDSET:
        case c.BLOCKQUOTE:
        case c.FIGCAPTION: {
            H1(e, t);
            break
        }
        case c.LI: {
            G1(e);
            break
        }
        case c.DD:
        case c.DT: {
            W1(e, t);
            break
        }
        case c.H1:
        case c.H2:
        case c.H3:
        case c.H4:
        case c.H5:
        case c.H6: {
            K1(e);
            break
        }
        case c.BR: {
            Z1(e);
            break
        }
        case c.BODY: {
            P1(e, t);
            break
        }
        case c.HTML: {
            U1(e, t);
            break
        }
        case c.FORM: {
            Q1(e);
            break
        }
        case c.APPLET:
        case c.OBJECT:
        case c.MARQUEE: {
            q1(e, t);
            break
        }
        case c.TEMPLATE: {
            Lt(e, t);
            break
        }
        default:
            zs(e, t)
    }
}

function Js(e, t) {
    e.tmplInsertionModeStack.length > 0 ? ro(e, t) : jn(e, t)
}

function z1(e, t) {
    var r;
    t.tagID === c.SCRIPT && ((r = e.scriptHandler) === null || r === void 0 || r.call(e, e.openElements.current)), e.openElements.pop(), e.insertionMode = e.originalInsertionMode
}

function J1(e, t) {
    e._err(t, Z.eofInElementThatCanContainOnlyText), e.openElements.pop(), e.insertionMode = e.originalInsertionMode, e.onEof(t)
}

function Yu(e, t) {
    if (e.openElements.currentTagId !== void 0 && Ys.has(e.openElements.currentTagId)) switch (e.pendingCharacterTokens.length = 0, e.hasNonWhitespacePendingCharacterToken = !1, e.originalInsertionMode = e.insertionMode, e.insertionMode = R.IN_TABLE_TEXT, t.type) {
        case Ee.CHARACTER: {
            js(e, t);
            break
        }
        case Ee.WHITESPACE_CHARACTER: {
            Vs(e, t);
            break
        }
    } else yr(e, t)
}

function V1(e, t) {
    e.openElements.clearBackToTableContext(), e.activeFormattingElements.insertMarker(), e._insertElement(t, $.HTML), e.insertionMode = R.IN_CAPTION
}

function j1(e, t) {
    e.openElements.clearBackToTableContext(), e._insertElement(t, $.HTML), e.insertionMode = R.IN_COLUMN_GROUP
}

function X1(e, t) {
    e.openElements.clearBackToTableContext(), e._insertFakeElement(H.COLGROUP, c.COLGROUP), e.insertionMode = R.IN_COLUMN_GROUP, Xn(e, t)
}

function $1(e, t) {
    e.openElements.clearBackToTableContext(), e._insertElement(t, $.HTML), e.insertionMode = R.IN_TABLE_BODY
}

function ep(e, t) {
    e.openElements.clearBackToTableContext(), e._insertFakeElement(H.TBODY, c.TBODY), e.insertionMode = R.IN_TABLE_BODY, Eu(e, t)
}

function tp(e, t) {
    e.openElements.hasInTableScope(c.TABLE) && (e.openElements.popUntilTagNamePopped(c.TABLE), e._resetInsertionMode(), e._processStartTag(t))
}

function rp(e, t) {
    Zs(t) ? e._appendElement(t, $.HTML) : yr(e, t), t.ackSelfClosing = !0
}

function up(e, t) {
    !e.formElement && e.openElements.tmplCount === 0 && (e._insertElement(t, $.HTML), e.formElement = e.openElements.current, e.openElements.pop())
}

function Ht(e, t) {
    switch (t.tagID) {
        case c.TD:
        case c.TH:
        case c.TR: {
            ep(e, t);
            break
        }
        case c.STYLE:
        case c.SCRIPT:
        case c.TEMPLATE: {
            et(e, t);
            break
        }
        case c.COL: {
            X1(e, t);
            break
        }
        case c.FORM: {
            up(e, t);
            break
        }
        case c.TABLE: {
            tp(e, t);
            break
        }
        case c.TBODY:
        case c.TFOOT:
        case c.THEAD: {
            $1(e, t);
            break
        }
        case c.INPUT: {
            rp(e, t);
            break
        }
        case c.CAPTION: {
            V1(e, t);
            break
        }
        case c.COLGROUP: {
            j1(e, t);
            break
        }
        default:
            yr(e, t)
    }
}

function pr(e, t) {
    switch (t.tagID) {
        case c.TABLE: {
            e.openElements.hasInTableScope(c.TABLE) && (e.openElements.popUntilTagNamePopped(c.TABLE), e._resetInsertionMode());
            break
        }
        case c.TEMPLATE: {
            Lt(e, t);
            break
        }
        case c.BODY:
        case c.CAPTION:
        case c.COL:
        case c.COLGROUP:
        case c.HTML:
        case c.TBODY:
        case c.TD:
        case c.TFOOT:
        case c.TH:
        case c.THEAD:
        case c.TR:
            break;
        default:
            yr(e, t)
    }
}

function yr(e, t) {
    const r = e.fosterParentingEnabled;
    e.fosterParentingEnabled = !0, gu(e, t), e.fosterParentingEnabled = r
}

function Vs(e, t) {
    e.pendingCharacterTokens.push(t)
}

function js(e, t) {
    e.pendingCharacterTokens.push(t), e.hasNonWhitespacePendingCharacterToken = !0
}

function jt(e, t) {
    let r = 0;
    if (e.hasNonWhitespacePendingCharacterToken) for (; r < e.pendingCharacterTokens.length; r++) yr(e, e.pendingCharacterTokens[r]); else for (; r < e.pendingCharacterTokens.length; r++) e._insertCharacters(e.pendingCharacterTokens[r]);
    e.insertionMode = e.originalInsertionMode, e._processToken(t)
}

const Xs = new Set([c.CAPTION, c.COL, c.COLGROUP, c.TBODY, c.TD, c.TFOOT, c.TH, c.THEAD, c.TR]);

function np(e, t) {
    const r = t.tagID;
    Xs.has(r) ? e.openElements.hasInTableScope(c.CAPTION) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(c.CAPTION), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = R.IN_TABLE, Ht(e, t)) : He(e, t)
}

function ip(e, t) {
    const r = t.tagID;
    switch (r) {
        case c.CAPTION:
        case c.TABLE: {
            e.openElements.hasInTableScope(c.CAPTION) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(c.CAPTION), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = R.IN_TABLE, r === c.TABLE && pr(e, t));
            break
        }
        case c.BODY:
        case c.COL:
        case c.COLGROUP:
        case c.HTML:
        case c.TBODY:
        case c.TD:
        case c.TFOOT:
        case c.TH:
        case c.THEAD:
        case c.TR:
            break;
        default:
            mu(e, t)
    }
}

function Xn(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.COL: {
            e._appendElement(t, $.HTML), t.ackSelfClosing = !0;
            break
        }
        case c.TEMPLATE: {
            et(e, t);
            break
        }
        default:
            ru(e, t)
    }
}

function ap(e, t) {
    switch (t.tagID) {
        case c.COLGROUP: {
            e.openElements.currentTagId === c.COLGROUP && (e.openElements.pop(), e.insertionMode = R.IN_TABLE);
            break
        }
        case c.TEMPLATE: {
            Lt(e, t);
            break
        }
        case c.COL:
            break;
        default:
            ru(e, t)
    }
}

function ru(e, t) {
    e.openElements.currentTagId === c.COLGROUP && (e.openElements.pop(), e.insertionMode = R.IN_TABLE, e._processToken(t))
}

function Eu(e, t) {
    switch (t.tagID) {
        case c.TR: {
            e.openElements.clearBackToTableBodyContext(), e._insertElement(t, $.HTML), e.insertionMode = R.IN_ROW;
            break
        }
        case c.TH:
        case c.TD: {
            e.openElements.clearBackToTableBodyContext(), e._insertFakeElement(H.TR, c.TR), e.insertionMode = R.IN_ROW, Tu(e, t);
            break
        }
        case c.CAPTION:
        case c.COL:
        case c.COLGROUP:
        case c.TBODY:
        case c.TFOOT:
        case c.THEAD: {
            e.openElements.hasTableBodyContextInTableScope() && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = R.IN_TABLE, Ht(e, t));
            break
        }
        default:
            Ht(e, t)
    }
}

function dn(e, t) {
    const r = t.tagID;
    switch (t.tagID) {
        case c.TBODY:
        case c.TFOOT:
        case c.THEAD: {
            e.openElements.hasInTableScope(r) && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = R.IN_TABLE);
            break
        }
        case c.TABLE: {
            e.openElements.hasTableBodyContextInTableScope() && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = R.IN_TABLE, pr(e, t));
            break
        }
        case c.BODY:
        case c.CAPTION:
        case c.COL:
        case c.COLGROUP:
        case c.HTML:
        case c.TD:
        case c.TH:
        case c.TR:
            break;
        default:
            pr(e, t)
    }
}

function Tu(e, t) {
    switch (t.tagID) {
        case c.TH:
        case c.TD: {
            e.openElements.clearBackToTableRowContext(), e._insertElement(t, $.HTML), e.insertionMode = R.IN_CELL, e.activeFormattingElements.insertMarker();
            break
        }
        case c.CAPTION:
        case c.COL:
        case c.COLGROUP:
        case c.TBODY:
        case c.TFOOT:
        case c.THEAD:
        case c.TR: {
            e.openElements.hasInTableScope(c.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = R.IN_TABLE_BODY, Eu(e, t));
            break
        }
        default:
            Ht(e, t)
    }
}

function $s(e, t) {
    switch (t.tagID) {
        case c.TR: {
            e.openElements.hasInTableScope(c.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = R.IN_TABLE_BODY);
            break
        }
        case c.TABLE: {
            e.openElements.hasInTableScope(c.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = R.IN_TABLE_BODY, dn(e, t));
            break
        }
        case c.TBODY:
        case c.TFOOT:
        case c.THEAD: {
            (e.openElements.hasInTableScope(t.tagID) || e.openElements.hasInTableScope(c.TR)) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = R.IN_TABLE_BODY, dn(e, t));
            break
        }
        case c.BODY:
        case c.CAPTION:
        case c.COL:
        case c.COLGROUP:
        case c.HTML:
        case c.TD:
        case c.TH:
            break;
        default:
            pr(e, t)
    }
}

function sp(e, t) {
    const r = t.tagID;
    Xs.has(r) ? (e.openElements.hasInTableScope(c.TD) || e.openElements.hasInTableScope(c.TH)) && (e._closeTableCell(), Tu(e, t)) : He(e, t)
}

function op(e, t) {
    const r = t.tagID;
    switch (r) {
        case c.TD:
        case c.TH: {
            e.openElements.hasInTableScope(r) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(r), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = R.IN_ROW);
            break
        }
        case c.TABLE:
        case c.TBODY:
        case c.TFOOT:
        case c.THEAD:
        case c.TR: {
            e.openElements.hasInTableScope(r) && (e._closeTableCell(), $s(e, t));
            break
        }
        case c.BODY:
        case c.CAPTION:
        case c.COL:
        case c.COLGROUP:
        case c.HTML:
            break;
        default:
            mu(e, t)
    }
}

function eo(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.OPTION: {
            e.openElements.currentTagId === c.OPTION && e.openElements.pop(), e._insertElement(t, $.HTML);
            break
        }
        case c.OPTGROUP: {
            e.openElements.currentTagId === c.OPTION && e.openElements.pop(), e.openElements.currentTagId === c.OPTGROUP && e.openElements.pop(), e._insertElement(t, $.HTML);
            break
        }
        case c.HR: {
            e.openElements.currentTagId === c.OPTION && e.openElements.pop(), e.openElements.currentTagId === c.OPTGROUP && e.openElements.pop(), e._appendElement(t, $.HTML), t.ackSelfClosing = !0;
            break
        }
        case c.INPUT:
        case c.KEYGEN:
        case c.TEXTAREA:
        case c.SELECT: {
            e.openElements.hasInSelectScope(c.SELECT) && (e.openElements.popUntilTagNamePopped(c.SELECT), e._resetInsertionMode(), t.tagID !== c.SELECT && e._processStartTag(t));
            break
        }
        case c.SCRIPT:
        case c.TEMPLATE: {
            et(e, t);
            break
        }
    }
}

function to(e, t) {
    switch (t.tagID) {
        case c.OPTGROUP: {
            e.openElements.stackTop > 0 && e.openElements.currentTagId === c.OPTION && e.openElements.tagIDs[e.openElements.stackTop - 1] === c.OPTGROUP && e.openElements.pop(), e.openElements.currentTagId === c.OPTGROUP && e.openElements.pop();
            break
        }
        case c.OPTION: {
            e.openElements.currentTagId === c.OPTION && e.openElements.pop();
            break
        }
        case c.SELECT: {
            e.openElements.hasInSelectScope(c.SELECT) && (e.openElements.popUntilTagNamePopped(c.SELECT), e._resetInsertionMode());
            break
        }
        case c.TEMPLATE: {
            Lt(e, t);
            break
        }
    }
}

function cp(e, t) {
    const r = t.tagID;
    r === c.CAPTION || r === c.TABLE || r === c.TBODY || r === c.TFOOT || r === c.THEAD || r === c.TR || r === c.TD || r === c.TH ? (e.openElements.popUntilTagNamePopped(c.SELECT), e._resetInsertionMode(), e._processStartTag(t)) : eo(e, t)
}

function lp(e, t) {
    const r = t.tagID;
    r === c.CAPTION || r === c.TABLE || r === c.TBODY || r === c.TFOOT || r === c.THEAD || r === c.TR || r === c.TD || r === c.TH ? e.openElements.hasInTableScope(r) && (e.openElements.popUntilTagNamePopped(c.SELECT), e._resetInsertionMode(), e.onEndTag(t)) : to(e, t)
}

function fp(e, t) {
    switch (t.tagID) {
        case c.BASE:
        case c.BASEFONT:
        case c.BGSOUND:
        case c.LINK:
        case c.META:
        case c.NOFRAMES:
        case c.SCRIPT:
        case c.STYLE:
        case c.TEMPLATE:
        case c.TITLE: {
            et(e, t);
            break
        }
        case c.CAPTION:
        case c.COLGROUP:
        case c.TBODY:
        case c.TFOOT:
        case c.THEAD: {
            e.tmplInsertionModeStack[0] = R.IN_TABLE, e.insertionMode = R.IN_TABLE, Ht(e, t);
            break
        }
        case c.COL: {
            e.tmplInsertionModeStack[0] = R.IN_COLUMN_GROUP, e.insertionMode = R.IN_COLUMN_GROUP, Xn(e, t);
            break
        }
        case c.TR: {
            e.tmplInsertionModeStack[0] = R.IN_TABLE_BODY, e.insertionMode = R.IN_TABLE_BODY, Eu(e, t);
            break
        }
        case c.TD:
        case c.TH: {
            e.tmplInsertionModeStack[0] = R.IN_ROW, e.insertionMode = R.IN_ROW, Tu(e, t);
            break
        }
        default:
            e.tmplInsertionModeStack[0] = R.IN_BODY, e.insertionMode = R.IN_BODY, He(e, t)
    }
}

function dp(e, t) {
    t.tagID === c.TEMPLATE && Lt(e, t)
}

function ro(e, t) {
    e.openElements.tmplCount > 0 ? (e.openElements.popUntilTagNamePopped(c.TEMPLATE), e.activeFormattingElements.clearToLastMarker(), e.tmplInsertionModeStack.shift(), e._resetInsertionMode(), e.onEof(t)) : jn(e, t)
}

function hp(e, t) {
    t.tagID === c.HTML ? He(e, t) : uu(e, t)
}

function uo(e, t) {
    var r;
    if (t.tagID === c.HTML) {
        if (e.fragmentContext || (e.insertionMode = R.AFTER_AFTER_BODY), e.options.sourceCodeLocationInfo && e.openElements.tagIDs[0] === c.HTML) {
            e._setEndLocation(e.openElements.items[0], t);
            const u = e.openElements.items[1];
            u && !(!((r = e.treeAdapter.getNodeSourceCodeLocation(u)) === null || r === void 0) && r.endTag) && e._setEndLocation(u, t)
        }
    } else uu(e, t)
}

function uu(e, t) {
    e.insertionMode = R.IN_BODY, gu(e, t)
}

function Ap(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.FRAMESET: {
            e._insertElement(t, $.HTML);
            break
        }
        case c.FRAME: {
            e._appendElement(t, $.HTML), t.ackSelfClosing = !0;
            break
        }
        case c.NOFRAMES: {
            et(e, t);
            break
        }
    }
}

function pp(e, t) {
    t.tagID === c.FRAMESET && !e.openElements.isRootHtmlElementCurrent() && (e.openElements.pop(), !e.fragmentContext && e.openElements.currentTagId !== c.FRAMESET && (e.insertionMode = R.AFTER_FRAMESET))
}

function bp(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.NOFRAMES: {
            et(e, t);
            break
        }
    }
}

function gp(e, t) {
    t.tagID === c.HTML && (e.insertionMode = R.AFTER_AFTER_FRAMESET)
}

function mp(e, t) {
    t.tagID === c.HTML ? He(e, t) : Hr(e, t)
}

function Hr(e, t) {
    e.insertionMode = R.IN_BODY, gu(e, t)
}

function Ep(e, t) {
    switch (t.tagID) {
        case c.HTML: {
            He(e, t);
            break
        }
        case c.NOFRAMES: {
            et(e, t);
            break
        }
    }
}

function Tp(e, t) {
    t.chars = Se, e._insertCharacters(t)
}

function _p(e, t) {
    e._insertCharacters(t), e.framesetOk = !1
}

function no(e) {
    for (; e.treeAdapter.getNamespaceURI(e.openElements.current) !== $.HTML && e.openElements.currentTagId !== void 0 && !e._isIntegrationPoint(e.openElements.currentTagId, e.openElements.current);) e.openElements.pop()
}

function xp(e, t) {
    if (MA(t)) no(e), e._startTagOutsideForeignContent(t); else {
        const r = e._getAdjustedCurrentElement(), u = e.treeAdapter.getNamespaceURI(r);
        u === $.MATHML ? Hs(t) : u === $.SVG && (PA(t), Qs(t)), Jn(t), t.selfClosing ? e._appendElement(t, u) : e._insertElement(t, u), t.ackSelfClosing = !0
    }
}

function Cp(e, t) {
    if (t.tagID === c.P || t.tagID === c.BR) {
        no(e), e._endTagOutsideForeignContent(t);
        return
    }
    for (let r = e.openElements.stackTop; r > 0; r--) {
        const u = e.openElements.items[r];
        if (e.treeAdapter.getNamespaceURI(u) === $.HTML) {
            e._endTagOutsideForeignContent(t);
            break
        }
        const n = e.treeAdapter.getTagName(u);
        if (n.toLowerCase() === t.tagName) {
            t.tagName = n, e.openElements.shortenToLength(r);
            break
        }
    }
}

function io(e, t) {
    return function (u) {
        let n, i = 0, a = "";
        for (; n = e.exec(u);) i !== n.index && (a += u.substring(i, n.index)), a += t.get(n[0].charCodeAt(0)), i = n.index + 1;
        return a + u.substring(i)
    }
}

const Ip = io(/["&\u00A0]/g, new Map([[34, "&quot;"], [38, "&amp;"], [160, "&nbsp;"]])),
    yp = io(/[&<>\u00A0]/g, new Map([[38, "&amp;"], [60, "&lt;"], [62, "&gt;"], [160, "&nbsp;"]])),
    kp = new Set([H.AREA, H.BASE, H.BASEFONT, H.BGSOUND, H.BR, H.COL, H.EMBED, H.FRAME, H.HR, H.IMG, H.INPUT, H.KEYGEN, H.LINK, H.META, H.PARAM, H.SOURCE, H.TRACK, H.WBR]);

function Sp(e, t) {
    return t.treeAdapter.isElementNode(e) && t.treeAdapter.getNamespaceURI(e) === $.HTML && kp.has(t.treeAdapter.getTagName(e))
}

const vp = {treeAdapter: lt, scriptingEnabled: !0};

function Np(e, t) {
    const r = {...vp, ...t};
    return ao(e, r)
}

function wp(e, t) {
    let r = "";
    const u = t.treeAdapter.isElementNode(e) && t.treeAdapter.getTagName(e) === H.TEMPLATE && t.treeAdapter.getNamespaceURI(e) === $.HTML ? t.treeAdapter.getTemplateContent(e) : e,
        n = t.treeAdapter.getChildNodes(u);
    if (n) for (const i of n) r += ao(i, t);
    return r
}

function ao(e, t) {
    return t.treeAdapter.isElementNode(e) ? Dp(e, t) : t.treeAdapter.isTextNode(e) ? Rp(e, t) : t.treeAdapter.isCommentNode(e) ? Op(e, t) : t.treeAdapter.isDocumentTypeNode(e) ? Lp(e, t) : ""
}

function Dp(e, t) {
    const r = t.treeAdapter.getTagName(e);
    return `<${r}${Bp(e, t)}>${Sp(e, t) ? "" : `${wp(e, t)}</${r}>`}`
}

function Bp(e, {treeAdapter: t}) {
    let r = "";
    for (const u of t.getAttrList(e)) {
        if (r += " ", u.namespace) switch (u.namespace) {
            case $.XML: {
                r += `xml:${u.name}`;
                break
            }
            case $.XMLNS: {
                u.name !== "xmlns" && (r += "xmlns:"), r += u.name;
                break
            }
            case $.XLINK: {
                r += `xlink:${u.name}`;
                break
            }
            default:
                r += `${u.prefix}:${u.name}`
        } else r += u.name;
        r += `="${Ip(u.value)}"`
    }
    return r
}

function Rp(e, t) {
    const {treeAdapter: r} = t, u = r.getTextNodeContent(e), n = r.getParentNode(e),
        i = n && r.isElementNode(n) && r.getTagName(n);
    return i && r.getNamespaceURI(n) === $.HTML && fA(i, t.scriptingEnabled) ? u : yp(u)
}

function Op(e, {treeAdapter: t}) {
    return `<!--${t.getCommentNodeContent(e)}-->`
}

function Lp(e, {treeAdapter: t}) {
    return `<!DOCTYPE ${t.getDocumentTypeNodeName(e)}>`
}

function Fp(e, t) {
    return Gs.parse(e, t)
}

function Mp(e, t, r) {
    typeof e == "string" && (r = t, t = e, e = null);
    const u = Gs.getFragmentParser(e, r);
    return u.tokenizer.write(t, !0), u.getFragment()
}

function $i(e) {
    const t = e.includes('"') ? "'" : '"';
    return t + e + t
}

function Pp(e, t, r) {
    let u = "!DOCTYPE ";
    return e && (u += e), t ? u += ` PUBLIC ${$i(t)}` : r && (u += " SYSTEM"), r && (u += ` ${$i(r)}`), u
}

const At = {
    isCommentNode: fu, isElementNode: he, isTextNode: it, createDocument() {
        const e = new St([]);
        return e["x-mode"] = Ze.NO_QUIRKS, e
    }, createDocumentFragment() {
        return new St([])
    }, createElement(e, t, r) {
        const u = Object.create(null), n = Object.create(null), i = Object.create(null);
        for (let s = 0; s < r.length; s++) {
            const o = r[s].name;
            u[o] = r[s].value, n[o] = r[s].namespace, i[o] = r[s].prefix
        }
        const a = new On(e, u, []);
        return a.namespace = t, a["x-attribsNamespace"] = n, a["x-attribsPrefix"] = i, a
    }, createCommentNode(e) {
        return new Dn(e)
    }, createTextNode(e) {
        return new lr(e)
    }, appendChild(e, t) {
        const r = e.children[e.children.length - 1];
        r && (r.next = t, t.prev = r), e.children.push(t), t.parent = e
    }, insertBefore(e, t, r) {
        const u = e.children.indexOf(r), {prev: n} = r;
        n && (n.next = t, t.prev = n), r.prev = t, t.next = r, e.children.splice(u, 0, t), t.parent = e
    }, setTemplateContent(e, t) {
        At.appendChild(e, t)
    }, getTemplateContent(e) {
        return e.children[0]
    }, setDocumentType(e, t, r, u) {
        const n = Pp(t, r, u);
        let i = e.children.find(a => Xu(a) && a.name === "!doctype");
        i ? i.data = n ?? null : (i = new Bn("!doctype", n), At.appendChild(e, i)), i["x-name"] = t, i["x-publicId"] = r, i["x-systemId"] = u
    }, setDocumentMode(e, t) {
        e["x-mode"] = t
    }, getDocumentMode(e) {
        return e["x-mode"]
    }, detachNode(e) {
        if (e.parent) {
            const t = e.parent.children.indexOf(e), {prev: r, next: u} = e;
            e.prev = null, e.next = null, r && (r.next = u), u && (u.prev = r), e.parent.children.splice(t, 1), e.parent = null
        }
    }, insertText(e, t) {
        const r = e.children[e.children.length - 1];
        r && it(r) ? r.data += t : At.appendChild(e, At.createTextNode(t))
    }, insertTextBefore(e, t, r) {
        const u = e.children[e.children.indexOf(r) - 1];
        u && it(u) ? u.data += t : At.insertBefore(e, At.createTextNode(t), r)
    }, adoptAttributes(e, t) {
        for (let r = 0; r < t.length; r++) {
            const u = t[r].name;
            e.attribs[u] === void 0 && (e.attribs[u] = t[r].value, e["x-attribsNamespace"][u] = t[r].namespace, e["x-attribsPrefix"][u] = t[r].prefix)
        }
    }, getFirstChild(e) {
        return e.children[0]
    }, getChildNodes(e) {
        return e.children
    }, getParentNode(e) {
        return e.parent
    }, getAttrList(e) {
        return e.attributes
    }, getTagName(e) {
        return e.name
    }, getNamespaceURI(e) {
        return e.namespace
    }, getTextNodeContent(e) {
        return e.data
    }, getCommentNodeContent(e) {
        return e.data
    }, getDocumentTypeNodeName(e) {
        var t;
        return (t = e["x-name"]) !== null && t !== void 0 ? t : ""
    }, getDocumentTypeNodePublicId(e) {
        var t;
        return (t = e["x-publicId"]) !== null && t !== void 0 ? t : ""
    }, getDocumentTypeNodeSystemId(e) {
        var t;
        return (t = e["x-systemId"]) !== null && t !== void 0 ? t : ""
    }, isDocumentTypeNode(e) {
        return Xu(e) && e.name === "!doctype"
    }, setNodeSourceCodeLocation(e, t) {
        t && (e.startIndex = t.startOffset, e.endIndex = t.endOffset), e.sourceCodeLocation = t
    }, getNodeSourceCodeLocation(e) {
        return e.sourceCodeLocation
    }, updateNodeSourceCodeLocation(e, t) {
        t.endOffset != null && (e.endIndex = t.endOffset), e.sourceCodeLocation = {...e.sourceCodeLocation, ...t}
    }
};

function Up(e, t, r, u) {
    var n;
    return (n = t.treeAdapter) !== null && n !== void 0 || (t.treeAdapter = At), t.scriptingEnabled !== !1 && (t.scriptingEnabled = !0), r ? Fp(e, t) : Mp(u, e, t)
}

const Hp = {treeAdapter: At};

function Qp(e) {
    const t = "length" in e ? e : [e];
    for (let u = 0; u < t.length; u += 1) {
        const n = t[u];
        mt(n) && Array.prototype.splice.call(t, u, 1, ...n.children)
    }
    let r = "";
    for (let u = 0; u < t.length; u += 1) {
        const n = t[u];
        r += Np(n, Hp)
    }
    return r
}

var de;
(function (e) {
    e[e.Tab = 9] = "Tab", e[e.NewLine = 10] = "NewLine", e[e.FormFeed = 12] = "FormFeed", e[e.CarriageReturn = 13] = "CarriageReturn", e[e.Space = 32] = "Space", e[e.ExclamationMark = 33] = "ExclamationMark", e[e.Number = 35] = "Number", e[e.Amp = 38] = "Amp", e[e.SingleQuote = 39] = "SingleQuote", e[e.DoubleQuote = 34] = "DoubleQuote", e[e.Dash = 45] = "Dash", e[e.Slash = 47] = "Slash", e[e.Zero = 48] = "Zero", e[e.Nine = 57] = "Nine", e[e.Semi = 59] = "Semi", e[e.Lt = 60] = "Lt", e[e.Eq = 61] = "Eq", e[e.Gt = 62] = "Gt", e[e.Questionmark = 63] = "Questionmark", e[e.UpperA = 65] = "UpperA", e[e.LowerA = 97] = "LowerA", e[e.UpperF = 70] = "UpperF", e[e.LowerF = 102] = "LowerF", e[e.UpperZ = 90] = "UpperZ", e[e.LowerZ = 122] = "LowerZ", e[e.LowerX = 120] = "LowerX", e[e.OpeningSquareBracket = 91] = "OpeningSquareBracket"
})(de || (de = {}));
var ee;
(function (e) {
    e[e.Text = 1] = "Text", e[e.BeforeTagName = 2] = "BeforeTagName", e[e.InTagName = 3] = "InTagName", e[e.InSelfClosingTag = 4] = "InSelfClosingTag", e[e.BeforeClosingTagName = 5] = "BeforeClosingTagName", e[e.InClosingTagName = 6] = "InClosingTagName", e[e.AfterClosingTagName = 7] = "AfterClosingTagName", e[e.BeforeAttributeName = 8] = "BeforeAttributeName", e[e.InAttributeName = 9] = "InAttributeName", e[e.AfterAttributeName = 10] = "AfterAttributeName", e[e.BeforeAttributeValue = 11] = "BeforeAttributeValue", e[e.InAttributeValueDq = 12] = "InAttributeValueDq", e[e.InAttributeValueSq = 13] = "InAttributeValueSq", e[e.InAttributeValueNq = 14] = "InAttributeValueNq", e[e.BeforeDeclaration = 15] = "BeforeDeclaration", e[e.InDeclaration = 16] = "InDeclaration", e[e.InProcessingInstruction = 17] = "InProcessingInstruction", e[e.BeforeComment = 18] = "BeforeComment", e[e.CDATASequence = 19] = "CDATASequence", e[e.InSpecialComment = 20] = "InSpecialComment", e[e.InCommentLike = 21] = "InCommentLike", e[e.BeforeSpecialS = 22] = "BeforeSpecialS", e[e.BeforeSpecialT = 23] = "BeforeSpecialT", e[e.SpecialStartSequence = 24] = "SpecialStartSequence", e[e.InSpecialTag = 25] = "InSpecialTag", e[e.InEntity = 26] = "InEntity"
})(ee || (ee = {}));

function ct(e) {
    return e === de.Space || e === de.NewLine || e === de.Tab || e === de.FormFeed || e === de.CarriageReturn
}

function Lr(e) {
    return e === de.Slash || e === de.Gt || ct(e)
}

function Yp(e) {
    return e >= de.LowerA && e <= de.LowerZ || e >= de.UpperA && e <= de.UpperZ
}

var nt;
(function (e) {
    e[e.NoValue = 0] = "NoValue", e[e.Unquoted = 1] = "Unquoted", e[e.Single = 2] = "Single", e[e.Double = 3] = "Double"
})(nt || (nt = {}));
const Pe = {
    Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
    CdataEnd: new Uint8Array([93, 93, 62]),
    CommentEnd: new Uint8Array([45, 45, 62]),
    ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
    StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
    TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),
    TextareaEnd: new Uint8Array([60, 47, 116, 101, 120, 116, 97, 114, 101, 97])
};

class Gp {
    constructor({xmlMode: t = !1, decodeEntities: r = !0}, u) {
        this.cbs = u, this.state = ee.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.entityStart = 0, this.baseState = ee.Text, this.isSpecial = !1, this.running = !0, this.offset = 0, this.currentSequence = void 0, this.sequenceIndex = 0, this.xmlMode = t, this.decodeEntities = r, this.entityDecoder = new za(t ? Za : qa, (n, i) => this.emitCodePoint(n, i))
    }

    reset() {
        this.state = ee.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.baseState = ee.Text, this.currentSequence = void 0, this.running = !0, this.offset = 0
    }

    write(t) {
        this.offset += this.buffer.length, this.buffer = t, this.parse()
    }

    end() {
        this.running && this.finish()
    }

    pause() {
        this.running = !1
    }

    resume() {
        this.running = !0, this.index < this.buffer.length + this.offset && this.parse()
    }

    stateText(t) {
        t === de.Lt || !this.decodeEntities && this.fastForwardTo(de.Lt) ? (this.index > this.sectionStart && this.cbs.ontext(this.sectionStart, this.index), this.state = ee.BeforeTagName, this.sectionStart = this.index) : this.decodeEntities && t === de.Amp && this.startEntity()
    }

    stateSpecialStartSequence(t) {
        const r = this.sequenceIndex === this.currentSequence.length;
        if (!(r ? Lr(t) : (t | 32) === this.currentSequence[this.sequenceIndex])) this.isSpecial = !1; else if (!r) {
            this.sequenceIndex++;
            return
        }
        this.sequenceIndex = 0, this.state = ee.InTagName, this.stateInTagName(t)
    }

    stateInSpecialTag(t) {
        if (this.sequenceIndex === this.currentSequence.length) {
            if (t === de.Gt || ct(t)) {
                const r = this.index - this.currentSequence.length;
                if (this.sectionStart < r) {
                    const u = this.index;
                    this.index = r, this.cbs.ontext(this.sectionStart, r), this.index = u
                }
                this.isSpecial = !1, this.sectionStart = r + 2, this.stateInClosingTagName(t);
                return
            }
            this.sequenceIndex = 0
        }
        (t | 32) === this.currentSequence[this.sequenceIndex] ? this.sequenceIndex += 1 : this.sequenceIndex === 0 ? this.currentSequence === Pe.TitleEnd ? this.decodeEntities && t === de.Amp && this.startEntity() : this.fastForwardTo(de.Lt) && (this.sequenceIndex = 1) : this.sequenceIndex = +(t === de.Lt)
    }

    stateCDATASequence(t) {
        t === Pe.Cdata[this.sequenceIndex] ? ++this.sequenceIndex === Pe.Cdata.length && (this.state = ee.InCommentLike, this.currentSequence = Pe.CdataEnd, this.sequenceIndex = 0, this.sectionStart = this.index + 1) : (this.sequenceIndex = 0, this.state = ee.InDeclaration, this.stateInDeclaration(t))
    }

    fastForwardTo(t) {
        for (; ++this.index < this.buffer.length + this.offset;) if (this.buffer.charCodeAt(this.index - this.offset) === t) return !0;
        return this.index = this.buffer.length + this.offset - 1, !1
    }

    stateInCommentLike(t) {
        t === this.currentSequence[this.sequenceIndex] ? ++this.sequenceIndex === this.currentSequence.length && (this.currentSequence === Pe.CdataEnd ? this.cbs.oncdata(this.sectionStart, this.index, 2) : this.cbs.oncomment(this.sectionStart, this.index, 2), this.sequenceIndex = 0, this.sectionStart = this.index + 1, this.state = ee.Text) : this.sequenceIndex === 0 ? this.fastForwardTo(this.currentSequence[0]) && (this.sequenceIndex = 1) : t !== this.currentSequence[this.sequenceIndex - 1] && (this.sequenceIndex = 0)
    }

    isTagStartChar(t) {
        return this.xmlMode ? !Lr(t) : Yp(t)
    }

    startSpecial(t, r) {
        this.isSpecial = !0, this.currentSequence = t, this.sequenceIndex = r, this.state = ee.SpecialStartSequence
    }

    stateBeforeTagName(t) {
        if (t === de.ExclamationMark) this.state = ee.BeforeDeclaration, this.sectionStart = this.index + 1; else if (t === de.Questionmark) this.state = ee.InProcessingInstruction, this.sectionStart = this.index + 1; else if (this.isTagStartChar(t)) {
            const r = t | 32;
            this.sectionStart = this.index, this.xmlMode ? this.state = ee.InTagName : r === Pe.ScriptEnd[2] ? this.state = ee.BeforeSpecialS : r === Pe.TitleEnd[2] ? this.state = ee.BeforeSpecialT : this.state = ee.InTagName
        } else t === de.Slash ? this.state = ee.BeforeClosingTagName : (this.state = ee.Text, this.stateText(t))
    }

    stateInTagName(t) {
        Lr(t) && (this.cbs.onopentagname(this.sectionStart, this.index), this.sectionStart = -1, this.state = ee.BeforeAttributeName, this.stateBeforeAttributeName(t))
    }

    stateBeforeClosingTagName(t) {
        ct(t) || (t === de.Gt ? this.state = ee.Text : (this.state = this.isTagStartChar(t) ? ee.InClosingTagName : ee.InSpecialComment, this.sectionStart = this.index))
    }

    stateInClosingTagName(t) {
        (t === de.Gt || ct(t)) && (this.cbs.onclosetag(this.sectionStart, this.index), this.sectionStart = -1, this.state = ee.AfterClosingTagName, this.stateAfterClosingTagName(t))
    }

    stateAfterClosingTagName(t) {
        (t === de.Gt || this.fastForwardTo(de.Gt)) && (this.state = ee.Text, this.sectionStart = this.index + 1)
    }

    stateBeforeAttributeName(t) {
        t === de.Gt ? (this.cbs.onopentagend(this.index), this.isSpecial ? (this.state = ee.InSpecialTag, this.sequenceIndex = 0) : this.state = ee.Text, this.sectionStart = this.index + 1) : t === de.Slash ? this.state = ee.InSelfClosingTag : ct(t) || (this.state = ee.InAttributeName, this.sectionStart = this.index)
    }

    stateInSelfClosingTag(t) {
        t === de.Gt ? (this.cbs.onselfclosingtag(this.index), this.state = ee.Text, this.sectionStart = this.index + 1, this.isSpecial = !1) : ct(t) || (this.state = ee.BeforeAttributeName, this.stateBeforeAttributeName(t))
    }

    stateInAttributeName(t) {
        (t === de.Eq || Lr(t)) && (this.cbs.onattribname(this.sectionStart, this.index), this.sectionStart = this.index, this.state = ee.AfterAttributeName, this.stateAfterAttributeName(t))
    }

    stateAfterAttributeName(t) {
        t === de.Eq ? this.state = ee.BeforeAttributeValue : t === de.Slash || t === de.Gt ? (this.cbs.onattribend(nt.NoValue, this.sectionStart), this.sectionStart = -1, this.state = ee.BeforeAttributeName, this.stateBeforeAttributeName(t)) : ct(t) || (this.cbs.onattribend(nt.NoValue, this.sectionStart), this.state = ee.InAttributeName, this.sectionStart = this.index)
    }

    stateBeforeAttributeValue(t) {
        t === de.DoubleQuote ? (this.state = ee.InAttributeValueDq, this.sectionStart = this.index + 1) : t === de.SingleQuote ? (this.state = ee.InAttributeValueSq, this.sectionStart = this.index + 1) : ct(t) || (this.sectionStart = this.index, this.state = ee.InAttributeValueNq, this.stateInAttributeValueNoQuotes(t))
    }

    handleInAttributeValue(t, r) {
        t === r || !this.decodeEntities && this.fastForwardTo(r) ? (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = -1, this.cbs.onattribend(r === de.DoubleQuote ? nt.Double : nt.Single, this.index + 1), this.state = ee.BeforeAttributeName) : this.decodeEntities && t === de.Amp && this.startEntity()
    }

    stateInAttributeValueDoubleQuotes(t) {
        this.handleInAttributeValue(t, de.DoubleQuote)
    }

    stateInAttributeValueSingleQuotes(t) {
        this.handleInAttributeValue(t, de.SingleQuote)
    }

    stateInAttributeValueNoQuotes(t) {
        ct(t) || t === de.Gt ? (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = -1, this.cbs.onattribend(nt.Unquoted, this.index), this.state = ee.BeforeAttributeName, this.stateBeforeAttributeName(t)) : this.decodeEntities && t === de.Amp && this.startEntity()
    }

    stateBeforeDeclaration(t) {
        t === de.OpeningSquareBracket ? (this.state = ee.CDATASequence, this.sequenceIndex = 0) : this.state = t === de.Dash ? ee.BeforeComment : ee.InDeclaration
    }

    stateInDeclaration(t) {
        (t === de.Gt || this.fastForwardTo(de.Gt)) && (this.cbs.ondeclaration(this.sectionStart, this.index), this.state = ee.Text, this.sectionStart = this.index + 1)
    }

    stateInProcessingInstruction(t) {
        (t === de.Gt || this.fastForwardTo(de.Gt)) && (this.cbs.onprocessinginstruction(this.sectionStart, this.index), this.state = ee.Text, this.sectionStart = this.index + 1)
    }

    stateBeforeComment(t) {
        t === de.Dash ? (this.state = ee.InCommentLike, this.currentSequence = Pe.CommentEnd, this.sequenceIndex = 2, this.sectionStart = this.index + 1) : this.state = ee.InDeclaration
    }

    stateInSpecialComment(t) {
        (t === de.Gt || this.fastForwardTo(de.Gt)) && (this.cbs.oncomment(this.sectionStart, this.index, 0), this.state = ee.Text, this.sectionStart = this.index + 1)
    }

    stateBeforeSpecialS(t) {
        const r = t | 32;
        r === Pe.ScriptEnd[3] ? this.startSpecial(Pe.ScriptEnd, 4) : r === Pe.StyleEnd[3] ? this.startSpecial(Pe.StyleEnd, 4) : (this.state = ee.InTagName, this.stateInTagName(t))
    }

    stateBeforeSpecialT(t) {
        const r = t | 32;
        r === Pe.TitleEnd[3] ? this.startSpecial(Pe.TitleEnd, 4) : r === Pe.TextareaEnd[3] ? this.startSpecial(Pe.TextareaEnd, 4) : (this.state = ee.InTagName, this.stateInTagName(t))
    }

    startEntity() {
        this.baseState = this.state, this.state = ee.InEntity, this.entityStart = this.index, this.entityDecoder.startEntity(this.xmlMode ? ut.Strict : this.baseState === ee.Text || this.baseState === ee.InSpecialTag ? ut.Legacy : ut.Attribute)
    }

    stateInEntity() {
        const t = this.entityDecoder.write(this.buffer, this.index - this.offset);
        t >= 0 ? (this.state = this.baseState, t === 0 && (this.index = this.entityStart)) : this.index = this.offset + this.buffer.length - 1
    }

    cleanup() {
        this.running && this.sectionStart !== this.index && (this.state === ee.Text || this.state === ee.InSpecialTag && this.sequenceIndex === 0 ? (this.cbs.ontext(this.sectionStart, this.index), this.sectionStart = this.index) : (this.state === ee.InAttributeValueDq || this.state === ee.InAttributeValueSq || this.state === ee.InAttributeValueNq) && (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = this.index))
    }

    shouldContinue() {
        return this.index < this.buffer.length + this.offset && this.running
    }

    parse() {
        for (; this.shouldContinue();) {
            const t = this.buffer.charCodeAt(this.index - this.offset);
            switch (this.state) {
                case ee.Text: {
                    this.stateText(t);
                    break
                }
                case ee.SpecialStartSequence: {
                    this.stateSpecialStartSequence(t);
                    break
                }
                case ee.InSpecialTag: {
                    this.stateInSpecialTag(t);
                    break
                }
                case ee.CDATASequence: {
                    this.stateCDATASequence(t);
                    break
                }
                case ee.InAttributeValueDq: {
                    this.stateInAttributeValueDoubleQuotes(t);
                    break
                }
                case ee.InAttributeName: {
                    this.stateInAttributeName(t);
                    break
                }
                case ee.InCommentLike: {
                    this.stateInCommentLike(t);
                    break
                }
                case ee.InSpecialComment: {
                    this.stateInSpecialComment(t);
                    break
                }
                case ee.BeforeAttributeName: {
                    this.stateBeforeAttributeName(t);
                    break
                }
                case ee.InTagName: {
                    this.stateInTagName(t);
                    break
                }
                case ee.InClosingTagName: {
                    this.stateInClosingTagName(t);
                    break
                }
                case ee.BeforeTagName: {
                    this.stateBeforeTagName(t);
                    break
                }
                case ee.AfterAttributeName: {
                    this.stateAfterAttributeName(t);
                    break
                }
                case ee.InAttributeValueSq: {
                    this.stateInAttributeValueSingleQuotes(t);
                    break
                }
                case ee.BeforeAttributeValue: {
                    this.stateBeforeAttributeValue(t);
                    break
                }
                case ee.BeforeClosingTagName: {
                    this.stateBeforeClosingTagName(t);
                    break
                }
                case ee.AfterClosingTagName: {
                    this.stateAfterClosingTagName(t);
                    break
                }
                case ee.BeforeSpecialS: {
                    this.stateBeforeSpecialS(t);
                    break
                }
                case ee.BeforeSpecialT: {
                    this.stateBeforeSpecialT(t);
                    break
                }
                case ee.InAttributeValueNq: {
                    this.stateInAttributeValueNoQuotes(t);
                    break
                }
                case ee.InSelfClosingTag: {
                    this.stateInSelfClosingTag(t);
                    break
                }
                case ee.InDeclaration: {
                    this.stateInDeclaration(t);
                    break
                }
                case ee.BeforeDeclaration: {
                    this.stateBeforeDeclaration(t);
                    break
                }
                case ee.BeforeComment: {
                    this.stateBeforeComment(t);
                    break
                }
                case ee.InProcessingInstruction: {
                    this.stateInProcessingInstruction(t);
                    break
                }
                case ee.InEntity: {
                    this.stateInEntity();
                    break
                }
            }
            this.index++
        }
        this.cleanup()
    }

    finish() {
        this.state === ee.InEntity && (this.entityDecoder.end(), this.state = this.baseState), this.handleTrailingData(), this.cbs.onend()
    }

    handleTrailingData() {
        const t = this.buffer.length + this.offset;
        this.sectionStart >= t || (this.state === ee.InCommentLike ? this.currentSequence === Pe.CdataEnd ? this.cbs.oncdata(this.sectionStart, t, 0) : this.cbs.oncomment(this.sectionStart, t, 0) : this.state === ee.InTagName || this.state === ee.BeforeAttributeName || this.state === ee.BeforeAttributeValue || this.state === ee.AfterAttributeName || this.state === ee.InAttributeName || this.state === ee.InAttributeValueSq || this.state === ee.InAttributeValueDq || this.state === ee.InAttributeValueNq || this.state === ee.InClosingTagName || this.cbs.ontext(this.sectionStart, t))
    }

    emitCodePoint(t, r) {
        this.baseState !== ee.Text && this.baseState !== ee.InSpecialTag ? (this.sectionStart < this.entityStart && this.cbs.onattribdata(this.sectionStart, this.entityStart), this.sectionStart = this.entityStart + r, this.index = this.sectionStart - 1, this.cbs.onattribentity(t)) : (this.sectionStart < this.entityStart && this.cbs.ontext(this.sectionStart, this.entityStart), this.sectionStart = this.entityStart + r, this.index = this.sectionStart - 1, this.cbs.ontextentity(t, this.sectionStart))
    }
}

const Mt = new Set(["input", "option", "optgroup", "select", "button", "datalist", "textarea"]), Ie = new Set(["p"]),
    ea = new Set(["thead", "tbody"]), ta = new Set(["dd", "dt"]), ra = new Set(["rt", "rp"]),
    Wp = new Map([["tr", new Set(["tr", "th", "td"])], ["th", new Set(["th"])], ["td", new Set(["thead", "th", "td"])], ["body", new Set(["head", "link", "script"])], ["li", new Set(["li"])], ["p", Ie], ["h1", Ie], ["h2", Ie], ["h3", Ie], ["h4", Ie], ["h5", Ie], ["h6", Ie], ["select", Mt], ["input", Mt], ["output", Mt], ["button", Mt], ["datalist", Mt], ["textarea", Mt], ["option", new Set(["option"])], ["optgroup", new Set(["optgroup", "option"])], ["dd", ta], ["dt", ta], ["address", Ie], ["article", Ie], ["aside", Ie], ["blockquote", Ie], ["details", Ie], ["div", Ie], ["dl", Ie], ["fieldset", Ie], ["figcaption", Ie], ["figure", Ie], ["footer", Ie], ["form", Ie], ["header", Ie], ["hr", Ie], ["main", Ie], ["nav", Ie], ["ol", Ie], ["pre", Ie], ["section", Ie], ["table", Ie], ["ul", Ie], ["rt", ra], ["rp", ra], ["tbody", ea], ["tfoot", ea]]),
    Kp = new Set(["area", "base", "basefont", "br", "col", "command", "embed", "frame", "hr", "img", "input", "isindex", "keygen", "link", "meta", "param", "source", "track", "wbr"]),
    ua = new Set(["math", "svg"]),
    na = new Set(["mi", "mo", "mn", "ms", "mtext", "annotation-xml", "foreignobject", "desc", "title"]), qp = /\s|\//;

class Zp {
    constructor(t, r = {}) {
        var u, n, i, a, s, o;
        this.options = r, this.startIndex = 0, this.endIndex = 0, this.openTagStart = 0, this.tagname = "", this.attribname = "", this.attribvalue = "", this.attribs = null, this.stack = [], this.buffers = [], this.bufferOffset = 0, this.writeIndex = 0, this.ended = !1, this.cbs = t ?? {}, this.htmlMode = !this.options.xmlMode, this.lowerCaseTagNames = (u = r.lowerCaseTags) !== null && u !== void 0 ? u : this.htmlMode, this.lowerCaseAttributeNames = (n = r.lowerCaseAttributeNames) !== null && n !== void 0 ? n : this.htmlMode, this.recognizeSelfClosing = (i = r.recognizeSelfClosing) !== null && i !== void 0 ? i : !this.htmlMode, this.tokenizer = new ((a = r.Tokenizer) !== null && a !== void 0 ? a : Gp)(this.options, this), this.foreignContext = [!this.htmlMode], (o = (s = this.cbs).onparserinit) === null || o === void 0 || o.call(s, this)
    }

    ontext(t, r) {
        var u, n;
        const i = this.getSlice(t, r);
        this.endIndex = r - 1, (n = (u = this.cbs).ontext) === null || n === void 0 || n.call(u, i), this.startIndex = r
    }

    ontextentity(t, r) {
        var u, n;
        this.endIndex = r - 1, (n = (u = this.cbs).ontext) === null || n === void 0 || n.call(u, $u(t)), this.startIndex = r
    }

    isVoidElement(t) {
        return this.htmlMode && Kp.has(t)
    }

    onopentagname(t, r) {
        this.endIndex = r;
        let u = this.getSlice(t, r);
        this.lowerCaseTagNames && (u = u.toLowerCase()), this.emitOpenTag(u)
    }

    emitOpenTag(t) {
        var r, u, n, i;
        this.openTagStart = this.startIndex, this.tagname = t;
        const a = this.htmlMode && Wp.get(t);
        if (a) for (; this.stack.length > 0 && a.has(this.stack[0]);) {
            const s = this.stack.shift();
            (u = (r = this.cbs).onclosetag) === null || u === void 0 || u.call(r, s, !0)
        }
        this.isVoidElement(t) || (this.stack.unshift(t), this.htmlMode && (ua.has(t) ? this.foreignContext.unshift(!0) : na.has(t) && this.foreignContext.unshift(!1))), (i = (n = this.cbs).onopentagname) === null || i === void 0 || i.call(n, t), this.cbs.onopentag && (this.attribs = {})
    }

    endOpenTag(t) {
        var r, u;
        this.startIndex = this.openTagStart, this.attribs && ((u = (r = this.cbs).onopentag) === null || u === void 0 || u.call(r, this.tagname, this.attribs, t), this.attribs = null), this.cbs.onclosetag && this.isVoidElement(this.tagname) && this.cbs.onclosetag(this.tagname, !0), this.tagname = ""
    }

    onopentagend(t) {
        this.endIndex = t, this.endOpenTag(!1), this.startIndex = t + 1
    }

    onclosetag(t, r) {
        var u, n, i, a, s, o, l, h;
        this.endIndex = r;
        let p = this.getSlice(t, r);
        if (this.lowerCaseTagNames && (p = p.toLowerCase()), this.htmlMode && (ua.has(p) || na.has(p)) && this.foreignContext.shift(), this.isVoidElement(p)) this.htmlMode && p === "br" && ((a = (i = this.cbs).onopentagname) === null || a === void 0 || a.call(i, "br"), (o = (s = this.cbs).onopentag) === null || o === void 0 || o.call(s, "br", {}, !0), (h = (l = this.cbs).onclosetag) === null || h === void 0 || h.call(l, "br", !1)); else {
            const g = this.stack.indexOf(p);
            if (g !== -1) for (let d = 0; d <= g; d++) {
                const E = this.stack.shift();
                (n = (u = this.cbs).onclosetag) === null || n === void 0 || n.call(u, E, d !== g)
            } else this.htmlMode && p === "p" && (this.emitOpenTag("p"), this.closeCurrentTag(!0))
        }
        this.startIndex = r + 1
    }

    onselfclosingtag(t) {
        this.endIndex = t, this.recognizeSelfClosing || this.foreignContext[0] ? (this.closeCurrentTag(!1), this.startIndex = t + 1) : this.onopentagend(t)
    }

    closeCurrentTag(t) {
        var r, u;
        const n = this.tagname;
        this.endOpenTag(t), this.stack[0] === n && ((u = (r = this.cbs).onclosetag) === null || u === void 0 || u.call(r, n, !t), this.stack.shift())
    }

    onattribname(t, r) {
        this.startIndex = t;
        const u = this.getSlice(t, r);
        this.attribname = this.lowerCaseAttributeNames ? u.toLowerCase() : u
    }

    onattribdata(t, r) {
        this.attribvalue += this.getSlice(t, r)
    }

    onattribentity(t) {
        this.attribvalue += $u(t)
    }

    onattribend(t, r) {
        var u, n;
        this.endIndex = r, (n = (u = this.cbs).onattribute) === null || n === void 0 || n.call(u, this.attribname, this.attribvalue, t === nt.Double ? '"' : t === nt.Single ? "'" : t === nt.NoValue ? void 0 : null), this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname) && (this.attribs[this.attribname] = this.attribvalue), this.attribvalue = ""
    }

    getInstructionName(t) {
        const r = t.search(qp);
        let u = r < 0 ? t : t.substr(0, r);
        return this.lowerCaseTagNames && (u = u.toLowerCase()), u
    }

    ondeclaration(t, r) {
        this.endIndex = r;
        const u = this.getSlice(t, r);
        if (this.cbs.onprocessinginstruction) {
            const n = this.getInstructionName(u);
            this.cbs.onprocessinginstruction(`!${n}`, `!${u}`)
        }
        this.startIndex = r + 1
    }

    onprocessinginstruction(t, r) {
        this.endIndex = r;
        const u = this.getSlice(t, r);
        if (this.cbs.onprocessinginstruction) {
            const n = this.getInstructionName(u);
            this.cbs.onprocessinginstruction(`?${n}`, `?${u}`)
        }
        this.startIndex = r + 1
    }

    oncomment(t, r, u) {
        var n, i, a, s;
        this.endIndex = r, (i = (n = this.cbs).oncomment) === null || i === void 0 || i.call(n, this.getSlice(t, r - u)), (s = (a = this.cbs).oncommentend) === null || s === void 0 || s.call(a), this.startIndex = r + 1
    }

    oncdata(t, r, u) {
        var n, i, a, s, o, l, h, p, g, d;
        this.endIndex = r;
        const E = this.getSlice(t, r - u);
        !this.htmlMode || this.options.recognizeCDATA ? ((i = (n = this.cbs).oncdatastart) === null || i === void 0 || i.call(n), (s = (a = this.cbs).ontext) === null || s === void 0 || s.call(a, E), (l = (o = this.cbs).oncdataend) === null || l === void 0 || l.call(o)) : ((p = (h = this.cbs).oncomment) === null || p === void 0 || p.call(h, `[CDATA[${E}]]`), (d = (g = this.cbs).oncommentend) === null || d === void 0 || d.call(g)), this.startIndex = r + 1
    }

    onend() {
        var t, r;
        if (this.cbs.onclosetag) {
            this.endIndex = this.startIndex;
            for (let u = 0; u < this.stack.length; u++) this.cbs.onclosetag(this.stack[u], !0)
        }
        (r = (t = this.cbs).onend) === null || r === void 0 || r.call(t)
    }

    reset() {
        var t, r, u, n;
        (r = (t = this.cbs).onreset) === null || r === void 0 || r.call(t), this.tokenizer.reset(), this.tagname = "", this.attribname = "", this.attribs = null, this.stack.length = 0, this.startIndex = 0, this.endIndex = 0, (n = (u = this.cbs).onparserinit) === null || n === void 0 || n.call(u, this), this.buffers.length = 0, this.foreignContext.length = 0, this.foreignContext.unshift(!this.htmlMode), this.bufferOffset = 0, this.writeIndex = 0, this.ended = !1
    }

    parseComplete(t) {
        this.reset(), this.end(t)
    }

    getSlice(t, r) {
        for (; t - this.bufferOffset >= this.buffers[0].length;) this.shiftBuffer();
        let u = this.buffers[0].slice(t - this.bufferOffset, r - this.bufferOffset);
        for (; r - this.bufferOffset > this.buffers[0].length;) this.shiftBuffer(), u += this.buffers[0].slice(0, r - this.bufferOffset);
        return u
    }

    shiftBuffer() {
        this.bufferOffset += this.buffers[0].length, this.writeIndex--, this.buffers.shift()
    }

    write(t) {
        var r, u;
        if (this.ended) {
            (u = (r = this.cbs).onerror) === null || u === void 0 || u.call(r, new Error(".write() after done!"));
            return
        }
        this.buffers.push(t), this.tokenizer.running && (this.tokenizer.write(t), this.writeIndex++)
    }

    end(t) {
        var r, u;
        if (this.ended) {
            (u = (r = this.cbs).onerror) === null || u === void 0 || u.call(r, new Error(".end() after done!"));
            return
        }
        t && this.write(t), this.ended = !0, this.tokenizer.end()
    }

    pause() {
        this.tokenizer.pause()
    }

    resume() {
        for (this.tokenizer.resume(); this.tokenizer.running && this.writeIndex < this.buffers.length;) this.tokenizer.write(this.buffers[this.writeIndex++]);
        this.ended && this.tokenizer.end()
    }

    parseChunk(t) {
        this.write(t)
    }

    done(t) {
        this.end(t)
    }
}

function zp(e, t) {
    const r = new Ml(void 0, t);
    return new Zp(r, t).end(e), r.root
}

const Jp = hh((e, t, r, u) => t._useHtmlParser2 ? zp(e, t) : Up(e, t, r, u)),
    Vp = qh(Jp, (e, t) => t._useHtmlParser2 ? du(e, t) : Qp(e)), jp = Object.freeze(Object.defineProperty({
        __proto__: null,
        contains: Hn,
        load: Vp,
        merge: as
    }, Symbol.toStringTag, {value: "Module"})), Xp = la(jp);
var Gu = {}, so = {exports: {}}, oo = {exports: {}};
(function (e, t) {
    e.exports = r;

    function r(n) {
        return u.bind(null, n)
    }

    function u(n) {
        var i = [].slice.call(arguments, 1);
        i.unshift("[" + n + "]"), process.stderr.write(i.join(" ") + `
`)
    }
})(oo);
var $n = oo.exports;
(function (e, t) {
    $n("lex"), e.exports = r;

    function r(u) {
        var n = "", i, a = 0, s = -1, o = 0, l = 1, h = "before-selector", p = [h], g = {}, d = [],
            E = ["media", "keyframes", {
                name: "-webkit-keyframes",
                type: "keyframes",
                prefix: "-webkit-"
            }, {name: "-moz-keyframes", type: "keyframes", prefix: "-moz-"}, {
                name: "-ms-keyframes",
                type: "keyframes",
                prefix: "-ms-"
            }, {name: "-o-keyframes", type: "keyframes", prefix: "-o-"}, "font-face", {
                name: "import",
                state: "before-at-value"
            }, {name: "charset", state: "before-at-value"}, "supports", "viewport", {
                name: "namespace",
                state: "before-at-value"
            }, "document", {name: "-moz-document", type: "document", prefix: "-moz-"}, "page"];

        function A() {
            return z(), u[s]
        }

        function x(O) {
            return O ? p[p.length - 1 - O] : h
        }

        function _(O) {
            var U = s + 1;
            return O === u.slice(U, U + O.length)
        }

        function y(O) {
            var U = u.slice(s).indexOf(O);
            return U > 0 ? U : !1
        }

        function v(O) {
            return O === D(1)
        }

        function D(O) {
            return u[s + (O || 1)]
        }

        function S() {
            var O = p.pop();
            return h = p[p.length - 1], O
        }

        function L(O) {
            return h = O, p.push(h), p.length
        }

        function M(O) {
            var U = h;
            return p[p.length - 1] = h = O, U
        }

        function z(O) {
            if ((O || 1) == 1) u[s] == `
` ? (l++, a = 1) : a++, s++; else {
                var U = u.slice(s, s + O).split(`
`);
                U.length > 1 && (l += U.length - 1, a = 1), a += U[U.length - 1].length, s = s + O
            }
        }

        function B() {
            g.end = {line: l, col: a}, d.push(g), n = "", g = {}
        }

        function P(O) {
            g = {type: O, start: {line: l, col: a}}
        }

        for (; i = A();) switch (i) {
            case" ":
                switch (x()) {
                    case"selector":
                    case"value":
                    case"value-paren":
                    case"at-group":
                    case"at-value":
                    case"comment":
                    case"double-string":
                    case"single-string":
                        n += i;
                        break
                }
                break;
            case`
`:
            case"	":
            case"\r":
            case"\f":
                switch (x()) {
                    case"value":
                    case"value-paren":
                    case"at-group":
                    case"comment":
                    case"single-string":
                    case"double-string":
                    case"selector":
                        n += i;
                        break;
                    case"at-value":
                        i === `
` && (g.value = n.trim(), B(), S());
                        break
                }
                break;
            case":":
                switch (x()) {
                    case"name":
                        g.name = n.trim(), n = "", M("before-value");
                        break;
                    case"before-selector":
                        n += i, P("selector"), L("selector");
                        break;
                    case"before-value":
                        M("value"), n += i;
                        break;
                    default:
                        n += i;
                        break
                }
                break;
            case";":
                switch (x()) {
                    case"name":
                    case"before-value":
                    case"value":
                        n.trim().length > 0 && (g.value = n.trim(), B()), M("before-name");
                        break;
                    case"value-paren":
                        n += i;
                        break;
                    case"at-value":
                        g.value = n.trim(), B(), S();
                        break;
                    case"before-name":
                        break;
                    default:
                        n += i;
                        break
                }
                break;
            case"{":
                switch (x()) {
                    case"selector":
                        if (D(-1) === "\\") {
                            n += i;
                            break
                        }
                        g.text = n.trim(), B(), M("before-name"), o = o + 1;
                        break;
                    case"at-group":
                        switch (g.name = n.trim(), g.type) {
                            case"font-face":
                            case"viewport":
                            case"page":
                                L("before-name");
                                break;
                            default:
                                L("before-selector")
                        }
                        B(), o = o + 1;
                        break;
                    case"name":
                    case"at-rule":
                        g.name = n.trim(), B(), L("before-name"), o = o + 1;
                        break;
                    case"comment":
                    case"double-string":
                    case"single-string":
                        n += i;
                        break;
                    case"before-value":
                        M("value"), n += i;
                        break
                }
                break;
            case"}":
                switch (x()) {
                    case"before-name":
                    case"name":
                    case"before-value":
                    case"value":
                        n && (g.value = n.trim()), g.name && g.value && B(), P("end"), B(), S(), x() === "at-group" && (P("at-group-end"), B(), S()), o > 0 && (o = o - 1);
                        break;
                    case"at-group":
                    case"before-selector":
                    case"selector":
                        if (D(-1) === "\\") {
                            n += i;
                            break
                        }
                        o > 0 && x(1) === "at-group" && (P("at-group-end"), B()), o > 1 && S(), o > 0 && (o = o - 1);
                        break;
                    case"double-string":
                    case"single-string":
                    case"comment":
                        n += i;
                        break
                }
                break;
            case'"':
            case"'":
                switch (x()) {
                    case"double-string":
                        i === '"' && D(-1) !== "\\" && S();
                        break;
                    case"single-string":
                        i === "'" && D(-1) !== "\\" && S();
                        break;
                    case"before-at-value":
                        M("at-value"), L(i === '"' ? "double-string" : "single-string");
                        break;
                    case"before-value":
                        M("value"), L(i === '"' ? "double-string" : "single-string");
                        break;
                    case"comment":
                        break;
                    default:
                        D(-1) !== "\\" && L(i === '"' ? "double-string" : "single-string")
                }
                n += i;
                break;
            case"/":
                switch (x()) {
                    case"comment":
                    case"double-string":
                    case"single-string":
                        n += i;
                        break;
                    case"before-value":
                    case"selector":
                    case"name":
                    case"value":
                        if (v("*")) {
                            var j = y("*/");
                            j && z(j + 1)
                        } else x() == "before-value" && M("value"), n += i;
                        break;
                    default:
                        v("*") ? (P("comment"), L("comment"), z()) : n += i;
                        break
                }
                break;
            case"*":
                switch (x()) {
                    case"comment":
                        v("/") ? (g.text = n, z(), B(), S()) : n += i;
                        break;
                    case"before-selector":
                        n += i, P("selector"), L("selector");
                        break;
                    case"before-value":
                        M("value"), n += i;
                        break;
                    default:
                        n += i
                }
                break;
            case"@":
                switch (x()) {
                    case"comment":
                    case"double-string":
                    case"single-string":
                        n += i;
                        break;
                    case"before-value":
                        M("value"), n += i;
                        break;
                    default:
                        for (var b = !1, T, f, C = 0, q = E.length; !b && C < q; ++C) f = E[C], T = f.name || f, _(T) && (b = !0, P(T), L(f.state || "at-group"), z(T.length), f.prefix && (g.prefix = f.prefix), f.type && (g.type = f.type));
                        b || (n += i);
                        break
                }
                break;
            case"(":
                switch (x()) {
                    case"value":
                        L("value-paren");
                        break;
                    case"before-value":
                        M("value");
                        break
                }
                n += i;
                break;
            case")":
                switch (x()) {
                    case"value-paren":
                        S();
                        break;
                    case"before-value":
                        M("value");
                        break
                }
                n += i;
                break;
            default:
                switch (x()) {
                    case"before-selector":
                        P("selector"), L("selector");
                        break;
                    case"before-name":
                        P("property"), M("name");
                        break;
                    case"before-value":
                        M("value");
                        break;
                    case"before-at-value":
                        M("at-value");
                        break
                }
                n += i;
                break
        }
        return d
    }
})(so);
var co = so.exports, lo = {exports: {}};
(function (e, t) {
    $n("parse");
    var r = co;
    e.exports = s;
    var u, n, i, a;

    function s(S, L) {
        L || (L = {}), u = !!L.comments, i = !!L.position, n = 0, a = Array.isArray(S) ? S.slice() : r(S);
        for (var M, z = [], B; B = l();) M = _(B), M && z.push(M);
        return {type: "stylesheet", stylesheet: {rules: z}}
    }

    function o(S, L) {
        L || (L = {});
        for (var M, z = ["type", "name", "value"], B = {}, P = 0; P < z.length; ++P) M = z[P], S[M] && (B[M] = L[M] || S[M]);
        for (z = Object.keys(L), P = 0; P < z.length; ++P) M = z[P], B[M] || (B[M] = L[M]);
        return i && (B.position = {start: S.start, end: S.end}), B
    }

    function l() {
        var S = a.shift();
        return S
    }

    function h(S) {
        n = n + 1;
        var L = {};
        switch (S.type) {
            case"font-face":
            case"viewport":
                L.declarations = v();
                break;
            case"page":
                L.prefix = S.prefix, L.declarations = v();
                break;
            default:
                L.prefix = S.prefix, L.rules = D()
        }
        return o(S, L)
    }

    function p(S) {
        return o(S)
    }

    function g(S) {
        return o(S)
    }

    function d(S) {
        return o(S, {text: S.text})
    }

    function E(S) {
        return o(S)
    }

    function A(S) {
        return o(S)
    }

    function x(S) {
        function L(M) {
            return M.trim()
        }

        return o(S, {type: "rule", selectors: S.text.split(",").map(L), declarations: v()})
    }

    function _(S) {
        switch (S.type) {
            case"property":
                return A(S);
            case"selector":
                return x(S);
            case"at-group-end":
                n = n - 1;
                return;
            case"media":
            case"keyframes":
                return h(S);
            case"comment":
                if (u) return d(S);
                break;
            case"charset":
                return g(S);
            case"import":
                return p(S);
            case"namespace":
                return E(S);
            case"font-face":
            case"supports":
            case"viewport":
            case"document":
            case"page":
                return h(S)
        }
    }

    function y(S) {
        for (var L, M = [], z; (z = l()) && S && S(z);) L = _(z), L && M.push(L);
        return z && z.type !== "end" && a.unshift(z), M
    }

    function v() {
        return y(function (S) {
            return S.type === "property" || S.type === "comment"
        })
    }

    function D() {
        return y(function () {
            return n
        })
    }
})(lo);
var $p = lo.exports, fo = {exports: {}};
(function (e, t) {
    $n("stringify");
    var r, u, n, i, a, s;
    e.exports = o;

    function o(D, S) {
        S || (S = {}), n = S.indentation || "", u = !!S.compress, r = !!S.comments, i = 1, u ? a = s = "" : (a = `
`, s = " ");
        var L = E(D.stylesheet.rules, y).join(`
`).trim();
        return L
    }

    function l(D) {
        if (D) {
            i += D;
            return
        }
        return u ? "" : Array(i).join(n || "")
    }

    function h(D) {
        return "@" + D.type + " " + D.value + ";" + a
    }

    function p(D) {
        var S = "", L = D.prefix || "";
        D.name && (S = " " + D.name);
        var M = D.type !== "page";
        return "@" + L + D.type + S + s + A(D, M) + a
    }

    function g(D) {
        return r ? "/*" + (D.text || "") + "*/" + a : ""
    }

    function d(D) {
        var S;
        return D.selectors ? S = D.selectors.join("," + a) : (S = "@" + D.type, S += D.name ? " " + D.name : ""), l() + S + s + A(D) + a
    }

    function E(D, S) {
        return D.reduce(function (L, M) {
            var z = M.type === "comment" ? g(M) : S(M);
            return z && L.push(z), L
        }, [])
    }

    function A(D, S) {
        var L = D.declarations, M = _;
        return D.rules && (L = D.rules, M = d), L = x(L, M), L && (L = a + L + (S ? "" : a)), "{" + L + l() + "}"
    }

    function x(D, S) {
        if (!D) return "";
        l(1);
        var L = E(D, S);
        return l(-1), L.length ? L.join(a) : ""
    }

    function _(D) {
        if (D.type === "property") return v(D)
    }

    function y(D) {
        switch (D.type) {
            case"rule":
                return d(D);
            case"media":
            case"keyframes":
                return p(D);
            case"comment":
                return g(D);
            case"import":
            case"charset":
            case"namespace":
                return h(D);
            case"font-face":
            case"supports":
            case"viewport":
            case"document":
            case"page":
                return p(D)
        }
    }

    function v(D) {
        var S = D.name ? D.name + ":" + s : "";
        return l() + S + D.value + ";"
    }
})(fo);
var e2 = fo.exports, t2 = {lex: co, parse: $p, stringify: e2}, ho = {exports: {}}, r2 = /([-.*+?^${}()|[\]\/\\])/g,
    u2 = /\\/g, xt = function (e) {
        return (e + "").replace(r2, "\\$1")
    }, _t = function (e) {
        return (e + "").replace(u2, "")
    },
    n2 = RegExp(`^(?:\\s*(,)\\s*|\\s*(<combinator>+)\\s*|(\\s+)|(<unicode>+|\\*)|\\#(<unicode>+)|\\.(<unicode>+)|\\[\\s*(<unicode1>+)(?:\\s*([*^$!~|]?=)(?:\\s*(?:(["']?)(.*?)\\9)))?\\s*\\](?!\\])|(:+)(<unicode>+)(?:\\((?:(?:(["'])([^\\13]*)\\13)|((?:\\([^)]+\\)|[^()]*)+))\\))?)`.replace(/<combinator>/, "[" + xt(">+~`!@$%^&={}\\;</") + "]").replace(/<unicode>/g, "(?:[\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])").replace(/<unicode1>/g, "(?:[:\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])")),
    Ao = function (t) {
        this.combinator = t || " ", this.tag = "*"
    };
Ao.prototype.toString = function () {
    if (!this.raw) {
        var e = "", t, r;
        if (e += this.tag || "*", this.id && (e += "#" + this.id), this.classes && (e += "." + this.classList.join(".")), this.attributes) for (t = 0; r = this.attributes[t++];) e += "[" + r.name + (r.operator ? r.operator + '"' + r.value + '"' : "") + "]";
        if (this.pseudos) for (t = 0; r = this.pseudos[t++];) e += ":" + r.name, r.value && (e += "(" + r.value + ")");
        this.raw = e
    }
    return this.raw
};
var po = function () {
    this.length = 0
};
po.prototype.toString = function () {
    if (!this.raw) {
        for (var e = "", t = 0, r; r = this[t++];) t !== 1 && (e += " "), r.combinator !== " " && (e += r.combinator + " "), e += r;
        this.raw = e
    }
    return this.raw
};
var i2 = function (e, t, r, u, n, i, a, s, o, l, h, p, g, d, E, A) {
    var x, _;
    if ((t || !this.length) && (x = this[this.length++] = new po, t)) return "";
    if (x || (x = this[this.length - 1]), (r || u || !x.length) && (_ = x[x.length++] = new Ao(r)), _ || (_ = x[x.length - 1]), n) _.tag = _t(n); else if (i) _.id = _t(i); else if (a) {
        var y = _t(a), v = _.classes || (_.classes = {});
        if (!v[y]) {
            v[y] = xt(a);
            var D = _.classList || (_.classList = []);
            D.push(y), D.sort()
        }
    } else g ? (A = A || E, (_.pseudos || (_.pseudos = [])).push({
        type: p.length == 1 ? "class" : "element",
        name: _t(g),
        escapedName: xt(g),
        value: A ? _t(A) : null,
        escapedValue: A ? xt(A) : null
    })) : s && (h = h ? xt(h) : null, (_.attributes || (_.attributes = [])).push({
        operator: o,
        name: _t(s),
        escapedName: xt(s),
        value: h ? _t(h) : null,
        escapedValue: h ? xt(h) : null
    }));
    return ""
}, bo = function (t) {
    this.length = 0;
    for (var r = this, u = t, n; t;) {
        if (n = t.replace(n2, function () {
            return i2.apply(r, arguments)
        }), n === t) throw new Error(u + " is an invalid expression");
        t = n
    }
};
bo.prototype.toString = function () {
    if (!this.raw) {
        for (var e = [], t = 0, r; r = this[t++];) e.push(r);
        this.raw = e.join(", ")
    }
    return this.raw
};
var ia = {}, a2 = function (e) {
    return e == null ? null : (e = ("" + e).replace(/^\s+|\s+$/g, ""), ia[e] || (ia[e] = new bo(e)))
}, s2 = a2;
(function (e, t) {
    var r = s2;
    e.exports = u;

    function u(i, a) {
        this.text = i, this.spec = void 0, this.styleAttribute = a || !1
    }

    u.prototype.parsed = function () {
        return this.tokens || (this.tokens = n(this.text)), this.tokens
    }, u.prototype.specificity = function () {
        var i = this.styleAttribute;
        return this.spec || (this.spec = a(this.text, this.parsed())), this.spec;

        function a(s, o) {
            for (var l = o || n(s), h = [i ? 1 : 0, 0, 0, 0], p = [], g = 0; g < l.length; g++) {
                var d = l[g], E = d.pseudos;
                if (d.id && h[1]++, d.attributes && (h[2] += d.attributes.length), d.classList && (h[2] += d.classList.length), d.tag && d.tag !== "*" && h[3]++, E) {
                    h[3] += E.length;
                    for (var A = 0; A < E.length; A++) E[A].name === "not" && (p.push(E[A].value), h[3]--)
                }
            }
            for (var x = p.length; x--;) for (var _ = a(p[x]), y = 4; y--;) h[y] += _[y];
            return h
        }
    };

    function n(i) {
        try {
            return r(i)[0]
        } catch {
            return []
        }
    }
})(ho);
var o2 = ho.exports, Wu = {exports: {}}, aa;

function c2() {
    return aa || (aa = 1, function (e, t) {
        e.exports = u;
        var r = ei();

        function u(n, i, a, s, o) {
            this.prop = n, this.value = i, this.selector = a, this.priority = s || 0, this.additionalPriority = o || []
        }

        u.prototype.compareFunc = function (n) {
            var i = [];
            i.push.apply(i, this.selector.specificity()), i.push.apply(i, this.additionalPriority), i[0] += this.priority;
            var a = [];
            return a.push.apply(a, n.selector.specificity()), a.push.apply(a, n.additionalPriority), a[0] += n.priority, r.compareFunc(i, a)
        }, u.prototype.compare = function (n) {
            var i = this.compareFunc(n);
            return i === 1 ? this : n
        }, u.prototype.toString = function () {
            return this.prop + ": " + this.value.replace(/['"]+/g, "") + ";"
        }
    }(Wu)), Wu.exports
}

var sa;

function ei() {
    return sa || (sa = 1, function (e) {
        var t = t2, r = o2, u = c2();
        e.Selector = r, e.Property = u;
        /**
         * Returns an array of the selectors.
         *
         * @license Sizzle CSS Selector Engine - MIT
         * @param {String} selectorText from mensch
         * @api public
         */e.extract = function (i) {
            for (var a = 0, s = [], o = "", l = 0, h = i.length; l < h; l++) {
                var p = i.charAt(l);
                a ? ((p === "]" || p === ")") && a--, o += p) : p === "," ? (s.push(o), o = "") : ((p === "[" || p === "(") && a++, (o.length || p !== "," && p !== `
` && p !== " ") && (o += p))
            }
            return o.length && s.push(o), s
        }, e.parseCSS = function (n) {
            var i = t.parse(n, {position: !0, comments: !0}),
                a = typeof i.stylesheet < "u" && i.stylesheet.rules ? i.stylesheet.rules : [], s = [], o = !1, l = !1;
            if (a.length > 0 && a[0].type === "comment" && a[0].text) {
                var h = a[0].text.trim();
                h === "juice ignore" && (l = !0)
            }
            if (l) return s;
            for (var p = 0, g = a.length; p < g; p++) {
                if (a[p].type === "comment") {
                    if (!a[p].text) continue;
                    var d = a[p].text.trim();
                    d === "juice start ignore" ? o = !0 : d === "juice end ignore" ? o = !1 : d === "juice ignore next" && p++;
                    continue
                }
                if (!o && a[p].type == "rule") {
                    var E = a[p], A = E.selectors, x = [];
                    if (E.declarations) for (var _ = !1, y = 0; y < E.declarations.length; y++) {
                        var v = E.declarations[y];
                        if (v.type === "comment" && v.text) {
                            var D = v.text.trim();
                            if (D === "juice ignore next") {
                                _ = !0;
                                continue
                            }
                        }
                        if (_ && v.type === "property") {
                            _ = !1;
                            continue
                        }
                        v.type === "property" && x.push(v)
                    }
                    if (x.length > 0) for (var S = 0, L = A.length; S < L; S++) s.push([A[S], x])
                }
            }
            return s
        }, e.getPreservedText = function (n, i, a) {
            var s = t.parse(n, {position: !0, comments: !0}),
                o = typeof s.stylesheet < "u" && s.stylesheet.rules ? s.stylesheet.rules : [], l = [], h = !1, p = [],
                g = !1, d = new Set;
            if (o.length > 0 && o[0].type === "comment" && o[0].text) {
                var E = o[0].text.trim();
                E === "juice ignore" && (g = !0)
            }
            if (g) return `
` + n + `
`;
            for (var A = 0; A < o.length; A++) {
                if (o[A].type === "comment" && o[A].text) {
                    var x = o[A].text.trim();
                    x === "juice ignore next" && A + 1 < o.length && d.add(A + 1)
                }
                if (o[A].type === "rule" && o[A].declarations) {
                    for (var _ = 0; _ < o[A].declarations.length; _++) if (o[A].declarations[_].type === "comment" && o[A].declarations[_].text) {
                        var y = o[A].declarations[_].text.trim();
                        if (y === "juice ignore next") {
                            d.add(A);
                            break
                        }
                    }
                }
            }
            for (var A = o.length - 1; A >= 0; A--) {
                var v = o[A];
                if (v.type === "comment") {
                    if (!v.text) continue;
                    var x = v.text.trim();
                    x === "juice end ignore" ? (h = !0, p.push(v)) : x === "juice start ignore" && (h = !1, p.push(v), p.length > 0 && (l.unshift(t.stringify({stylesheet: {rules: p.reverse()}}, {
                        comments: !0,
                        indentation: "  "
                    })), p = []));
                    continue
                }
                if (h) {
                    p.push(v);
                    continue
                }
                if (d.has(A)) {
                    l.unshift(t.stringify({stylesheet: {rules: [v]}}, {comments: !0, indentation: "  "}));
                    continue
                }
                (i.fontFaces && v.type === "font-face" || i.mediaQueries && v.type === "media" || i.keyFrames && v.type === "keyframes" || i.pseudos && v.selectors && this.matchesPseudo(v.selectors[0], a) || i.preservedSelectors && v.selectors && v.selectors.some(function (S) {
                    return e.matchesPreservedSelector(S, i.preservedSelectors)
                })) && l.unshift(t.stringify({stylesheet: {rules: [v]}}, {
                    comments: !1,
                    indentation: "  "
                })), v.position.start
            }
            return l.length === 0 ? !1 : `
` + l.join(`
`) + `
`
        }, e.normalizeLineEndings = function (n) {
            return n.replace(/\r\n/g, `
`).replace(/\n/g, `\r
`)
        }, e.matchesPseudo = function (n, i) {
            return i.find(function (a) {
                return n.indexOf(":" + a) > -1
            })
        }, e.matchesPreservedSelector = function (n, i) {
            if (!i || i.length === 0) return !1;
            for (var a = 0; a < i.length; a++) {
                var s = i[a];
                if (n === s || n.indexOf(s) !== -1) return !0
            }
            return !1
        }, e.removeInlinedSelectorsFromCSS = function (n, i, a, s) {
            for (var o = t.parse(n, {
                position: !0,
                comments: !0
            }), l = typeof o.stylesheet < "u" && o.stylesheet.rules ? o.stylesheet.rules : [], h = [], p = 0; p < l.length; p++) {
                var g = l[p];
                if (g.type !== "rule") {
                    h.push(g);
                    continue
                }
                if (g.selectors && a.preservePseudos && this.matchesPseudo(g.selectors[0], s)) {
                    h.push(g);
                    continue
                }
                if (g.selectors && a.preservedSelectors && g.selectors.some(function (A) {
                    return e.matchesPreservedSelector(A, a.preservedSelectors)
                })) {
                    h.push(g);
                    continue
                }
                var d = g.selectors.filter(function (A) {
                    return !i.has(A)
                });
                if (d.length > 0) {
                    var E = Object.assign({}, g, {selectors: d});
                    h.push(E)
                }
            }
            return h.length === 0 ? "" : t.stringify({stylesheet: {rules: h}}, {comments: !1, indentation: "  "})
        }, e.compareFunc = function (n, i) {
            for (var a = Math.min(n.length, i.length), s = 0; s < a; s++) if (n[s] !== i[s]) return n[s] > i[s] ? 1 : -1;
            return n.length - i.length
        }, e.compare = function (n, i) {
            return e.compareFunc(n, i) == 1 ? n : i
        }, e.getDefaultOptions = function (n) {
            var i = Object.assign({
                extraCss: "",
                insertPreservedExtraCss: !0,
                applyStyleTags: !0,
                removeStyleTags: !0,
                removeInlinedSelectors: !1,
                preserveMediaQueries: !0,
                preserveFontFaces: !0,
                preserveKeyFrames: !0,
                preservePseudos: !0,
                preservedSelectors: [],
                applyWidthAttributes: !0,
                applyHeightAttributes: !0,
                applyAttributesTableElements: !0,
                resolveCSSVariables: !0,
                inlineDuplicateProperties: !1,
                url: ""
            }, n);
            return i.webResources = i.webResources || {}, i
        }
    }(Gu)), Gu
}

(function (e) {
    var t = Xp;
    ei();
    var r = function (n, i, a) {
        const {xmlMode: s, ...o} = i;
        return i = Object.assign({xml: {decodeEntities: !1, xmlMode: s}}, o), n = a(n), t.load(n, i)
    }, u = function () {
        var n = [], i = function (s) {
            var o = e.exports.codeBlocks;
            return Object.keys(o).forEach(function (l) {
                var h = new RegExp(o[l].start + "([\\S\\s]*?)" + o[l].end, "g");
                s = s.replace(h, function (p, g) {
                    return n.push(p), "JUICE_CODE_BLOCK_" + (n.length - 1) + "_"
                })
            }), s
        }, a = function (s) {
            for (var o = 0; o < n.length; o++) {
                var l = new RegExp("JUICE_CODE_BLOCK_" + o + '_(="")?', "gi");
                s = s.replace(l, function () {
                    return n[o]
                })
            }
            return s
        };
        return {encodeEntities: i, decodeEntities: a}
    };
    e.exports = function (n, i, a, s) {
        var o = u(), l = r(n, i, o.encodeEntities), h = [l];
        h.push.apply(h, s);
        var p = a.apply(void 0, h) || l;
        return i && i.xmlMode ? o.decodeEntities(p.xml()) : o.decodeEntities(p.html())
    }, e.exports.codeBlocks = {EJS: {start: "<%", end: "%>"}, HBS: {start: "{{", end: "}}"}}
})(Ga);
var l2 = Ga.exports, go = {}, hn = {}, An = {};
(function (e) {
    var t;
    Object.defineProperty(e, "__esModule", {value: !0}), e.fromCodePoint = void 0, e.replaceCodePoint = u, e.decodeCodePoint = n;
    const r = new Map([[0, 65533], [128, 8364], [130, 8218], [131, 402], [132, 8222], [133, 8230], [134, 8224], [135, 8225], [136, 710], [137, 8240], [138, 352], [139, 8249], [140, 338], [142, 381], [145, 8216], [146, 8217], [147, 8220], [148, 8221], [149, 8226], [150, 8211], [151, 8212], [152, 732], [153, 8482], [154, 353], [155, 8250], [156, 339], [158, 382], [159, 376]]);
    e.fromCodePoint = (t = String.fromCodePoint) !== null && t !== void 0 ? t : i => {
        let a = "";
        return i > 65535 && (i -= 65536, a += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | i & 1023), a += String.fromCharCode(i), a
    };

    function u(i) {
        var a;
        return i >= 55296 && i <= 57343 || i > 1114111 ? 65533 : (a = r.get(i)) !== null && a !== void 0 ? a : i
    }

    function n(i) {
        return (0, e.fromCodePoint)(u(i))
    }
})(An);
var br = {}, _u = {};
Object.defineProperty(_u, "__esModule", {value: !0});
_u.decodeBase64 = f2;

function f2(e) {
    const t = typeof atob == "function" ? atob(e) : typeof Buffer.from == "function" ? Buffer.from(e, "base64").toString("binary") : new Buffer(e, "base64").toString("binary"),
        r = t.length & -2, u = new Uint16Array(r / 2);
    for (let n = 0, i = 0; n < r; n += 2) {
        const a = t.charCodeAt(n), s = t.charCodeAt(n + 1);
        u[i++] = a | s << 8
    }
    return u
}

Object.defineProperty(br, "__esModule", {value: !0});
br.htmlDecodeTree = void 0;
const d2 = _u;
br.htmlDecodeTree = (0, d2.decodeBase64)(" ");
var gr = {};
Object.defineProperty(gr, "__esModule", {value: !0});
gr.xmlDecodeTree = void 0;
const h2 = _u;
gr.xmlDecodeTree = (0, h2.decodeBase64)("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg");
var xu = {};
Object.defineProperty(xu, "__esModule", {value: !0});
xu.BinTrieFlags = void 0;
var oa;
(function (e) {
    e[e.VALUE_LENGTH = 49152] = "VALUE_LENGTH", e[e.FLAG13 = 8192] = "FLAG13", e[e.BRANCH_LENGTH = 8064] = "BRANCH_LENGTH", e[e.JUMP_TABLE = 127] = "JUMP_TABLE"
})(oa || (xu.BinTrieFlags = oa = {}));
(function (e) {
    Object.defineProperty(e, "__esModule", {value: !0}), e.xmlDecodeTree = e.htmlDecodeTree = e.replaceCodePoint = e.fromCodePoint = e.decodeCodePoint = e.EntityDecoder = e.DecodingMode = void 0, e.determineBranch = A, e.decodeHTML = y, e.decodeHTMLAttribute = v, e.decodeHTMLStrict = D, e.decodeXML = S;
    const t = An, r = br, u = gr, n = xu;
    var i;
    (function (B) {
        B[B.NUM = 35] = "NUM", B[B.SEMI = 59] = "SEMI", B[B.EQUALS = 61] = "EQUALS", B[B.ZERO = 48] = "ZERO", B[B.NINE = 57] = "NINE", B[B.LOWER_A = 97] = "LOWER_A", B[B.LOWER_F = 102] = "LOWER_F", B[B.LOWER_X = 120] = "LOWER_X", B[B.LOWER_Z = 122] = "LOWER_Z", B[B.UPPER_A = 65] = "UPPER_A", B[B.UPPER_F = 70] = "UPPER_F", B[B.UPPER_Z = 90] = "UPPER_Z"
    })(i || (i = {}));
    const a = 32;

    function s(B) {
        return B >= i.ZERO && B <= i.NINE
    }

    function o(B) {
        return B >= i.UPPER_A && B <= i.UPPER_F || B >= i.LOWER_A && B <= i.LOWER_F
    }

    function l(B) {
        return B >= i.UPPER_A && B <= i.UPPER_Z || B >= i.LOWER_A && B <= i.LOWER_Z || s(B)
    }

    function h(B) {
        return B === i.EQUALS || l(B)
    }

    var p;
    (function (B) {
        B[B.EntityStart = 0] = "EntityStart", B[B.NumericStart = 1] = "NumericStart", B[B.NumericDecimal = 2] = "NumericDecimal", B[B.NumericHex = 3] = "NumericHex", B[B.NamedEntity = 4] = "NamedEntity"
    })(p || (p = {}));
    var g;
    (function (B) {
        B[B.Legacy = 0] = "Legacy", B[B.Strict = 1] = "Strict", B[B.Attribute = 2] = "Attribute"
    })(g || (e.DecodingMode = g = {}));

    class d {
        constructor(P, j, b) {
            this.decodeTree = P, this.emitCodePoint = j, this.errors = b, this.state = p.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = g.Strict
        }

        startEntity(P) {
            this.decodeMode = P, this.state = p.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1
        }

        write(P, j) {
            switch (this.state) {
                case p.EntityStart:
                    return P.charCodeAt(j) === i.NUM ? (this.state = p.NumericStart, this.consumed += 1, this.stateNumericStart(P, j + 1)) : (this.state = p.NamedEntity, this.stateNamedEntity(P, j));
                case p.NumericStart:
                    return this.stateNumericStart(P, j);
                case p.NumericDecimal:
                    return this.stateNumericDecimal(P, j);
                case p.NumericHex:
                    return this.stateNumericHex(P, j);
                case p.NamedEntity:
                    return this.stateNamedEntity(P, j)
            }
        }

        stateNumericStart(P, j) {
            return j >= P.length ? -1 : (P.charCodeAt(j) | a) === i.LOWER_X ? (this.state = p.NumericHex, this.consumed += 1, this.stateNumericHex(P, j + 1)) : (this.state = p.NumericDecimal, this.stateNumericDecimal(P, j))
        }

        stateNumericHex(P, j) {
            for (; j < P.length;) {
                const b = P.charCodeAt(j);
                if (s(b) || o(b)) {
                    const T = b <= i.NINE ? b - i.ZERO : (b | a) - i.LOWER_A + 10;
                    this.result = this.result * 16 + T, this.consumed++, j++
                } else return this.emitNumericEntity(b, 3)
            }
            return -1
        }

        stateNumericDecimal(P, j) {
            for (; j < P.length;) {
                const b = P.charCodeAt(j);
                if (s(b)) this.result = this.result * 10 + (b - i.ZERO), this.consumed++, j++; else return this.emitNumericEntity(b, 2)
            }
            return -1
        }

        emitNumericEntity(P, j) {
            var b;
            if (this.consumed <= j) return (b = this.errors) === null || b === void 0 || b.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
            if (P === i.SEMI) this.consumed += 1; else if (this.decodeMode === g.Strict) return 0;
            return this.emitCodePoint((0, t.replaceCodePoint)(this.result), this.consumed), this.errors && (P !== i.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed
        }

        stateNamedEntity(P, j) {
            const {decodeTree: b} = this;
            let T = b[this.treeIndex], f = (T & n.BinTrieFlags.VALUE_LENGTH) >> 14;
            for (; j < P.length;) {
                if (f === 0 && T & n.BinTrieFlags.FLAG13) {
                    const q = (T & n.BinTrieFlags.BRANCH_LENGTH) >> 7, O = T & n.BinTrieFlags.JUMP_TABLE;
                    if (j + q > P.length) return -1;
                    if (P.charCodeAt(j) !== O) return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
                    j++, this.excess++;
                    const U = q - 1;
                    for (let G = 1; G < q; G += 2) {
                        const ae = b[this.treeIndex + 1 + (G - 1 >> 1)], W = ae & 255;
                        if (P.charCodeAt(j) !== W) return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
                        j++, this.excess++;
                        const Y = ae >> 8 & 255;
                        if (G + 1 < q) {
                            if (P.charCodeAt(j) !== Y) return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
                            j++, this.excess++
                        }
                    }
                    this.treeIndex += 1 + (U + 1 >> 1), T = b[this.treeIndex], f = (T & n.BinTrieFlags.VALUE_LENGTH) >> 14
                }
                if (j >= P.length) break;
                const C = P.charCodeAt(j);
                if (C === i.SEMI && f !== 0 && T & n.BinTrieFlags.FLAG13) return this.emitNamedEntityData(this.treeIndex, f, this.consumed + this.excess);
                if (this.treeIndex = A(b, T, this.treeIndex + Math.max(1, f), C), this.treeIndex < 0) return this.result === 0 || this.decodeMode === g.Attribute && (f === 0 || h(C)) ? 0 : this.emitNotTerminatedNamedEntity();
                if (T = b[this.treeIndex], f = (T & n.BinTrieFlags.VALUE_LENGTH) >> 14, f !== 0) {
                    if (C === i.SEMI) return this.emitNamedEntityData(this.treeIndex, f, this.consumed + this.excess);
                    this.decodeMode !== g.Strict && !(T & n.BinTrieFlags.FLAG13) && (this.result = this.treeIndex, this.consumed += this.excess, this.excess = 0)
                }
                j++, this.excess++
            }
            return -1
        }

        emitNotTerminatedNamedEntity() {
            var P;
            const {result: j, decodeTree: b} = this, T = (b[j] & n.BinTrieFlags.VALUE_LENGTH) >> 14;
            return this.emitNamedEntityData(j, T, this.consumed), (P = this.errors) === null || P === void 0 || P.missingSemicolonAfterCharacterReference(), this.consumed
        }

        emitNamedEntityData(P, j, b) {
            const {decodeTree: T} = this;
            return this.emitCodePoint(j === 1 ? T[P] & ~(n.BinTrieFlags.VALUE_LENGTH | n.BinTrieFlags.FLAG13) : T[P + 1], b), j === 3 && this.emitCodePoint(T[P + 2], b), b
        }

        end() {
            var P;
            switch (this.state) {
                case p.NamedEntity:
                    return this.result !== 0 && (this.decodeMode !== g.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
                case p.NumericDecimal:
                    return this.emitNumericEntity(0, 2);
                case p.NumericHex:
                    return this.emitNumericEntity(0, 3);
                case p.NumericStart:
                    return (P = this.errors) === null || P === void 0 || P.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
                case p.EntityStart:
                    return 0
            }
        }
    }

    e.EntityDecoder = d;

    function E(B) {
        let P = "";
        const j = new d(B, b => P += (0, t.fromCodePoint)(b));
        return function (T, f) {
            let C = 0, q = 0;
            for (; (q = T.indexOf("&", q)) >= 0;) {
                P += T.slice(C, q), j.startEntity(f);
                const U = j.write(T, q + 1);
                if (U < 0) {
                    C = q + j.end();
                    break
                }
                C = q + U, q = U === 0 ? C + 1 : C
            }
            const O = P + T.slice(C);
            return P = "", O
        }
    }

    function A(B, P, j, b) {
        const T = (P & n.BinTrieFlags.BRANCH_LENGTH) >> 7, f = P & n.BinTrieFlags.JUMP_TABLE;
        if (T === 0) return f !== 0 && b === f ? j : -1;
        if (f) {
            const U = b - f;
            return U < 0 || U >= T ? -1 : B[j + U] - 1
        }
        const C = T + 1 >> 1;
        let q = 0, O = T - 1;
        for (; q <= O;) {
            const U = q + O >>> 1, G = U >> 1, W = B[j + G] >> (U & 1) * 8 & 255;
            if (W < b) q = U + 1; else if (W > b) O = U - 1; else return B[j + C + U]
        }
        return -1
    }

    const x = E(r.htmlDecodeTree), _ = E(u.xmlDecodeTree);

    function y(B, P = g.Legacy) {
        return x(B, P)
    }

    function v(B) {
        return x(B, g.Attribute)
    }

    function D(B) {
        return x(B, g.Strict)
    }

    function S(B) {
        return _(B, g.Strict)
    }

    var L = An;
    Object.defineProperty(e, "decodeCodePoint", {
        enumerable: !0, get: function () {
            return L.decodeCodePoint
        }
    }), Object.defineProperty(e, "fromCodePoint", {
        enumerable: !0, get: function () {
            return L.fromCodePoint
        }
    }), Object.defineProperty(e, "replaceCodePoint", {
        enumerable: !0, get: function () {
            return L.replaceCodePoint
        }
    });
    var M = br;
    Object.defineProperty(e, "htmlDecodeTree", {
        enumerable: !0, get: function () {
            return M.htmlDecodeTree
        }
    });
    var z = gr;
    Object.defineProperty(e, "xmlDecodeTree", {
        enumerable: !0, get: function () {
            return z.xmlDecodeTree
        }
    })
})(hn);
var mr = {}, nu = {};
(function (e) {
    Object.defineProperty(e, "__esModule", {value: !0}), e.escapeText = e.escapeAttribute = e.escapeUTF8 = e.escape = e.XML_BITSET_VALUE = e.getCodePoint = void 0, e.encodeXML = r;
    const t = new Map([[34, "&quot;"], [38, "&amp;"], [39, "&apos;"], [60, "&lt;"], [62, "&gt;"]]);
    e.getCodePoint = String.prototype.codePointAt == null ? (n, i) => (n.charCodeAt(i) & 64512) === 55296 ? (n.charCodeAt(i) - 55296) * 1024 + n.charCodeAt(i + 1) - 56320 + 65536 : n.charCodeAt(i) : (n, i) => n.codePointAt(i), e.XML_BITSET_VALUE = 1342177476;

    function r(n) {
        let i, a = 0;
        const {length: s} = n;
        for (let o = 0; o < s; o++) {
            const l = n.charCodeAt(o);
            if (l < 128 && (!(e.XML_BITSET_VALUE >>> l & 1) || l >= 64 || l < 32)) continue;
            if (i === void 0 ? i = n.substring(0, o) : a !== o && (i += n.substring(a, o)), l < 64) {
                i += t.get(l), a = o + 1;
                continue
            }
            const h = (0, e.getCodePoint)(n, o);
            i += `&#x${h.toString(16)};`, h !== l && o++, a = o + 1
        }
        return i === void 0 ? n : (a < s && (i += n.substr(a)), i)
    }

    e.escape = r;

    function u(n, i) {
        return function (s) {
            let o, l = 0, h = "";
            for (; o = n.exec(s);) l !== o.index && (h += s.substring(l, o.index)), h += i.get(o[0].charCodeAt(0)), l = o.index + 1;
            return h + s.substring(l)
        }
    }

    e.escapeUTF8 = u(/["&'<>]/g, t), e.escapeAttribute = u(/["&\u00A0]/g, new Map([[34, "&quot;"], [38, "&amp;"], [160, "&nbsp;"]])), e.escapeText = u(/[&<>\u00A0]/g, new Map([[38, "&amp;"], [60, "&lt;"], [62, "&gt;"], [160, "&nbsp;"]]))
})(nu);
var Cu = {}, ti = {};
Object.defineProperty(ti, "__esModule", {value: !0});
ti.parseEncodeTrie = A2;

function A2(e) {
    const t = new Map, r = e.length;
    let u = 0, n = -1;

    function i() {
        const s = u;
        for (; u < r;) {
            const o = e.charAt(u);
            if ((o < "0" || o > "9") && (o < "a" || o > "z")) break;
            u++
        }
        return u === s ? 0 : Number.parseInt(e.slice(s, u), 36)
    }

    function a() {
        if (e[u] !== "&") throw new Error(`Child entry missing value near index ${u}`);
        const s = u, o = e.indexOf(";", u + 1);
        if (o === -1) throw new Error(`Unterminated entity starting at index ${s}`);
        return u = o + 1, e.slice(s, u)
    }

    for (; u < r;) {
        const s = i(), o = n === -1 ? s : n + s + 1;
        let l;
        if (e[u] === "&" && (l = a()), e[u] === "{") {
            u++;
            let h = i(), p = h;
            const g = a();
            if (e[u] === "{") throw new Error("Unexpected nested '{' beyond depth 2");
            if (e[u] === "}") t.set(o, {value: l, next: p, nextValue: g}), u++; else {
                const d = new Map;
                d.set(p, g);
                let E = p;
                for (; u < r && e[u] !== "}";) {
                    h = i(), p = E + h + 1;
                    const A = a();
                    if (e[u] === "{") throw new Error("Unexpected nested '{' beyond depth 2");
                    d.set(p, A), E = p
                }
                if (e[u] !== "}") throw new Error("Unterminated child block");
                u++, t.set(o, {value: l, next: d})
            }
        } else {
            if (l === void 0) throw new Error(`Malformed encode trie: missing value at index ${u}`);
            t.set(o, l)
        }
        n = o
    }
    return t
}

Object.defineProperty(Cu, "__esModule", {value: !0});
Cu.htmlTrie = void 0;
const p2 = ti;
Cu.htmlTrie = (0, p2.parseEncodeTrie)("9&Tab;&NewLine;m&excl;&quot;&num;&dollar;&percnt;&amp;&apos;&lpar;&rpar;&ast;&plus;&comma;1&period;&sol;a&colon;&semi;&lt;{6he&nvlt;}&equals;{6hx&bne;}&gt;{6he&nvgt;}&quest;&commat;q&lbrack;&bsol;&rbrack;&Hat;&lowbar;&DiacriticalGrave;5{2y&fjlig;}k&lbrace;&verbar;&rbrace;y&nbsp;&iexcl;&cent;&pound;&curren;&yen;&brvbar;&sect;&die;&copy;&ordf;&laquo;&not;&shy;&circledR;&macr;&deg;&PlusMinus;&sup2;&sup3;&acute;&micro;&para;&centerdot;&cedil;&sup1;&ordm;&raquo;&frac14;&frac12;&frac34;&iquest;&Agrave;&Aacute;&Acirc;&Atilde;&Auml;&angst;&AElig;&Ccedil;&Egrave;&Eacute;&Ecirc;&Euml;&Igrave;&Iacute;&Icirc;&Iuml;&ETH;&Ntilde;&Ograve;&Oacute;&Ocirc;&Otilde;&Ouml;&times;&Oslash;&Ugrave;&Uacute;&Ucirc;&Uuml;&Yacute;&THORN;&szlig;&agrave;&aacute;&acirc;&atilde;&auml;&aring;&aelig;&ccedil;&egrave;&eacute;&ecirc;&euml;&igrave;&iacute;&icirc;&iuml;&eth;&ntilde;&ograve;&oacute;&ocirc;&otilde;&ouml;&div;&oslash;&ugrave;&uacute;&ucirc;&uuml;&yacute;&thorn;&yuml;&Amacr;&amacr;&Abreve;&abreve;&Aogon;&aogon;&Cacute;&cacute;&Ccirc;&ccirc;&Cdot;&cdot;&Ccaron;&ccaron;&Dcaron;&dcaron;&Dstrok;&dstrok;&Emacr;&emacr;2&Edot;&edot;&Eogon;&eogon;&Ecaron;&ecaron;&Gcirc;&gcirc;&Gbreve;&gbreve;&Gdot;&gdot;&Gcedil;1&Hcirc;&hcirc;&Hstrok;&hstrok;&Itilde;&itilde;&Imacr;&imacr;2&Iogon;&iogon;&Idot;&imath;&IJlig;&ijlig;&Jcirc;&jcirc;&Kcedil;&kcedil;&kgreen;&Lacute;&lacute;&Lcedil;&lcedil;&Lcaron;&lcaron;&Lmidot;&lmidot;&Lstrok;&lstrok;&Nacute;&nacute;&Ncedil;&ncedil;&Ncaron;&ncaron;&napos;&ENG;&eng;&Omacr;&omacr;2&Odblac;&odblac;&OElig;&oelig;&Racute;&racute;&Rcedil;&rcedil;&Rcaron;&rcaron;&Sacute;&sacute;&Scirc;&scirc;&Scedil;&scedil;&Scaron;&scaron;&Tcedil;&tcedil;&Tcaron;&tcaron;&Tstrok;&tstrok;&Utilde;&utilde;&Umacr;&umacr;&Ubreve;&ubreve;&Uring;&uring;&Udblac;&udblac;&Uogon;&uogon;&Wcirc;&wcirc;&Ycirc;&ycirc;&Yuml;&Zacute;&zacute;&Zdot;&zdot;&Zcaron;&zcaron;j&fnof;y&imped;1r&gacute;1t&jmath;3y&circ;&caron;g&breve;&DiacriticalDot;&ring;&ogon;&DiacriticalTilde;&dblac;1f&DownBreve;3j&Alpha;&Beta;&Gamma;&Delta;&Epsilon;&Zeta;&Eta;&Theta;&Iota;&Kappa;&Lambda;&Mu;&Nu;&Xi;&Omicron;&Pi;&Rho;1&Sigma;&Tau;&Upsilon;&Phi;&Chi;&Psi;&ohm;7&alpha;&beta;&gamma;&delta;&epsi;&zeta;&eta;&theta;&iota;&kappa;&lambda;&mu;&nu;&xi;&omicron;&pi;&rho;&sigmaf;&sigma;&tau;&upsi;&phi;&chi;&psi;&omega;7&thetasym;&Upsi;2&phiv;&piv;5&Gammad;&digamma;i&kappav;&rhov;3&epsiv;&backepsilon;a&IOcy;&DJcy;&GJcy;&Jukcy;&DScy;&Iukcy;&YIcy;&Jsercy;&LJcy;&NJcy;&TSHcy;&KJcy;1&Ubrcy;&DZcy;&Acy;&Bcy;&Vcy;&Gcy;&Dcy;&IEcy;&ZHcy;&Zcy;&Icy;&Jcy;&Kcy;&Lcy;&Mcy;&Ncy;&Ocy;&Pcy;&Rcy;&Scy;&Tcy;&Ucy;&Fcy;&KHcy;&TScy;&CHcy;&SHcy;&SHCHcy;&HARDcy;&Ycy;&SOFTcy;&Ecy;&YUcy;&YAcy;&acy;&bcy;&vcy;&gcy;&dcy;&iecy;&zhcy;&zcy;&icy;&jcy;&kcy;&lcy;&mcy;&ncy;&ocy;&pcy;&rcy;&scy;&tcy;&ucy;&fcy;&khcy;&tscy;&chcy;&shcy;&shchcy;&hardcy;&ycy;&softcy;&ecy;&yucy;&yacy;1&iocy;&djcy;&gjcy;&jukcy;&dscy;&iukcy;&yicy;&jsercy;&ljcy;&njcy;&tshcy;&kjcy;1&ubrcy;&dzcy;5gi&ensp;&emsp;&emsp13;&emsp14;1&numsp;&puncsp;&ThinSpace;&hairsp;&NegativeMediumSpace;&zwnj;&zwj;&lrm;&rlm;&dash;2&ndash;&mdash;&horbar;&Verbar;1&lsquo;&CloseCurlyQuote;&lsquor;1&ldquo;&CloseCurlyDoubleQuote;&bdquo;1&dagger;&Dagger;&bull;2&nldr;&hellip;9&permil;&pertenk;&prime;&Prime;&tprime;&backprime;3&lsaquo;&rsaquo;3&oline;2&caret;1&hybull;&frasl;a&bsemi;7&qprime;7&MediumSpace;{6bu&ThickSpace;}&NoBreak;&af;&InvisibleTimes;&ic;20&euro;1a&tdot;&DotDot;11&complexes;2&incare;4&gscr;&hamilt;&Hfr;&Hopf;&planckh;&hbar;&imagline;&Ifr;&lagran;&ell;1&naturals;&numero;&copysr;&weierp;&Popf;&Qopf;&realine;&real;&reals;&rx;3&trade;1&integers;2&mho;&zeetrf;&iiota;2&bernou;&Cayleys;1&escr;&Escr;&Fouriertrf;1&Mellintrf;&order;&alefsym;&beth;&gimel;&daleth;c&CapitalDifferentialD;&dd;&ee;&ii;a&frac13;&frac23;&frac15;&frac25;&frac35;&frac45;&frac16;&frac56;&frac18;&frac38;&frac58;&frac78;1d&larr;&ShortUpArrow;&rarr;&darr;&harr;&updownarrow;&nwarr;&nearr;&LowerRightArrow;&LowerLeftArrow;&nlarr;&nrarr;1&rarrw;{mw&nrarrw;}&Larr;&Uarr;&Rarr;&Darr;&larrtl;&rarrtl;&LeftTeeArrow;&mapstoup;&map;&DownTeeArrow;1&hookleftarrow;&hookrightarrow;&larrlp;&looparrowright;&harrw;&nharr;1&lsh;&rsh;&ldsh;&rdsh;1&crarr;&cularr;&curarr;2&circlearrowleft;&circlearrowright;&leftharpoonup;&DownLeftVector;&RightUpVector;&LeftUpVector;&rharu;&DownRightVector;&dharr;&dharl;&RightArrowLeftArrow;&udarr;&LeftArrowRightArrow;&leftleftarrows;&upuparrows;&rightrightarrows;&ddarr;&leftrightharpoons;&Equilibrium;&nlArr;&nhArr;&nrArr;&DoubleLeftArrow;&DoubleUpArrow;&DoubleRightArrow;&dArr;&DoubleLeftRightArrow;&DoubleUpDownArrow;&nwArr;&neArr;&seArr;&swArr;&lAarr;&rAarr;1&zigrarr;6&larrb;&rarrb;f&DownArrowUpArrow;7&loarr;&roarr;&hoarr;&forall;&comp;&part;{mw&npart;}&exist;&nexist;&empty;1&Del;&Element;&NotElement;1&ni;&notni;2&prod;&coprod;&sum;&minus;&MinusPlus;&dotplus;1&Backslash;&lowast;&compfn;1&radic;2&prop;&infin;&angrt;&ang;{6he&nang;}&angmsd;&angsph;&mid;&nmid;&DoubleVerticalBar;&NotDoubleVerticalBar;&and;&or;&cap;{1e68&caps;}&cup;{1e68&cups;}&int;&Int;&iiint;&conint;&Conint;&Cconint;&cwint;&ClockwiseContourIntegral;&awconint;&there4;&becaus;&ratio;&Colon;&dotminus;1&mDDot;&homtht;&sim;{6he&nvsim;}&backsim;{mp&race;}&ac;{mr&acE;}&acd;&VerticalTilde;&NotTilde;&eqsim;{mw&nesim;}&sime;&NotTildeEqual;&cong;&simne;&ncong;&ap;&nap;&ape;&apid;{mw&napid;}&backcong;&asympeq;{6he&nvap;}&bump;{mw&nbump;}&bumpe;{mw&nbumpe;}&doteq;{mw&nedot;}&doteqdot;&efDot;&erDot;&Assign;&ecolon;&ecir;&circeq;1&wedgeq;&veeeq;1&triangleq;2&equest;&ne;&Congruent;{6hx&bnequiv;}&nequiv;1&le;{6he&nvle;}&ge;{6he&nvge;}&lE;{mw&nlE;}&gE;{mw&ngE;}&lnE;{1e68&lvertneqq;}&gnE;{1e68&gvertneqq;}&ll;{mw&nLtv;5uh&nLt;}&gg;{mw&nGtv;5uh&nGt;}&between;&NotCupCap;&nless;&ngt;&nle;&nge;&lesssim;&GreaterTilde;&nlsim;&ngsim;&LessGreater;&gl;&NotLessGreater;&NotGreaterLess;&pr;&sc;&prcue;&sccue;&PrecedesTilde;&scsim;{mw&NotSucceedsTilde;}&NotPrecedes;&NotSucceeds;&sub;{6he&NotSubset;}&sup;{6he&NotSuperset;}&nsub;&nsup;&sube;&supe;&NotSubsetEqual;&NotSupersetEqual;&subne;{1e68&varsubsetneq;}&supne;{1e68&varsupsetneq;}1&cupdot;&UnionPlus;&sqsub;{mw&NotSquareSubset;}&sqsup;{mw&NotSquareSuperset;}&sqsube;&sqsupe;&sqcap;{1e68&sqcaps;}&sqcup;{1e68&sqcups;}&CirclePlus;&CircleMinus;&CircleTimes;&osol;&CircleDot;&circledcirc;&circledast;1&circleddash;&boxplus;&boxminus;&boxtimes;&dotsquare;&RightTee;&dashv;&DownTee;&bot;1&models;&DoubleRightTee;&Vdash;&Vvdash;&VDash;&nvdash;&nvDash;&nVdash;&nVDash;&prurel;1&LeftTriangle;&RightTriangle;&LeftTriangleEqual;{6he&nvltrie;}&RightTriangleEqual;{6he&nvrtrie;}&origof;&imof;&multimap;&hercon;&intcal;&veebar;1&barvee;&angrtvb;&lrtri;&bigwedge;&bigvee;&bigcap;&bigcup;&diam;&sdot;&sstarf;&divideontimes;&bowtie;&ltimes;&rtimes;&leftthreetimes;&rightthreetimes;&backsimeq;&curlyvee;&curlywedge;&Sub;&Sup;&Cap;&Cup;&fork;&epar;&lessdot;&gtdot;&Ll;{mw&nLl;}&Gg;{mw&nGg;}&leg;{1e68&lesg;}&gel;{1e68&gesl;}2&cuepr;&cuesc;&NotPrecedesSlantEqual;&NotSucceedsSlantEqual;&NotSquareSubsetEqual;&NotSquareSupersetEqual;2&lnsim;&gnsim;&precnsim;&scnsim;&nltri;&NotRightTriangle;&nltrie;&NotRightTriangleEqual;&vellip;&ctdot;&utdot;&dtdot;&disin;&isinsv;&isins;&isindot;{mw&notindot;}&notinvc;&notinvb;1&isinE;{mw&notinE;}&nisd;&xnis;&nis;&notnivc;&notnivb;6&barwed;&Barwed;1&lceil;&rceil;&LeftFloor;&rfloor;&drcrop;&dlcrop;&urcrop;&ulcrop;&bnot;1&profline;&profsurf;1&telrec;&target;5&ulcorn;&urcorn;&dlcorn;&drcorn;2&frown;&smile;9&cylcty;&profalar;7&topbot;6&ovbar;1&solbar;1o&angzarr;1f&lmoustache;&rmoustache;2&OverBracket;&bbrk;&bbrktbrk;11&OverParenthesis;&UnderParenthesis;&OverBrace;&UnderBrace;2&trpezium;4&elinters;1n&blank;4k&circledS;1j&boxh;1&boxv;9&boxdr;3&boxdl;3&boxur;3&boxul;3&boxvr;7&boxvl;7&boxhd;7&boxhu;7&boxvh;j&boxH;&boxV;&boxdR;&boxDr;&boxDR;&boxdL;&boxDl;&boxDL;&boxuR;&boxUr;&boxUR;&boxuL;&boxUl;&boxUL;&boxvR;&boxVr;&boxVR;&boxvL;&boxVl;&boxVL;&boxHd;&boxhD;&boxHD;&boxHu;&boxhU;&boxHU;&boxvH;&boxVh;&boxVH;j&uhblk;3&lhblk;3&block;8&blk14;&blk12;&blk34;d&square;8&blacksquare;&EmptyVerySmallSquare;1&rect;&marker;2&fltns;1&bigtriangleup;&blacktriangle;&triangle;2&blacktriangleright;&rtri;3&bigtriangledown;&blacktriangledown;&dtri;2&blacktriangleleft;&ltri;6&loz;&cir;w&tridot;2&bigcirc;8&ultri;&urtri;&lltri;&EmptySmallSquare;&FilledSmallSquare;8&bigstar;&star;7&phone;1d&female;1&male;t&spades;2&clubs;1&hearts;&diamondsuit;3&sung;2&flat;&natural;&sharp;4j&check;3&cross;8&malt;l&sext;x&VerticalSeparator;p&lbbrk;&rbbrk;2c&bsolhsub;&suphsol;s&LeftDoubleBracket;&RightDoubleBracket;&lang;&rang;&Lang;&Rang;&loang;&roang;7&longleftarrow;&longrightarrow;&longleftrightarrow;&DoubleLongLeftArrow;&DoubleLongRightArrow;&DoubleLongLeftRightArrow;1&longmapsto;2&dzigrarr;76&nvlArr;&nvrArr;&nvHarr;&Map;6&lbarr;&bkarow;&lBarr;&dbkarow;&drbkarow;&DDotrahd;&UpArrowBar;&DownArrowBar;2&Rarrtl;2&latail;&ratail;&lAtail;&rAtail;&larrfs;&rarrfs;&larrbfs;&rarrbfs;2&nwarhk;&nearhk;&hksearow;&hkswarow;&nwnear;&nesear;&seswar;&swnwar;8&rarrc;{mw&nrarrc;}1&cudarrr;&ldca;&rdca;&cudarrl;&larrpl;2&curarrm;&cularrp;7&rarrpl;2&harrcir;&Uarrocir;&lurdshar;&ldrushar;2&LeftRightVector;&RightUpDownVector;&DownLeftRightVector;&LeftUpDownVector;&LeftVectorBar;&RightVectorBar;&RightUpVectorBar;&RightDownVectorBar;&DownLeftVectorBar;&DownRightVectorBar;&LeftUpVectorBar;&LeftDownVectorBar;&LeftTeeVector;&RightTeeVector;&RightUpTeeVector;&RightDownTeeVector;&DownLeftTeeVector;&DownRightTeeVector;&LeftUpTeeVector;&LeftDownTeeVector;&lHar;&uHar;&rHar;&dHar;&luruhar;&ldrdhar;&ruluhar;&rdldhar;&lharul;&llhard;&rharul;&lrhard;&udhar;&duhar;&RoundImplies;&erarr;&simrarr;&larrsim;&rarrsim;&rarrap;&ltlarr;1&gtrarr;&subrarr;1&suplarr;&lfisht;&rfisht;&ufisht;&dfisht;5&lopar;&ropar;4&lbrke;&rbrke;&lbrkslu;&rbrksld;&lbrksld;&rbrkslu;&langd;&rangd;&lparlt;&rpargt;&gtlPar;&ltrPar;3&vzigzag;1&vangrt;&angrtvbd;6&ange;&range;&dwangle;&uwangle;&angmsdaa;&angmsdab;&angmsdac;&angmsdad;&angmsdae;&angmsdaf;&angmsdag;&angmsdah;&bemptyv;&demptyv;&cemptyv;&raemptyv;&laemptyv;&ohbar;&omid;&opar;1&operp;1&olcross;&odsold;1&olcir;&ofcir;&olt;&ogt;&cirscir;&cirE;&solb;&bsolb;3&boxbox;3&trisb;&rtriltri;&LeftTriangleBar;{mw&NotLeftTriangleBar;}&RightTriangleBar;{mw&NotRightTriangleBar;}b&iinfin;&infintie;&nvinfin;4&eparsl;&smeparsl;&eqvparsl;5&blacklozenge;8&RuleDelayed;1&dsol;9&bigodot;&bigoplus;&bigotimes;1&biguplus;1&bigsqcup;5&iiiint;&fpartint;2&cirfnint;&awint;&rppolint;&scpolint;&npolint;&pointint;&quatint;&intlarhk;a&pluscir;&plusacir;&simplus;&plusdu;&plussim;&plustwo;1&mcomma;&minusdu;2&loplus;&roplus;&Cross;&timesd;&timesbar;1&smashp;&lotimes;&rotimes;&otimesas;&Otimes;&odiv;&triplus;&triminus;&tritime;&intprod;2&amalg;&capdot;1&ncup;&ncap;&capand;&cupor;&cupcap;&capcup;&cupbrcap;&capbrcup;&cupcup;&capcap;&ccups;&ccaps;2&ccupssm;2&And;&Or;&andand;&oror;&orslope;&andslope;1&andv;&orv;&andd;&ord;1&wedbar;6&sdote;3&simdot;2&congdot;{mw&ncongdot;}&easter;&apacir;&apE;{mw&napE;}&eplus;&pluse;&Esim;&Colone;&Equal;1&ddotseq;&equivDD;&ltcir;&gtcir;&ltquest;&gtquest;&leqslant;{mw&nleqslant;}&geqslant;{mw&ngeqslant;}&lesdot;&gesdot;&lesdoto;&gesdoto;&lesdotor;&gesdotol;&lap;&gap;&lne;&gne;&lnap;&gnap;&lEg;&gEl;&lsime;&gsime;&lsimg;&gsiml;&lgE;&glE;&lesges;&gesles;&els;&egs;&elsdot;&egsdot;&el;&eg;2&siml;&simg;&simlE;&simgE;&LessLess;{mw&NotNestedLessLess;}&GreaterGreater;{mw&NotNestedGreaterGreater;}1&glj;&gla;&ltcc;&gtcc;&lescc;&gescc;&smt;&lat;&smte;{1e68&smtes;}&late;{1e68&lates;}&bumpE;&PrecedesEqual;{mw&NotPrecedesEqual;}&sce;{mw&NotSucceedsEqual;}2&prE;&scE;&precneqq;&scnE;&prap;&scap;&precnapprox;&scnap;&Pr;&Sc;&subdot;&supdot;&subplus;&supplus;&submult;&supmult;&subedot;&supedot;&subE;{mw&nsubE;}&supE;{mw&nsupE;}&subsim;&supsim;2&subnE;{1e68&varsubsetneqq;}&supnE;{1e68&varsupsetneqq;}2&csub;&csup;&csube;&csupe;&subsup;&supsub;&subsub;&supsup;&suphsub;&supdsub;&forkv;&topfork;&mlcp;8&Dashv;1&Vdashl;&Barv;&vBar;&vBarv;1&Vbar;&Not;&bNot;&rnmid;&cirmid;&midcir;&topcir;&nhpar;&parsim;9&parsl;{6hx&nparsl;}y7r{17ks&Ascr;1&Cscr;&Dscr;2&Gscr;2&Jscr;&Kscr;2&Nscr;&Oscr;&Pscr;&Qscr;1&Sscr;&Tscr;&Uscr;&Vscr;&Wscr;&Xscr;&Yscr;&Zscr;&ascr;&bscr;&cscr;&dscr;1&fscr;1&hscr;&iscr;&jscr;&kscr;&lscr;&mscr;&nscr;1&pscr;&qscr;&rscr;&sscr;&tscr;&uscr;&vscr;&wscr;&xscr;&yscr;&zscr;1g&Afr;&Bfr;1&Dfr;&Efr;&Ffr;&Gfr;2&Jfr;&Kfr;&Lfr;&Mfr;&Nfr;&Ofr;&Pfr;&Qfr;1&Sfr;&Tfr;&Ufr;&Vfr;&Wfr;&Xfr;&Yfr;1&afr;&bfr;&cfr;&dfr;&efr;&ffr;&gfr;&hfr;&ifr;&jfr;&kfr;&lfr;&mfr;&nfr;&ofr;&pfr;&qfr;&rfr;&sfr;&tfr;&ufr;&vfr;&wfr;&xfr;&yfr;&zfr;&Aopf;&Bopf;1&Dopf;&Eopf;&Fopf;&Gopf;1&Iopf;&Jopf;&Kopf;&Lopf;&Mopf;1&Oopf;3&Sopf;&Topf;&Uopf;&Vopf;&Wopf;&Xopf;&Yopf;1&aopf;&bopf;&copf;&dopf;&eopf;&fopf;&gopf;&hopf;&iopf;&jopf;&kopf;&lopf;&mopf;&nopf;&oopf;&popf;&qopf;&ropf;&sopf;&topf;&uopf;&vopf;&wopf;&xopf;&yopf;&zopf;}6ve&fflig;&filig;&fllig;&ffilig;&ffllig;");
Object.defineProperty(mr, "__esModule", {value: !0});
mr.encodeHTML = E2;
mr.encodeNonAsciiHTML = T2;
const mo = nu, b2 = Cu, g2 = new Uint32Array([5632, 4227923966, 4160749569, 939524097]),
    m2 = new Uint32Array([0, mo.XML_BITSET_VALUE, 0, 0]);

function E2(e) {
    return Eo(g2, e)
}

function T2(e) {
    return Eo(m2, e)
}

function Eo(e, t) {
    let r, u = 0;
    const {length: n} = t;
    for (let i = 0; i < n; i++) {
        const a = t.charCodeAt(i);
        if (a < 128 && !(e[a >>> 5] >>> a & 1)) continue;
        r === void 0 ? r = t.substring(0, i) : u !== i && (r += t.substring(u, i));
        let s = b2.htmlTrie.get(a);
        if (typeof s == "object") {
            if (i + 1 < n) {
                const o = t.charCodeAt(i + 1),
                    l = typeof s.next == "number" ? s.next === o ? s.nextValue : void 0 : s.next.get(o);
                if (l !== void 0) {
                    r += l, i++, u = i + 1;
                    continue
                }
            }
            s = s.value
        }
        if (s === void 0) {
            const o = (0, mo.getCodePoint)(t, i);
            r += `&#x${o.toString(16)};`, o !== a && i++, u = i + 1
        } else r += s, u = i + 1
    }
    return r === void 0 ? t : (u < n && (r += t.substr(u)), r)
}

(function (e) {
    Object.defineProperty(e, "__esModule", {value: !0}), e.escapeUTF8 = e.escapeText = e.escapeAttribute = e.encodeXML = e.encodeNonAsciiHTML = e.encodeHTML5 = e.encodeHTML4 = e.encodeHTML = e.EntityDecoder = e.decodeXMLStrict = e.decodeXML = e.decodeHTML5Strict = e.decodeHTML4Strict = e.decodeHTMLStrict = e.decodeHTMLAttribute = e.decodeHTML5 = e.decodeHTML4 = e.decodeHTML = e.DecodingMode = e.EncodingMode = e.EntityLevel = void 0, e.decode = a, e.decodeStrict = s, e.encode = o;
    const t = hn, r = mr, u = nu;
    var n;
    (function (g) {
        g[g.XML = 0] = "XML", g[g.HTML = 1] = "HTML"
    })(n || (e.EntityLevel = n = {}));
    var i;
    (function (g) {
        g[g.UTF8 = 0] = "UTF8", g[g.ASCII = 1] = "ASCII", g[g.Extensive = 2] = "Extensive", g[g.Attribute = 3] = "Attribute", g[g.Text = 4] = "Text"
    })(i || (e.EncodingMode = i = {}));

    function a(g, d = n.XML) {
        if ((typeof d == "number" ? d : d.level) === n.HTML) {
            const A = typeof d == "object" ? d.mode : void 0;
            return (0, t.decodeHTML)(g, A)
        }
        return (0, t.decodeXML)(g)
    }

    function s(g, d = n.XML) {
        var E;
        const A = typeof d == "number" ? {level: d} : d;
        return (E = A.mode) !== null && E !== void 0 || (A.mode = t.DecodingMode.Strict), a(g, A)
    }

    function o(g, d = n.XML) {
        const {mode: E = i.Extensive, level: A = n.XML} = typeof d == "number" ? {level: d} : d;
        switch (E) {
            case i.UTF8:
                return (0, u.escapeUTF8)(g);
            case i.Attribute:
                return (0, u.escapeAttribute)(g);
            case i.Text:
                return (0, u.escapeText)(g);
            case i.ASCII:
                return A === n.HTML ? (0, r.encodeNonAsciiHTML)(g) : (0, u.encodeXML)(g);
            case i.Extensive:
            default:
                return A === n.HTML ? (0, r.encodeHTML)(g) : (0, u.encodeXML)(g)
        }
    }

    var l = hn;
    Object.defineProperty(e, "DecodingMode", {
        enumerable: !0, get: function () {
            return l.DecodingMode
        }
    }), Object.defineProperty(e, "decodeHTML", {
        enumerable: !0, get: function () {
            return l.decodeHTML
        }
    }), Object.defineProperty(e, "decodeHTML4", {
        enumerable: !0, get: function () {
            return l.decodeHTML
        }
    }), Object.defineProperty(e, "decodeHTML5", {
        enumerable: !0, get: function () {
            return l.decodeHTML
        }
    }), Object.defineProperty(e, "decodeHTMLAttribute", {
        enumerable: !0, get: function () {
            return l.decodeHTMLAttribute
        }
    }), Object.defineProperty(e, "decodeHTMLStrict", {
        enumerable: !0, get: function () {
            return l.decodeHTMLStrict
        }
    }), Object.defineProperty(e, "decodeHTML4Strict", {
        enumerable: !0, get: function () {
            return l.decodeHTMLStrict
        }
    }), Object.defineProperty(e, "decodeHTML5Strict", {
        enumerable: !0, get: function () {
            return l.decodeHTMLStrict
        }
    }), Object.defineProperty(e, "decodeXML", {
        enumerable: !0, get: function () {
            return l.decodeXML
        }
    }), Object.defineProperty(e, "decodeXMLStrict", {
        enumerable: !0, get: function () {
            return l.decodeXML
        }
    }), Object.defineProperty(e, "EntityDecoder", {
        enumerable: !0, get: function () {
            return l.EntityDecoder
        }
    });
    var h = mr;
    Object.defineProperty(e, "encodeHTML", {
        enumerable: !0, get: function () {
            return h.encodeHTML
        }
    }), Object.defineProperty(e, "encodeHTML4", {
        enumerable: !0, get: function () {
            return h.encodeHTML
        }
    }), Object.defineProperty(e, "encodeHTML5", {
        enumerable: !0, get: function () {
            return h.encodeHTML
        }
    }), Object.defineProperty(e, "encodeNonAsciiHTML", {
        enumerable: !0, get: function () {
            return h.encodeNonAsciiHTML
        }
    });
    var p = nu;
    Object.defineProperty(e, "encodeXML", {
        enumerable: !0, get: function () {
            return p.encodeXML
        }
    }), Object.defineProperty(e, "escape", {
        enumerable: !0, get: function () {
            return p.escape
        }
    }), Object.defineProperty(e, "escapeAttribute", {
        enumerable: !0, get: function () {
            return p.escapeAttribute
        }
    }), Object.defineProperty(e, "escapeText", {
        enumerable: !0, get: function () {
            return p.escapeText
        }
    }), Object.defineProperty(e, "escapeUTF8", {
        enumerable: !0, get: function () {
            return p.escapeUTF8
        }
    })
})(go);
var ri = {};
ri.romanize = function (e) {
    if (isNaN(e)) return NaN;
    for (var t = String(+e).split(""), r = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"], u = "", n = 3; n--;) u = (r[+t.pop() + n * 10] || "") + u;
    return Array(+t.join("") + 1).join("M") + u
};
ri.alphanumeric = function (e) {
    for (var t = "", r; e > 0;) r = (e - 1) % 26, t = String.fromCharCode(65 + r) + t, e = (e - r) / 26 | 0;
    return t || void 0
};
const _2 = e => {
    let t = "";
    do t = (Math.random() + 1).toString(36).substring(2); while (e.indexOf(t) !== -1);
    return t
}, x2 = (e, t) => {
    let r = /([a-z\-]+)\s*\(\s*([^\(\)]*?)\s*(?:,\s*([^\(\)]*?)\s*)?\s*\)/i, u = [], n, i = _2(t);
    for (; (n = r.exec(t)) !== null;) {
        let s = `${u.length}`;
        if (n[1].toLowerCase() == "var") {
            const l = To(e, n[2]);
            if (l) {
                t = t.replace(n[0], l);
                continue
            }
            if (n[3]) {
                t = t.replace(n[0], n[3]);
                continue
            }
        }
        let o = `${i}${s.padStart(5, "-")}`;
        t = t.replace(n[0], o), u.push({placeholder: o, replace: n[0]})
    }
    for (var a = u.length - 1; a >= 0; a--) {
        const s = u[a];
        t = t.replace(s.placeholder, s.replace)
    }
    return t
}, To = (e, t) => {
    for (; e;) {
        if (e.styleProps && t in e.styleProps) return e.styleProps[t].value;
        var e = e.pseudoElementParent || e.parent
    }
};
var C2 = {replaceVariables: x2, findVariableValue: To}, {decode: I2} = go, st = ei(), Fr = ri, ca = C2,
    y2 = function (t) {
        t.ignoredPseudos = ["hover", "active", "focus", "visited", "link"], t.widthElements = ["TABLE", "TD", "TH", "IMG"], t.heightElements = ["TABLE", "TD", "TH", "IMG"], t.tableElements = ["TABLE", "TH", "TR", "TD", "CAPTION", "COLGROUP", "COL", "THEAD", "TBODY", "TFOOT"], t.nonVisualElements = ["HEAD", "TITLE", "BASE", "LINK", "STYLE", "META", "SCRIPT", "NOSCRIPT"], t.styleToAttribute = {
            "background-color": "bgcolor",
            "background-image": "background",
            "text-align": "align",
            "vertical-align": "valign"
        }, t.excludedProperties = [], t.juiceDocument = l, t.inlineDocument = r;

        function r(d, E, A) {
            A = A || {};
            var x = st.parseCSS(E), _ = [], y = "style", v = {}, D = A.removeInlinedSelectors ? new Set : null;
            A.styleAttributeName && (y = A.styleAttributeName);

            function S(T) {
                var f = T[0], C = T[1], q = new st.Selector(f), O = q.parsed();
                if (O) {
                    for (var U = a(O), G = 0; G < O.length; ++G) {
                        var ae = O[G];
                        if (ae.pseudos) for (var W = 0; W < ae.pseudos.length; ++W) {
                            var Y = ae.pseudos[W];
                            if (t.ignoredPseudos.indexOf(Y.name) >= 0) return
                        }
                    }
                    if (U) {
                        var le = O[O.length - 1], se = le.pseudos;
                        le.pseudos = o(le.pseudos), f = O.toString(), le.pseudos = se
                    }
                    var ne;
                    try {
                        ne = d(f)
                    } catch {
                        return
                    }
                    var ke = !1;
                    ne.each(function () {
                        var Ae = this;
                        if (Ae.name && t.nonVisualElements.indexOf(Ae.name.toUpperCase()) >= 0) return;
                        if (ke = !0, Ae.counterProps || (Ae.counterProps = Ae.parent && Ae.parent.counterProps ? Object.create(Ae.parent.counterProps) : {}), U) {
                            var pe = "pseudo" + U, be = Ae[pe];
                            be || (be = Ae[pe] = d("<span />").get(0), be.pseudoElementType = U, be.pseudoElementParent = Ae, be.counterProps = Ae.counterProps, Ae[pe] = be), Ae = be
                        }
                        if (!Ae.styleProps) {
                            if (Ae.styleProps = {}, d(Ae).attr(y)) {
                                var we = d(Ae).attr(y), ve = A.decodeStyleAttributes ? I2(we) : we,
                                    Je = "* { " + ve + " } ";
                                V(st.parseCSS(Je)[0][1], new st.Selector("<style>", !0))
                            }
                            _.push(Ae)
                        }

                        function qe(K, w) {
                            for (var k = w.split(/\s+/), F = 0; F < k.length; F++) {
                                var J = k[F], X = parseInt(k[F + 1], 10);
                                isNaN(X) ? K.counterProps[J] = v[J] = 0 : K.counterProps[J] = v[k[F++]] = X
                            }
                        }

                        function m(K, w) {
                            for (var k = w.split(/\s+/), F = 0; F < k.length; F++) {
                                var J = k[F];
                                if (K.counterProps[J] !== void 0) {
                                    var X = parseInt(k[F + 1], 10);
                                    isNaN(X) ? K.counterProps[J] = v[J] += 1 : K.counterProps[J] = v[k[F++]] += X
                                }
                            }
                        }

                        function V(K, w) {
                            for (var k = 0, F = K.length; k < F; k++) if (K[k].type == "property") {
                                var J = K[k].name, X = K[k].value;
                                J === "counter-reset" && qe(Ae, X), J === "counter-increment" && m(Ae, X);
                                var Q = X.match(/!important$/) !== null;
                                Q && !A.preserveImportant && (X = u(X));
                                var ue = [K[k].position.start.line, K[k].position.start.col],
                                    ie = new st.Property(J, X, w, Q ? 2 : 0, ue), re = Ae.styleProps[J];
                                if (t.excludedProperties.indexOf(J) < 0) if (A.inlineDuplicateProperties) if (re) if (re.selector === w) ie.nextProp = re, Ae.styleProps[J] = ie; else {
                                    for (var ce = re; ce.nextProp;) ce = ce.nextProp;
                                    ce.nextProp = ie
                                } else Ae.styleProps[J] = ie; else (re && re.compare(ie) === ie || !re) && (re && re.selector !== w ? delete Ae.styleProps[J] : re && (ie.nextProp = re), Ae.styleProps[J] = ie)
                            }
                        }

                        V(C, q)
                    }), ke && D && D.add(T[0])
                }
            }

            function L(T) {
                Object.keys(T.styleProps).length;
                var f = [];
                Object.keys(T.styleProps).forEach(function (q) {
                    for (var O = T.styleProps[q]; typeof O < "u";) f.push(O), O = O.nextProp
                }), f.sort(function (q, O) {
                    return q.compareFunc(O)
                });
                var C = f.filter(function (q) {
                    return A.resolveCSSVariables && q.prop.indexOf("--") === 0 ? !1 : q.prop !== "content"
                }).map(function (q) {
                    return A.resolveCSSVariables && (q.value = ca.replaceVariables(T, q.value)), q.prop + ": " + q.value.replace(/["]/g, "'") + ";"
                }).join(" ");
                C && d(T).attr(y, C)
            }

            function M(T) {
                if (T.pseudoElementType && T.styleProps.content) {
                    var f = i(T);
                    f.img ? (T.name = "img", d(T).attr("src", f.img)) : d(T).text(f);
                    var C = T.pseudoElementParent;
                    T.pseudoElementType === "before" ? d(C).prepend(T) : d(C).append(T)
                }
            }

            function z(T, f) {
                if (T.name) {
                    var C = T.name.toUpperCase();
                    if (t[f + "Elements"].indexOf(C) > -1) {
                        for (var q in T.styleProps) if (T.styleProps[q].prop === f) {
                            var O = T.styleProps[q].value;
                            if (A.preserveImportant && (O = u(O)), O.match(/(px|auto)/)) {
                                var U = O.replace("px", "");
                                d(T).attr(f, U);
                                return
                            }
                            if (t.tableElements.indexOf(C) > -1 && O.match(/\%/)) {
                                d(T).attr(f, O);
                                return
                            }
                        }
                    }
                }
            }

            function B(T) {
                return T.indexOf("url(") !== 0 ? T : T.replace(/^url\((["'])?([^"']+)\1\)$/, "$2")
            }

            function P(T) {
                if (T.name) {
                    var f = T.name.toUpperCase(), C = Object.keys(t.styleToAttribute);
                    if (t.tableElements.indexOf(f) > -1) {
                        for (var q in T.styleProps) if (C.indexOf(T.styleProps[q].prop) > -1) {
                            var O = t.styleToAttribute[T.styleProps[q].prop], U = T.styleProps[q].value;
                            if (A.preserveImportant && (U = u(U)), O === "background" && (U = B(U)), /(linear|radial)-gradient\(/i.test(U)) continue;
                            d(T).attr(O, U)
                        }
                    }
                }
            }

            if (x.forEach(S), _.forEach(L), A.inlinePseudoElements && _.forEach(M), A.applyWidthAttributes && _.forEach(function (T) {
                z(T, "width")
            }), A.applyHeightAttributes && _.forEach(function (T) {
                z(T, "height")
            }), A.applyAttributesTableElements && _.forEach(P), A.insertPreservedExtraCss && A.extraCss) {
                var j = st.getPreservedText(A.extraCss, {
                    mediaQueries: A.preserveMediaQueries,
                    fontFaces: A.preserveFontFaces,
                    keyFrames: A.preserveKeyFrames,
                    preservedSelectors: A.preservedSelectors
                });
                if (j) {
                    var b = null;
                    A.insertPreservedExtraCss !== !0 ? b = d(A.insertPreservedExtraCss) : (b = d("head"), b.length || (b = d("body")), b.length || (b = d.root())), b.first().append("<style>" + j + "</style>")
                }
            }
            return D
        }

        function u(d) {
            return d.replace(/\s*!important$/, "")
        }

        function n(d, E) {
            switch (E) {
                case"lower-roman":
                    return Fr.romanize(d).toLowerCase();
                case"upper-roman":
                    return Fr.romanize(d);
                case"lower-latin":
                case"lower-alpha":
                    return Fr.alphanumeric(d).toLowerCase();
                case"upper-latin":
                case"upper-alpha":
                    return Fr.alphanumeric(d);
                default:
                    return d.toString()
            }
        }

        function i(d) {
            var E = d.styleProps.content.value;
            if (E === "none" || E === "normal") return "";
            var A = E.match(/^\s*url\s*\(\s*(.*?)\s*\)\s*$/i);
            if (A) {
                var x = A[1].replace(/^['"]|['"]$/g, "");
                return {img: x}
            }
            for (var _ = [], y = E.split(/['"]/), v = 0; v < y.length; v++) if (y[v] !== "") {
                var D = y[v].match(/var\s*\(\s*(.*?)\s*(,\s*(.*?)\s*)?\s*\)/i);
                if (D) {
                    var S = ca.findVariableValue(d, D[1]) || D[2];
                    _.push(S.replace(/^['"]|['"]$/g, ""));
                    continue
                }
                var L = y[v].match(/counter\s*\(\s*(.*?)\s*(,\s*(.*?)\s*)?\s*\)/i);
                if (L && L[1] in d.counterProps) {
                    var M = d.counterProps[L[1]];
                    _.push(n(M, L[3]));
                    continue
                }
                var z = y[v].match(/attr\s*\(\s*(.*?)\s*\)/i);
                if (z) {
                    var B = z[1];
                    _.push(d.pseudoElementParent ? d.pseudoElementParent.attribs[B] : d.attribs[B]);
                    continue
                }
                _.push(y[v])
            }
            return E = _.join(""), E = E.replace(/\\/g, ""), E
        }

        function a(d) {
            if (d.length !== 0) {
                var E = d[d.length - 1].pseudos;
                if (E) {
                    for (var A = 0; A < E.length; A++) if (s(E[A])) return E[A].name
                }
            }
        }

        function s(d) {
            return d.name === "before" || d.name === "after"
        }

        function o(d) {
            return d.filter(function (E) {
                return !s(E)
            })
        }

        function l(d, E) {
            E = st.getDefaultOptions(E);
            var A = g(d, E);
            A += `
` + E.extraCss;
            var x = r(d, A, E);
            return x && !E.removeStyleTags && h(d, x, E), d
        }

        function h(d, E, A) {
            var x = d("style");
            x.each(function () {
                var _ = this, y = _.childNodes;
                if (y.length === 1 && d(_).attr("data-embed") === void 0) {
                    var v = y[0].nodeValue, D = st.removeInlinedSelectorsFromCSS(v, E, A, t.ignoredPseudos);
                    D && D.trim() ? _.childNodes[0].nodeValue = D : d(_).remove()
                }
            })
        }

        function p(d, E) {
            var A = [], x = d("style"), _, y, v;
            return x.each(function () {
                if (v = this, _ = v.childNodes, _.length !== 1) {
                    E.removeStyleTags && d(v).remove();
                    return
                }
                if (y = _[0].data, E.applyStyleTags && d(v).attr("data-embed") === void 0 && A.push(y), E.removeStyleTags && d(v).attr("data-embed") === void 0) {
                    var D = v.childNodes[0].nodeValue, S = st.getPreservedText(D, {
                        mediaQueries: E.preserveMediaQueries,
                        fontFaces: E.preserveFontFaces,
                        keyFrames: E.preserveKeyFrames,
                        pseudos: E.preservePseudos,
                        preservedSelectors: E.preservedSelectors
                    }, t.ignoredPseudos);
                    S ? v.childNodes[0].nodeValue = S : d(v).remove()
                }
                d(v).removeAttr("data-embed")
            }), A
        }

        function g(d, E) {
            var A = p(d, E), x = A.join(`
`);
            return x
        }

        return t
    }, ui = l2, k2 = y2, Er = k2(function (e, t) {
        return ui(e, {xmlMode: t && t.xmlMode}, S2, [t])
    }), S2 = function (e, t) {
        return Er.juiceDocument(e, t)
    };
Er.inlineContent = function (e, t, r) {
    return ui(e, {xmlMode: r && r.xmlMode}, Er.inlineDocument, [t, r])
};
Er.codeBlocks = ui.codeBlocks;
var v2 = Er;
const H2 = iu(v2);

function Mr(e) {
    throw new Error('Could not dynamically require "' + e + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')
}

var _o = {exports: {}};/*!

JSZip v3.10.1 - A JavaScript class for generating and reading zip files
<http://stuartk.com/jszip>

(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.

JSZip uses the library pako released under the MIT license :
https://github.com/nodeca/pako/blob/main/LICENSE
*/
(function (e, t) {
    (function (r) {
        e.exports = r()
    })(function () {
        return function r(u, n, i) {
            function a(l, h) {
                if (!n[l]) {
                    if (!u[l]) {
                        var p = typeof Mr == "function" && Mr;
                        if (!h && p) return p(l, !0);
                        if (s) return s(l, !0);
                        var g = new Error("Cannot find module '" + l + "'");
                        throw g.code = "MODULE_NOT_FOUND", g
                    }
                    var d = n[l] = {exports: {}};
                    u[l][0].call(d.exports, function (E) {
                        var A = u[l][1][E];
                        return a(A || E)
                    }, d, d.exports, r, u, n, i)
                }
                return n[l].exports
            }

            for (var s = typeof Mr == "function" && Mr, o = 0; o < i.length; o++) a(i[o]);
            return a
        }({
            1: [function (r, u, n) {
                var i = r("./utils"), a = r("./support"),
                    s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
                n.encode = function (o) {
                    for (var l, h, p, g, d, E, A, x = [], _ = 0, y = o.length, v = y, D = i.getTypeOf(o) !== "string"; _ < o.length;) v = y - _, p = D ? (l = o[_++], h = _ < y ? o[_++] : 0, _ < y ? o[_++] : 0) : (l = o.charCodeAt(_++), h = _ < y ? o.charCodeAt(_++) : 0, _ < y ? o.charCodeAt(_++) : 0), g = l >> 2, d = (3 & l) << 4 | h >> 4, E = 1 < v ? (15 & h) << 2 | p >> 6 : 64, A = 2 < v ? 63 & p : 64, x.push(s.charAt(g) + s.charAt(d) + s.charAt(E) + s.charAt(A));
                    return x.join("")
                }, n.decode = function (o) {
                    var l, h, p, g, d, E, A = 0, x = 0, _ = "data:";
                    if (o.substr(0, _.length) === _) throw new Error("Invalid base64 input, it looks like a data url.");
                    var y, v = 3 * (o = o.replace(/[^A-Za-z0-9+/=]/g, "")).length / 4;
                    if (o.charAt(o.length - 1) === s.charAt(64) && v--, o.charAt(o.length - 2) === s.charAt(64) && v--, v % 1 != 0) throw new Error("Invalid base64 input, bad content length.");
                    for (y = a.uint8array ? new Uint8Array(0 | v) : new Array(0 | v); A < o.length;) l = s.indexOf(o.charAt(A++)) << 2 | (g = s.indexOf(o.charAt(A++))) >> 4, h = (15 & g) << 4 | (d = s.indexOf(o.charAt(A++))) >> 2, p = (3 & d) << 6 | (E = s.indexOf(o.charAt(A++))), y[x++] = l, d !== 64 && (y[x++] = h), E !== 64 && (y[x++] = p);
                    return y
                }
            }, {"./support": 30, "./utils": 32}],
            2: [function (r, u, n) {
                var i = r("./external"), a = r("./stream/DataWorker"), s = r("./stream/Crc32Probe"),
                    o = r("./stream/DataLengthProbe");

                function l(h, p, g, d, E) {
                    this.compressedSize = h, this.uncompressedSize = p, this.crc32 = g, this.compression = d, this.compressedContent = E
                }

                l.prototype = {
                    getContentWorker: function () {
                        var h = new a(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o("data_length")),
                            p = this;
                        return h.on("end", function () {
                            if (this.streamInfo.data_length !== p.uncompressedSize) throw new Error("Bug : uncompressed data size mismatch")
                        }), h
                    }, getCompressedWorker: function () {
                        return new a(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize", this.compressedSize).withStreamInfo("uncompressedSize", this.uncompressedSize).withStreamInfo("crc32", this.crc32).withStreamInfo("compression", this.compression)
                    }
                }, l.createWorkerFrom = function (h, p, g) {
                    return h.pipe(new s).pipe(new o("uncompressedSize")).pipe(p.compressWorker(g)).pipe(new o("compressedSize")).withStreamInfo("compression", p)
                }, u.exports = l
            }, {"./external": 6, "./stream/Crc32Probe": 25, "./stream/DataLengthProbe": 26, "./stream/DataWorker": 27}],
            3: [function (r, u, n) {
                var i = r("./stream/GenericWorker");
                n.STORE = {
                    magic: "\0\0", compressWorker: function () {
                        return new i("STORE compression")
                    }, uncompressWorker: function () {
                        return new i("STORE decompression")
                    }
                }, n.DEFLATE = r("./flate")
            }, {"./flate": 7, "./stream/GenericWorker": 28}],
            4: [function (r, u, n) {
                var i = r("./utils"), a = function () {
                    for (var s, o = [], l = 0; l < 256; l++) {
                        s = l;
                        for (var h = 0; h < 8; h++) s = 1 & s ? 3988292384 ^ s >>> 1 : s >>> 1;
                        o[l] = s
                    }
                    return o
                }();
                u.exports = function (s, o) {
                    return s !== void 0 && s.length ? i.getTypeOf(s) !== "string" ? function (l, h, p, g) {
                        var d = a, E = g + p;
                        l ^= -1;
                        for (var A = g; A < E; A++) l = l >>> 8 ^ d[255 & (l ^ h[A])];
                        return -1 ^ l
                    }(0 | o, s, s.length, 0) : function (l, h, p, g) {
                        var d = a, E = g + p;
                        l ^= -1;
                        for (var A = g; A < E; A++) l = l >>> 8 ^ d[255 & (l ^ h.charCodeAt(A))];
                        return -1 ^ l
                    }(0 | o, s, s.length, 0) : 0
                }
            }, {"./utils": 32}],
            5: [function (r, u, n) {
                n.base64 = !1, n.binary = !1, n.dir = !1, n.createFolders = !0, n.date = null, n.compression = null, n.compressionOptions = null, n.comment = null, n.unixPermissions = null, n.dosPermissions = null
            }, {}],
            6: [function (r, u, n) {
                var i = null;
                i = typeof Promise < "u" ? Promise : r("lie"), u.exports = {Promise: i}
            }, {lie: 37}],
            7: [function (r, u, n) {
                var i = typeof Uint8Array < "u" && typeof Uint16Array < "u" && typeof Uint32Array < "u", a = r("pako"),
                    s = r("./utils"), o = r("./stream/GenericWorker"), l = i ? "uint8array" : "array";

                function h(p, g) {
                    o.call(this, "FlateWorker/" + p), this._pako = null, this._pakoAction = p, this._pakoOptions = g, this.meta = {}
                }

                n.magic = "\b\0", s.inherits(h, o), h.prototype.processChunk = function (p) {
                    this.meta = p.meta, this._pako === null && this._createPako(), this._pako.push(s.transformTo(l, p.data), !1)
                }, h.prototype.flush = function () {
                    o.prototype.flush.call(this), this._pako === null && this._createPako(), this._pako.push([], !0)
                }, h.prototype.cleanUp = function () {
                    o.prototype.cleanUp.call(this), this._pako = null
                }, h.prototype._createPako = function () {
                    this._pako = new a[this._pakoAction]({raw: !0, level: this._pakoOptions.level || -1});
                    var p = this;
                    this._pako.onData = function (g) {
                        p.push({data: g, meta: p.meta})
                    }
                }, n.compressWorker = function (p) {
                    return new h("Deflate", p)
                }, n.uncompressWorker = function () {
                    return new h("Inflate", {})
                }
            }, {"./stream/GenericWorker": 28, "./utils": 32, pako: 38}],
            8: [function (r, u, n) {
                function i(d, E) {
                    var A, x = "";
                    for (A = 0; A < E; A++) x += String.fromCharCode(255 & d), d >>>= 8;
                    return x
                }

                function a(d, E, A, x, _, y) {
                    var v, D, S = d.file, L = d.compression, M = y !== l.utf8encode,
                        z = s.transformTo("string", y(S.name)), B = s.transformTo("string", l.utf8encode(S.name)),
                        P = S.comment, j = s.transformTo("string", y(P)), b = s.transformTo("string", l.utf8encode(P)),
                        T = B.length !== S.name.length, f = b.length !== P.length, C = "", q = "", O = "", U = S.dir,
                        G = S.date, ae = {crc32: 0, compressedSize: 0, uncompressedSize: 0};
                    E && !A || (ae.crc32 = d.crc32, ae.compressedSize = d.compressedSize, ae.uncompressedSize = d.uncompressedSize);
                    var W = 0;
                    E && (W |= 8), M || !T && !f || (W |= 2048);
                    var Y = 0, le = 0;
                    U && (Y |= 16), _ === "UNIX" ? (le = 798, Y |= function (ne, ke) {
                        var Ae = ne;
                        return ne || (Ae = ke ? 16893 : 33204), (65535 & Ae) << 16
                    }(S.unixPermissions, U)) : (le = 20, Y |= function (ne) {
                        return 63 & (ne || 0)
                    }(S.dosPermissions)), v = G.getUTCHours(), v <<= 6, v |= G.getUTCMinutes(), v <<= 5, v |= G.getUTCSeconds() / 2, D = G.getUTCFullYear() - 1980, D <<= 4, D |= G.getUTCMonth() + 1, D <<= 5, D |= G.getUTCDate(), T && (q = i(1, 1) + i(h(z), 4) + B, C += "up" + i(q.length, 2) + q), f && (O = i(1, 1) + i(h(j), 4) + b, C += "uc" + i(O.length, 2) + O);
                    var se = "";
                    return se += `
\0`, se += i(W, 2), se += L.magic, se += i(v, 2), se += i(D, 2), se += i(ae.crc32, 4), se += i(ae.compressedSize, 4), se += i(ae.uncompressedSize, 4), se += i(z.length, 2), se += i(C.length, 2), {
                        fileRecord: p.LOCAL_FILE_HEADER + se + z + C,
                        dirRecord: p.CENTRAL_FILE_HEADER + i(le, 2) + se + i(j.length, 2) + "\0\0\0\0" + i(Y, 4) + i(x, 4) + z + C + j
                    }
                }

                var s = r("../utils"), o = r("../stream/GenericWorker"), l = r("../utf8"), h = r("../crc32"),
                    p = r("../signature");

                function g(d, E, A, x) {
                    o.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = E, this.zipPlatform = A, this.encodeFileName = x, this.streamFiles = d, this.accumulate = !1, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = []
                }

                s.inherits(g, o), g.prototype.push = function (d) {
                    var E = d.meta.percent || 0, A = this.entriesCount, x = this._sources.length;
                    this.accumulate ? this.contentBuffer.push(d) : (this.bytesWritten += d.data.length, o.prototype.push.call(this, {
                        data: d.data,
                        meta: {currentFile: this.currentFile, percent: A ? (E + 100 * (A - x - 1)) / A : 100}
                    }))
                }, g.prototype.openedSource = function (d) {
                    this.currentSourceOffset = this.bytesWritten, this.currentFile = d.file.name;
                    var E = this.streamFiles && !d.file.dir;
                    if (E) {
                        var A = a(d, E, !1, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
                        this.push({data: A.fileRecord, meta: {percent: 0}})
                    } else this.accumulate = !0
                }, g.prototype.closedSource = function (d) {
                    this.accumulate = !1;
                    var E = this.streamFiles && !d.file.dir,
                        A = a(d, E, !0, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
                    if (this.dirRecords.push(A.dirRecord), E) this.push({
                        data: function (x) {
                            return p.DATA_DESCRIPTOR + i(x.crc32, 4) + i(x.compressedSize, 4) + i(x.uncompressedSize, 4)
                        }(d), meta: {percent: 100}
                    }); else for (this.push({
                        data: A.fileRecord,
                        meta: {percent: 0}
                    }); this.contentBuffer.length;) this.push(this.contentBuffer.shift());
                    this.currentFile = null
                }, g.prototype.flush = function () {
                    for (var d = this.bytesWritten, E = 0; E < this.dirRecords.length; E++) this.push({
                        data: this.dirRecords[E],
                        meta: {percent: 100}
                    });
                    var A = this.bytesWritten - d, x = function (_, y, v, D, S) {
                        var L = s.transformTo("string", S(D));
                        return p.CENTRAL_DIRECTORY_END + "\0\0\0\0" + i(_, 2) + i(_, 2) + i(y, 4) + i(v, 4) + i(L.length, 2) + L
                    }(this.dirRecords.length, A, d, this.zipComment, this.encodeFileName);
                    this.push({data: x, meta: {percent: 100}})
                }, g.prototype.prepareNextSource = function () {
                    this.previous = this._sources.shift(), this.openedSource(this.previous.streamInfo), this.isPaused ? this.previous.pause() : this.previous.resume()
                }, g.prototype.registerPrevious = function (d) {
                    this._sources.push(d);
                    var E = this;
                    return d.on("data", function (A) {
                        E.processChunk(A)
                    }), d.on("end", function () {
                        E.closedSource(E.previous.streamInfo), E._sources.length ? E.prepareNextSource() : E.end()
                    }), d.on("error", function (A) {
                        E.error(A)
                    }), this
                }, g.prototype.resume = function () {
                    return !!o.prototype.resume.call(this) && (!this.previous && this._sources.length ? (this.prepareNextSource(), !0) : this.previous || this._sources.length || this.generatedError ? void 0 : (this.end(), !0))
                }, g.prototype.error = function (d) {
                    var E = this._sources;
                    if (!o.prototype.error.call(this, d)) return !1;
                    for (var A = 0; A < E.length; A++) try {
                        E[A].error(d)
                    } catch {
                    }
                    return !0
                }, g.prototype.lock = function () {
                    o.prototype.lock.call(this);
                    for (var d = this._sources, E = 0; E < d.length; E++) d[E].lock()
                }, u.exports = g
            }, {"../crc32": 4, "../signature": 23, "../stream/GenericWorker": 28, "../utf8": 31, "../utils": 32}],
            9: [function (r, u, n) {
                var i = r("../compressions"), a = r("./ZipFileWorker");
                n.generateWorker = function (s, o, l) {
                    var h = new a(o.streamFiles, l, o.platform, o.encodeFileName), p = 0;
                    try {
                        s.forEach(function (g, d) {
                            p++;
                            var E = function (y, v) {
                                    var D = y || v, S = i[D];
                                    if (!S) throw new Error(D + " is not a valid compression method !");
                                    return S
                                }(d.options.compression, o.compression),
                                A = d.options.compressionOptions || o.compressionOptions || {}, x = d.dir, _ = d.date;
                            d._compressWorker(E, A).withStreamInfo("file", {
                                name: g,
                                dir: x,
                                date: _,
                                comment: d.comment || "",
                                unixPermissions: d.unixPermissions,
                                dosPermissions: d.dosPermissions
                            }).pipe(h)
                        }), h.entriesCount = p
                    } catch (g) {
                        h.error(g)
                    }
                    return h
                }
            }, {"../compressions": 3, "./ZipFileWorker": 8}],
            10: [function (r, u, n) {
                function i() {
                    if (!(this instanceof i)) return new i;
                    if (arguments.length) throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
                    this.files = Object.create(null), this.comment = null, this.root = "", this.clone = function () {
                        var a = new i;
                        for (var s in this) typeof this[s] != "function" && (a[s] = this[s]);
                        return a
                    }
                }

                (i.prototype = r("./object")).loadAsync = r("./load"), i.support = r("./support"), i.defaults = r("./defaults"), i.version = "3.10.1", i.loadAsync = function (a, s) {
                    return new i().loadAsync(a, s)
                }, i.external = r("./external"), u.exports = i
            }, {"./defaults": 5, "./external": 6, "./load": 11, "./object": 15, "./support": 30}],
            11: [function (r, u, n) {
                var i = r("./utils"), a = r("./external"), s = r("./utf8"), o = r("./zipEntries"),
                    l = r("./stream/Crc32Probe"), h = r("./nodejsUtils");

                function p(g) {
                    return new a.Promise(function (d, E) {
                        var A = g.decompressed.getContentWorker().pipe(new l);
                        A.on("error", function (x) {
                            E(x)
                        }).on("end", function () {
                            A.streamInfo.crc32 !== g.decompressed.crc32 ? E(new Error("Corrupted zip : CRC32 mismatch")) : d()
                        }).resume()
                    })
                }

                u.exports = function (g, d) {
                    var E = this;
                    return d = i.extend(d || {}, {
                        base64: !1,
                        checkCRC32: !1,
                        optimizedBinaryString: !1,
                        createFolders: !1,
                        decodeFileName: s.utf8decode
                    }), h.isNode && h.isStream(g) ? a.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")) : i.prepareContent("the loaded zip file", g, !0, d.optimizedBinaryString, d.base64).then(function (A) {
                        var x = new o(d);
                        return x.load(A), x
                    }).then(function (A) {
                        var x = [a.Promise.resolve(A)], _ = A.files;
                        if (d.checkCRC32) for (var y = 0; y < _.length; y++) x.push(p(_[y]));
                        return a.Promise.all(x)
                    }).then(function (A) {
                        for (var x = A.shift(), _ = x.files, y = 0; y < _.length; y++) {
                            var v = _[y], D = v.fileNameStr, S = i.resolve(v.fileNameStr);
                            E.file(S, v.decompressed, {
                                binary: !0,
                                optimizedBinaryString: !0,
                                date: v.date,
                                dir: v.dir,
                                comment: v.fileCommentStr.length ? v.fileCommentStr : null,
                                unixPermissions: v.unixPermissions,
                                dosPermissions: v.dosPermissions,
                                createFolders: d.createFolders
                            }), v.dir || (E.file(S).unsafeOriginalName = D)
                        }
                        return x.zipComment.length && (E.comment = x.zipComment), E
                    })
                }
            }, {
                "./external": 6,
                "./nodejsUtils": 14,
                "./stream/Crc32Probe": 25,
                "./utf8": 31,
                "./utils": 32,
                "./zipEntries": 33
            }],
            12: [function (r, u, n) {
                var i = r("../utils"), a = r("../stream/GenericWorker");

                function s(o, l) {
                    a.call(this, "Nodejs stream input adapter for " + o), this._upstreamEnded = !1, this._bindStream(l)
                }

                i.inherits(s, a), s.prototype._bindStream = function (o) {
                    var l = this;
                    (this._stream = o).pause(), o.on("data", function (h) {
                        l.push({data: h, meta: {percent: 0}})
                    }).on("error", function (h) {
                        l.isPaused ? this.generatedError = h : l.error(h)
                    }).on("end", function () {
                        l.isPaused ? l._upstreamEnded = !0 : l.end()
                    })
                }, s.prototype.pause = function () {
                    return !!a.prototype.pause.call(this) && (this._stream.pause(), !0)
                }, s.prototype.resume = function () {
                    return !!a.prototype.resume.call(this) && (this._upstreamEnded ? this.end() : this._stream.resume(), !0)
                }, u.exports = s
            }, {"../stream/GenericWorker": 28, "../utils": 32}],
            13: [function (r, u, n) {
                var i = r("readable-stream").Readable;

                function a(s, o, l) {
                    i.call(this, o), this._helper = s;
                    var h = this;
                    s.on("data", function (p, g) {
                        h.push(p) || h._helper.pause(), l && l(g)
                    }).on("error", function (p) {
                        h.emit("error", p)
                    }).on("end", function () {
                        h.push(null)
                    })
                }

                r("../utils").inherits(a, i), a.prototype._read = function () {
                    this._helper.resume()
                }, u.exports = a
            }, {"../utils": 32, "readable-stream": 16}],
            14: [function (r, u, n) {
                u.exports = {
                    isNode: typeof Buffer < "u", newBufferFrom: function (i, a) {
                        if (Buffer.from && Buffer.from !== Uint8Array.from) return Buffer.from(i, a);
                        if (typeof i == "number") throw new Error('The "data" argument must not be a number');
                        return new Buffer(i, a)
                    }, allocBuffer: function (i) {
                        if (Buffer.alloc) return Buffer.alloc(i);
                        var a = new Buffer(i);
                        return a.fill(0), a
                    }, isBuffer: function (i) {
                        return Buffer.isBuffer(i)
                    }, isStream: function (i) {
                        return i && typeof i.on == "function" && typeof i.pause == "function" && typeof i.resume == "function"
                    }
                }
            }, {}],
            15: [function (r, u, n) {
                function i(S, L, M) {
                    var z, B = s.getTypeOf(L), P = s.extend(M || {}, h);
                    P.date = P.date || new Date, P.compression !== null && (P.compression = P.compression.toUpperCase()), typeof P.unixPermissions == "string" && (P.unixPermissions = parseInt(P.unixPermissions, 8)), P.unixPermissions && 16384 & P.unixPermissions && (P.dir = !0), P.dosPermissions && 16 & P.dosPermissions && (P.dir = !0), P.dir && (S = _(S)), P.createFolders && (z = x(S)) && y.call(this, z, !0);
                    var j = B === "string" && P.binary === !1 && P.base64 === !1;
                    M && M.binary !== void 0 || (P.binary = !j), (L instanceof p && L.uncompressedSize === 0 || P.dir || !L || L.length === 0) && (P.base64 = !1, P.binary = !0, L = "", P.compression = "STORE", B = "string");
                    var b = null;
                    b = L instanceof p || L instanceof o ? L : E.isNode && E.isStream(L) ? new A(S, L) : s.prepareContent(S, L, P.binary, P.optimizedBinaryString, P.base64);
                    var T = new g(S, b, P);
                    this.files[S] = T
                }

                var a = r("./utf8"), s = r("./utils"), o = r("./stream/GenericWorker"), l = r("./stream/StreamHelper"),
                    h = r("./defaults"), p = r("./compressedObject"), g = r("./zipObject"), d = r("./generate"),
                    E = r("./nodejsUtils"), A = r("./nodejs/NodejsStreamInputAdapter"), x = function (S) {
                        S.slice(-1) === "/" && (S = S.substring(0, S.length - 1));
                        var L = S.lastIndexOf("/");
                        return 0 < L ? S.substring(0, L) : ""
                    }, _ = function (S) {
                        return S.slice(-1) !== "/" && (S += "/"), S
                    }, y = function (S, L) {
                        return L = L !== void 0 ? L : h.createFolders, S = _(S), this.files[S] || i.call(this, S, null, {
                            dir: !0,
                            createFolders: L
                        }), this.files[S]
                    };

                function v(S) {
                    return Object.prototype.toString.call(S) === "[object RegExp]"
                }

                var D = {
                    load: function () {
                        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")
                    }, forEach: function (S) {
                        var L, M, z;
                        for (L in this.files) z = this.files[L], (M = L.slice(this.root.length, L.length)) && L.slice(0, this.root.length) === this.root && S(M, z)
                    }, filter: function (S) {
                        var L = [];
                        return this.forEach(function (M, z) {
                            S(M, z) && L.push(z)
                        }), L
                    }, file: function (S, L, M) {
                        if (arguments.length !== 1) return S = this.root + S, i.call(this, S, L, M), this;
                        if (v(S)) {
                            var z = S;
                            return this.filter(function (P, j) {
                                return !j.dir && z.test(P)
                            })
                        }
                        var B = this.files[this.root + S];
                        return B && !B.dir ? B : null
                    }, folder: function (S) {
                        if (!S) return this;
                        if (v(S)) return this.filter(function (B, P) {
                            return P.dir && S.test(B)
                        });
                        var L = this.root + S, M = y.call(this, L), z = this.clone();
                        return z.root = M.name, z
                    }, remove: function (S) {
                        S = this.root + S;
                        var L = this.files[S];
                        if (L || (S.slice(-1) !== "/" && (S += "/"), L = this.files[S]), L && !L.dir) delete this.files[S]; else for (var M = this.filter(function (B, P) {
                            return P.name.slice(0, S.length) === S
                        }), z = 0; z < M.length; z++) delete this.files[M[z].name];
                        return this
                    }, generate: function () {
                        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")
                    }, generateInternalStream: function (S) {
                        var L, M = {};
                        try {
                            if ((M = s.extend(S || {}, {
                                streamFiles: !1,
                                compression: "STORE",
                                compressionOptions: null,
                                type: "",
                                platform: "DOS",
                                comment: null,
                                mimeType: "application/zip",
                                encodeFileName: a.utf8encode
                            })).type = M.type.toLowerCase(), M.compression = M.compression.toUpperCase(), M.type === "binarystring" && (M.type = "string"), !M.type) throw new Error("No output type specified.");
                            s.checkSupport(M.type), M.platform !== "darwin" && M.platform !== "freebsd" && M.platform !== "linux" && M.platform !== "sunos" || (M.platform = "UNIX"), M.platform === "win32" && (M.platform = "DOS");
                            var z = M.comment || this.comment || "";
                            L = d.generateWorker(this, M, z)
                        } catch (B) {
                            (L = new o("error")).error(B)
                        }
                        return new l(L, M.type || "string", M.mimeType)
                    }, generateAsync: function (S, L) {
                        return this.generateInternalStream(S).accumulate(L)
                    }, generateNodeStream: function (S, L) {
                        return (S = S || {}).type || (S.type = "nodebuffer"), this.generateInternalStream(S).toNodejsStream(L)
                    }
                };
                u.exports = D
            }, {
                "./compressedObject": 2,
                "./defaults": 5,
                "./generate": 9,
                "./nodejs/NodejsStreamInputAdapter": 12,
                "./nodejsUtils": 14,
                "./stream/GenericWorker": 28,
                "./stream/StreamHelper": 29,
                "./utf8": 31,
                "./utils": 32,
                "./zipObject": 35
            }],
            16: [function (r, u, n) {
                u.exports = r("stream")
            }, {stream: void 0}],
            17: [function (r, u, n) {
                var i = r("./DataReader");

                function a(s) {
                    i.call(this, s);
                    for (var o = 0; o < this.data.length; o++) s[o] = 255 & s[o]
                }

                r("../utils").inherits(a, i), a.prototype.byteAt = function (s) {
                    return this.data[this.zero + s]
                }, a.prototype.lastIndexOfSignature = function (s) {
                    for (var o = s.charCodeAt(0), l = s.charCodeAt(1), h = s.charCodeAt(2), p = s.charCodeAt(3), g = this.length - 4; 0 <= g; --g) if (this.data[g] === o && this.data[g + 1] === l && this.data[g + 2] === h && this.data[g + 3] === p) return g - this.zero;
                    return -1
                }, a.prototype.readAndCheckSignature = function (s) {
                    var o = s.charCodeAt(0), l = s.charCodeAt(1), h = s.charCodeAt(2), p = s.charCodeAt(3),
                        g = this.readData(4);
                    return o === g[0] && l === g[1] && h === g[2] && p === g[3]
                }, a.prototype.readData = function (s) {
                    if (this.checkOffset(s), s === 0) return [];
                    var o = this.data.slice(this.zero + this.index, this.zero + this.index + s);
                    return this.index += s, o
                }, u.exports = a
            }, {"../utils": 32, "./DataReader": 18}],
            18: [function (r, u, n) {
                var i = r("../utils");

                function a(s) {
                    this.data = s, this.length = s.length, this.index = 0, this.zero = 0
                }

                a.prototype = {
                    checkOffset: function (s) {
                        this.checkIndex(this.index + s)
                    }, checkIndex: function (s) {
                        if (this.length < this.zero + s || s < 0) throw new Error("End of data reached (data length = " + this.length + ", asked index = " + s + "). Corrupted zip ?")
                    }, setIndex: function (s) {
                        this.checkIndex(s), this.index = s
                    }, skip: function (s) {
                        this.setIndex(this.index + s)
                    }, byteAt: function () {
                    }, readInt: function (s) {
                        var o, l = 0;
                        for (this.checkOffset(s), o = this.index + s - 1; o >= this.index; o--) l = (l << 8) + this.byteAt(o);
                        return this.index += s, l
                    }, readString: function (s) {
                        return i.transformTo("string", this.readData(s))
                    }, readData: function () {
                    }, lastIndexOfSignature: function () {
                    }, readAndCheckSignature: function () {
                    }, readDate: function () {
                        var s = this.readInt(4);
                        return new Date(Date.UTC(1980 + (s >> 25 & 127), (s >> 21 & 15) - 1, s >> 16 & 31, s >> 11 & 31, s >> 5 & 63, (31 & s) << 1))
                    }
                }, u.exports = a
            }, {"../utils": 32}],
            19: [function (r, u, n) {
                var i = r("./Uint8ArrayReader");

                function a(s) {
                    i.call(this, s)
                }

                r("../utils").inherits(a, i), a.prototype.readData = function (s) {
                    this.checkOffset(s);
                    var o = this.data.slice(this.zero + this.index, this.zero + this.index + s);
                    return this.index += s, o
                }, u.exports = a
            }, {"../utils": 32, "./Uint8ArrayReader": 21}],
            20: [function (r, u, n) {
                var i = r("./DataReader");

                function a(s) {
                    i.call(this, s)
                }

                r("../utils").inherits(a, i), a.prototype.byteAt = function (s) {
                    return this.data.charCodeAt(this.zero + s)
                }, a.prototype.lastIndexOfSignature = function (s) {
                    return this.data.lastIndexOf(s) - this.zero
                }, a.prototype.readAndCheckSignature = function (s) {
                    return s === this.readData(4)
                }, a.prototype.readData = function (s) {
                    this.checkOffset(s);
                    var o = this.data.slice(this.zero + this.index, this.zero + this.index + s);
                    return this.index += s, o
                }, u.exports = a
            }, {"../utils": 32, "./DataReader": 18}],
            21: [function (r, u, n) {
                var i = r("./ArrayReader");

                function a(s) {
                    i.call(this, s)
                }

                r("../utils").inherits(a, i), a.prototype.readData = function (s) {
                    if (this.checkOffset(s), s === 0) return new Uint8Array(0);
                    var o = this.data.subarray(this.zero + this.index, this.zero + this.index + s);
                    return this.index += s, o
                }, u.exports = a
            }, {"../utils": 32, "./ArrayReader": 17}],
            22: [function (r, u, n) {
                var i = r("../utils"), a = r("../support"), s = r("./ArrayReader"), o = r("./StringReader"),
                    l = r("./NodeBufferReader"), h = r("./Uint8ArrayReader");
                u.exports = function (p) {
                    var g = i.getTypeOf(p);
                    return i.checkSupport(g), g !== "string" || a.uint8array ? g === "nodebuffer" ? new l(p) : a.uint8array ? new h(i.transformTo("uint8array", p)) : new s(i.transformTo("array", p)) : new o(p)
                }
            }, {
                "../support": 30,
                "../utils": 32,
                "./ArrayReader": 17,
                "./NodeBufferReader": 19,
                "./StringReader": 20,
                "./Uint8ArrayReader": 21
            }],
            23: [function (r, u, n) {
                n.LOCAL_FILE_HEADER = "PK", n.CENTRAL_FILE_HEADER = "PK", n.CENTRAL_DIRECTORY_END = "PK", n.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x07", n.ZIP64_CENTRAL_DIRECTORY_END = "PK", n.DATA_DESCRIPTOR = "PK\x07\b"
            }, {}],
            24: [function (r, u, n) {
                var i = r("./GenericWorker"), a = r("../utils");

                function s(o) {
                    i.call(this, "ConvertWorker to " + o), this.destType = o
                }

                a.inherits(s, i), s.prototype.processChunk = function (o) {
                    this.push({data: a.transformTo(this.destType, o.data), meta: o.meta})
                }, u.exports = s
            }, {"../utils": 32, "./GenericWorker": 28}],
            25: [function (r, u, n) {
                var i = r("./GenericWorker"), a = r("../crc32");

                function s() {
                    i.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0)
                }

                r("../utils").inherits(s, i), s.prototype.processChunk = function (o) {
                    this.streamInfo.crc32 = a(o.data, this.streamInfo.crc32 || 0), this.push(o)
                }, u.exports = s
            }, {"../crc32": 4, "../utils": 32, "./GenericWorker": 28}],
            26: [function (r, u, n) {
                var i = r("../utils"), a = r("./GenericWorker");

                function s(o) {
                    a.call(this, "DataLengthProbe for " + o), this.propName = o, this.withStreamInfo(o, 0)
                }

                i.inherits(s, a), s.prototype.processChunk = function (o) {
                    if (o) {
                        var l = this.streamInfo[this.propName] || 0;
                        this.streamInfo[this.propName] = l + o.data.length
                    }
                    a.prototype.processChunk.call(this, o)
                }, u.exports = s
            }, {"../utils": 32, "./GenericWorker": 28}],
            27: [function (r, u, n) {
                var i = r("../utils"), a = r("./GenericWorker");

                function s(o) {
                    a.call(this, "DataWorker");
                    var l = this;
                    this.dataIsReady = !1, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = !1, o.then(function (h) {
                        l.dataIsReady = !0, l.data = h, l.max = h && h.length || 0, l.type = i.getTypeOf(h), l.isPaused || l._tickAndRepeat()
                    }, function (h) {
                        l.error(h)
                    })
                }

                i.inherits(s, a), s.prototype.cleanUp = function () {
                    a.prototype.cleanUp.call(this), this.data = null
                }, s.prototype.resume = function () {
                    return !!a.prototype.resume.call(this) && (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = !0, i.delay(this._tickAndRepeat, [], this)), !0)
                }, s.prototype._tickAndRepeat = function () {
                    this._tickScheduled = !1, this.isPaused || this.isFinished || (this._tick(), this.isFinished || (i.delay(this._tickAndRepeat, [], this), this._tickScheduled = !0))
                }, s.prototype._tick = function () {
                    if (this.isPaused || this.isFinished) return !1;
                    var o = null, l = Math.min(this.max, this.index + 16384);
                    if (this.index >= this.max) return this.end();
                    switch (this.type) {
                        case"string":
                            o = this.data.substring(this.index, l);
                            break;
                        case"uint8array":
                            o = this.data.subarray(this.index, l);
                            break;
                        case"array":
                        case"nodebuffer":
                            o = this.data.slice(this.index, l)
                    }
                    return this.index = l, this.push({
                        data: o,
                        meta: {percent: this.max ? this.index / this.max * 100 : 0}
                    })
                }, u.exports = s
            }, {"../utils": 32, "./GenericWorker": 28}],
            28: [function (r, u, n) {
                function i(a) {
                    this.name = a || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = !0, this.isFinished = !1, this.isLocked = !1, this._listeners = {
                        data: [],
                        end: [],
                        error: []
                    }, this.previous = null
                }

                i.prototype = {
                    push: function (a) {
                        this.emit("data", a)
                    }, end: function () {
                        if (this.isFinished) return !1;
                        this.flush();
                        try {
                            this.emit("end"), this.cleanUp(), this.isFinished = !0
                        } catch (a) {
                            this.emit("error", a)
                        }
                        return !0
                    }, error: function (a) {
                        return !this.isFinished && (this.isPaused ? this.generatedError = a : (this.isFinished = !0, this.emit("error", a), this.previous && this.previous.error(a), this.cleanUp()), !0)
                    }, on: function (a, s) {
                        return this._listeners[a].push(s), this
                    }, cleanUp: function () {
                        this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = []
                    }, emit: function (a, s) {
                        if (this._listeners[a]) for (var o = 0; o < this._listeners[a].length; o++) this._listeners[a][o].call(this, s)
                    }, pipe: function (a) {
                        return a.registerPrevious(this)
                    }, registerPrevious: function (a) {
                        if (this.isLocked) throw new Error("The stream '" + this + "' has already been used.");
                        this.streamInfo = a.streamInfo, this.mergeStreamInfo(), this.previous = a;
                        var s = this;
                        return a.on("data", function (o) {
                            s.processChunk(o)
                        }), a.on("end", function () {
                            s.end()
                        }), a.on("error", function (o) {
                            s.error(o)
                        }), this
                    }, pause: function () {
                        return !this.isPaused && !this.isFinished && (this.isPaused = !0, this.previous && this.previous.pause(), !0)
                    }, resume: function () {
                        if (!this.isPaused || this.isFinished) return !1;
                        var a = this.isPaused = !1;
                        return this.generatedError && (this.error(this.generatedError), a = !0), this.previous && this.previous.resume(), !a
                    }, flush: function () {
                    }, processChunk: function (a) {
                        this.push(a)
                    }, withStreamInfo: function (a, s) {
                        return this.extraStreamInfo[a] = s, this.mergeStreamInfo(), this
                    }, mergeStreamInfo: function () {
                        for (var a in this.extraStreamInfo) Object.prototype.hasOwnProperty.call(this.extraStreamInfo, a) && (this.streamInfo[a] = this.extraStreamInfo[a])
                    }, lock: function () {
                        if (this.isLocked) throw new Error("The stream '" + this + "' has already been used.");
                        this.isLocked = !0, this.previous && this.previous.lock()
                    }, toString: function () {
                        var a = "Worker " + this.name;
                        return this.previous ? this.previous + " -> " + a : a
                    }
                }, u.exports = i
            }, {}],
            29: [function (r, u, n) {
                var i = r("../utils"), a = r("./ConvertWorker"), s = r("./GenericWorker"), o = r("../base64"),
                    l = r("../support"), h = r("../external"), p = null;
                if (l.nodestream) try {
                    p = r("../nodejs/NodejsStreamOutputAdapter")
                } catch {
                }

                function g(E, A) {
                    return new h.Promise(function (x, _) {
                        var y = [], v = E._internalType, D = E._outputType, S = E._mimeType;
                        E.on("data", function (L, M) {
                            y.push(L), A && A(M)
                        }).on("error", function (L) {
                            y = [], _(L)
                        }).on("end", function () {
                            try {
                                var L = function (M, z, B) {
                                    switch (M) {
                                        case"blob":
                                            return i.newBlob(i.transformTo("arraybuffer", z), B);
                                        case"base64":
                                            return o.encode(z);
                                        default:
                                            return i.transformTo(M, z)
                                    }
                                }(D, function (M, z) {
                                    var B, P = 0, j = null, b = 0;
                                    for (B = 0; B < z.length; B++) b += z[B].length;
                                    switch (M) {
                                        case"string":
                                            return z.join("");
                                        case"array":
                                            return Array.prototype.concat.apply([], z);
                                        case"uint8array":
                                            for (j = new Uint8Array(b), B = 0; B < z.length; B++) j.set(z[B], P), P += z[B].length;
                                            return j;
                                        case"nodebuffer":
                                            return Buffer.concat(z);
                                        default:
                                            throw new Error("concat : unsupported type '" + M + "'")
                                    }
                                }(v, y), S);
                                x(L)
                            } catch (M) {
                                _(M)
                            }
                            y = []
                        }).resume()
                    })
                }

                function d(E, A, x) {
                    var _ = A;
                    switch (A) {
                        case"blob":
                        case"arraybuffer":
                            _ = "uint8array";
                            break;
                        case"base64":
                            _ = "string"
                    }
                    try {
                        this._internalType = _, this._outputType = A, this._mimeType = x, i.checkSupport(_), this._worker = E.pipe(new a(_)), E.lock()
                    } catch (y) {
                        this._worker = new s("error"), this._worker.error(y)
                    }
                }

                d.prototype = {
                    accumulate: function (E) {
                        return g(this, E)
                    }, on: function (E, A) {
                        var x = this;
                        return E === "data" ? this._worker.on(E, function (_) {
                            A.call(x, _.data, _.meta)
                        }) : this._worker.on(E, function () {
                            i.delay(A, arguments, x)
                        }), this
                    }, resume: function () {
                        return i.delay(this._worker.resume, [], this._worker), this
                    }, pause: function () {
                        return this._worker.pause(), this
                    }, toNodejsStream: function (E) {
                        if (i.checkSupport("nodestream"), this._outputType !== "nodebuffer") throw new Error(this._outputType + " is not supported by this method");
                        return new p(this, {objectMode: this._outputType !== "nodebuffer"}, E)
                    }
                }, u.exports = d
            }, {
                "../base64": 1,
                "../external": 6,
                "../nodejs/NodejsStreamOutputAdapter": 13,
                "../support": 30,
                "../utils": 32,
                "./ConvertWorker": 24,
                "./GenericWorker": 28
            }],
            30: [function (r, u, n) {
                if (n.base64 = !0, n.array = !0, n.string = !0, n.arraybuffer = typeof ArrayBuffer < "u" && typeof Uint8Array < "u", n.nodebuffer = typeof Buffer < "u", n.uint8array = typeof Uint8Array < "u", typeof ArrayBuffer > "u") n.blob = !1; else {
                    var i = new ArrayBuffer(0);
                    try {
                        n.blob = new Blob([i], {type: "application/zip"}).size === 0
                    } catch {
                        try {
                            var a = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder);
                            a.append(i), n.blob = a.getBlob("application/zip").size === 0
                        } catch {
                            n.blob = !1
                        }
                    }
                }
                try {
                    n.nodestream = !!r("readable-stream").Readable
                } catch {
                    n.nodestream = !1
                }
            }, {"readable-stream": 16}],
            31: [function (r, u, n) {
                for (var i = r("./utils"), a = r("./support"), s = r("./nodejsUtils"), o = r("./stream/GenericWorker"), l = new Array(256), h = 0; h < 256; h++) l[h] = 252 <= h ? 6 : 248 <= h ? 5 : 240 <= h ? 4 : 224 <= h ? 3 : 192 <= h ? 2 : 1;
                l[254] = l[254] = 1;

                function p() {
                    o.call(this, "utf-8 decode"), this.leftOver = null
                }

                function g() {
                    o.call(this, "utf-8 encode")
                }

                n.utf8encode = function (d) {
                    return a.nodebuffer ? s.newBufferFrom(d, "utf-8") : function (E) {
                        var A, x, _, y, v, D = E.length, S = 0;
                        for (y = 0; y < D; y++) (64512 & (x = E.charCodeAt(y))) == 55296 && y + 1 < D && (64512 & (_ = E.charCodeAt(y + 1))) == 56320 && (x = 65536 + (x - 55296 << 10) + (_ - 56320), y++), S += x < 128 ? 1 : x < 2048 ? 2 : x < 65536 ? 3 : 4;
                        for (A = a.uint8array ? new Uint8Array(S) : new Array(S), y = v = 0; v < S; y++) (64512 & (x = E.charCodeAt(y))) == 55296 && y + 1 < D && (64512 & (_ = E.charCodeAt(y + 1))) == 56320 && (x = 65536 + (x - 55296 << 10) + (_ - 56320), y++), x < 128 ? A[v++] = x : (x < 2048 ? A[v++] = 192 | x >>> 6 : (x < 65536 ? A[v++] = 224 | x >>> 12 : (A[v++] = 240 | x >>> 18, A[v++] = 128 | x >>> 12 & 63), A[v++] = 128 | x >>> 6 & 63), A[v++] = 128 | 63 & x);
                        return A
                    }(d)
                }, n.utf8decode = function (d) {
                    return a.nodebuffer ? i.transformTo("nodebuffer", d).toString("utf-8") : function (E) {
                        var A, x, _, y, v = E.length, D = new Array(2 * v);
                        for (A = x = 0; A < v;) if ((_ = E[A++]) < 128) D[x++] = _; else if (4 < (y = l[_])) D[x++] = 65533, A += y - 1; else {
                            for (_ &= y === 2 ? 31 : y === 3 ? 15 : 7; 1 < y && A < v;) _ = _ << 6 | 63 & E[A++], y--;
                            1 < y ? D[x++] = 65533 : _ < 65536 ? D[x++] = _ : (_ -= 65536, D[x++] = 55296 | _ >> 10 & 1023, D[x++] = 56320 | 1023 & _)
                        }
                        return D.length !== x && (D.subarray ? D = D.subarray(0, x) : D.length = x), i.applyFromCharCode(D)
                    }(d = i.transformTo(a.uint8array ? "uint8array" : "array", d))
                }, i.inherits(p, o), p.prototype.processChunk = function (d) {
                    var E = i.transformTo(a.uint8array ? "uint8array" : "array", d.data);
                    if (this.leftOver && this.leftOver.length) {
                        if (a.uint8array) {
                            var A = E;
                            (E = new Uint8Array(A.length + this.leftOver.length)).set(this.leftOver, 0), E.set(A, this.leftOver.length)
                        } else E = this.leftOver.concat(E);
                        this.leftOver = null
                    }
                    var x = function (y, v) {
                        var D;
                        for ((v = v || y.length) > y.length && (v = y.length), D = v - 1; 0 <= D && (192 & y[D]) == 128;) D--;
                        return D < 0 || D === 0 ? v : D + l[y[D]] > v ? D : v
                    }(E), _ = E;
                    x !== E.length && (a.uint8array ? (_ = E.subarray(0, x), this.leftOver = E.subarray(x, E.length)) : (_ = E.slice(0, x), this.leftOver = E.slice(x, E.length))), this.push({
                        data: n.utf8decode(_),
                        meta: d.meta
                    })
                }, p.prototype.flush = function () {
                    this.leftOver && this.leftOver.length && (this.push({
                        data: n.utf8decode(this.leftOver),
                        meta: {}
                    }), this.leftOver = null)
                }, n.Utf8DecodeWorker = p, i.inherits(g, o), g.prototype.processChunk = function (d) {
                    this.push({data: n.utf8encode(d.data), meta: d.meta})
                }, n.Utf8EncodeWorker = g
            }, {"./nodejsUtils": 14, "./stream/GenericWorker": 28, "./support": 30, "./utils": 32}],
            32: [function (r, u, n) {
                var i = r("./support"), a = r("./base64"), s = r("./nodejsUtils"), o = r("./external");

                function l(A) {
                    return A
                }

                function h(A, x) {
                    for (var _ = 0; _ < A.length; ++_) x[_] = 255 & A.charCodeAt(_);
                    return x
                }

                r("setimmediate"), n.newBlob = function (A, x) {
                    n.checkSupport("blob");
                    try {
                        return new Blob([A], {type: x})
                    } catch {
                        try {
                            var _ = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder);
                            return _.append(A), _.getBlob(x)
                        } catch {
                            throw new Error("Bug : can't construct the Blob.")
                        }
                    }
                };
                var p = {
                    stringifyByChunk: function (A, x, _) {
                        var y = [], v = 0, D = A.length;
                        if (D <= _) return String.fromCharCode.apply(null, A);
                        for (; v < D;) x === "array" || x === "nodebuffer" ? y.push(String.fromCharCode.apply(null, A.slice(v, Math.min(v + _, D)))) : y.push(String.fromCharCode.apply(null, A.subarray(v, Math.min(v + _, D)))), v += _;
                        return y.join("")
                    }, stringifyByChar: function (A) {
                        for (var x = "", _ = 0; _ < A.length; _++) x += String.fromCharCode(A[_]);
                        return x
                    }, applyCanBeUsed: {
                        uint8array: function () {
                            try {
                                return i.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1
                            } catch {
                                return !1
                            }
                        }(), nodebuffer: function () {
                            try {
                                return i.nodebuffer && String.fromCharCode.apply(null, s.allocBuffer(1)).length === 1
                            } catch {
                                return !1
                            }
                        }()
                    }
                };

                function g(A) {
                    var x = 65536, _ = n.getTypeOf(A), y = !0;
                    if (_ === "uint8array" ? y = p.applyCanBeUsed.uint8array : _ === "nodebuffer" && (y = p.applyCanBeUsed.nodebuffer), y) for (; 1 < x;) try {
                        return p.stringifyByChunk(A, _, x)
                    } catch {
                        x = Math.floor(x / 2)
                    }
                    return p.stringifyByChar(A)
                }

                function d(A, x) {
                    for (var _ = 0; _ < A.length; _++) x[_] = A[_];
                    return x
                }

                n.applyFromCharCode = g;
                var E = {};
                E.string = {
                    string: l, array: function (A) {
                        return h(A, new Array(A.length))
                    }, arraybuffer: function (A) {
                        return E.string.uint8array(A).buffer
                    }, uint8array: function (A) {
                        return h(A, new Uint8Array(A.length))
                    }, nodebuffer: function (A) {
                        return h(A, s.allocBuffer(A.length))
                    }
                }, E.array = {
                    string: g, array: l, arraybuffer: function (A) {
                        return new Uint8Array(A).buffer
                    }, uint8array: function (A) {
                        return new Uint8Array(A)
                    }, nodebuffer: function (A) {
                        return s.newBufferFrom(A)
                    }
                }, E.arraybuffer = {
                    string: function (A) {
                        return g(new Uint8Array(A))
                    }, array: function (A) {
                        return d(new Uint8Array(A), new Array(A.byteLength))
                    }, arraybuffer: l, uint8array: function (A) {
                        return new Uint8Array(A)
                    }, nodebuffer: function (A) {
                        return s.newBufferFrom(new Uint8Array(A))
                    }
                }, E.uint8array = {
                    string: g, array: function (A) {
                        return d(A, new Array(A.length))
                    }, arraybuffer: function (A) {
                        return A.buffer
                    }, uint8array: l, nodebuffer: function (A) {
                        return s.newBufferFrom(A)
                    }
                }, E.nodebuffer = {
                    string: g, array: function (A) {
                        return d(A, new Array(A.length))
                    }, arraybuffer: function (A) {
                        return E.nodebuffer.uint8array(A).buffer
                    }, uint8array: function (A) {
                        return d(A, new Uint8Array(A.length))
                    }, nodebuffer: l
                }, n.transformTo = function (A, x) {
                    if (x = x || "", !A) return x;
                    n.checkSupport(A);
                    var _ = n.getTypeOf(x);
                    return E[_][A](x)
                }, n.resolve = function (A) {
                    for (var x = A.split("/"), _ = [], y = 0; y < x.length; y++) {
                        var v = x[y];
                        v === "." || v === "" && y !== 0 && y !== x.length - 1 || (v === ".." ? _.pop() : _.push(v))
                    }
                    return _.join("/")
                }, n.getTypeOf = function (A) {
                    return typeof A == "string" ? "string" : Object.prototype.toString.call(A) === "[object Array]" ? "array" : i.nodebuffer && s.isBuffer(A) ? "nodebuffer" : i.uint8array && A instanceof Uint8Array ? "uint8array" : i.arraybuffer && A instanceof ArrayBuffer ? "arraybuffer" : void 0
                }, n.checkSupport = function (A) {
                    if (!i[A.toLowerCase()]) throw new Error(A + " is not supported by this platform")
                }, n.MAX_VALUE_16BITS = 65535, n.MAX_VALUE_32BITS = -1, n.pretty = function (A) {
                    var x, _, y = "";
                    for (_ = 0; _ < (A || "").length; _++) y += "\\x" + ((x = A.charCodeAt(_)) < 16 ? "0" : "") + x.toString(16).toUpperCase();
                    return y
                }, n.delay = function (A, x, _) {
                    setImmediate(function () {
                        A.apply(_ || null, x || [])
                    })
                }, n.inherits = function (A, x) {
                    function _() {
                    }

                    _.prototype = x.prototype, A.prototype = new _
                }, n.extend = function () {
                    var A, x, _ = {};
                    for (A = 0; A < arguments.length; A++) for (x in arguments[A]) Object.prototype.hasOwnProperty.call(arguments[A], x) && _[x] === void 0 && (_[x] = arguments[A][x]);
                    return _
                }, n.prepareContent = function (A, x, _, y, v) {
                    return o.Promise.resolve(x).then(function (D) {
                        return i.blob && (D instanceof Blob || ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(D)) !== -1) && typeof FileReader < "u" ? new o.Promise(function (S, L) {
                            var M = new FileReader;
                            M.onload = function (z) {
                                S(z.target.result)
                            }, M.onerror = function (z) {
                                L(z.target.error)
                            }, M.readAsArrayBuffer(D)
                        }) : D
                    }).then(function (D) {
                        var S = n.getTypeOf(D);
                        return S ? (S === "arraybuffer" ? D = n.transformTo("uint8array", D) : S === "string" && (v ? D = a.decode(D) : _ && y !== !0 && (D = function (L) {
                            return h(L, i.uint8array ? new Uint8Array(L.length) : new Array(L.length))
                        }(D))), D) : o.Promise.reject(new Error("Can't read the data of '" + A + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))
                    })
                }
            }, {"./base64": 1, "./external": 6, "./nodejsUtils": 14, "./support": 30, setimmediate: 54}],
            33: [function (r, u, n) {
                var i = r("./reader/readerFor"), a = r("./utils"), s = r("./signature"), o = r("./zipEntry"),
                    l = r("./support");

                function h(p) {
                    this.files = [], this.loadOptions = p
                }

                h.prototype = {
                    checkSignature: function (p) {
                        if (!this.reader.readAndCheckSignature(p)) {
                            this.reader.index -= 4;
                            var g = this.reader.readString(4);
                            throw new Error("Corrupted zip or bug: unexpected signature (" + a.pretty(g) + ", expected " + a.pretty(p) + ")")
                        }
                    }, isSignature: function (p, g) {
                        var d = this.reader.index;
                        this.reader.setIndex(p);
                        var E = this.reader.readString(4) === g;
                        return this.reader.setIndex(d), E
                    }, readBlockEndOfCentral: function () {
                        this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt(2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt(2);
                        var p = this.reader.readData(this.zipCommentLength), g = l.uint8array ? "uint8array" : "array",
                            d = a.transformTo(g, p);
                        this.zipComment = this.loadOptions.decodeFileName(d)
                    }, readBlockZip64EndOfCentral: function () {
                        this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader.skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt(8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {};
                        for (var p, g, d, E = this.zip64EndOfCentralSize - 44; 0 < E;) p = this.reader.readInt(2), g = this.reader.readInt(4), d = this.reader.readData(g), this.zip64ExtensibleData[p] = {
                            id: p,
                            length: g,
                            value: d
                        }
                    }, readBlockZip64EndOfCentralLocator: function () {
                        if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8), this.disksCount = this.reader.readInt(4), 1 < this.disksCount) throw new Error("Multi-volumes zip are not supported")
                    }, readLocalFiles: function () {
                        var p, g;
                        for (p = 0; p < this.files.length; p++) g = this.files[p], this.reader.setIndex(g.localHeaderOffset), this.checkSignature(s.LOCAL_FILE_HEADER), g.readLocalPart(this.reader), g.handleUTF8(), g.processAttributes()
                    }, readCentralDir: function () {
                        var p;
                        for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);) (p = new o({zip64: this.zip64}, this.loadOptions)).readCentralPart(this.reader), this.files.push(p);
                        if (this.centralDirRecords !== this.files.length && this.centralDirRecords !== 0 && this.files.length === 0) throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length)
                    }, readEndOfCentral: function () {
                        var p = this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);
                        if (p < 0) throw this.isSignature(0, s.LOCAL_FILE_HEADER) ? new Error("Corrupted zip: can't find end of central directory") : new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");
                        this.reader.setIndex(p);
                        var g = p;
                        if (this.checkSignature(s.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === a.MAX_VALUE_16BITS || this.diskWithCentralDirStart === a.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === a.MAX_VALUE_16BITS || this.centralDirRecords === a.MAX_VALUE_16BITS || this.centralDirSize === a.MAX_VALUE_32BITS || this.centralDirOffset === a.MAX_VALUE_32BITS) {
                            if (this.zip64 = !0, (p = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR)) < 0) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");
                            if (this.reader.setIndex(p), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature(this.relativeOffsetEndOfZip64CentralDir, s.ZIP64_CENTRAL_DIRECTORY_END) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0)) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");
                            this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral()
                        }
                        var d = this.centralDirOffset + this.centralDirSize;
                        this.zip64 && (d += 20, d += 12 + this.zip64EndOfCentralSize);
                        var E = g - d;
                        if (0 < E) this.isSignature(g, s.CENTRAL_FILE_HEADER) || (this.reader.zero = E); else if (E < 0) throw new Error("Corrupted zip: missing " + Math.abs(E) + " bytes.")
                    }, prepareReader: function (p) {
                        this.reader = i(p)
                    }, load: function (p) {
                        this.prepareReader(p), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles()
                    }
                }, u.exports = h
            }, {"./reader/readerFor": 22, "./signature": 23, "./support": 30, "./utils": 32, "./zipEntry": 34}],
            34: [function (r, u, n) {
                var i = r("./reader/readerFor"), a = r("./utils"), s = r("./compressedObject"), o = r("./crc32"),
                    l = r("./utf8"), h = r("./compressions"), p = r("./support");

                function g(d, E) {
                    this.options = d, this.loadOptions = E
                }

                g.prototype = {
                    isEncrypted: function () {
                        return (1 & this.bitFlag) == 1
                    }, useUTF8: function () {
                        return (2048 & this.bitFlag) == 2048
                    }, readLocalPart: function (d) {
                        var E, A;
                        if (d.skip(22), this.fileNameLength = d.readInt(2), A = d.readInt(2), this.fileName = d.readData(this.fileNameLength), d.skip(A), this.compressedSize === -1 || this.uncompressedSize === -1) throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");
                        if ((E = function (x) {
                            for (var _ in h) if (Object.prototype.hasOwnProperty.call(h, _) && h[_].magic === x) return h[_];
                            return null
                        }(this.compressionMethod)) === null) throw new Error("Corrupted zip : compression " + a.pretty(this.compressionMethod) + " unknown (inner file : " + a.transformTo("string", this.fileName) + ")");
                        this.decompressed = new s(this.compressedSize, this.uncompressedSize, this.crc32, E, d.readData(this.compressedSize))
                    }, readCentralPart: function (d) {
                        this.versionMadeBy = d.readInt(2), d.skip(2), this.bitFlag = d.readInt(2), this.compressionMethod = d.readString(2), this.date = d.readDate(), this.crc32 = d.readInt(4), this.compressedSize = d.readInt(4), this.uncompressedSize = d.readInt(4);
                        var E = d.readInt(2);
                        if (this.extraFieldsLength = d.readInt(2), this.fileCommentLength = d.readInt(2), this.diskNumberStart = d.readInt(2), this.internalFileAttributes = d.readInt(2), this.externalFileAttributes = d.readInt(4), this.localHeaderOffset = d.readInt(4), this.isEncrypted()) throw new Error("Encrypted zip are not supported");
                        d.skip(E), this.readExtraFields(d), this.parseZIP64ExtraField(d), this.fileComment = d.readData(this.fileCommentLength)
                    }, processAttributes: function () {
                        this.unixPermissions = null, this.dosPermissions = null;
                        var d = this.versionMadeBy >> 8;
                        this.dir = !!(16 & this.externalFileAttributes), d == 0 && (this.dosPermissions = 63 & this.externalFileAttributes), d == 3 && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), this.dir || this.fileNameStr.slice(-1) !== "/" || (this.dir = !0)
                    }, parseZIP64ExtraField: function () {
                        if (this.extraFields[1]) {
                            var d = i(this.extraFields[1].value);
                            this.uncompressedSize === a.MAX_VALUE_32BITS && (this.uncompressedSize = d.readInt(8)), this.compressedSize === a.MAX_VALUE_32BITS && (this.compressedSize = d.readInt(8)), this.localHeaderOffset === a.MAX_VALUE_32BITS && (this.localHeaderOffset = d.readInt(8)), this.diskNumberStart === a.MAX_VALUE_32BITS && (this.diskNumberStart = d.readInt(4))
                        }
                    }, readExtraFields: function (d) {
                        var E, A, x, _ = d.index + this.extraFieldsLength;
                        for (this.extraFields || (this.extraFields = {}); d.index + 4 < _;) E = d.readInt(2), A = d.readInt(2), x = d.readData(A), this.extraFields[E] = {
                            id: E,
                            length: A,
                            value: x
                        };
                        d.setIndex(_)
                    }, handleUTF8: function () {
                        var d = p.uint8array ? "uint8array" : "array";
                        if (this.useUTF8()) this.fileNameStr = l.utf8decode(this.fileName), this.fileCommentStr = l.utf8decode(this.fileComment); else {
                            var E = this.findExtraFieldUnicodePath();
                            if (E !== null) this.fileNameStr = E; else {
                                var A = a.transformTo(d, this.fileName);
                                this.fileNameStr = this.loadOptions.decodeFileName(A)
                            }
                            var x = this.findExtraFieldUnicodeComment();
                            if (x !== null) this.fileCommentStr = x; else {
                                var _ = a.transformTo(d, this.fileComment);
                                this.fileCommentStr = this.loadOptions.decodeFileName(_)
                            }
                        }
                    }, findExtraFieldUnicodePath: function () {
                        var d = this.extraFields[28789];
                        if (d) {
                            var E = i(d.value);
                            return E.readInt(1) !== 1 || o(this.fileName) !== E.readInt(4) ? null : l.utf8decode(E.readData(d.length - 5))
                        }
                        return null
                    }, findExtraFieldUnicodeComment: function () {
                        var d = this.extraFields[25461];
                        if (d) {
                            var E = i(d.value);
                            return E.readInt(1) !== 1 || o(this.fileComment) !== E.readInt(4) ? null : l.utf8decode(E.readData(d.length - 5))
                        }
                        return null
                    }
                }, u.exports = g
            }, {
                "./compressedObject": 2,
                "./compressions": 3,
                "./crc32": 4,
                "./reader/readerFor": 22,
                "./support": 30,
                "./utf8": 31,
                "./utils": 32
            }],
            35: [function (r, u, n) {
                function i(E, A, x) {
                    this.name = E, this.dir = x.dir, this.date = x.date, this.comment = x.comment, this.unixPermissions = x.unixPermissions, this.dosPermissions = x.dosPermissions, this._data = A, this._dataBinary = x.binary, this.options = {
                        compression: x.compression,
                        compressionOptions: x.compressionOptions
                    }
                }

                var a = r("./stream/StreamHelper"), s = r("./stream/DataWorker"), o = r("./utf8"),
                    l = r("./compressedObject"), h = r("./stream/GenericWorker");
                i.prototype = {
                    internalStream: function (E) {
                        var A = null, x = "string";
                        try {
                            if (!E) throw new Error("No output type specified.");
                            var _ = (x = E.toLowerCase()) === "string" || x === "text";
                            x !== "binarystring" && x !== "text" || (x = "string"), A = this._decompressWorker();
                            var y = !this._dataBinary;
                            y && !_ && (A = A.pipe(new o.Utf8EncodeWorker)), !y && _ && (A = A.pipe(new o.Utf8DecodeWorker))
                        } catch (v) {
                            (A = new h("error")).error(v)
                        }
                        return new a(A, x, "")
                    }, async: function (E, A) {
                        return this.internalStream(E).accumulate(A)
                    }, nodeStream: function (E, A) {
                        return this.internalStream(E || "nodebuffer").toNodejsStream(A)
                    }, _compressWorker: function (E, A) {
                        if (this._data instanceof l && this._data.compression.magic === E.magic) return this._data.getCompressedWorker();
                        var x = this._decompressWorker();
                        return this._dataBinary || (x = x.pipe(new o.Utf8EncodeWorker)), l.createWorkerFrom(x, E, A)
                    }, _decompressWorker: function () {
                        return this._data instanceof l ? this._data.getContentWorker() : this._data instanceof h ? this._data : new s(this._data)
                    }
                };
                for (var p = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"], g = function () {
                    throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")
                }, d = 0; d < p.length; d++) i.prototype[p[d]] = g;
                u.exports = i
            }, {
                "./compressedObject": 2,
                "./stream/DataWorker": 27,
                "./stream/GenericWorker": 28,
                "./stream/StreamHelper": 29,
                "./utf8": 31
            }],
            36: [function (r, u, n) {
                (function (i) {
                    var a, s, o = i.MutationObserver || i.WebKitMutationObserver;
                    if (o) {
                        var l = 0, h = new o(E), p = i.document.createTextNode("");
                        h.observe(p, {characterData: !0}), a = function () {
                            p.data = l = ++l % 2
                        }
                    } else if (i.setImmediate || i.MessageChannel === void 0) a = "document" in i && "onreadystatechange" in i.document.createElement("script") ? function () {
                        var A = i.document.createElement("script");
                        A.onreadystatechange = function () {
                            E(), A.onreadystatechange = null, A.parentNode.removeChild(A), A = null
                        }, i.document.documentElement.appendChild(A)
                    } : function () {
                        setTimeout(E, 0)
                    }; else {
                        var g = new i.MessageChannel;
                        g.port1.onmessage = E, a = function () {
                            g.port2.postMessage(0)
                        }
                    }
                    var d = [];

                    function E() {
                        var A, x;
                        s = !0;
                        for (var _ = d.length; _;) {
                            for (x = d, d = [], A = -1; ++A < _;) x[A]();
                            _ = d.length
                        }
                        s = !1
                    }

                    u.exports = function (A) {
                        d.push(A) !== 1 || s || a()
                    }
                }).call(this, typeof Xt < "u" ? Xt : typeof self < "u" ? self : typeof window < "u" ? window : {})
            }, {}],
            37: [function (r, u, n) {
                var i = r("immediate");

                function a() {
                }

                var s = {}, o = ["REJECTED"], l = ["FULFILLED"], h = ["PENDING"];

                function p(_) {
                    if (typeof _ != "function") throw new TypeError("resolver must be a function");
                    this.state = h, this.queue = [], this.outcome = void 0, _ !== a && A(this, _)
                }

                function g(_, y, v) {
                    this.promise = _, typeof y == "function" && (this.onFulfilled = y, this.callFulfilled = this.otherCallFulfilled), typeof v == "function" && (this.onRejected = v, this.callRejected = this.otherCallRejected)
                }

                function d(_, y, v) {
                    i(function () {
                        var D;
                        try {
                            D = y(v)
                        } catch (S) {
                            return s.reject(_, S)
                        }
                        D === _ ? s.reject(_, new TypeError("Cannot resolve promise with itself")) : s.resolve(_, D)
                    })
                }

                function E(_) {
                    var y = _ && _.then;
                    if (_ && (typeof _ == "object" || typeof _ == "function") && typeof y == "function") return function () {
                        y.apply(_, arguments)
                    }
                }

                function A(_, y) {
                    var v = !1;

                    function D(M) {
                        v || (v = !0, s.reject(_, M))
                    }

                    function S(M) {
                        v || (v = !0, s.resolve(_, M))
                    }

                    var L = x(function () {
                        y(S, D)
                    });
                    L.status === "error" && D(L.value)
                }

                function x(_, y) {
                    var v = {};
                    try {
                        v.value = _(y), v.status = "success"
                    } catch (D) {
                        v.status = "error", v.value = D
                    }
                    return v
                }

                (u.exports = p).prototype.finally = function (_) {
                    if (typeof _ != "function") return this;
                    var y = this.constructor;
                    return this.then(function (v) {
                        return y.resolve(_()).then(function () {
                            return v
                        })
                    }, function (v) {
                        return y.resolve(_()).then(function () {
                            throw v
                        })
                    })
                }, p.prototype.catch = function (_) {
                    return this.then(null, _)
                }, p.prototype.then = function (_, y) {
                    if (typeof _ != "function" && this.state === l || typeof y != "function" && this.state === o) return this;
                    var v = new this.constructor(a);
                    return this.state !== h ? d(v, this.state === l ? _ : y, this.outcome) : this.queue.push(new g(v, _, y)), v
                }, g.prototype.callFulfilled = function (_) {
                    s.resolve(this.promise, _)
                }, g.prototype.otherCallFulfilled = function (_) {
                    d(this.promise, this.onFulfilled, _)
                }, g.prototype.callRejected = function (_) {
                    s.reject(this.promise, _)
                }, g.prototype.otherCallRejected = function (_) {
                    d(this.promise, this.onRejected, _)
                }, s.resolve = function (_, y) {
                    var v = x(E, y);
                    if (v.status === "error") return s.reject(_, v.value);
                    var D = v.value;
                    if (D) A(_, D); else {
                        _.state = l, _.outcome = y;
                        for (var S = -1, L = _.queue.length; ++S < L;) _.queue[S].callFulfilled(y)
                    }
                    return _
                }, s.reject = function (_, y) {
                    _.state = o, _.outcome = y;
                    for (var v = -1, D = _.queue.length; ++v < D;) _.queue[v].callRejected(y);
                    return _
                }, p.resolve = function (_) {
                    return _ instanceof this ? _ : s.resolve(new this(a), _)
                }, p.reject = function (_) {
                    var y = new this(a);
                    return s.reject(y, _)
                }, p.all = function (_) {
                    var y = this;
                    if (Object.prototype.toString.call(_) !== "[object Array]") return this.reject(new TypeError("must be an array"));
                    var v = _.length, D = !1;
                    if (!v) return this.resolve([]);
                    for (var S = new Array(v), L = 0, M = -1, z = new this(a); ++M < v;) B(_[M], M);
                    return z;

                    function B(P, j) {
                        y.resolve(P).then(function (b) {
                            S[j] = b, ++L !== v || D || (D = !0, s.resolve(z, S))
                        }, function (b) {
                            D || (D = !0, s.reject(z, b))
                        })
                    }
                }, p.race = function (_) {
                    var y = this;
                    if (Object.prototype.toString.call(_) !== "[object Array]") return this.reject(new TypeError("must be an array"));
                    var v = _.length, D = !1;
                    if (!v) return this.resolve([]);
                    for (var S = -1, L = new this(a); ++S < v;) M = _[S], y.resolve(M).then(function (z) {
                        D || (D = !0, s.resolve(L, z))
                    }, function (z) {
                        D || (D = !0, s.reject(L, z))
                    });
                    var M;
                    return L
                }
            }, {immediate: 36}],
            38: [function (r, u, n) {
                var i = {};
                (0, r("./lib/utils/common").assign)(i, r("./lib/deflate"), r("./lib/inflate"), r("./lib/zlib/constants")), u.exports = i
            }, {"./lib/deflate": 39, "./lib/inflate": 40, "./lib/utils/common": 41, "./lib/zlib/constants": 44}],
            39: [function (r, u, n) {
                var i = r("./zlib/deflate"), a = r("./utils/common"), s = r("./utils/strings"),
                    o = r("./zlib/messages"), l = r("./zlib/zstream"), h = Object.prototype.toString, p = 0, g = -1,
                    d = 0, E = 8;

                function A(_) {
                    if (!(this instanceof A)) return new A(_);
                    this.options = a.assign({
                        level: g,
                        method: E,
                        chunkSize: 16384,
                        windowBits: 15,
                        memLevel: 8,
                        strategy: d,
                        to: ""
                    }, _ || {});
                    var y = this.options;
                    y.raw && 0 < y.windowBits ? y.windowBits = -y.windowBits : y.gzip && 0 < y.windowBits && y.windowBits < 16 && (y.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new l, this.strm.avail_out = 0;
                    var v = i.deflateInit2(this.strm, y.level, y.method, y.windowBits, y.memLevel, y.strategy);
                    if (v !== p) throw new Error(o[v]);
                    if (y.header && i.deflateSetHeader(this.strm, y.header), y.dictionary) {
                        var D;
                        if (D = typeof y.dictionary == "string" ? s.string2buf(y.dictionary) : h.call(y.dictionary) === "[object ArrayBuffer]" ? new Uint8Array(y.dictionary) : y.dictionary, (v = i.deflateSetDictionary(this.strm, D)) !== p) throw new Error(o[v]);
                        this._dict_set = !0
                    }
                }

                function x(_, y) {
                    var v = new A(y);
                    if (v.push(_, !0), v.err) throw v.msg || o[v.err];
                    return v.result
                }

                A.prototype.push = function (_, y) {
                    var v, D, S = this.strm, L = this.options.chunkSize;
                    if (this.ended) return !1;
                    D = y === ~~y ? y : y === !0 ? 4 : 0, typeof _ == "string" ? S.input = s.string2buf(_) : h.call(_) === "[object ArrayBuffer]" ? S.input = new Uint8Array(_) : S.input = _, S.next_in = 0, S.avail_in = S.input.length;
                    do {
                        if (S.avail_out === 0 && (S.output = new a.Buf8(L), S.next_out = 0, S.avail_out = L), (v = i.deflate(S, D)) !== 1 && v !== p) return this.onEnd(v), !(this.ended = !0);
                        S.avail_out !== 0 && (S.avail_in !== 0 || D !== 4 && D !== 2) || (this.options.to === "string" ? this.onData(s.buf2binstring(a.shrinkBuf(S.output, S.next_out))) : this.onData(a.shrinkBuf(S.output, S.next_out)))
                    } while ((0 < S.avail_in || S.avail_out === 0) && v !== 1);
                    return D === 4 ? (v = i.deflateEnd(this.strm), this.onEnd(v), this.ended = !0, v === p) : D !== 2 || (this.onEnd(p), !(S.avail_out = 0))
                }, A.prototype.onData = function (_) {
                    this.chunks.push(_)
                }, A.prototype.onEnd = function (_) {
                    _ === p && (this.options.to === "string" ? this.result = this.chunks.join("") : this.result = a.flattenChunks(this.chunks)), this.chunks = [], this.err = _, this.msg = this.strm.msg
                }, n.Deflate = A, n.deflate = x, n.deflateRaw = function (_, y) {
                    return (y = y || {}).raw = !0, x(_, y)
                }, n.gzip = function (_, y) {
                    return (y = y || {}).gzip = !0, x(_, y)
                }
            }, {
                "./utils/common": 41,
                "./utils/strings": 42,
                "./zlib/deflate": 46,
                "./zlib/messages": 51,
                "./zlib/zstream": 53
            }],
            40: [function (r, u, n) {
                var i = r("./zlib/inflate"), a = r("./utils/common"), s = r("./utils/strings"),
                    o = r("./zlib/constants"), l = r("./zlib/messages"), h = r("./zlib/zstream"),
                    p = r("./zlib/gzheader"), g = Object.prototype.toString;

                function d(A) {
                    if (!(this instanceof d)) return new d(A);
                    this.options = a.assign({chunkSize: 16384, windowBits: 0, to: ""}, A || {});
                    var x = this.options;
                    x.raw && 0 <= x.windowBits && x.windowBits < 16 && (x.windowBits = -x.windowBits, x.windowBits === 0 && (x.windowBits = -15)), !(0 <= x.windowBits && x.windowBits < 16) || A && A.windowBits || (x.windowBits += 32), 15 < x.windowBits && x.windowBits < 48 && !(15 & x.windowBits) && (x.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new h, this.strm.avail_out = 0;
                    var _ = i.inflateInit2(this.strm, x.windowBits);
                    if (_ !== o.Z_OK) throw new Error(l[_]);
                    this.header = new p, i.inflateGetHeader(this.strm, this.header)
                }

                function E(A, x) {
                    var _ = new d(x);
                    if (_.push(A, !0), _.err) throw _.msg || l[_.err];
                    return _.result
                }

                d.prototype.push = function (A, x) {
                    var _, y, v, D, S, L, M = this.strm, z = this.options.chunkSize, B = this.options.dictionary,
                        P = !1;
                    if (this.ended) return !1;
                    y = x === ~~x ? x : x === !0 ? o.Z_FINISH : o.Z_NO_FLUSH, typeof A == "string" ? M.input = s.binstring2buf(A) : g.call(A) === "[object ArrayBuffer]" ? M.input = new Uint8Array(A) : M.input = A, M.next_in = 0, M.avail_in = M.input.length;
                    do {
                        if (M.avail_out === 0 && (M.output = new a.Buf8(z), M.next_out = 0, M.avail_out = z), (_ = i.inflate(M, o.Z_NO_FLUSH)) === o.Z_NEED_DICT && B && (L = typeof B == "string" ? s.string2buf(B) : g.call(B) === "[object ArrayBuffer]" ? new Uint8Array(B) : B, _ = i.inflateSetDictionary(this.strm, L)), _ === o.Z_BUF_ERROR && P === !0 && (_ = o.Z_OK, P = !1), _ !== o.Z_STREAM_END && _ !== o.Z_OK) return this.onEnd(_), !(this.ended = !0);
                        M.next_out && (M.avail_out !== 0 && _ !== o.Z_STREAM_END && (M.avail_in !== 0 || y !== o.Z_FINISH && y !== o.Z_SYNC_FLUSH) || (this.options.to === "string" ? (v = s.utf8border(M.output, M.next_out), D = M.next_out - v, S = s.buf2string(M.output, v), M.next_out = D, M.avail_out = z - D, D && a.arraySet(M.output, M.output, v, D, 0), this.onData(S)) : this.onData(a.shrinkBuf(M.output, M.next_out)))), M.avail_in === 0 && M.avail_out === 0 && (P = !0)
                    } while ((0 < M.avail_in || M.avail_out === 0) && _ !== o.Z_STREAM_END);
                    return _ === o.Z_STREAM_END && (y = o.Z_FINISH), y === o.Z_FINISH ? (_ = i.inflateEnd(this.strm), this.onEnd(_), this.ended = !0, _ === o.Z_OK) : y !== o.Z_SYNC_FLUSH || (this.onEnd(o.Z_OK), !(M.avail_out = 0))
                }, d.prototype.onData = function (A) {
                    this.chunks.push(A)
                }, d.prototype.onEnd = function (A) {
                    A === o.Z_OK && (this.options.to === "string" ? this.result = this.chunks.join("") : this.result = a.flattenChunks(this.chunks)), this.chunks = [], this.err = A, this.msg = this.strm.msg
                }, n.Inflate = d, n.inflate = E, n.inflateRaw = function (A, x) {
                    return (x = x || {}).raw = !0, E(A, x)
                }, n.ungzip = E
            }, {
                "./utils/common": 41,
                "./utils/strings": 42,
                "./zlib/constants": 44,
                "./zlib/gzheader": 47,
                "./zlib/inflate": 49,
                "./zlib/messages": 51,
                "./zlib/zstream": 53
            }],
            41: [function (r, u, n) {
                var i = typeof Uint8Array < "u" && typeof Uint16Array < "u" && typeof Int32Array < "u";
                n.assign = function (o) {
                    for (var l = Array.prototype.slice.call(arguments, 1); l.length;) {
                        var h = l.shift();
                        if (h) {
                            if (typeof h != "object") throw new TypeError(h + "must be non-object");
                            for (var p in h) h.hasOwnProperty(p) && (o[p] = h[p])
                        }
                    }
                    return o
                }, n.shrinkBuf = function (o, l) {
                    return o.length === l ? o : o.subarray ? o.subarray(0, l) : (o.length = l, o)
                };
                var a = {
                    arraySet: function (o, l, h, p, g) {
                        if (l.subarray && o.subarray) o.set(l.subarray(h, h + p), g); else for (var d = 0; d < p; d++) o[g + d] = l[h + d]
                    }, flattenChunks: function (o) {
                        var l, h, p, g, d, E;
                        for (l = p = 0, h = o.length; l < h; l++) p += o[l].length;
                        for (E = new Uint8Array(p), l = g = 0, h = o.length; l < h; l++) d = o[l], E.set(d, g), g += d.length;
                        return E
                    }
                }, s = {
                    arraySet: function (o, l, h, p, g) {
                        for (var d = 0; d < p; d++) o[g + d] = l[h + d]
                    }, flattenChunks: function (o) {
                        return [].concat.apply([], o)
                    }
                };
                n.setTyped = function (o) {
                    o ? (n.Buf8 = Uint8Array, n.Buf16 = Uint16Array, n.Buf32 = Int32Array, n.assign(n, a)) : (n.Buf8 = Array, n.Buf16 = Array, n.Buf32 = Array, n.assign(n, s))
                }, n.setTyped(i)
            }, {}],
            42: [function (r, u, n) {
                var i = r("./common"), a = !0, s = !0;
                try {
                    String.fromCharCode.apply(null, [0])
                } catch {
                    a = !1
                }
                try {
                    String.fromCharCode.apply(null, new Uint8Array(1))
                } catch {
                    s = !1
                }
                for (var o = new i.Buf8(256), l = 0; l < 256; l++) o[l] = 252 <= l ? 6 : 248 <= l ? 5 : 240 <= l ? 4 : 224 <= l ? 3 : 192 <= l ? 2 : 1;

                function h(p, g) {
                    if (g < 65537 && (p.subarray && s || !p.subarray && a)) return String.fromCharCode.apply(null, i.shrinkBuf(p, g));
                    for (var d = "", E = 0; E < g; E++) d += String.fromCharCode(p[E]);
                    return d
                }

                o[254] = o[254] = 1, n.string2buf = function (p) {
                    var g, d, E, A, x, _ = p.length, y = 0;
                    for (A = 0; A < _; A++) (64512 & (d = p.charCodeAt(A))) == 55296 && A + 1 < _ && (64512 & (E = p.charCodeAt(A + 1))) == 56320 && (d = 65536 + (d - 55296 << 10) + (E - 56320), A++), y += d < 128 ? 1 : d < 2048 ? 2 : d < 65536 ? 3 : 4;
                    for (g = new i.Buf8(y), A = x = 0; x < y; A++) (64512 & (d = p.charCodeAt(A))) == 55296 && A + 1 < _ && (64512 & (E = p.charCodeAt(A + 1))) == 56320 && (d = 65536 + (d - 55296 << 10) + (E - 56320), A++), d < 128 ? g[x++] = d : (d < 2048 ? g[x++] = 192 | d >>> 6 : (d < 65536 ? g[x++] = 224 | d >>> 12 : (g[x++] = 240 | d >>> 18, g[x++] = 128 | d >>> 12 & 63), g[x++] = 128 | d >>> 6 & 63), g[x++] = 128 | 63 & d);
                    return g
                }, n.buf2binstring = function (p) {
                    return h(p, p.length)
                }, n.binstring2buf = function (p) {
                    for (var g = new i.Buf8(p.length), d = 0, E = g.length; d < E; d++) g[d] = p.charCodeAt(d);
                    return g
                }, n.buf2string = function (p, g) {
                    var d, E, A, x, _ = g || p.length, y = new Array(2 * _);
                    for (d = E = 0; d < _;) if ((A = p[d++]) < 128) y[E++] = A; else if (4 < (x = o[A])) y[E++] = 65533, d += x - 1; else {
                        for (A &= x === 2 ? 31 : x === 3 ? 15 : 7; 1 < x && d < _;) A = A << 6 | 63 & p[d++], x--;
                        1 < x ? y[E++] = 65533 : A < 65536 ? y[E++] = A : (A -= 65536, y[E++] = 55296 | A >> 10 & 1023, y[E++] = 56320 | 1023 & A)
                    }
                    return h(y, E)
                }, n.utf8border = function (p, g) {
                    var d;
                    for ((g = g || p.length) > p.length && (g = p.length), d = g - 1; 0 <= d && (192 & p[d]) == 128;) d--;
                    return d < 0 || d === 0 ? g : d + o[p[d]] > g ? d : g
                }
            }, {"./common": 41}],
            43: [function (r, u, n) {
                u.exports = function (i, a, s, o) {
                    for (var l = 65535 & i | 0, h = i >>> 16 & 65535 | 0, p = 0; s !== 0;) {
                        for (s -= p = 2e3 < s ? 2e3 : s; h = h + (l = l + a[o++] | 0) | 0, --p;) ;
                        l %= 65521, h %= 65521
                    }
                    return l | h << 16 | 0
                }
            }, {}],
            44: [function (r, u, n) {
                u.exports = {
                    Z_NO_FLUSH: 0,
                    Z_PARTIAL_FLUSH: 1,
                    Z_SYNC_FLUSH: 2,
                    Z_FULL_FLUSH: 3,
                    Z_FINISH: 4,
                    Z_BLOCK: 5,
                    Z_TREES: 6,
                    Z_OK: 0,
                    Z_STREAM_END: 1,
                    Z_NEED_DICT: 2,
                    Z_ERRNO: -1,
                    Z_STREAM_ERROR: -2,
                    Z_DATA_ERROR: -3,
                    Z_BUF_ERROR: -5,
                    Z_NO_COMPRESSION: 0,
                    Z_BEST_SPEED: 1,
                    Z_BEST_COMPRESSION: 9,
                    Z_DEFAULT_COMPRESSION: -1,
                    Z_FILTERED: 1,
                    Z_HUFFMAN_ONLY: 2,
                    Z_RLE: 3,
                    Z_FIXED: 4,
                    Z_DEFAULT_STRATEGY: 0,
                    Z_BINARY: 0,
                    Z_TEXT: 1,
                    Z_UNKNOWN: 2,
                    Z_DEFLATED: 8
                }
            }, {}],
            45: [function (r, u, n) {
                var i = function () {
                    for (var a, s = [], o = 0; o < 256; o++) {
                        a = o;
                        for (var l = 0; l < 8; l++) a = 1 & a ? 3988292384 ^ a >>> 1 : a >>> 1;
                        s[o] = a
                    }
                    return s
                }();
                u.exports = function (a, s, o, l) {
                    var h = i, p = l + o;
                    a ^= -1;
                    for (var g = l; g < p; g++) a = a >>> 8 ^ h[255 & (a ^ s[g])];
                    return -1 ^ a
                }
            }, {}],
            46: [function (r, u, n) {
                var i, a = r("../utils/common"), s = r("./trees"), o = r("./adler32"), l = r("./crc32"),
                    h = r("./messages"), p = 0, g = 4, d = 0, E = -2, A = -1, x = 4, _ = 2, y = 8, v = 9, D = 286,
                    S = 30, L = 19, M = 2 * D + 1, z = 15, B = 3, P = 258, j = P + B + 1, b = 42, T = 113, f = 1, C = 2,
                    q = 3, O = 4;

                function U(m, V) {
                    return m.msg = h[V], V
                }

                function G(m) {
                    return (m << 1) - (4 < m ? 9 : 0)
                }

                function ae(m) {
                    for (var V = m.length; 0 <= --V;) m[V] = 0
                }

                function W(m) {
                    var V = m.state, K = V.pending;
                    K > m.avail_out && (K = m.avail_out), K !== 0 && (a.arraySet(m.output, V.pending_buf, V.pending_out, K, m.next_out), m.next_out += K, V.pending_out += K, m.total_out += K, m.avail_out -= K, V.pending -= K, V.pending === 0 && (V.pending_out = 0))
                }

                function Y(m, V) {
                    s._tr_flush_block(m, 0 <= m.block_start ? m.block_start : -1, m.strstart - m.block_start, V), m.block_start = m.strstart, W(m.strm)
                }

                function le(m, V) {
                    m.pending_buf[m.pending++] = V
                }

                function se(m, V) {
                    m.pending_buf[m.pending++] = V >>> 8 & 255, m.pending_buf[m.pending++] = 255 & V
                }

                function ne(m, V) {
                    var K, w, k = m.max_chain_length, F = m.strstart, J = m.prev_length, X = m.nice_match,
                        Q = m.strstart > m.w_size - j ? m.strstart - (m.w_size - j) : 0, ue = m.window, ie = m.w_mask,
                        re = m.prev, ce = m.strstart + P, ye = ue[F + J - 1], me = ue[F + J];
                    m.prev_length >= m.good_match && (k >>= 2), X > m.lookahead && (X = m.lookahead);
                    do if (ue[(K = V) + J] === me && ue[K + J - 1] === ye && ue[K] === ue[F] && ue[++K] === ue[F + 1]) {
                        F += 2, K++;
                        do ; while (ue[++F] === ue[++K] && ue[++F] === ue[++K] && ue[++F] === ue[++K] && ue[++F] === ue[++K] && ue[++F] === ue[++K] && ue[++F] === ue[++K] && ue[++F] === ue[++K] && ue[++F] === ue[++K] && F < ce);
                        if (w = P - (ce - F), F = ce - P, J < w) {
                            if (m.match_start = V, X <= (J = w)) break;
                            ye = ue[F + J - 1], me = ue[F + J]
                        }
                    } while ((V = re[V & ie]) > Q && --k != 0);
                    return J <= m.lookahead ? J : m.lookahead
                }

                function ke(m) {
                    var V, K, w, k, F, J, X, Q, ue, ie, re = m.w_size;
                    do {
                        if (k = m.window_size - m.lookahead - m.strstart, m.strstart >= re + (re - j)) {
                            for (a.arraySet(m.window, m.window, re, re, 0), m.match_start -= re, m.strstart -= re, m.block_start -= re, V = K = m.hash_size; w = m.head[--V], m.head[V] = re <= w ? w - re : 0, --K;) ;
                            for (V = K = re; w = m.prev[--V], m.prev[V] = re <= w ? w - re : 0, --K;) ;
                            k += re
                        }
                        if (m.strm.avail_in === 0) break;
                        if (J = m.strm, X = m.window, Q = m.strstart + m.lookahead, ue = k, ie = void 0, ie = J.avail_in, ue < ie && (ie = ue), K = ie === 0 ? 0 : (J.avail_in -= ie, a.arraySet(X, J.input, J.next_in, ie, Q), J.state.wrap === 1 ? J.adler = o(J.adler, X, ie, Q) : J.state.wrap === 2 && (J.adler = l(J.adler, X, ie, Q)), J.next_in += ie, J.total_in += ie, ie), m.lookahead += K, m.lookahead + m.insert >= B) for (F = m.strstart - m.insert, m.ins_h = m.window[F], m.ins_h = (m.ins_h << m.hash_shift ^ m.window[F + 1]) & m.hash_mask; m.insert && (m.ins_h = (m.ins_h << m.hash_shift ^ m.window[F + B - 1]) & m.hash_mask, m.prev[F & m.w_mask] = m.head[m.ins_h], m.head[m.ins_h] = F, F++, m.insert--, !(m.lookahead + m.insert < B));) ;
                    } while (m.lookahead < j && m.strm.avail_in !== 0)
                }

                function Ae(m, V) {
                    for (var K, w; ;) {
                        if (m.lookahead < j) {
                            if (ke(m), m.lookahead < j && V === p) return f;
                            if (m.lookahead === 0) break
                        }
                        if (K = 0, m.lookahead >= B && (m.ins_h = (m.ins_h << m.hash_shift ^ m.window[m.strstart + B - 1]) & m.hash_mask, K = m.prev[m.strstart & m.w_mask] = m.head[m.ins_h], m.head[m.ins_h] = m.strstart), K !== 0 && m.strstart - K <= m.w_size - j && (m.match_length = ne(m, K)), m.match_length >= B) if (w = s._tr_tally(m, m.strstart - m.match_start, m.match_length - B), m.lookahead -= m.match_length, m.match_length <= m.max_lazy_match && m.lookahead >= B) {
                            for (m.match_length--; m.strstart++, m.ins_h = (m.ins_h << m.hash_shift ^ m.window[m.strstart + B - 1]) & m.hash_mask, K = m.prev[m.strstart & m.w_mask] = m.head[m.ins_h], m.head[m.ins_h] = m.strstart, --m.match_length != 0;) ;
                            m.strstart++
                        } else m.strstart += m.match_length, m.match_length = 0, m.ins_h = m.window[m.strstart], m.ins_h = (m.ins_h << m.hash_shift ^ m.window[m.strstart + 1]) & m.hash_mask; else w = s._tr_tally(m, 0, m.window[m.strstart]), m.lookahead--, m.strstart++;
                        if (w && (Y(m, !1), m.strm.avail_out === 0)) return f
                    }
                    return m.insert = m.strstart < B - 1 ? m.strstart : B - 1, V === g ? (Y(m, !0), m.strm.avail_out === 0 ? q : O) : m.last_lit && (Y(m, !1), m.strm.avail_out === 0) ? f : C
                }

                function pe(m, V) {
                    for (var K, w, k; ;) {
                        if (m.lookahead < j) {
                            if (ke(m), m.lookahead < j && V === p) return f;
                            if (m.lookahead === 0) break
                        }
                        if (K = 0, m.lookahead >= B && (m.ins_h = (m.ins_h << m.hash_shift ^ m.window[m.strstart + B - 1]) & m.hash_mask, K = m.prev[m.strstart & m.w_mask] = m.head[m.ins_h], m.head[m.ins_h] = m.strstart), m.prev_length = m.match_length, m.prev_match = m.match_start, m.match_length = B - 1, K !== 0 && m.prev_length < m.max_lazy_match && m.strstart - K <= m.w_size - j && (m.match_length = ne(m, K), m.match_length <= 5 && (m.strategy === 1 || m.match_length === B && 4096 < m.strstart - m.match_start) && (m.match_length = B - 1)), m.prev_length >= B && m.match_length <= m.prev_length) {
                            for (k = m.strstart + m.lookahead - B, w = s._tr_tally(m, m.strstart - 1 - m.prev_match, m.prev_length - B), m.lookahead -= m.prev_length - 1, m.prev_length -= 2; ++m.strstart <= k && (m.ins_h = (m.ins_h << m.hash_shift ^ m.window[m.strstart + B - 1]) & m.hash_mask, K = m.prev[m.strstart & m.w_mask] = m.head[m.ins_h], m.head[m.ins_h] = m.strstart), --m.prev_length != 0;) ;
                            if (m.match_available = 0, m.match_length = B - 1, m.strstart++, w && (Y(m, !1), m.strm.avail_out === 0)) return f
                        } else if (m.match_available) {
                            if ((w = s._tr_tally(m, 0, m.window[m.strstart - 1])) && Y(m, !1), m.strstart++, m.lookahead--, m.strm.avail_out === 0) return f
                        } else m.match_available = 1, m.strstart++, m.lookahead--
                    }
                    return m.match_available && (w = s._tr_tally(m, 0, m.window[m.strstart - 1]), m.match_available = 0), m.insert = m.strstart < B - 1 ? m.strstart : B - 1, V === g ? (Y(m, !0), m.strm.avail_out === 0 ? q : O) : m.last_lit && (Y(m, !1), m.strm.avail_out === 0) ? f : C
                }

                function be(m, V, K, w, k) {
                    this.good_length = m, this.max_lazy = V, this.nice_length = K, this.max_chain = w, this.func = k
                }

                function we() {
                    this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = y, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new a.Buf16(2 * M), this.dyn_dtree = new a.Buf16(2 * (2 * S + 1)), this.bl_tree = new a.Buf16(2 * (2 * L + 1)), ae(this.dyn_ltree), ae(this.dyn_dtree), ae(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new a.Buf16(z + 1), this.heap = new a.Buf16(2 * D + 1), ae(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new a.Buf16(2 * D + 1), ae(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0
                }

                function ve(m) {
                    var V;
                    return m && m.state ? (m.total_in = m.total_out = 0, m.data_type = _, (V = m.state).pending = 0, V.pending_out = 0, V.wrap < 0 && (V.wrap = -V.wrap), V.status = V.wrap ? b : T, m.adler = V.wrap === 2 ? 0 : 1, V.last_flush = p, s._tr_init(V), d) : U(m, E)
                }

                function Je(m) {
                    var V = ve(m);
                    return V === d && function (K) {
                        K.window_size = 2 * K.w_size, ae(K.head), K.max_lazy_match = i[K.level].max_lazy, K.good_match = i[K.level].good_length, K.nice_match = i[K.level].nice_length, K.max_chain_length = i[K.level].max_chain, K.strstart = 0, K.block_start = 0, K.lookahead = 0, K.insert = 0, K.match_length = K.prev_length = B - 1, K.match_available = 0, K.ins_h = 0
                    }(m.state), V
                }

                function qe(m, V, K, w, k, F) {
                    if (!m) return E;
                    var J = 1;
                    if (V === A && (V = 6), w < 0 ? (J = 0, w = -w) : 15 < w && (J = 2, w -= 16), k < 1 || v < k || K !== y || w < 8 || 15 < w || V < 0 || 9 < V || F < 0 || x < F) return U(m, E);
                    w === 8 && (w = 9);
                    var X = new we;
                    return (m.state = X).strm = m, X.wrap = J, X.gzhead = null, X.w_bits = w, X.w_size = 1 << X.w_bits, X.w_mask = X.w_size - 1, X.hash_bits = k + 7, X.hash_size = 1 << X.hash_bits, X.hash_mask = X.hash_size - 1, X.hash_shift = ~~((X.hash_bits + B - 1) / B), X.window = new a.Buf8(2 * X.w_size), X.head = new a.Buf16(X.hash_size), X.prev = new a.Buf16(X.w_size), X.lit_bufsize = 1 << k + 6, X.pending_buf_size = 4 * X.lit_bufsize, X.pending_buf = new a.Buf8(X.pending_buf_size), X.d_buf = 1 * X.lit_bufsize, X.l_buf = 3 * X.lit_bufsize, X.level = V, X.strategy = F, X.method = K, Je(m)
                }

                i = [new be(0, 0, 0, 0, function (m, V) {
                    var K = 65535;
                    for (K > m.pending_buf_size - 5 && (K = m.pending_buf_size - 5); ;) {
                        if (m.lookahead <= 1) {
                            if (ke(m), m.lookahead === 0 && V === p) return f;
                            if (m.lookahead === 0) break
                        }
                        m.strstart += m.lookahead, m.lookahead = 0;
                        var w = m.block_start + K;
                        if ((m.strstart === 0 || m.strstart >= w) && (m.lookahead = m.strstart - w, m.strstart = w, Y(m, !1), m.strm.avail_out === 0) || m.strstart - m.block_start >= m.w_size - j && (Y(m, !1), m.strm.avail_out === 0)) return f
                    }
                    return m.insert = 0, V === g ? (Y(m, !0), m.strm.avail_out === 0 ? q : O) : (m.strstart > m.block_start && (Y(m, !1), m.strm.avail_out), f)
                }), new be(4, 4, 8, 4, Ae), new be(4, 5, 16, 8, Ae), new be(4, 6, 32, 32, Ae), new be(4, 4, 16, 16, pe), new be(8, 16, 32, 32, pe), new be(8, 16, 128, 128, pe), new be(8, 32, 128, 256, pe), new be(32, 128, 258, 1024, pe), new be(32, 258, 258, 4096, pe)], n.deflateInit = function (m, V) {
                    return qe(m, V, y, 15, 8, 0)
                }, n.deflateInit2 = qe, n.deflateReset = Je, n.deflateResetKeep = ve, n.deflateSetHeader = function (m, V) {
                    return m && m.state ? m.state.wrap !== 2 ? E : (m.state.gzhead = V, d) : E
                }, n.deflate = function (m, V) {
                    var K, w, k, F;
                    if (!m || !m.state || 5 < V || V < 0) return m ? U(m, E) : E;
                    if (w = m.state, !m.output || !m.input && m.avail_in !== 0 || w.status === 666 && V !== g) return U(m, m.avail_out === 0 ? -5 : E);
                    if (w.strm = m, K = w.last_flush, w.last_flush = V, w.status === b) if (w.wrap === 2) m.adler = 0, le(w, 31), le(w, 139), le(w, 8), w.gzhead ? (le(w, (w.gzhead.text ? 1 : 0) + (w.gzhead.hcrc ? 2 : 0) + (w.gzhead.extra ? 4 : 0) + (w.gzhead.name ? 8 : 0) + (w.gzhead.comment ? 16 : 0)), le(w, 255 & w.gzhead.time), le(w, w.gzhead.time >> 8 & 255), le(w, w.gzhead.time >> 16 & 255), le(w, w.gzhead.time >> 24 & 255), le(w, w.level === 9 ? 2 : 2 <= w.strategy || w.level < 2 ? 4 : 0), le(w, 255 & w.gzhead.os), w.gzhead.extra && w.gzhead.extra.length && (le(w, 255 & w.gzhead.extra.length), le(w, w.gzhead.extra.length >> 8 & 255)), w.gzhead.hcrc && (m.adler = l(m.adler, w.pending_buf, w.pending, 0)), w.gzindex = 0, w.status = 69) : (le(w, 0), le(w, 0), le(w, 0), le(w, 0), le(w, 0), le(w, w.level === 9 ? 2 : 2 <= w.strategy || w.level < 2 ? 4 : 0), le(w, 3), w.status = T); else {
                        var J = y + (w.w_bits - 8 << 4) << 8;
                        J |= (2 <= w.strategy || w.level < 2 ? 0 : w.level < 6 ? 1 : w.level === 6 ? 2 : 3) << 6, w.strstart !== 0 && (J |= 32), J += 31 - J % 31, w.status = T, se(w, J), w.strstart !== 0 && (se(w, m.adler >>> 16), se(w, 65535 & m.adler)), m.adler = 1
                    }
                    if (w.status === 69) if (w.gzhead.extra) {
                        for (k = w.pending; w.gzindex < (65535 & w.gzhead.extra.length) && (w.pending !== w.pending_buf_size || (w.gzhead.hcrc && w.pending > k && (m.adler = l(m.adler, w.pending_buf, w.pending - k, k)), W(m), k = w.pending, w.pending !== w.pending_buf_size));) le(w, 255 & w.gzhead.extra[w.gzindex]), w.gzindex++;
                        w.gzhead.hcrc && w.pending > k && (m.adler = l(m.adler, w.pending_buf, w.pending - k, k)), w.gzindex === w.gzhead.extra.length && (w.gzindex = 0, w.status = 73)
                    } else w.status = 73;
                    if (w.status === 73) if (w.gzhead.name) {
                        k = w.pending;
                        do {
                            if (w.pending === w.pending_buf_size && (w.gzhead.hcrc && w.pending > k && (m.adler = l(m.adler, w.pending_buf, w.pending - k, k)), W(m), k = w.pending, w.pending === w.pending_buf_size)) {
                                F = 1;
                                break
                            }
                            F = w.gzindex < w.gzhead.name.length ? 255 & w.gzhead.name.charCodeAt(w.gzindex++) : 0, le(w, F)
                        } while (F !== 0);
                        w.gzhead.hcrc && w.pending > k && (m.adler = l(m.adler, w.pending_buf, w.pending - k, k)), F === 0 && (w.gzindex = 0, w.status = 91)
                    } else w.status = 91;
                    if (w.status === 91) if (w.gzhead.comment) {
                        k = w.pending;
                        do {
                            if (w.pending === w.pending_buf_size && (w.gzhead.hcrc && w.pending > k && (m.adler = l(m.adler, w.pending_buf, w.pending - k, k)), W(m), k = w.pending, w.pending === w.pending_buf_size)) {
                                F = 1;
                                break
                            }
                            F = w.gzindex < w.gzhead.comment.length ? 255 & w.gzhead.comment.charCodeAt(w.gzindex++) : 0, le(w, F)
                        } while (F !== 0);
                        w.gzhead.hcrc && w.pending > k && (m.adler = l(m.adler, w.pending_buf, w.pending - k, k)), F === 0 && (w.status = 103)
                    } else w.status = 103;
                    if (w.status === 103 && (w.gzhead.hcrc ? (w.pending + 2 > w.pending_buf_size && W(m), w.pending + 2 <= w.pending_buf_size && (le(w, 255 & m.adler), le(w, m.adler >> 8 & 255), m.adler = 0, w.status = T)) : w.status = T), w.pending !== 0) {
                        if (W(m), m.avail_out === 0) return w.last_flush = -1, d
                    } else if (m.avail_in === 0 && G(V) <= G(K) && V !== g) return U(m, -5);
                    if (w.status === 666 && m.avail_in !== 0) return U(m, -5);
                    if (m.avail_in !== 0 || w.lookahead !== 0 || V !== p && w.status !== 666) {
                        var X = w.strategy === 2 ? function (Q, ue) {
                            for (var ie; ;) {
                                if (Q.lookahead === 0 && (ke(Q), Q.lookahead === 0)) {
                                    if (ue === p) return f;
                                    break
                                }
                                if (Q.match_length = 0, ie = s._tr_tally(Q, 0, Q.window[Q.strstart]), Q.lookahead--, Q.strstart++, ie && (Y(Q, !1), Q.strm.avail_out === 0)) return f
                            }
                            return Q.insert = 0, ue === g ? (Y(Q, !0), Q.strm.avail_out === 0 ? q : O) : Q.last_lit && (Y(Q, !1), Q.strm.avail_out === 0) ? f : C
                        }(w, V) : w.strategy === 3 ? function (Q, ue) {
                            for (var ie, re, ce, ye, me = Q.window; ;) {
                                if (Q.lookahead <= P) {
                                    if (ke(Q), Q.lookahead <= P && ue === p) return f;
                                    if (Q.lookahead === 0) break
                                }
                                if (Q.match_length = 0, Q.lookahead >= B && 0 < Q.strstart && (re = me[ce = Q.strstart - 1]) === me[++ce] && re === me[++ce] && re === me[++ce]) {
                                    ye = Q.strstart + P;
                                    do ; while (re === me[++ce] && re === me[++ce] && re === me[++ce] && re === me[++ce] && re === me[++ce] && re === me[++ce] && re === me[++ce] && re === me[++ce] && ce < ye);
                                    Q.match_length = P - (ye - ce), Q.match_length > Q.lookahead && (Q.match_length = Q.lookahead)
                                }
                                if (Q.match_length >= B ? (ie = s._tr_tally(Q, 1, Q.match_length - B), Q.lookahead -= Q.match_length, Q.strstart += Q.match_length, Q.match_length = 0) : (ie = s._tr_tally(Q, 0, Q.window[Q.strstart]), Q.lookahead--, Q.strstart++), ie && (Y(Q, !1), Q.strm.avail_out === 0)) return f
                            }
                            return Q.insert = 0, ue === g ? (Y(Q, !0), Q.strm.avail_out === 0 ? q : O) : Q.last_lit && (Y(Q, !1), Q.strm.avail_out === 0) ? f : C
                        }(w, V) : i[w.level].func(w, V);
                        if (X !== q && X !== O || (w.status = 666), X === f || X === q) return m.avail_out === 0 && (w.last_flush = -1), d;
                        if (X === C && (V === 1 ? s._tr_align(w) : V !== 5 && (s._tr_stored_block(w, 0, 0, !1), V === 3 && (ae(w.head), w.lookahead === 0 && (w.strstart = 0, w.block_start = 0, w.insert = 0))), W(m), m.avail_out === 0)) return w.last_flush = -1, d
                    }
                    return V !== g ? d : w.wrap <= 0 ? 1 : (w.wrap === 2 ? (le(w, 255 & m.adler), le(w, m.adler >> 8 & 255), le(w, m.adler >> 16 & 255), le(w, m.adler >> 24 & 255), le(w, 255 & m.total_in), le(w, m.total_in >> 8 & 255), le(w, m.total_in >> 16 & 255), le(w, m.total_in >> 24 & 255)) : (se(w, m.adler >>> 16), se(w, 65535 & m.adler)), W(m), 0 < w.wrap && (w.wrap = -w.wrap), w.pending !== 0 ? d : 1)
                }, n.deflateEnd = function (m) {
                    var V;
                    return m && m.state ? (V = m.state.status) !== b && V !== 69 && V !== 73 && V !== 91 && V !== 103 && V !== T && V !== 666 ? U(m, E) : (m.state = null, V === T ? U(m, -3) : d) : E
                }, n.deflateSetDictionary = function (m, V) {
                    var K, w, k, F, J, X, Q, ue, ie = V.length;
                    if (!m || !m.state || (F = (K = m.state).wrap) === 2 || F === 1 && K.status !== b || K.lookahead) return E;
                    for (F === 1 && (m.adler = o(m.adler, V, ie, 0)), K.wrap = 0, ie >= K.w_size && (F === 0 && (ae(K.head), K.strstart = 0, K.block_start = 0, K.insert = 0), ue = new a.Buf8(K.w_size), a.arraySet(ue, V, ie - K.w_size, K.w_size, 0), V = ue, ie = K.w_size), J = m.avail_in, X = m.next_in, Q = m.input, m.avail_in = ie, m.next_in = 0, m.input = V, ke(K); K.lookahead >= B;) {
                        for (w = K.strstart, k = K.lookahead - (B - 1); K.ins_h = (K.ins_h << K.hash_shift ^ K.window[w + B - 1]) & K.hash_mask, K.prev[w & K.w_mask] = K.head[K.ins_h], K.head[K.ins_h] = w, w++, --k;) ;
                        K.strstart = w, K.lookahead = B - 1, ke(K)
                    }
                    return K.strstart += K.lookahead, K.block_start = K.strstart, K.insert = K.lookahead, K.lookahead = 0, K.match_length = K.prev_length = B - 1, K.match_available = 0, m.next_in = X, m.input = Q, m.avail_in = J, K.wrap = F, d
                }, n.deflateInfo = "pako deflate (from Nodeca project)"
            }, {"../utils/common": 41, "./adler32": 43, "./crc32": 45, "./messages": 51, "./trees": 52}],
            47: [function (r, u, n) {
                u.exports = function () {
                    this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1
                }
            }, {}],
            48: [function (r, u, n) {
                u.exports = function (i, a) {
                    var s, o, l, h, p, g, d, E, A, x, _, y, v, D, S, L, M, z, B, P, j, b, T, f, C;
                    s = i.state, o = i.next_in, f = i.input, l = o + (i.avail_in - 5), h = i.next_out, C = i.output, p = h - (a - i.avail_out), g = h + (i.avail_out - 257), d = s.dmax, E = s.wsize, A = s.whave, x = s.wnext, _ = s.window, y = s.hold, v = s.bits, D = s.lencode, S = s.distcode, L = (1 << s.lenbits) - 1, M = (1 << s.distbits) - 1;
                    e:do {
                        v < 15 && (y += f[o++] << v, v += 8, y += f[o++] << v, v += 8), z = D[y & L];
                        t:for (; ;) {
                            if (y >>>= B = z >>> 24, v -= B, (B = z >>> 16 & 255) === 0) C[h++] = 65535 & z; else {
                                if (!(16 & B)) {
                                    if (!(64 & B)) {
                                        z = D[(65535 & z) + (y & (1 << B) - 1)];
                                        continue t
                                    }
                                    if (32 & B) {
                                        s.mode = 12;
                                        break e
                                    }
                                    i.msg = "invalid literal/length code", s.mode = 30;
                                    break e
                                }
                                P = 65535 & z, (B &= 15) && (v < B && (y += f[o++] << v, v += 8), P += y & (1 << B) - 1, y >>>= B, v -= B), v < 15 && (y += f[o++] << v, v += 8, y += f[o++] << v, v += 8), z = S[y & M];
                                r:for (; ;) {
                                    if (y >>>= B = z >>> 24, v -= B, !(16 & (B = z >>> 16 & 255))) {
                                        if (!(64 & B)) {
                                            z = S[(65535 & z) + (y & (1 << B) - 1)];
                                            continue r
                                        }
                                        i.msg = "invalid distance code", s.mode = 30;
                                        break e
                                    }
                                    if (j = 65535 & z, v < (B &= 15) && (y += f[o++] << v, (v += 8) < B && (y += f[o++] << v, v += 8)), d < (j += y & (1 << B) - 1)) {
                                        i.msg = "invalid distance too far back", s.mode = 30;
                                        break e
                                    }
                                    if (y >>>= B, v -= B, (B = h - p) < j) {
                                        if (A < (B = j - B) && s.sane) {
                                            i.msg = "invalid distance too far back", s.mode = 30;
                                            break e
                                        }
                                        if (T = _, (b = 0) === x) {
                                            if (b += E - B, B < P) {
                                                for (P -= B; C[h++] = _[b++], --B;) ;
                                                b = h - j, T = C
                                            }
                                        } else if (x < B) {
                                            if (b += E + x - B, (B -= x) < P) {
                                                for (P -= B; C[h++] = _[b++], --B;) ;
                                                if (b = 0, x < P) {
                                                    for (P -= B = x; C[h++] = _[b++], --B;) ;
                                                    b = h - j, T = C
                                                }
                                            }
                                        } else if (b += x - B, B < P) {
                                            for (P -= B; C[h++] = _[b++], --B;) ;
                                            b = h - j, T = C
                                        }
                                        for (; 2 < P;) C[h++] = T[b++], C[h++] = T[b++], C[h++] = T[b++], P -= 3;
                                        P && (C[h++] = T[b++], 1 < P && (C[h++] = T[b++]))
                                    } else {
                                        for (b = h - j; C[h++] = C[b++], C[h++] = C[b++], C[h++] = C[b++], 2 < (P -= 3);) ;
                                        P && (C[h++] = C[b++], 1 < P && (C[h++] = C[b++]))
                                    }
                                    break
                                }
                            }
                            break
                        }
                    } while (o < l && h < g);
                    o -= P = v >> 3, y &= (1 << (v -= P << 3)) - 1, i.next_in = o, i.next_out = h, i.avail_in = o < l ? l - o + 5 : 5 - (o - l), i.avail_out = h < g ? g - h + 257 : 257 - (h - g), s.hold = y, s.bits = v
                }
            }, {}],
            49: [function (r, u, n) {
                var i = r("../utils/common"), a = r("./adler32"), s = r("./crc32"), o = r("./inffast"),
                    l = r("./inftrees"), h = 1, p = 2, g = 0, d = -2, E = 1, A = 852, x = 592;

                function _(b) {
                    return (b >>> 24 & 255) + (b >>> 8 & 65280) + ((65280 & b) << 8) + ((255 & b) << 24)
                }

                function y() {
                    this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new i.Buf16(320), this.work = new i.Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0
                }

                function v(b) {
                    var T;
                    return b && b.state ? (T = b.state, b.total_in = b.total_out = T.total = 0, b.msg = "", T.wrap && (b.adler = 1 & T.wrap), T.mode = E, T.last = 0, T.havedict = 0, T.dmax = 32768, T.head = null, T.hold = 0, T.bits = 0, T.lencode = T.lendyn = new i.Buf32(A), T.distcode = T.distdyn = new i.Buf32(x), T.sane = 1, T.back = -1, g) : d
                }

                function D(b) {
                    var T;
                    return b && b.state ? ((T = b.state).wsize = 0, T.whave = 0, T.wnext = 0, v(b)) : d
                }

                function S(b, T) {
                    var f, C;
                    return b && b.state ? (C = b.state, T < 0 ? (f = 0, T = -T) : (f = 1 + (T >> 4), T < 48 && (T &= 15)), T && (T < 8 || 15 < T) ? d : (C.window !== null && C.wbits !== T && (C.window = null), C.wrap = f, C.wbits = T, D(b))) : d
                }

                function L(b, T) {
                    var f, C;
                    return b ? (C = new y, (b.state = C).window = null, (f = S(b, T)) !== g && (b.state = null), f) : d
                }

                var M, z, B = !0;

                function P(b) {
                    if (B) {
                        var T;
                        for (M = new i.Buf32(512), z = new i.Buf32(32), T = 0; T < 144;) b.lens[T++] = 8;
                        for (; T < 256;) b.lens[T++] = 9;
                        for (; T < 280;) b.lens[T++] = 7;
                        for (; T < 288;) b.lens[T++] = 8;
                        for (l(h, b.lens, 0, 288, M, 0, b.work, {bits: 9}), T = 0; T < 32;) b.lens[T++] = 5;
                        l(p, b.lens, 0, 32, z, 0, b.work, {bits: 5}), B = !1
                    }
                    b.lencode = M, b.lenbits = 9, b.distcode = z, b.distbits = 5
                }

                function j(b, T, f, C) {
                    var q, O = b.state;
                    return O.window === null && (O.wsize = 1 << O.wbits, O.wnext = 0, O.whave = 0, O.window = new i.Buf8(O.wsize)), C >= O.wsize ? (i.arraySet(O.window, T, f - O.wsize, O.wsize, 0), O.wnext = 0, O.whave = O.wsize) : (C < (q = O.wsize - O.wnext) && (q = C), i.arraySet(O.window, T, f - C, q, O.wnext), (C -= q) ? (i.arraySet(O.window, T, f - C, C, 0), O.wnext = C, O.whave = O.wsize) : (O.wnext += q, O.wnext === O.wsize && (O.wnext = 0), O.whave < O.wsize && (O.whave += q))), 0
                }

                n.inflateReset = D, n.inflateReset2 = S, n.inflateResetKeep = v, n.inflateInit = function (b) {
                    return L(b, 15)
                }, n.inflateInit2 = L, n.inflate = function (b, T) {
                    var f, C, q, O, U, G, ae, W, Y, le, se, ne, ke, Ae, pe, be, we, ve, Je, qe, m, V, K, w, k = 0,
                        F = new i.Buf8(4), J = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
                    if (!b || !b.state || !b.output || !b.input && b.avail_in !== 0) return d;
                    (f = b.state).mode === 12 && (f.mode = 13), U = b.next_out, q = b.output, ae = b.avail_out, O = b.next_in, C = b.input, G = b.avail_in, W = f.hold, Y = f.bits, le = G, se = ae, V = g;
                    e:for (; ;) switch (f.mode) {
                        case E:
                            if (f.wrap === 0) {
                                f.mode = 13;
                                break
                            }
                            for (; Y < 16;) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            if (2 & f.wrap && W === 35615) {
                                F[f.check = 0] = 255 & W, F[1] = W >>> 8 & 255, f.check = s(f.check, F, 2, 0), Y = W = 0, f.mode = 2;
                                break
                            }
                            if (f.flags = 0, f.head && (f.head.done = !1), !(1 & f.wrap) || (((255 & W) << 8) + (W >> 8)) % 31) {
                                b.msg = "incorrect header check", f.mode = 30;
                                break
                            }
                            if ((15 & W) != 8) {
                                b.msg = "unknown compression method", f.mode = 30;
                                break
                            }
                            if (Y -= 4, m = 8 + (15 & (W >>>= 4)), f.wbits === 0) f.wbits = m; else if (m > f.wbits) {
                                b.msg = "invalid window size", f.mode = 30;
                                break
                            }
                            f.dmax = 1 << m, b.adler = f.check = 1, f.mode = 512 & W ? 10 : 12, Y = W = 0;
                            break;
                        case 2:
                            for (; Y < 16;) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            if (f.flags = W, (255 & f.flags) != 8) {
                                b.msg = "unknown compression method", f.mode = 30;
                                break
                            }
                            if (57344 & f.flags) {
                                b.msg = "unknown header flags set", f.mode = 30;
                                break
                            }
                            f.head && (f.head.text = W >> 8 & 1), 512 & f.flags && (F[0] = 255 & W, F[1] = W >>> 8 & 255, f.check = s(f.check, F, 2, 0)), Y = W = 0, f.mode = 3;
                        case 3:
                            for (; Y < 32;) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            f.head && (f.head.time = W), 512 & f.flags && (F[0] = 255 & W, F[1] = W >>> 8 & 255, F[2] = W >>> 16 & 255, F[3] = W >>> 24 & 255, f.check = s(f.check, F, 4, 0)), Y = W = 0, f.mode = 4;
                        case 4:
                            for (; Y < 16;) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            f.head && (f.head.xflags = 255 & W, f.head.os = W >> 8), 512 & f.flags && (F[0] = 255 & W, F[1] = W >>> 8 & 255, f.check = s(f.check, F, 2, 0)), Y = W = 0, f.mode = 5;
                        case 5:
                            if (1024 & f.flags) {
                                for (; Y < 16;) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                f.length = W, f.head && (f.head.extra_len = W), 512 & f.flags && (F[0] = 255 & W, F[1] = W >>> 8 & 255, f.check = s(f.check, F, 2, 0)), Y = W = 0
                            } else f.head && (f.head.extra = null);
                            f.mode = 6;
                        case 6:
                            if (1024 & f.flags && (G < (ne = f.length) && (ne = G), ne && (f.head && (m = f.head.extra_len - f.length, f.head.extra || (f.head.extra = new Array(f.head.extra_len)), i.arraySet(f.head.extra, C, O, ne, m)), 512 & f.flags && (f.check = s(f.check, C, ne, O)), G -= ne, O += ne, f.length -= ne), f.length)) break e;
                            f.length = 0, f.mode = 7;
                        case 7:
                            if (2048 & f.flags) {
                                if (G === 0) break e;
                                for (ne = 0; m = C[O + ne++], f.head && m && f.length < 65536 && (f.head.name += String.fromCharCode(m)), m && ne < G;) ;
                                if (512 & f.flags && (f.check = s(f.check, C, ne, O)), G -= ne, O += ne, m) break e
                            } else f.head && (f.head.name = null);
                            f.length = 0, f.mode = 8;
                        case 8:
                            if (4096 & f.flags) {
                                if (G === 0) break e;
                                for (ne = 0; m = C[O + ne++], f.head && m && f.length < 65536 && (f.head.comment += String.fromCharCode(m)), m && ne < G;) ;
                                if (512 & f.flags && (f.check = s(f.check, C, ne, O)), G -= ne, O += ne, m) break e
                            } else f.head && (f.head.comment = null);
                            f.mode = 9;
                        case 9:
                            if (512 & f.flags) {
                                for (; Y < 16;) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                if (W !== (65535 & f.check)) {
                                    b.msg = "header crc mismatch", f.mode = 30;
                                    break
                                }
                                Y = W = 0
                            }
                            f.head && (f.head.hcrc = f.flags >> 9 & 1, f.head.done = !0), b.adler = f.check = 0, f.mode = 12;
                            break;
                        case 10:
                            for (; Y < 32;) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            b.adler = f.check = _(W), Y = W = 0, f.mode = 11;
                        case 11:
                            if (f.havedict === 0) return b.next_out = U, b.avail_out = ae, b.next_in = O, b.avail_in = G, f.hold = W, f.bits = Y, 2;
                            b.adler = f.check = 1, f.mode = 12;
                        case 12:
                            if (T === 5 || T === 6) break e;
                        case 13:
                            if (f.last) {
                                W >>>= 7 & Y, Y -= 7 & Y, f.mode = 27;
                                break
                            }
                            for (; Y < 3;) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            switch (f.last = 1 & W, Y -= 1, 3 & (W >>>= 1)) {
                                case 0:
                                    f.mode = 14;
                                    break;
                                case 1:
                                    if (P(f), f.mode = 20, T !== 6) break;
                                    W >>>= 2, Y -= 2;
                                    break e;
                                case 2:
                                    f.mode = 17;
                                    break;
                                case 3:
                                    b.msg = "invalid block type", f.mode = 30
                            }
                            W >>>= 2, Y -= 2;
                            break;
                        case 14:
                            for (W >>>= 7 & Y, Y -= 7 & Y; Y < 32;) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            if ((65535 & W) != (W >>> 16 ^ 65535)) {
                                b.msg = "invalid stored block lengths", f.mode = 30;
                                break
                            }
                            if (f.length = 65535 & W, Y = W = 0, f.mode = 15, T === 6) break e;
                        case 15:
                            f.mode = 16;
                        case 16:
                            if (ne = f.length) {
                                if (G < ne && (ne = G), ae < ne && (ne = ae), ne === 0) break e;
                                i.arraySet(q, C, O, ne, U), G -= ne, O += ne, ae -= ne, U += ne, f.length -= ne;
                                break
                            }
                            f.mode = 12;
                            break;
                        case 17:
                            for (; Y < 14;) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            if (f.nlen = 257 + (31 & W), W >>>= 5, Y -= 5, f.ndist = 1 + (31 & W), W >>>= 5, Y -= 5, f.ncode = 4 + (15 & W), W >>>= 4, Y -= 4, 286 < f.nlen || 30 < f.ndist) {
                                b.msg = "too many length or distance symbols", f.mode = 30;
                                break
                            }
                            f.have = 0, f.mode = 18;
                        case 18:
                            for (; f.have < f.ncode;) {
                                for (; Y < 3;) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                f.lens[J[f.have++]] = 7 & W, W >>>= 3, Y -= 3
                            }
                            for (; f.have < 19;) f.lens[J[f.have++]] = 0;
                            if (f.lencode = f.lendyn, f.lenbits = 7, K = {bits: f.lenbits}, V = l(0, f.lens, 0, 19, f.lencode, 0, f.work, K), f.lenbits = K.bits, V) {
                                b.msg = "invalid code lengths set", f.mode = 30;
                                break
                            }
                            f.have = 0, f.mode = 19;
                        case 19:
                            for (; f.have < f.nlen + f.ndist;) {
                                for (; be = (k = f.lencode[W & (1 << f.lenbits) - 1]) >>> 16 & 255, we = 65535 & k, !((pe = k >>> 24) <= Y);) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                if (we < 16) W >>>= pe, Y -= pe, f.lens[f.have++] = we; else {
                                    if (we === 16) {
                                        for (w = pe + 2; Y < w;) {
                                            if (G === 0) break e;
                                            G--, W += C[O++] << Y, Y += 8
                                        }
                                        if (W >>>= pe, Y -= pe, f.have === 0) {
                                            b.msg = "invalid bit length repeat", f.mode = 30;
                                            break
                                        }
                                        m = f.lens[f.have - 1], ne = 3 + (3 & W), W >>>= 2, Y -= 2
                                    } else if (we === 17) {
                                        for (w = pe + 3; Y < w;) {
                                            if (G === 0) break e;
                                            G--, W += C[O++] << Y, Y += 8
                                        }
                                        Y -= pe, m = 0, ne = 3 + (7 & (W >>>= pe)), W >>>= 3, Y -= 3
                                    } else {
                                        for (w = pe + 7; Y < w;) {
                                            if (G === 0) break e;
                                            G--, W += C[O++] << Y, Y += 8
                                        }
                                        Y -= pe, m = 0, ne = 11 + (127 & (W >>>= pe)), W >>>= 7, Y -= 7
                                    }
                                    if (f.have + ne > f.nlen + f.ndist) {
                                        b.msg = "invalid bit length repeat", f.mode = 30;
                                        break
                                    }
                                    for (; ne--;) f.lens[f.have++] = m
                                }
                            }
                            if (f.mode === 30) break;
                            if (f.lens[256] === 0) {
                                b.msg = "invalid code -- missing end-of-block", f.mode = 30;
                                break
                            }
                            if (f.lenbits = 9, K = {bits: f.lenbits}, V = l(h, f.lens, 0, f.nlen, f.lencode, 0, f.work, K), f.lenbits = K.bits, V) {
                                b.msg = "invalid literal/lengths set", f.mode = 30;
                                break
                            }
                            if (f.distbits = 6, f.distcode = f.distdyn, K = {bits: f.distbits}, V = l(p, f.lens, f.nlen, f.ndist, f.distcode, 0, f.work, K), f.distbits = K.bits, V) {
                                b.msg = "invalid distances set", f.mode = 30;
                                break
                            }
                            if (f.mode = 20, T === 6) break e;
                        case 20:
                            f.mode = 21;
                        case 21:
                            if (6 <= G && 258 <= ae) {
                                b.next_out = U, b.avail_out = ae, b.next_in = O, b.avail_in = G, f.hold = W, f.bits = Y, o(b, se), U = b.next_out, q = b.output, ae = b.avail_out, O = b.next_in, C = b.input, G = b.avail_in, W = f.hold, Y = f.bits, f.mode === 12 && (f.back = -1);
                                break
                            }
                            for (f.back = 0; be = (k = f.lencode[W & (1 << f.lenbits) - 1]) >>> 16 & 255, we = 65535 & k, !((pe = k >>> 24) <= Y);) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            if (be && !(240 & be)) {
                                for (ve = pe, Je = be, qe = we; be = (k = f.lencode[qe + ((W & (1 << ve + Je) - 1) >> ve)]) >>> 16 & 255, we = 65535 & k, !(ve + (pe = k >>> 24) <= Y);) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                W >>>= ve, Y -= ve, f.back += ve
                            }
                            if (W >>>= pe, Y -= pe, f.back += pe, f.length = we, be === 0) {
                                f.mode = 26;
                                break
                            }
                            if (32 & be) {
                                f.back = -1, f.mode = 12;
                                break
                            }
                            if (64 & be) {
                                b.msg = "invalid literal/length code", f.mode = 30;
                                break
                            }
                            f.extra = 15 & be, f.mode = 22;
                        case 22:
                            if (f.extra) {
                                for (w = f.extra; Y < w;) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                f.length += W & (1 << f.extra) - 1, W >>>= f.extra, Y -= f.extra, f.back += f.extra
                            }
                            f.was = f.length, f.mode = 23;
                        case 23:
                            for (; be = (k = f.distcode[W & (1 << f.distbits) - 1]) >>> 16 & 255, we = 65535 & k, !((pe = k >>> 24) <= Y);) {
                                if (G === 0) break e;
                                G--, W += C[O++] << Y, Y += 8
                            }
                            if (!(240 & be)) {
                                for (ve = pe, Je = be, qe = we; be = (k = f.distcode[qe + ((W & (1 << ve + Je) - 1) >> ve)]) >>> 16 & 255, we = 65535 & k, !(ve + (pe = k >>> 24) <= Y);) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                W >>>= ve, Y -= ve, f.back += ve
                            }
                            if (W >>>= pe, Y -= pe, f.back += pe, 64 & be) {
                                b.msg = "invalid distance code", f.mode = 30;
                                break
                            }
                            f.offset = we, f.extra = 15 & be, f.mode = 24;
                        case 24:
                            if (f.extra) {
                                for (w = f.extra; Y < w;) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                f.offset += W & (1 << f.extra) - 1, W >>>= f.extra, Y -= f.extra, f.back += f.extra
                            }
                            if (f.offset > f.dmax) {
                                b.msg = "invalid distance too far back", f.mode = 30;
                                break
                            }
                            f.mode = 25;
                        case 25:
                            if (ae === 0) break e;
                            if (ne = se - ae, f.offset > ne) {
                                if ((ne = f.offset - ne) > f.whave && f.sane) {
                                    b.msg = "invalid distance too far back", f.mode = 30;
                                    break
                                }
                                ke = ne > f.wnext ? (ne -= f.wnext, f.wsize - ne) : f.wnext - ne, ne > f.length && (ne = f.length), Ae = f.window
                            } else Ae = q, ke = U - f.offset, ne = f.length;
                            for (ae < ne && (ne = ae), ae -= ne, f.length -= ne; q[U++] = Ae[ke++], --ne;) ;
                            f.length === 0 && (f.mode = 21);
                            break;
                        case 26:
                            if (ae === 0) break e;
                            q[U++] = f.length, ae--, f.mode = 21;
                            break;
                        case 27:
                            if (f.wrap) {
                                for (; Y < 32;) {
                                    if (G === 0) break e;
                                    G--, W |= C[O++] << Y, Y += 8
                                }
                                if (se -= ae, b.total_out += se, f.total += se, se && (b.adler = f.check = f.flags ? s(f.check, q, se, U - se) : a(f.check, q, se, U - se)), se = ae, (f.flags ? W : _(W)) !== f.check) {
                                    b.msg = "incorrect data check", f.mode = 30;
                                    break
                                }
                                Y = W = 0
                            }
                            f.mode = 28;
                        case 28:
                            if (f.wrap && f.flags) {
                                for (; Y < 32;) {
                                    if (G === 0) break e;
                                    G--, W += C[O++] << Y, Y += 8
                                }
                                if (W !== (4294967295 & f.total)) {
                                    b.msg = "incorrect length check", f.mode = 30;
                                    break
                                }
                                Y = W = 0
                            }
                            f.mode = 29;
                        case 29:
                            V = 1;
                            break e;
                        case 30:
                            V = -3;
                            break e;
                        case 31:
                            return -4;
                        case 32:
                        default:
                            return d
                    }
                    return b.next_out = U, b.avail_out = ae, b.next_in = O, b.avail_in = G, f.hold = W, f.bits = Y, (f.wsize || se !== b.avail_out && f.mode < 30 && (f.mode < 27 || T !== 4)) && j(b, b.output, b.next_out, se - b.avail_out) ? (f.mode = 31, -4) : (le -= b.avail_in, se -= b.avail_out, b.total_in += le, b.total_out += se, f.total += se, f.wrap && se && (b.adler = f.check = f.flags ? s(f.check, q, se, b.next_out - se) : a(f.check, q, se, b.next_out - se)), b.data_type = f.bits + (f.last ? 64 : 0) + (f.mode === 12 ? 128 : 0) + (f.mode === 20 || f.mode === 15 ? 256 : 0), (le == 0 && se === 0 || T === 4) && V === g && (V = -5), V)
                }, n.inflateEnd = function (b) {
                    if (!b || !b.state) return d;
                    var T = b.state;
                    return T.window && (T.window = null), b.state = null, g
                }, n.inflateGetHeader = function (b, T) {
                    var f;
                    return b && b.state && 2 & (f = b.state).wrap ? ((f.head = T).done = !1, g) : d
                }, n.inflateSetDictionary = function (b, T) {
                    var f, C = T.length;
                    return b && b.state ? (f = b.state).wrap !== 0 && f.mode !== 11 ? d : f.mode === 11 && a(1, T, C, 0) !== f.check ? -3 : j(b, T, C, C) ? (f.mode = 31, -4) : (f.havedict = 1, g) : d
                }, n.inflateInfo = "pako inflate (from Nodeca project)"
            }, {"../utils/common": 41, "./adler32": 43, "./crc32": 45, "./inffast": 48, "./inftrees": 50}],
            50: [function (r, u, n) {
                var i = r("../utils/common"),
                    a = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0],
                    s = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78],
                    o = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0],
                    l = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64];
                u.exports = function (h, p, g, d, E, A, x, _) {
                    var y, v, D, S, L, M, z, B, P, j = _.bits, b = 0, T = 0, f = 0, C = 0, q = 0, O = 0, U = 0, G = 0,
                        ae = 0, W = 0, Y = null, le = 0, se = new i.Buf16(16), ne = new i.Buf16(16), ke = null, Ae = 0;
                    for (b = 0; b <= 15; b++) se[b] = 0;
                    for (T = 0; T < d; T++) se[p[g + T]]++;
                    for (q = j, C = 15; 1 <= C && se[C] === 0; C--) ;
                    if (C < q && (q = C), C === 0) return E[A++] = 20971520, E[A++] = 20971520, _.bits = 1, 0;
                    for (f = 1; f < C && se[f] === 0; f++) ;
                    for (q < f && (q = f), b = G = 1; b <= 15; b++) if (G <<= 1, (G -= se[b]) < 0) return -1;
                    if (0 < G && (h === 0 || C !== 1)) return -1;
                    for (ne[1] = 0, b = 1; b < 15; b++) ne[b + 1] = ne[b] + se[b];
                    for (T = 0; T < d; T++) p[g + T] !== 0 && (x[ne[p[g + T]]++] = T);
                    if (M = h === 0 ? (Y = ke = x, 19) : h === 1 ? (Y = a, le -= 257, ke = s, Ae -= 257, 256) : (Y = o, ke = l, -1), b = f, L = A, U = T = W = 0, D = -1, S = (ae = 1 << (O = q)) - 1, h === 1 && 852 < ae || h === 2 && 592 < ae) return 1;
                    for (; ;) {
                        for (z = b - U, P = x[T] < M ? (B = 0, x[T]) : x[T] > M ? (B = ke[Ae + x[T]], Y[le + x[T]]) : (B = 96, 0), y = 1 << b - U, f = v = 1 << O; E[L + (W >> U) + (v -= y)] = z << 24 | B << 16 | P | 0, v !== 0;) ;
                        for (y = 1 << b - 1; W & y;) y >>= 1;
                        if (y !== 0 ? (W &= y - 1, W += y) : W = 0, T++, --se[b] == 0) {
                            if (b === C) break;
                            b = p[g + x[T]]
                        }
                        if (q < b && (W & S) !== D) {
                            for (U === 0 && (U = q), L += f, G = 1 << (O = b - U); O + U < C && !((G -= se[O + U]) <= 0);) O++, G <<= 1;
                            if (ae += 1 << O, h === 1 && 852 < ae || h === 2 && 592 < ae) return 1;
                            E[D = W & S] = q << 24 | O << 16 | L - A | 0
                        }
                    }
                    return W !== 0 && (E[L + W] = b - U << 24 | 64 << 16 | 0), _.bits = q, 0
                }
            }, {"../utils/common": 41}],
            51: [function (r, u, n) {
                u.exports = {
                    2: "need dictionary",
                    1: "stream end",
                    0: "",
                    "-1": "file error",
                    "-2": "stream error",
                    "-3": "data error",
                    "-4": "insufficient memory",
                    "-5": "buffer error",
                    "-6": "incompatible version"
                }
            }, {}],
            52: [function (r, u, n) {
                var i = r("../utils/common"), a = 0, s = 1;

                function o(k) {
                    for (var F = k.length; 0 <= --F;) k[F] = 0
                }

                var l = 0, h = 29, p = 256, g = p + 1 + h, d = 30, E = 19, A = 2 * g + 1, x = 15, _ = 16, y = 7,
                    v = 256, D = 16, S = 17, L = 18,
                    M = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0],
                    z = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13],
                    B = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7],
                    P = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], j = new Array(2 * (g + 2));
                o(j);
                var b = new Array(2 * d);
                o(b);
                var T = new Array(512);
                o(T);
                var f = new Array(256);
                o(f);
                var C = new Array(h);
                o(C);
                var q, O, U, G = new Array(d);

                function ae(k, F, J, X, Q) {
                    this.static_tree = k, this.extra_bits = F, this.extra_base = J, this.elems = X, this.max_length = Q, this.has_stree = k && k.length
                }

                function W(k, F) {
                    this.dyn_tree = k, this.max_code = 0, this.stat_desc = F
                }

                function Y(k) {
                    return k < 256 ? T[k] : T[256 + (k >>> 7)]
                }

                function le(k, F) {
                    k.pending_buf[k.pending++] = 255 & F, k.pending_buf[k.pending++] = F >>> 8 & 255
                }

                function se(k, F, J) {
                    k.bi_valid > _ - J ? (k.bi_buf |= F << k.bi_valid & 65535, le(k, k.bi_buf), k.bi_buf = F >> _ - k.bi_valid, k.bi_valid += J - _) : (k.bi_buf |= F << k.bi_valid & 65535, k.bi_valid += J)
                }

                function ne(k, F, J) {
                    se(k, J[2 * F], J[2 * F + 1])
                }

                function ke(k, F) {
                    for (var J = 0; J |= 1 & k, k >>>= 1, J <<= 1, 0 < --F;) ;
                    return J >>> 1
                }

                function Ae(k, F, J) {
                    var X, Q, ue = new Array(x + 1), ie = 0;
                    for (X = 1; X <= x; X++) ue[X] = ie = ie + J[X - 1] << 1;
                    for (Q = 0; Q <= F; Q++) {
                        var re = k[2 * Q + 1];
                        re !== 0 && (k[2 * Q] = ke(ue[re]++, re))
                    }
                }

                function pe(k) {
                    var F;
                    for (F = 0; F < g; F++) k.dyn_ltree[2 * F] = 0;
                    for (F = 0; F < d; F++) k.dyn_dtree[2 * F] = 0;
                    for (F = 0; F < E; F++) k.bl_tree[2 * F] = 0;
                    k.dyn_ltree[2 * v] = 1, k.opt_len = k.static_len = 0, k.last_lit = k.matches = 0
                }

                function be(k) {
                    8 < k.bi_valid ? le(k, k.bi_buf) : 0 < k.bi_valid && (k.pending_buf[k.pending++] = k.bi_buf), k.bi_buf = 0, k.bi_valid = 0
                }

                function we(k, F, J, X) {
                    var Q = 2 * F, ue = 2 * J;
                    return k[Q] < k[ue] || k[Q] === k[ue] && X[F] <= X[J]
                }

                function ve(k, F, J) {
                    for (var X = k.heap[J], Q = J << 1; Q <= k.heap_len && (Q < k.heap_len && we(F, k.heap[Q + 1], k.heap[Q], k.depth) && Q++, !we(F, X, k.heap[Q], k.depth));) k.heap[J] = k.heap[Q], J = Q, Q <<= 1;
                    k.heap[J] = X
                }

                function Je(k, F, J) {
                    var X, Q, ue, ie, re = 0;
                    if (k.last_lit !== 0) for (; X = k.pending_buf[k.d_buf + 2 * re] << 8 | k.pending_buf[k.d_buf + 2 * re + 1], Q = k.pending_buf[k.l_buf + re], re++, X === 0 ? ne(k, Q, F) : (ne(k, (ue = f[Q]) + p + 1, F), (ie = M[ue]) !== 0 && se(k, Q -= C[ue], ie), ne(k, ue = Y(--X), J), (ie = z[ue]) !== 0 && se(k, X -= G[ue], ie)), re < k.last_lit;) ;
                    ne(k, v, F)
                }

                function qe(k, F) {
                    var J, X, Q, ue = F.dyn_tree, ie = F.stat_desc.static_tree, re = F.stat_desc.has_stree,
                        ce = F.stat_desc.elems, ye = -1;
                    for (k.heap_len = 0, k.heap_max = A, J = 0; J < ce; J++) ue[2 * J] !== 0 ? (k.heap[++k.heap_len] = ye = J, k.depth[J] = 0) : ue[2 * J + 1] = 0;
                    for (; k.heap_len < 2;) ue[2 * (Q = k.heap[++k.heap_len] = ye < 2 ? ++ye : 0)] = 1, k.depth[Q] = 0, k.opt_len--, re && (k.static_len -= ie[2 * Q + 1]);
                    for (F.max_code = ye, J = k.heap_len >> 1; 1 <= J; J--) ve(k, ue, J);
                    for (Q = ce; J = k.heap[1], k.heap[1] = k.heap[k.heap_len--], ve(k, ue, 1), X = k.heap[1], k.heap[--k.heap_max] = J, k.heap[--k.heap_max] = X, ue[2 * Q] = ue[2 * J] + ue[2 * X], k.depth[Q] = (k.depth[J] >= k.depth[X] ? k.depth[J] : k.depth[X]) + 1, ue[2 * J + 1] = ue[2 * X + 1] = Q, k.heap[1] = Q++, ve(k, ue, 1), 2 <= k.heap_len;) ;
                    k.heap[--k.heap_max] = k.heap[1], function (me, Ve) {
                        var Wt, tt, Kt, De, kr, Iu, at = Ve.dyn_tree, ni = Ve.max_code, xo = Ve.stat_desc.static_tree,
                            Co = Ve.stat_desc.has_stree, Io = Ve.stat_desc.extra_bits, ii = Ve.stat_desc.extra_base,
                            qt = Ve.stat_desc.max_length, Sr = 0;
                        for (De = 0; De <= x; De++) me.bl_count[De] = 0;
                        for (at[2 * me.heap[me.heap_max] + 1] = 0, Wt = me.heap_max + 1; Wt < A; Wt++) qt < (De = at[2 * at[2 * (tt = me.heap[Wt]) + 1] + 1] + 1) && (De = qt, Sr++), at[2 * tt + 1] = De, ni < tt || (me.bl_count[De]++, kr = 0, ii <= tt && (kr = Io[tt - ii]), Iu = at[2 * tt], me.opt_len += Iu * (De + kr), Co && (me.static_len += Iu * (xo[2 * tt + 1] + kr)));
                        if (Sr !== 0) {
                            do {
                                for (De = qt - 1; me.bl_count[De] === 0;) De--;
                                me.bl_count[De]--, me.bl_count[De + 1] += 2, me.bl_count[qt]--, Sr -= 2
                            } while (0 < Sr);
                            for (De = qt; De !== 0; De--) for (tt = me.bl_count[De]; tt !== 0;) ni < (Kt = me.heap[--Wt]) || (at[2 * Kt + 1] !== De && (me.opt_len += (De - at[2 * Kt + 1]) * at[2 * Kt], at[2 * Kt + 1] = De), tt--)
                        }
                    }(k, F), Ae(ue, ye, k.bl_count)
                }

                function m(k, F, J) {
                    var X, Q, ue = -1, ie = F[1], re = 0, ce = 7, ye = 4;
                    for (ie === 0 && (ce = 138, ye = 3), F[2 * (J + 1) + 1] = 65535, X = 0; X <= J; X++) Q = ie, ie = F[2 * (X + 1) + 1], ++re < ce && Q === ie || (re < ye ? k.bl_tree[2 * Q] += re : Q !== 0 ? (Q !== ue && k.bl_tree[2 * Q]++, k.bl_tree[2 * D]++) : re <= 10 ? k.bl_tree[2 * S]++ : k.bl_tree[2 * L]++, ue = Q, ye = (re = 0) === ie ? (ce = 138, 3) : Q === ie ? (ce = 6, 3) : (ce = 7, 4))
                }

                function V(k, F, J) {
                    var X, Q, ue = -1, ie = F[1], re = 0, ce = 7, ye = 4;
                    for (ie === 0 && (ce = 138, ye = 3), X = 0; X <= J; X++) if (Q = ie, ie = F[2 * (X + 1) + 1], !(++re < ce && Q === ie)) {
                        if (re < ye) for (; ne(k, Q, k.bl_tree), --re != 0;) ; else Q !== 0 ? (Q !== ue && (ne(k, Q, k.bl_tree), re--), ne(k, D, k.bl_tree), se(k, re - 3, 2)) : re <= 10 ? (ne(k, S, k.bl_tree), se(k, re - 3, 3)) : (ne(k, L, k.bl_tree), se(k, re - 11, 7));
                        ue = Q, ye = (re = 0) === ie ? (ce = 138, 3) : Q === ie ? (ce = 6, 3) : (ce = 7, 4)
                    }
                }

                o(G);
                var K = !1;

                function w(k, F, J, X) {
                    se(k, (l << 1) + (X ? 1 : 0), 3), function (Q, ue, ie, re) {
                        be(Q), le(Q, ie), le(Q, ~ie), i.arraySet(Q.pending_buf, Q.window, ue, ie, Q.pending), Q.pending += ie
                    }(k, F, J)
                }

                n._tr_init = function (k) {
                    K || (function () {
                        var F, J, X, Q, ue, ie = new Array(x + 1);
                        for (Q = X = 0; Q < h - 1; Q++) for (C[Q] = X, F = 0; F < 1 << M[Q]; F++) f[X++] = Q;
                        for (f[X - 1] = Q, Q = ue = 0; Q < 16; Q++) for (G[Q] = ue, F = 0; F < 1 << z[Q]; F++) T[ue++] = Q;
                        for (ue >>= 7; Q < d; Q++) for (G[Q] = ue << 7, F = 0; F < 1 << z[Q] - 7; F++) T[256 + ue++] = Q;
                        for (J = 0; J <= x; J++) ie[J] = 0;
                        for (F = 0; F <= 143;) j[2 * F + 1] = 8, F++, ie[8]++;
                        for (; F <= 255;) j[2 * F + 1] = 9, F++, ie[9]++;
                        for (; F <= 279;) j[2 * F + 1] = 7, F++, ie[7]++;
                        for (; F <= 287;) j[2 * F + 1] = 8, F++, ie[8]++;
                        for (Ae(j, g + 1, ie), F = 0; F < d; F++) b[2 * F + 1] = 5, b[2 * F] = ke(F, 5);
                        q = new ae(j, M, p + 1, g, x), O = new ae(b, z, 0, d, x), U = new ae(new Array(0), B, 0, E, y)
                    }(), K = !0), k.l_desc = new W(k.dyn_ltree, q), k.d_desc = new W(k.dyn_dtree, O), k.bl_desc = new W(k.bl_tree, U), k.bi_buf = 0, k.bi_valid = 0, pe(k)
                }, n._tr_stored_block = w, n._tr_flush_block = function (k, F, J, X) {
                    var Q, ue, ie = 0;
                    0 < k.level ? (k.strm.data_type === 2 && (k.strm.data_type = function (re) {
                        var ce, ye = 4093624447;
                        for (ce = 0; ce <= 31; ce++, ye >>>= 1) if (1 & ye && re.dyn_ltree[2 * ce] !== 0) return a;
                        if (re.dyn_ltree[18] !== 0 || re.dyn_ltree[20] !== 0 || re.dyn_ltree[26] !== 0) return s;
                        for (ce = 32; ce < p; ce++) if (re.dyn_ltree[2 * ce] !== 0) return s;
                        return a
                    }(k)), qe(k, k.l_desc), qe(k, k.d_desc), ie = function (re) {
                        var ce;
                        for (m(re, re.dyn_ltree, re.l_desc.max_code), m(re, re.dyn_dtree, re.d_desc.max_code), qe(re, re.bl_desc), ce = E - 1; 3 <= ce && re.bl_tree[2 * P[ce] + 1] === 0; ce--) ;
                        return re.opt_len += 3 * (ce + 1) + 5 + 5 + 4, ce
                    }(k), Q = k.opt_len + 3 + 7 >>> 3, (ue = k.static_len + 3 + 7 >>> 3) <= Q && (Q = ue)) : Q = ue = J + 5, J + 4 <= Q && F !== -1 ? w(k, F, J, X) : k.strategy === 4 || ue === Q ? (se(k, 2 + (X ? 1 : 0), 3), Je(k, j, b)) : (se(k, 4 + (X ? 1 : 0), 3), function (re, ce, ye, me) {
                        var Ve;
                        for (se(re, ce - 257, 5), se(re, ye - 1, 5), se(re, me - 4, 4), Ve = 0; Ve < me; Ve++) se(re, re.bl_tree[2 * P[Ve] + 1], 3);
                        V(re, re.dyn_ltree, ce - 1), V(re, re.dyn_dtree, ye - 1)
                    }(k, k.l_desc.max_code + 1, k.d_desc.max_code + 1, ie + 1), Je(k, k.dyn_ltree, k.dyn_dtree)), pe(k), X && be(k)
                }, n._tr_tally = function (k, F, J) {
                    return k.pending_buf[k.d_buf + 2 * k.last_lit] = F >>> 8 & 255, k.pending_buf[k.d_buf + 2 * k.last_lit + 1] = 255 & F, k.pending_buf[k.l_buf + k.last_lit] = 255 & J, k.last_lit++, F === 0 ? k.dyn_ltree[2 * J]++ : (k.matches++, F--, k.dyn_ltree[2 * (f[J] + p + 1)]++, k.dyn_dtree[2 * Y(F)]++), k.last_lit === k.lit_bufsize - 1
                }, n._tr_align = function (k) {
                    se(k, 2, 3), ne(k, v, j), function (F) {
                        F.bi_valid === 16 ? (le(F, F.bi_buf), F.bi_buf = 0, F.bi_valid = 0) : 8 <= F.bi_valid && (F.pending_buf[F.pending++] = 255 & F.bi_buf, F.bi_buf >>= 8, F.bi_valid -= 8)
                    }(k)
                }
            }, {"../utils/common": 41}],
            53: [function (r, u, n) {
                u.exports = function () {
                    this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0
                }
            }, {}],
            54: [function (r, u, n) {
                (function (i) {
                    (function (a, s) {
                        if (!a.setImmediate) {
                            var o, l, h, p, g = 1, d = {}, E = !1, A = a.document,
                                x = Object.getPrototypeOf && Object.getPrototypeOf(a);
                            x = x && x.setTimeout ? x : a, o = {}.toString.call(a.process) === "[object process]" ? function (D) {
                                process.nextTick(function () {
                                    y(D)
                                })
                            } : function () {
                                if (a.postMessage && !a.importScripts) {
                                    var D = !0, S = a.onmessage;
                                    return a.onmessage = function () {
                                        D = !1
                                    }, a.postMessage("", "*"), a.onmessage = S, D
                                }
                            }() ? (p = "setImmediate$" + Math.random() + "$", a.addEventListener ? a.addEventListener("message", v, !1) : a.attachEvent("onmessage", v), function (D) {
                                a.postMessage(p + D, "*")
                            }) : a.MessageChannel ? ((h = new MessageChannel).port1.onmessage = function (D) {
                                y(D.data)
                            }, function (D) {
                                h.port2.postMessage(D)
                            }) : A && "onreadystatechange" in A.createElement("script") ? (l = A.documentElement, function (D) {
                                var S = A.createElement("script");
                                S.onreadystatechange = function () {
                                    y(D), S.onreadystatechange = null, l.removeChild(S), S = null
                                }, l.appendChild(S)
                            }) : function (D) {
                                setTimeout(y, 0, D)
                            }, x.setImmediate = function (D) {
                                typeof D != "function" && (D = new Function("" + D));
                                for (var S = new Array(arguments.length - 1), L = 0; L < S.length; L++) S[L] = arguments[L + 1];
                                var M = {callback: D, args: S};
                                return d[g] = M, o(g), g++
                            }, x.clearImmediate = _
                        }

                        function _(D) {
                            delete d[D]
                        }

                        function y(D) {
                            if (E) setTimeout(y, 0, D); else {
                                var S = d[D];
                                if (S) {
                                    E = !0;
                                    try {
                                        (function (L) {
                                            var M = L.callback, z = L.args;
                                            switch (z.length) {
                                                case 0:
                                                    M();
                                                    break;
                                                case 1:
                                                    M(z[0]);
                                                    break;
                                                case 2:
                                                    M(z[0], z[1]);
                                                    break;
                                                case 3:
                                                    M(z[0], z[1], z[2]);
                                                    break;
                                                default:
                                                    M.apply(s, z)
                                            }
                                        })(S)
                                    } finally {
                                        _(D), E = !1
                                    }
                                }
                            }
                        }

                        function v(D) {
                            D.source === a && typeof D.data == "string" && D.data.indexOf(p) === 0 && y(+D.data.slice(p.length))
                        }
                    })(typeof self > "u" ? i === void 0 ? this : i : self)
                }).call(this, typeof Xt < "u" ? Xt : typeof self < "u" ? self : typeof window < "u" ? window : {})
            }, {}]
        }, {}, [10])(10)
    })
})(_o);
var N2 = _o.exports;
const Q2 = iu(N2);
export {Q2 as J, Rt as R, R2 as a, L2 as b, No as c, O2 as h, H2 as j, F2 as m};
