{"version":3,"sources":["jsdelivr-header.js","/npm/ace-builds@1.32.0/src-noconflict/ext-beautify.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,uBAAuB,SAAS,EAAS,EAAS,GAC9G,aACA,IAAI,EAAgB,EAAQ,qBAAqB,cACjD,SAAS,EAAG,EAAO,GACf,OAAO,EAAM,KAAK,YAAY,EAAO,SAAW,CACpD,CACA,EAAQ,cAAgB,CAAC,OAAQ,OAAQ,KAAM,MAAO,UAAW,QAAS,KAAM,OAAQ,MAAO,QAAS,SAAU,OAAQ,OAAQ,QAAS,SAAU,QAAS,OAC9J,EAAQ,UAAY,CAAC,UAAW,QAAS,aAAc,OAAQ,MAAO,KAAM,WAAY,SAAU,OAAQ,OAAQ,SAAU,OAAQ,MAAO,KAAM,IAAK,SAAU,UAAW,QAAS,QAAS,QAAS,QAAS,QAAS,MACxN,EAAQ,cAAgB,CACpB,mCAAmC,GAEvC,EAAQ,SAAW,SAAU,GAqDzB,IApDA,IAMI,EAcA,EAKA,EAzBA,EAAW,IAAI,EAAc,EAAS,EAAG,GACzC,EAAQ,EAAS,kBACjB,EAAY,EAAQ,eACpB,EAAgB,EAAQ,cACxB,EAAY,EAAQ,UACpB,EAAgB,EAAQ,eAAiB,CAAC,EAE1C,GAAc,EACd,GAAc,EACd,GAAa,EACb,EAAO,GACP,EAAQ,GACR,EAAU,GACV,EAAQ,EACR,EAAY,EACZ,EAAa,EACb,EAAS,EACT,EAAW,EACX,EAAa,EACb,EAAa,EAEb,EAAS,EACT,EAAY,EAIZ,GAAiB,EACjB,GAAQ,EACR,GAAQ,EACR,GAAU,EACV,EAAS,CAAE,EAAG,GACd,EAAU,GACV,GAAW,EACX,EAAW,WACP,GAAa,EAAU,OAA4B,kBAAnB,EAAU,OAC1C,EAAU,MAAQ,EAAU,MAAM,QAAQ,OAAQ,IAC1D,EACI,EAAW,WAEX,IADA,IAAI,EAAM,EAAK,OAAS,EAET,GAAP,GAEc,MAAd,EAAK,IAET,GAAY,EAEhB,EAAO,EAAK,MAAM,EAAG,EAAM,EAC/B,EACI,EAAW,WACX,EAAO,EAAK,YACZ,GAAc,CAClB,EACiB,OAAV,GAAgB,CAInB,GAHA,EAAS,EAAS,qBACN,EAAS,WACrB,EAAY,EAAS,mBACA,IAAV,EAAuB,CAkC9B,GAjCA,EAAQ,EAAM,MACd,EAAW,EACX,EAAqB,UAAZ,GAA2C,iBAApB,EAAQ,QACpC,EAAG,EAAO,aACV,GAAQ,EACJ,IACA,GAAmD,IAAxC,EAAU,QAAQ,EAAU,QAC7B,OAAV,IACI,IAAY,GAAe,EAAY,GACvC,IACA,IACA,EAAY,GAChB,EAAW,EACX,GAAU,IAGT,EAAG,EAAO,aACf,GAAQ,EAEH,EAAG,EAAO,iBACf,GAAU,EAEL,EAAG,EAAO,iBACf,GAAU,GAET,GAAU,GAA4B,iBAAf,EAAM,MAAwD,MAA7B,EAAM,MAAM,OAAO,EAAG,IAC/E,IAEA,IAAW,IACX,EAAY,EACR,IACA,GAAa,IAEjB,EAAW,CAEX,IADA,IACO,EAAY,EAAG,IAClB,GAAQ,KACZ,GAAc,EACT,EAAG,EAAO,YAAe,EAAM,KAAK,MAAM,wBAC3C,EAAQ,EAAM,WACtB,CACA,GAAI,EAAO,CA4GP,GA3GmB,YAAf,EAAM,MAAsB,EAAM,MAAM,gDACxC,EAAQ,GAAS,EACjB,IACA,GAAa,EACT,EAAM,MAAM,oBACR,EAAK,MAAM,cACX,IACA,GAAc,IAIF,iBAAf,EAAM,MACX,IACyB,MAArB,EAAM,QAAQ,KACd,GAAa,EACb,GAAiB,EACZ,IACD,EAAY,IAEO,MAAvB,EAAM,OAAO,EAAG,KAChB,GAAc,EACU,MAApB,EAAK,QAAQ,IAA8C,MAAhC,EAAK,YAAY,QAAQ,IACpD,IACA,GAAc,GAEuB,MAAhC,EAAK,YAAY,QAAQ,GAC9B,IAGA,MAIY,iBAAf,EAAM,MACX,EAAW,EACgB,MAAvB,EAAM,OAAO,EAAG,KACW,SAAvB,EAAQ,EAAQ,IAChB,IACgC,MAAhC,EAAK,YAAY,QAAQ,GACzB,KAGA,GAAc,EACV,IACA,GAAa,KAGE,MAAvB,EAAM,OAAO,EAAG,IACQ,MAApB,EAAK,QAAQ,IAA8C,MAAhC,EAAK,YAAY,QAAQ,KACpD,GAAc,EACd,IACA,KAGmB,MAAvB,EAAM,OAAO,EAAG,IACQ,MAApB,EAAK,QAAQ,IAA8C,MAAhC,EAAK,YAAY,QAAQ,KACpD,GAAc,EACd,IACA,KAGR,KAEqB,qBAAf,EAAM,MAA8C,YAAf,EAAM,OAAuB,EAAM,MAAM,8DAMhE,yBAAf,EAAM,MAA6C,MAAV,GAC9C,IACA,IACA,GAAa,EACT,GACA,KAEgB,yBAAf,EAAM,MAAmC,EAAM,MAAM,YAC1D,IACA,IACI,EAAM,MAAM,UAAY,EAAa,GAAoB,IAAf,GAAoB,EAAc,kCAC5E,KAGA,GAAa,EACb,GAAc,IAGE,oBAAf,EAAM,MAAwC,OAAV,GAAmB,EAIvD,EAAG,EAAO,mBAAqB,EAAK,QAAQ,GAAG,MAAM,QAC1D,GAAc,EAET,EAAG,EAAO,qBACf,IACA,KAEK,EAAG,EAAO,cACf,IACc,OAAV,IACA,GAAc,IAEE,YAAf,EAAM,MAAsB,EAAM,MAAM,qBACzC,IACA,EAAW,IAjBf,IACA,GAAc,IAzBd,IACA,IACA,GAAc,EACd,GAAa,GAwCb,KAAiB,EAAM,KAAK,MAAM,gBAAmB,EAAM,OAAO,EAAG,GAAG,MAAM,cAAgB,EAAM,KAAK,MAAM,eAAkB,EAAM,OAAO,EAAG,GAAG,MAAM,YAAa,CAEvK,GADA,EAAS,EACL,EAAQ,EAER,IADA,IACK,EAAI,EAAO,EAAI,EAAW,IAC3B,EAAO,GAAK,OAEX,EAAQ,IACb,EAAS,EAAO,IASpB,IARA,EAAY,EACZ,EAAa,EACT,IACA,GAAU,GACV,IAAmB,IACnB,IACA,GAAiB,GAEhB,EAAI,EAAG,EAAI,EAAQ,IACpB,GAAQ,CAChB,CAyBA,GAxBmB,YAAf,EAAM,MAAsB,EAAM,MAAM,qBACvB,IAAb,IACA,EAAQ,GAAS,EACjB,IACA,GAAW,GAGK,YAAf,EAAM,MAAsB,EAAM,MAAM,cACzC,EAAQ,EAAQ,IAAM,EAAQ,EAAQ,GAAG,MAAM,sBAC/C,IACA,GAAW,GAGA,iBAAf,EAAM,OACN,IAAe,EAAM,MAAM,QAAU,IAAI,OACzC,IAAe,EAAM,MAAM,QAAU,IAAI,OACzC,GAAS,EAAM,QAEA,YAAf,EAAM,MAAsB,EAAM,MAAM,iCACxC,GAAiB,EACjB,EAAa,IAEP,GAAc,EAAM,QAAyB,YAAf,EAAM,OAC1C,GAAiB,GACF,iBAAf,EAAM,KAGN,IAFA,IAAe,EAAM,MAAM,QAAU,IAAI,OACzC,IAAe,EAAM,MAAM,QAAU,IAAI,OACpC,EAAI,EAAG,EAAI,EAAM,OAAQ,IAC1B,IAC2B,MAAvB,EAAM,OAAO,EAAG,IAAiC,SAAnB,EAAQ,IACtC,IAIM,QAAd,EAAM,OACN,EAAQ,EAAM,QAAQ,OAAQ,MAC9B,IAAgB,IAChB,IACwB,OAApB,EAAK,QAAQ,KACb,GAAQ,MAEhB,GAAQ,EACJ,IACA,GAAQ,KACZ,GAAc,EACd,GAAc,EACd,GAAa,GACR,EAAG,EAAO,eAAiB,IAA2C,IAAhC,EAAU,QAAQ,KAAsB,EAAG,EAAO,YAAwB,MAAV,KAEnG,EADA,GAAW,GAAiC,OAApB,EAAU,OACrB,EAED,GAEhB,IAAyD,IAA5C,EAAc,QAAQ,EAAU,SACzC,EAAG,EAAO,aAAyB,OAAV,EACzB,IAEK,EAAG,EAAO,aAAyB,MAAV,EAC9B,IAEK,EAAG,EAAO,cAA0B,OAAV,GAC/B,KAGJ,EAAG,EAAO,cACV,EAAU,GAEd,EAAM,CACV,CACJ,CACA,EAAQ,CACZ,CACA,EAAO,EAAK,OACZ,EAAQ,IAAI,SAAS,EACzB,EACA,EAAQ,SAAW,CAAC,CACZ,KAAM,WACN,YAAa,8BACb,KAAM,SAAU,GACZ,EAAQ,SAAS,EAAO,QAC5B,EACA,QAAS,gBAGjB,IACoB,IAAI,QAAQ,CAAC,qBAAqB,SAAS,GAClB,iBAAV,QAAwC,iBAAX,SAAuB,SAC3D,OAAO,QAAU,EAEzB","file":"/npm/ace-builds@1.32.0/src-noconflict/ext-beautify.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/ace-builds@1.32.0/src-noconflict/ext-beautify.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","ace.define(\"ace/ext/beautify\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(require, exports, module){// [WIP]\n\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\nexports.singletonTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"html\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nexports.blockTags = [\"article\", \"aside\", \"blockquote\", \"body\", \"div\", \"dl\", \"fieldset\", \"footer\", \"form\", \"head\", \"header\", \"html\", \"nav\", \"ol\", \"p\", \"script\", \"section\", \"style\", \"table\", \"tbody\", \"tfoot\", \"thead\", \"ul\"];\nexports.formatOptions = {\n    lineBreaksAfterCommasInCurlyBlock: true\n};\nexports.beautify = function (session) {\n    var iterator = new TokenIterator(session, 0, 0);\n    var token = iterator.getCurrentToken();\n    var tabString = session.getTabString();\n    var singletonTags = exports.singletonTags;\n    var blockTags = exports.blockTags;\n    var formatOptions = exports.formatOptions || {};\n    var nextToken;\n    var breakBefore = false;\n    var spaceBefore = false;\n    var spaceAfter = false;\n    var code = \"\";\n    var value = \"\";\n    var tagName = \"\";\n    var depth = 0;\n    var lastDepth = 0;\n    var lastIndent = 0;\n    var indent = 0;\n    var unindent = 0;\n    var roundDepth = 0;\n    var curlyDepth = 0;\n    var row;\n    var curRow = 0;\n    var rowsToAdd = 0;\n    var rowTokens = [];\n    var abort = false;\n    var i;\n    var indentNextLine = false;\n    var inTag = false;\n    var inCSS = false;\n    var inBlock = false;\n    var levels = { 0: 0 };\n    var parents = [];\n    var caseBody = false;\n    var trimNext = function () {\n        if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')\n            nextToken.value = nextToken.value.replace(/^\\s*/, \"\");\n    };\n    var trimLine = function () {\n        var end = code.length - 1;\n        while (true) {\n            if (end == 0)\n                break;\n            if (code[end] !== \" \")\n                break;\n            end = end - 1;\n        }\n        code = code.slice(0, end + 1);\n    };\n    var trimCode = function () {\n        code = code.trimRight();\n        breakBefore = false;\n    };\n    while (token !== null) {\n        curRow = iterator.getCurrentTokenRow();\n        rowTokens = iterator.$rowTokens;\n        nextToken = iterator.stepForward();\n        if (typeof token !== \"undefined\") {\n            value = token.value;\n            unindent = 0;\n            inCSS = (tagName === \"style\" || session.$modeId === \"ace/mode/css\");\n            if (is(token, \"tag-open\")) {\n                inTag = true;\n                if (nextToken)\n                    inBlock = (blockTags.indexOf(nextToken.value) !== -1);\n                if (value === \"</\") {\n                    if (inBlock && !breakBefore && rowsToAdd < 1)\n                        rowsToAdd++;\n                    if (inCSS)\n                        rowsToAdd = 1;\n                    unindent = 1;\n                    inBlock = false;\n                }\n            }\n            else if (is(token, \"tag-close\")) {\n                inTag = false;\n            }\n            else if (is(token, \"comment.start\")) {\n                inBlock = true;\n            }\n            else if (is(token, \"comment.end\")) {\n                inBlock = false;\n            }\n            if (!inTag && !rowsToAdd && token.type === \"paren.rparen\" && token.value.substr(0, 1) === \"}\") {\n                rowsToAdd++;\n            }\n            if (curRow !== row) {\n                rowsToAdd = curRow;\n                if (row)\n                    rowsToAdd -= row;\n            }\n            if (rowsToAdd) {\n                trimCode();\n                for (; rowsToAdd > 0; rowsToAdd--)\n                    code += \"\\n\";\n                breakBefore = true;\n                if (!is(token, \"comment\") && !token.type.match(/^(comment|string)$/))\n                    value = value.trimLeft();\n            }\n            if (value) {\n                if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {\n                    parents[depth] = value;\n                    trimNext();\n                    spaceAfter = true;\n                    if (value.match(/^(else|elseif)$/)) {\n                        if (code.match(/\\}[\\s]*$/)) {\n                            trimCode();\n                            spaceBefore = true;\n                        }\n                    }\n                }\n                else if (token.type === \"paren.lparen\") {\n                    trimNext();\n                    if (value.substr(-1) === \"{\") {\n                        spaceAfter = true;\n                        indentNextLine = false;\n                        if (!inTag)\n                            rowsToAdd = 1;\n                    }\n                    if (value.substr(0, 1) === \"{\") {\n                        spaceBefore = true;\n                        if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {\n                            trimCode();\n                            spaceBefore = false;\n                        }\n                        else if (code.trimRight().substr(-1) === ')') {\n                            trimCode();\n                        }\n                        else {\n                            trimLine();\n                        }\n                    }\n                }\n                else if (token.type === \"paren.rparen\") {\n                    unindent = 1;\n                    if (value.substr(0, 1) === \"}\") {\n                        if (parents[depth - 1] === 'case')\n                            unindent++;\n                        if (code.trimRight().substr(-1) === '{') {\n                            trimCode();\n                        }\n                        else {\n                            spaceBefore = true;\n                            if (inCSS)\n                                rowsToAdd += 2;\n                        }\n                    }\n                    if (value.substr(0, 1) === \"]\") {\n                        if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {\n                            spaceBefore = false;\n                            indent++;\n                            trimCode();\n                        }\n                    }\n                    if (value.substr(0, 1) === \")\") {\n                        if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {\n                            spaceBefore = false;\n                            indent++;\n                            trimCode();\n                        }\n                    }\n                    trimLine();\n                }\n                else if ((token.type === \"keyword.operator\" || token.type === \"keyword\") && value.match(/^(=|==|===|!=|!==|&&|\\|\\||and|or|xor|\\+=|.=|>|>=|<|<=|=>)$/)) {\n                    trimCode();\n                    trimNext();\n                    spaceBefore = true;\n                    spaceAfter = true;\n                }\n                else if (token.type === \"punctuation.operator\" && value === ';') {\n                    trimCode();\n                    trimNext();\n                    spaceAfter = true;\n                    if (inCSS)\n                        rowsToAdd++;\n                }\n                else if (token.type === \"punctuation.operator\" && value.match(/^(:|,)$/)) {\n                    trimCode();\n                    trimNext();\n                    if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {\n                        rowsToAdd++;\n                    }\n                    else {\n                        spaceAfter = true;\n                        breakBefore = false;\n                    }\n                }\n                else if (token.type === \"support.php_tag\" && value === \"?>\" && !breakBefore) {\n                    trimCode();\n                    spaceBefore = true;\n                }\n                else if (is(token, \"attribute-name\") && code.substr(-1).match(/^\\s$/)) {\n                    spaceBefore = true;\n                }\n                else if (is(token, \"attribute-equals\")) {\n                    trimLine();\n                    trimNext();\n                }\n                else if (is(token, \"tag-close\")) {\n                    trimLine();\n                    if (value === \"/>\")\n                        spaceBefore = true;\n                }\n                else if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n                    if (caseBody)\n                        unindent = 1;\n                }\n                if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['\"@]$/))) {\n                    indent = lastIndent;\n                    if (depth > lastDepth) {\n                        indent++;\n                        for (i = depth; i > lastDepth; i--)\n                            levels[i] = indent;\n                    }\n                    else if (depth < lastDepth)\n                        indent = levels[depth];\n                    lastDepth = depth;\n                    lastIndent = indent;\n                    if (unindent)\n                        indent -= unindent;\n                    if (indentNextLine && !roundDepth) {\n                        indent++;\n                        indentNextLine = false;\n                    }\n                    for (i = 0; i < indent; i++)\n                        code += tabString;\n                }\n                if (token.type === \"keyword\" && value.match(/^(case|default)$/)) {\n                    if (caseBody === false) {\n                        parents[depth] = value;\n                        depth++;\n                        caseBody = true;\n                    }\n                }\n                else if (token.type === \"keyword\" && value.match(/^(break)$/)) {\n                    if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {\n                        depth--;\n                        caseBody = false;\n                    }\n                }\n                if (token.type === \"paren.lparen\") {\n                    roundDepth += (value.match(/\\(/g) || []).length;\n                    curlyDepth += (value.match(/\\{/g) || []).length;\n                    depth += value.length;\n                }\n                if (token.type === \"keyword\" && value.match(/^(if|else|elseif|for|while)$/)) {\n                    indentNextLine = true;\n                    roundDepth = 0;\n                }\n                else if (!roundDepth && value.trim() && token.type !== \"comment\")\n                    indentNextLine = false;\n                if (token.type === \"paren.rparen\") {\n                    roundDepth -= (value.match(/\\)/g) || []).length;\n                    curlyDepth -= (value.match(/\\}/g) || []).length;\n                    for (i = 0; i < value.length; i++) {\n                        depth--;\n                        if (value.substr(i, 1) === '}' && parents[depth] === 'case') {\n                            depth--;\n                        }\n                    }\n                }\n                if (token.type == \"text\")\n                    value = value.replace(/\\s+$/, \" \");\n                if (spaceBefore && !breakBefore) {\n                    trimLine();\n                    if (code.substr(-1) !== \"\\n\")\n                        code += \" \";\n                }\n                code += value;\n                if (spaceAfter)\n                    code += \" \";\n                breakBefore = false;\n                spaceBefore = false;\n                spaceAfter = false;\n                if ((is(token, \"tag-close\") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, \"doctype\") && value === \">\")) {\n                    if (inBlock && nextToken && nextToken.value === \"</\")\n                        rowsToAdd = -1;\n                    else\n                        rowsToAdd = 1;\n                }\n                if (nextToken && singletonTags.indexOf(nextToken.value) === -1) {\n                    if (is(token, \"tag-open\") && value === \"</\") {\n                        depth--;\n                    }\n                    else if (is(token, \"tag-open\") && value === \"<\") {\n                        depth++;\n                    }\n                    else if (is(token, \"tag-close\") && value === \"/>\") {\n                        depth--;\n                    }\n                }\n                if (is(token, \"tag-name\")) {\n                    tagName = value;\n                }\n                row = curRow;\n            }\n        }\n        token = nextToken;\n    }\n    code = code.trim();\n    session.doc.setValue(code);\n};\nexports.commands = [{\n        name: \"beautify\",\n        description: \"Format selection (Beautify)\",\n        exec: function (editor) {\n            exports.beautify(editor.session);\n        },\n        bindKey: \"Ctrl-Shift-B\"\n    }];\n\n});                (function() {\n                    ace.require([\"ace/ext/beautify\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "]}