`\n };\n\n const VuePlugin = {\n install(Vue) {\n Vue.component('highlightjs', Component);\n }\n };\n\n return { Component, VuePlugin };\n}\n\n/* plugin itself */\n\n/** @type {HLJSPlugin} */\nconst mergeHTMLPlugin = {\n \"after:highlightElement\": ({ el, result, text }) => {\n const originalStream = nodeStream(el);\n if (!originalStream.length) return;\n\n const resultNode = document.createElement('div');\n resultNode.innerHTML = result.value;\n result.value = mergeStreams(originalStream, nodeStream(resultNode), text);\n }\n};\n\n/* Stream merging support functions */\n\n/**\n * @typedef Event\n * @property {'start'|'stop'} event\n * @property {number} offset\n * @property {Node} node\n */\n\n/**\n * @param {Node} node\n */\nfunction tag(node) {\n return node.nodeName.toLowerCase();\n}\n\n/**\n * @param {Node} node\n */\nfunction nodeStream(node) {\n /** @type Event[] */\n const result = [];\n (function _nodeStream(node, offset) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n if (child.nodeType === 3) {\n offset += child.nodeValue.length;\n } else if (child.nodeType === 1) {\n result.push({\n event: 'start',\n offset: offset,\n node: child\n });\n offset = _nodeStream(child, offset);\n // Prevent void elements from having an end tag that would actually\n // double them in the output. There are more void elements in HTML\n // but we list only those realistically expected in code display.\n if (!tag(child).match(/br|hr|img|input/)) {\n result.push({\n event: 'stop',\n offset: offset,\n node: child\n });\n }\n }\n }\n return offset;\n })(node, 0);\n return result;\n}\n\n/**\n * @param {any} original - the original stream\n * @param {any} highlighted - stream of the highlighted source\n * @param {string} value - the original source itself\n */\nfunction mergeStreams(original, highlighted, value) {\n let processed = 0;\n let result = '';\n const nodeStack = [];\n\n function selectStream() {\n if (!original.length || !highlighted.length) {\n return original.length ? original : highlighted;\n }\n if (original[0].offset !== highlighted[0].offset) {\n return (original[0].offset < highlighted[0].offset) ? original : highlighted;\n }\n\n /*\n To avoid starting the stream just before it should stop the order is\n ensured that original always starts first and closes last:\n\n if (event1 == 'start' && event2 == 'start')\n return original;\n if (event1 == 'start' && event2 == 'stop')\n return highlighted;\n if (event1 == 'stop' && event2 == 'start')\n return original;\n if (event1 == 'stop' && event2 == 'stop')\n return highlighted;\n\n ... which is collapsed to:\n */\n return highlighted[0].event === 'start' ? original : highlighted;\n }\n\n /**\n * @param {Node} node\n */\n function open(node) {\n /** @param {Attr} attr */\n function attributeString(attr) {\n return ' ' + attr.nodeName + '=\"' + escapeHTML(attr.value) + '\"';\n }\n // @ts-ignore\n result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>';\n }\n\n /**\n * @param {Node} node\n */\n function close(node) {\n result += '' + tag(node) + '>';\n }\n\n /**\n * @param {Event} event\n */\n function render(event) {\n (event.event === 'start' ? open : close)(event.node);\n }\n\n while (original.length || highlighted.length) {\n let stream = selectStream();\n result += escapeHTML(value.substring(processed, stream[0].offset));\n processed = stream[0].offset;\n if (stream === original) {\n /*\n On any opening or closing tag of the original markup we first close\n the entire highlighted node stack, then render the original tag along\n with all the following original tags at the same offset and then\n reopen all the tags on the highlighted stack.\n */\n nodeStack.reverse().forEach(close);\n do {\n render(stream.splice(0, 1)[0]);\n stream = selectStream();\n } while (stream === original && stream.length && stream[0].offset === processed);\n nodeStack.reverse().forEach(open);\n } else {\n if (stream[0].event === 'start') {\n nodeStack.push(stream[0].node);\n } else {\n nodeStack.pop();\n }\n render(stream.splice(0, 1)[0]);\n }\n }\n return result + escapeHTML(value.substr(processed));\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record blocks on a page\n *\n * @type {Function & {called?: boolean}}\n */\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n if (initHighlighting.called) return;\n initHighlighting.called = true;\n\n deprecated(\"10.6.0\", \"initHighlighting() is deprecated. Use highlightAll() instead.\");\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n };\n\n // Higlights all when DOMContentLoaded fires\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() is deprecated. Use highlightAll() instead.\");\n wantsHighlight = true;\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n intended usage: When one language truly requires another\n\n Unlike `getLanguage`, this will throw when the requested language\n is not available.\n\n @param {string} name - name of the language to fetch/require\n @returns {Language | never}\n */\n function requireLanguage(name) {\n deprecated(\"10.4.0\", \"requireLanguage will be removed entirely in v11.\");\n deprecated(\"10.4.0\", \"Please see https://github.com/highlightjs/highlight.js/pull/2844\");\n\n const lang = getLanguage(name);\n if (lang) { return lang; }\n\n const err = new Error('The \\'{}\\' language is required, but not loaded.'.replace('{}', name));\n throw err;\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n Note: fixMarkup is deprecated and will be removed entirely in v11\n\n @param {string} arg\n @returns {string}\n */\n function deprecateFixMarkup(arg) {\n deprecated(\"10.2.0\", \"fixMarkup will be removed entirely in v11.0\");\n deprecated(\"10.2.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2534\");\n\n return fixMarkup(arg);\n }\n\n /**\n *\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n fixMarkup: deprecateFixMarkup,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n requireLanguage,\n autoDetection,\n inherit: inherit$1,\n addPlugin,\n // plugins for frameworks\n vuePlugin: BuildVuePlugin(hljs).VuePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6(MODES[key]);\n }\n }\n\n // merge all the modes/regexs into our main object\n Object.assign(hljs, MODES);\n\n // built-in plugins, likely to be moved out of core in the future\n hljs.addPlugin(brPlugin); // slated to be removed in v11\n hljs.addPlugin(mergeHTMLPlugin);\n hljs.addPlugin(tabReplacePlugin);\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\n","var map = {\n\t\"./1c\": [\n\t\t73870,\n\t\t\"highlight/1c\"\n\t],\n\t\"./1c.js\": [\n\t\t73870,\n\t\t\"highlight/1c\"\n\t],\n\t\"./abnf\": [\n\t\t1122,\n\t\t\"highlight/abnf\"\n\t],\n\t\"./abnf.js\": [\n\t\t1122,\n\t\t\"highlight/abnf\"\n\t],\n\t\"./accesslog\": [\n\t\t63074,\n\t\t\"highlight/accesslog\"\n\t],\n\t\"./accesslog.js\": [\n\t\t63074,\n\t\t\"highlight/accesslog\"\n\t],\n\t\"./actionscript\": [\n\t\t39696,\n\t\t\"highlight/actionscript\"\n\t],\n\t\"./actionscript.js\": [\n\t\t39696,\n\t\t\"highlight/actionscript\"\n\t],\n\t\"./ada\": [\n\t\t19389,\n\t\t\"highlight/ada\"\n\t],\n\t\"./ada.js\": [\n\t\t19389,\n\t\t\"highlight/ada\"\n\t],\n\t\"./angelscript\": [\n\t\t46147,\n\t\t\"highlight/angelscript\"\n\t],\n\t\"./angelscript.js\": [\n\t\t46147,\n\t\t\"highlight/angelscript\"\n\t],\n\t\"./apache\": [\n\t\t96936,\n\t\t\"highlight/apache\"\n\t],\n\t\"./apache.js\": [\n\t\t96936,\n\t\t\"highlight/apache\"\n\t],\n\t\"./applescript\": [\n\t\t5460,\n\t\t\"highlight/applescript\"\n\t],\n\t\"./applescript.js\": [\n\t\t5460,\n\t\t\"highlight/applescript\"\n\t],\n\t\"./arcade\": [\n\t\t43178,\n\t\t\"highlight/arcade\"\n\t],\n\t\"./arcade.js\": [\n\t\t43178,\n\t\t\"highlight/arcade\"\n\t],\n\t\"./arduino\": [\n\t\t1232,\n\t\t\"highlight/arduino\"\n\t],\n\t\"./arduino.js\": [\n\t\t1232,\n\t\t\"highlight/arduino\"\n\t],\n\t\"./armasm\": [\n\t\t71196,\n\t\t\"highlight/armasm\"\n\t],\n\t\"./armasm.js\": [\n\t\t71196,\n\t\t\"highlight/armasm\"\n\t],\n\t\"./asciidoc\": [\n\t\t90630,\n\t\t\"highlight/asciidoc\"\n\t],\n\t\"./asciidoc.js\": [\n\t\t90630,\n\t\t\"highlight/asciidoc\"\n\t],\n\t\"./aspectj\": [\n\t\t25044,\n\t\t\"highlight/aspectj\"\n\t],\n\t\"./aspectj.js\": [\n\t\t25044,\n\t\t\"highlight/aspectj\"\n\t],\n\t\"./autohotkey\": [\n\t\t67130,\n\t\t\"highlight/autohotkey\"\n\t],\n\t\"./autohotkey.js\": [\n\t\t67130,\n\t\t\"highlight/autohotkey\"\n\t],\n\t\"./autoit\": [\n\t\t75039,\n\t\t\"highlight/autoit\"\n\t],\n\t\"./autoit.js\": [\n\t\t75039,\n\t\t\"highlight/autoit\"\n\t],\n\t\"./avrasm\": [\n\t\t18324,\n\t\t\"highlight/avrasm\"\n\t],\n\t\"./avrasm.js\": [\n\t\t18324,\n\t\t\"highlight/avrasm\"\n\t],\n\t\"./awk\": [\n\t\t40070,\n\t\t\"highlight/awk\"\n\t],\n\t\"./awk.js\": [\n\t\t40070,\n\t\t\"highlight/awk\"\n\t],\n\t\"./axapta\": [\n\t\t80149,\n\t\t\"highlight/axapta\"\n\t],\n\t\"./axapta.js\": [\n\t\t80149,\n\t\t\"highlight/axapta\"\n\t],\n\t\"./bash\": [\n\t\t61519,\n\t\t\"highlight/bash\"\n\t],\n\t\"./bash.js\": [\n\t\t61519,\n\t\t\"highlight/bash\"\n\t],\n\t\"./basic\": [\n\t\t56827,\n\t\t\"highlight/basic\"\n\t],\n\t\"./basic.js\": [\n\t\t56827,\n\t\t\"highlight/basic\"\n\t],\n\t\"./bnf\": [\n\t\t78349,\n\t\t\"highlight/bnf\"\n\t],\n\t\"./bnf.js\": [\n\t\t78349,\n\t\t\"highlight/bnf\"\n\t],\n\t\"./brainfuck\": [\n\t\t44536,\n\t\t\"highlight/brainfuck\"\n\t],\n\t\"./brainfuck.js\": [\n\t\t44536,\n\t\t\"highlight/brainfuck\"\n\t],\n\t\"./c\": [\n\t\t25745,\n\t\t\"highlight/c\"\n\t],\n\t\"./c-like\": [\n\t\t58212,\n\t\t\"highlight/c-like\"\n\t],\n\t\"./c-like.js\": [\n\t\t58212,\n\t\t\"highlight/c-like\"\n\t],\n\t\"./c.js\": [\n\t\t25745,\n\t\t\"highlight/c\"\n\t],\n\t\"./cal\": [\n\t\t45041,\n\t\t\"highlight/cal\"\n\t],\n\t\"./cal.js\": [\n\t\t45041,\n\t\t\"highlight/cal\"\n\t],\n\t\"./capnproto\": [\n\t\t51446,\n\t\t\"highlight/capnproto\"\n\t],\n\t\"./capnproto.js\": [\n\t\t51446,\n\t\t\"highlight/capnproto\"\n\t],\n\t\"./ceylon\": [\n\t\t1795,\n\t\t\"highlight/ceylon\"\n\t],\n\t\"./ceylon.js\": [\n\t\t1795,\n\t\t\"highlight/ceylon\"\n\t],\n\t\"./clean\": [\n\t\t82280,\n\t\t\"highlight/clean\"\n\t],\n\t\"./clean.js\": [\n\t\t82280,\n\t\t\"highlight/clean\"\n\t],\n\t\"./clojure\": [\n\t\t36134,\n\t\t\"highlight/clojure\"\n\t],\n\t\"./clojure-repl\": [\n\t\t36746,\n\t\t\"highlight/clojure-repl\"\n\t],\n\t\"./clojure-repl.js\": [\n\t\t36746,\n\t\t\"highlight/clojure-repl\"\n\t],\n\t\"./clojure.js\": [\n\t\t36134,\n\t\t\"highlight/clojure\"\n\t],\n\t\"./cmake\": [\n\t\t71422,\n\t\t\"highlight/cmake\"\n\t],\n\t\"./cmake.js\": [\n\t\t71422,\n\t\t\"highlight/cmake\"\n\t],\n\t\"./coffeescript\": [\n\t\t6691,\n\t\t\"highlight/coffeescript\"\n\t],\n\t\"./coffeescript.js\": [\n\t\t6691,\n\t\t\"highlight/coffeescript\"\n\t],\n\t\"./coq\": [\n\t\t73621,\n\t\t\"highlight/coq\"\n\t],\n\t\"./coq.js\": [\n\t\t73621,\n\t\t\"highlight/coq\"\n\t],\n\t\"./cos\": [\n\t\t69586,\n\t\t\"highlight/cos\"\n\t],\n\t\"./cos.js\": [\n\t\t69586,\n\t\t\"highlight/cos\"\n\t],\n\t\"./cpp\": [\n\t\t74006,\n\t\t\"highlight/cpp\"\n\t],\n\t\"./cpp.js\": [\n\t\t74006,\n\t\t\"highlight/cpp\"\n\t],\n\t\"./crmsh\": [\n\t\t37641,\n\t\t\"highlight/crmsh\"\n\t],\n\t\"./crmsh.js\": [\n\t\t37641,\n\t\t\"highlight/crmsh\"\n\t],\n\t\"./crystal\": [\n\t\t91139,\n\t\t\"highlight/crystal\"\n\t],\n\t\"./crystal.js\": [\n\t\t91139,\n\t\t\"highlight/crystal\"\n\t],\n\t\"./csharp\": [\n\t\t681,\n\t\t\"highlight/csharp\"\n\t],\n\t\"./csharp.js\": [\n\t\t681,\n\t\t\"highlight/csharp\"\n\t],\n\t\"./csp\": [\n\t\t60530,\n\t\t\"highlight/csp\"\n\t],\n\t\"./csp.js\": [\n\t\t60530,\n\t\t\"highlight/csp\"\n\t],\n\t\"./css\": [\n\t\t68914,\n\t\t\"highlight/css\"\n\t],\n\t\"./css.js\": [\n\t\t68914,\n\t\t\"highlight/css\"\n\t],\n\t\"./d\": [\n\t\t89968,\n\t\t\"highlight/d\"\n\t],\n\t\"./d.js\": [\n\t\t89968,\n\t\t\"highlight/d\"\n\t],\n\t\"./dart\": [\n\t\t65778,\n\t\t\"highlight/dart\"\n\t],\n\t\"./dart.js\": [\n\t\t65778,\n\t\t\"highlight/dart\"\n\t],\n\t\"./delphi\": [\n\t\t48008,\n\t\t\"highlight/delphi\"\n\t],\n\t\"./delphi.js\": [\n\t\t48008,\n\t\t\"highlight/delphi\"\n\t],\n\t\"./diff\": [\n\t\t91833,\n\t\t\"highlight/diff\"\n\t],\n\t\"./diff.js\": [\n\t\t91833,\n\t\t\"highlight/diff\"\n\t],\n\t\"./django\": [\n\t\t45253,\n\t\t\"highlight/django\"\n\t],\n\t\"./django.js\": [\n\t\t45253,\n\t\t\"highlight/django\"\n\t],\n\t\"./dns\": [\n\t\t65594,\n\t\t\"highlight/dns\"\n\t],\n\t\"./dns.js\": [\n\t\t65594,\n\t\t\"highlight/dns\"\n\t],\n\t\"./dockerfile\": [\n\t\t27055,\n\t\t\"highlight/dockerfile\"\n\t],\n\t\"./dockerfile.js\": [\n\t\t27055,\n\t\t\"highlight/dockerfile\"\n\t],\n\t\"./dos\": [\n\t\t85215,\n\t\t\"highlight/dos\"\n\t],\n\t\"./dos.js\": [\n\t\t85215,\n\t\t\"highlight/dos\"\n\t],\n\t\"./dsconfig\": [\n\t\t71524,\n\t\t\"highlight/dsconfig\"\n\t],\n\t\"./dsconfig.js\": [\n\t\t71524,\n\t\t\"highlight/dsconfig\"\n\t],\n\t\"./dts\": [\n\t\t29702,\n\t\t\"highlight/dts\"\n\t],\n\t\"./dts.js\": [\n\t\t29702,\n\t\t\"highlight/dts\"\n\t],\n\t\"./dust\": [\n\t\t27115,\n\t\t\"highlight/dust\"\n\t],\n\t\"./dust.js\": [\n\t\t27115,\n\t\t\"highlight/dust\"\n\t],\n\t\"./ebnf\": [\n\t\t26254,\n\t\t\"highlight/ebnf\"\n\t],\n\t\"./ebnf.js\": [\n\t\t26254,\n\t\t\"highlight/ebnf\"\n\t],\n\t\"./elixir\": [\n\t\t27204,\n\t\t\"highlight/elixir\"\n\t],\n\t\"./elixir.js\": [\n\t\t27204,\n\t\t\"highlight/elixir\"\n\t],\n\t\"./elm\": [\n\t\t58259,\n\t\t\"highlight/elm\"\n\t],\n\t\"./elm.js\": [\n\t\t58259,\n\t\t\"highlight/elm\"\n\t],\n\t\"./erb\": [\n\t\t328,\n\t\t\"highlight/erb\"\n\t],\n\t\"./erb.js\": [\n\t\t328,\n\t\t\"highlight/erb\"\n\t],\n\t\"./erlang\": [\n\t\t87489,\n\t\t\"highlight/erlang\"\n\t],\n\t\"./erlang-repl\": [\n\t\t27670,\n\t\t\"highlight/erlang-repl\"\n\t],\n\t\"./erlang-repl.js\": [\n\t\t27670,\n\t\t\"highlight/erlang-repl\"\n\t],\n\t\"./erlang.js\": [\n\t\t87489,\n\t\t\"highlight/erlang\"\n\t],\n\t\"./excel\": [\n\t\t94369,\n\t\t\"highlight/excel\"\n\t],\n\t\"./excel.js\": [\n\t\t94369,\n\t\t\"highlight/excel\"\n\t],\n\t\"./fix\": [\n\t\t51377,\n\t\t\"highlight/fix\"\n\t],\n\t\"./fix.js\": [\n\t\t51377,\n\t\t\"highlight/fix\"\n\t],\n\t\"./flix\": [\n\t\t72041,\n\t\t\"highlight/flix\"\n\t],\n\t\"./flix.js\": [\n\t\t72041,\n\t\t\"highlight/flix\"\n\t],\n\t\"./fortran\": [\n\t\t28362,\n\t\t\"highlight/fortran\"\n\t],\n\t\"./fortran.js\": [\n\t\t28362,\n\t\t\"highlight/fortran\"\n\t],\n\t\"./fsharp\": [\n\t\t34639,\n\t\t\"highlight/fsharp\"\n\t],\n\t\"./fsharp.js\": [\n\t\t34639,\n\t\t\"highlight/fsharp\"\n\t],\n\t\"./gams\": [\n\t\t9392,\n\t\t\"highlight/gams\"\n\t],\n\t\"./gams.js\": [\n\t\t9392,\n\t\t\"highlight/gams\"\n\t],\n\t\"./gauss\": [\n\t\t44859,\n\t\t\"highlight/gauss\"\n\t],\n\t\"./gauss.js\": [\n\t\t44859,\n\t\t\"highlight/gauss\"\n\t],\n\t\"./gcode\": [\n\t\t38036,\n\t\t\"highlight/gcode\"\n\t],\n\t\"./gcode.js\": [\n\t\t38036,\n\t\t\"highlight/gcode\"\n\t],\n\t\"./gherkin\": [\n\t\t65962,\n\t\t\"highlight/gherkin\"\n\t],\n\t\"./gherkin.js\": [\n\t\t65962,\n\t\t\"highlight/gherkin\"\n\t],\n\t\"./glsl\": [\n\t\t85243,\n\t\t\"highlight/glsl\"\n\t],\n\t\"./glsl.js\": [\n\t\t85243,\n\t\t\"highlight/glsl\"\n\t],\n\t\"./gml\": [\n\t\t94807,\n\t\t\"highlight/gml\"\n\t],\n\t\"./gml.js\": [\n\t\t94807,\n\t\t\"highlight/gml\"\n\t],\n\t\"./go\": [\n\t\t33048,\n\t\t\"highlight/go\"\n\t],\n\t\"./go.js\": [\n\t\t33048,\n\t\t\"highlight/go\"\n\t],\n\t\"./golo\": [\n\t\t87140,\n\t\t\"highlight/golo\"\n\t],\n\t\"./golo.js\": [\n\t\t87140,\n\t\t\"highlight/golo\"\n\t],\n\t\"./gradle\": [\n\t\t88267,\n\t\t\"highlight/gradle\"\n\t],\n\t\"./gradle.js\": [\n\t\t88267,\n\t\t\"highlight/gradle\"\n\t],\n\t\"./groovy\": [\n\t\t12175,\n\t\t\"highlight/groovy\"\n\t],\n\t\"./groovy.js\": [\n\t\t12175,\n\t\t\"highlight/groovy\"\n\t],\n\t\"./haml\": [\n\t\t25268,\n\t\t\"highlight/haml\"\n\t],\n\t\"./haml.js\": [\n\t\t25268,\n\t\t\"highlight/haml\"\n\t],\n\t\"./handlebars\": [\n\t\t83512,\n\t\t\"highlight/handlebars\"\n\t],\n\t\"./handlebars.js\": [\n\t\t83512,\n\t\t\"highlight/handlebars\"\n\t],\n\t\"./haskell\": [\n\t\t56703,\n\t\t\"highlight/haskell\"\n\t],\n\t\"./haskell.js\": [\n\t\t56703,\n\t\t\"highlight/haskell\"\n\t],\n\t\"./haxe\": [\n\t\t429,\n\t\t\"highlight/haxe\"\n\t],\n\t\"./haxe.js\": [\n\t\t429,\n\t\t\"highlight/haxe\"\n\t],\n\t\"./hsp\": [\n\t\t90793,\n\t\t\"highlight/hsp\"\n\t],\n\t\"./hsp.js\": [\n\t\t90793,\n\t\t\"highlight/hsp\"\n\t],\n\t\"./htmlbars\": [\n\t\t93202,\n\t\t\"highlight/htmlbars\"\n\t],\n\t\"./htmlbars.js\": [\n\t\t93202,\n\t\t\"highlight/htmlbars\"\n\t],\n\t\"./http\": [\n\t\t30786,\n\t\t\"highlight/http\"\n\t],\n\t\"./http.js\": [\n\t\t30786,\n\t\t\"highlight/http\"\n\t],\n\t\"./hy\": [\n\t\t35359,\n\t\t\"highlight/hy\"\n\t],\n\t\"./hy.js\": [\n\t\t35359,\n\t\t\"highlight/hy\"\n\t],\n\t\"./inform7\": [\n\t\t68968,\n\t\t\"highlight/inform7\"\n\t],\n\t\"./inform7.js\": [\n\t\t68968,\n\t\t\"highlight/inform7\"\n\t],\n\t\"./ini\": [\n\t\t29560,\n\t\t\"highlight/ini\"\n\t],\n\t\"./ini.js\": [\n\t\t29560,\n\t\t\"highlight/ini\"\n\t],\n\t\"./irpf90\": [\n\t\t10811,\n\t\t\"highlight/irpf90\"\n\t],\n\t\"./irpf90.js\": [\n\t\t10811,\n\t\t\"highlight/irpf90\"\n\t],\n\t\"./isbl\": [\n\t\t15044,\n\t\t\"highlight/isbl\"\n\t],\n\t\"./isbl.js\": [\n\t\t15044,\n\t\t\"highlight/isbl\"\n\t],\n\t\"./java\": [\n\t\t37721,\n\t\t\"highlight/java\"\n\t],\n\t\"./java.js\": [\n\t\t37721,\n\t\t\"highlight/java\"\n\t],\n\t\"./javascript\": [\n\t\t96344,\n\t\t\"highlight/javascript\"\n\t],\n\t\"./javascript.js\": [\n\t\t96344,\n\t\t\"highlight/javascript\"\n\t],\n\t\"./jboss-cli\": [\n\t\t40412,\n\t\t\"highlight/jboss-cli\"\n\t],\n\t\"./jboss-cli.js\": [\n\t\t40412,\n\t\t\"highlight/jboss-cli\"\n\t],\n\t\"./json\": [\n\t\t82026,\n\t\t\"highlight/json\"\n\t],\n\t\"./json.js\": [\n\t\t82026,\n\t\t\"highlight/json\"\n\t],\n\t\"./julia\": [\n\t\t47337,\n\t\t\"highlight/julia\"\n\t],\n\t\"./julia-repl\": [\n\t\t79989,\n\t\t\"highlight/julia-repl\"\n\t],\n\t\"./julia-repl.js\": [\n\t\t79989,\n\t\t\"highlight/julia-repl\"\n\t],\n\t\"./julia.js\": [\n\t\t47337,\n\t\t\"highlight/julia\"\n\t],\n\t\"./kotlin\": [\n\t\t48099,\n\t\t\"highlight/kotlin\"\n\t],\n\t\"./kotlin.js\": [\n\t\t48099,\n\t\t\"highlight/kotlin\"\n\t],\n\t\"./lasso\": [\n\t\t54082,\n\t\t\"highlight/lasso\"\n\t],\n\t\"./lasso.js\": [\n\t\t54082,\n\t\t\"highlight/lasso\"\n\t],\n\t\"./latex\": [\n\t\t850,\n\t\t\"highlight/latex\"\n\t],\n\t\"./latex.js\": [\n\t\t850,\n\t\t\"highlight/latex\"\n\t],\n\t\"./ldif\": [\n\t\t33310,\n\t\t\"highlight/ldif\"\n\t],\n\t\"./ldif.js\": [\n\t\t33310,\n\t\t\"highlight/ldif\"\n\t],\n\t\"./leaf\": [\n\t\t2774,\n\t\t\"highlight/leaf\"\n\t],\n\t\"./leaf.js\": [\n\t\t2774,\n\t\t\"highlight/leaf\"\n\t],\n\t\"./less\": [\n\t\t23874,\n\t\t\"highlight/less\"\n\t],\n\t\"./less.js\": [\n\t\t23874,\n\t\t\"highlight/less\"\n\t],\n\t\"./lisp\": [\n\t\t17169,\n\t\t\"highlight/lisp\"\n\t],\n\t\"./lisp.js\": [\n\t\t17169,\n\t\t\"highlight/lisp\"\n\t],\n\t\"./livecodeserver\": [\n\t\t63909,\n\t\t\"highlight/livecodeserver\"\n\t],\n\t\"./livecodeserver.js\": [\n\t\t63909,\n\t\t\"highlight/livecodeserver\"\n\t],\n\t\"./livescript\": [\n\t\t39563,\n\t\t\"highlight/livescript\"\n\t],\n\t\"./livescript.js\": [\n\t\t39563,\n\t\t\"highlight/livescript\"\n\t],\n\t\"./llvm\": [\n\t\t40119,\n\t\t\"highlight/llvm\"\n\t],\n\t\"./llvm.js\": [\n\t\t40119,\n\t\t\"highlight/llvm\"\n\t],\n\t\"./lsl\": [\n\t\t12130,\n\t\t\"highlight/lsl\"\n\t],\n\t\"./lsl.js\": [\n\t\t12130,\n\t\t\"highlight/lsl\"\n\t],\n\t\"./lua\": [\n\t\t31067,\n\t\t\"highlight/lua\"\n\t],\n\t\"./lua.js\": [\n\t\t31067,\n\t\t\"highlight/lua\"\n\t],\n\t\"./makefile\": [\n\t\t30465,\n\t\t\"highlight/makefile\"\n\t],\n\t\"./makefile.js\": [\n\t\t30465,\n\t\t\"highlight/makefile\"\n\t],\n\t\"./markdown\": [\n\t\t93839,\n\t\t\"highlight/markdown\"\n\t],\n\t\"./markdown.js\": [\n\t\t93839,\n\t\t\"highlight/markdown\"\n\t],\n\t\"./mathematica\": [\n\t\t61083,\n\t\t\"highlight/mathematica\"\n\t],\n\t\"./mathematica.js\": [\n\t\t61083,\n\t\t\"highlight/mathematica\"\n\t],\n\t\"./matlab\": [\n\t\t41304,\n\t\t\"highlight/matlab\"\n\t],\n\t\"./matlab.js\": [\n\t\t41304,\n\t\t\"highlight/matlab\"\n\t],\n\t\"./maxima\": [\n\t\t46747,\n\t\t\"highlight/maxima\"\n\t],\n\t\"./maxima.js\": [\n\t\t46747,\n\t\t\"highlight/maxima\"\n\t],\n\t\"./mel\": [\n\t\t70483,\n\t\t\"highlight/mel\"\n\t],\n\t\"./mel.js\": [\n\t\t70483,\n\t\t\"highlight/mel\"\n\t],\n\t\"./mercury\": [\n\t\t53038,\n\t\t\"highlight/mercury\"\n\t],\n\t\"./mercury.js\": [\n\t\t53038,\n\t\t\"highlight/mercury\"\n\t],\n\t\"./mipsasm\": [\n\t\t45802,\n\t\t\"highlight/mipsasm\"\n\t],\n\t\"./mipsasm.js\": [\n\t\t45802,\n\t\t\"highlight/mipsasm\"\n\t],\n\t\"./mizar\": [\n\t\t90918,\n\t\t\"highlight/mizar\"\n\t],\n\t\"./mizar.js\": [\n\t\t90918,\n\t\t\"highlight/mizar\"\n\t],\n\t\"./mojolicious\": [\n\t\t92210,\n\t\t\"highlight/mojolicious\"\n\t],\n\t\"./mojolicious.js\": [\n\t\t92210,\n\t\t\"highlight/mojolicious\"\n\t],\n\t\"./monkey\": [\n\t\t97350,\n\t\t\"highlight/monkey\"\n\t],\n\t\"./monkey.js\": [\n\t\t97350,\n\t\t\"highlight/monkey\"\n\t],\n\t\"./moonscript\": [\n\t\t27239,\n\t\t\"highlight/moonscript\"\n\t],\n\t\"./moonscript.js\": [\n\t\t27239,\n\t\t\"highlight/moonscript\"\n\t],\n\t\"./n1ql\": [\n\t\t77669,\n\t\t\"highlight/n1ql\"\n\t],\n\t\"./n1ql.js\": [\n\t\t77669,\n\t\t\"highlight/n1ql\"\n\t],\n\t\"./nginx\": [\n\t\t42387,\n\t\t\"highlight/nginx\"\n\t],\n\t\"./nginx.js\": [\n\t\t42387,\n\t\t\"highlight/nginx\"\n\t],\n\t\"./nim\": [\n\t\t35587,\n\t\t\"highlight/nim\"\n\t],\n\t\"./nim.js\": [\n\t\t35587,\n\t\t\"highlight/nim\"\n\t],\n\t\"./nix\": [\n\t\t88170,\n\t\t\"highlight/nix\"\n\t],\n\t\"./nix.js\": [\n\t\t88170,\n\t\t\"highlight/nix\"\n\t],\n\t\"./node-repl\": [\n\t\t93668,\n\t\t\"highlight/node-repl\"\n\t],\n\t\"./node-repl.js\": [\n\t\t93668,\n\t\t\"highlight/node-repl\"\n\t],\n\t\"./nsis\": [\n\t\t29269,\n\t\t\"highlight/nsis\"\n\t],\n\t\"./nsis.js\": [\n\t\t29269,\n\t\t\"highlight/nsis\"\n\t],\n\t\"./objectivec\": [\n\t\t61896,\n\t\t\"highlight/objectivec\"\n\t],\n\t\"./objectivec.js\": [\n\t\t61896,\n\t\t\"highlight/objectivec\"\n\t],\n\t\"./ocaml\": [\n\t\t78550,\n\t\t\"highlight/ocaml\"\n\t],\n\t\"./ocaml.js\": [\n\t\t78550,\n\t\t\"highlight/ocaml\"\n\t],\n\t\"./openscad\": [\n\t\t41078,\n\t\t\"highlight/openscad\"\n\t],\n\t\"./openscad.js\": [\n\t\t41078,\n\t\t\"highlight/openscad\"\n\t],\n\t\"./oxygene\": [\n\t\t89015,\n\t\t\"highlight/oxygene\"\n\t],\n\t\"./oxygene.js\": [\n\t\t89015,\n\t\t\"highlight/oxygene\"\n\t],\n\t\"./parser3\": [\n\t\t6247,\n\t\t\"highlight/parser3\"\n\t],\n\t\"./parser3.js\": [\n\t\t6247,\n\t\t\"highlight/parser3\"\n\t],\n\t\"./perl\": [\n\t\t78529,\n\t\t\"highlight/perl\"\n\t],\n\t\"./perl.js\": [\n\t\t78529,\n\t\t\"highlight/perl\"\n\t],\n\t\"./pf\": [\n\t\t15994,\n\t\t\"highlight/pf\"\n\t],\n\t\"./pf.js\": [\n\t\t15994,\n\t\t\"highlight/pf\"\n\t],\n\t\"./pgsql\": [\n\t\t86509,\n\t\t\"highlight/pgsql\"\n\t],\n\t\"./pgsql.js\": [\n\t\t86509,\n\t\t\"highlight/pgsql\"\n\t],\n\t\"./php\": [\n\t\t73306,\n\t\t\"highlight/php\"\n\t],\n\t\"./php-template\": [\n\t\t75377,\n\t\t\"highlight/php-template\"\n\t],\n\t\"./php-template.js\": [\n\t\t75377,\n\t\t\"highlight/php-template\"\n\t],\n\t\"./php.js\": [\n\t\t73306,\n\t\t\"highlight/php\"\n\t],\n\t\"./plaintext\": [\n\t\t76572,\n\t\t\"highlight/plaintext\"\n\t],\n\t\"./plaintext.js\": [\n\t\t76572,\n\t\t\"highlight/plaintext\"\n\t],\n\t\"./pony\": [\n\t\t28422,\n\t\t\"highlight/pony\"\n\t],\n\t\"./pony.js\": [\n\t\t28422,\n\t\t\"highlight/pony\"\n\t],\n\t\"./powershell\": [\n\t\t66336,\n\t\t\"highlight/powershell\"\n\t],\n\t\"./powershell.js\": [\n\t\t66336,\n\t\t\"highlight/powershell\"\n\t],\n\t\"./processing\": [\n\t\t44148,\n\t\t\"highlight/processing\"\n\t],\n\t\"./processing.js\": [\n\t\t44148,\n\t\t\"highlight/processing\"\n\t],\n\t\"./profile\": [\n\t\t9129,\n\t\t\"highlight/profile\"\n\t],\n\t\"./profile.js\": [\n\t\t9129,\n\t\t\"highlight/profile\"\n\t],\n\t\"./prolog\": [\n\t\t58074,\n\t\t\"highlight/prolog\"\n\t],\n\t\"./prolog.js\": [\n\t\t58074,\n\t\t\"highlight/prolog\"\n\t],\n\t\"./properties\": [\n\t\t81245,\n\t\t\"highlight/properties\"\n\t],\n\t\"./properties.js\": [\n\t\t81245,\n\t\t\"highlight/properties\"\n\t],\n\t\"./protobuf\": [\n\t\t3306,\n\t\t\"highlight/protobuf\"\n\t],\n\t\"./protobuf.js\": [\n\t\t3306,\n\t\t\"highlight/protobuf\"\n\t],\n\t\"./puppet\": [\n\t\t73736,\n\t\t\"highlight/puppet\"\n\t],\n\t\"./puppet.js\": [\n\t\t73736,\n\t\t\"highlight/puppet\"\n\t],\n\t\"./purebasic\": [\n\t\t34055,\n\t\t\"highlight/purebasic\"\n\t],\n\t\"./purebasic.js\": [\n\t\t34055,\n\t\t\"highlight/purebasic\"\n\t],\n\t\"./python\": [\n\t\t30308,\n\t\t\"highlight/python\"\n\t],\n\t\"./python-repl\": [\n\t\t93725,\n\t\t\"highlight/python-repl\"\n\t],\n\t\"./python-repl.js\": [\n\t\t93725,\n\t\t\"highlight/python-repl\"\n\t],\n\t\"./python.js\": [\n\t\t30308,\n\t\t\"highlight/python\"\n\t],\n\t\"./q\": [\n\t\t76891,\n\t\t\"highlight/q\"\n\t],\n\t\"./q.js\": [\n\t\t76891,\n\t\t\"highlight/q\"\n\t],\n\t\"./qml\": [\n\t\t63259,\n\t\t\"highlight/qml\"\n\t],\n\t\"./qml.js\": [\n\t\t63259,\n\t\t\"highlight/qml\"\n\t],\n\t\"./r\": [\n\t\t30806,\n\t\t\"highlight/r\"\n\t],\n\t\"./r.js\": [\n\t\t30806,\n\t\t\"highlight/r\"\n\t],\n\t\"./reasonml\": [\n\t\t82050,\n\t\t\"highlight/reasonml\"\n\t],\n\t\"./reasonml.js\": [\n\t\t82050,\n\t\t\"highlight/reasonml\"\n\t],\n\t\"./rib\": [\n\t\t44613,\n\t\t\"highlight/rib\"\n\t],\n\t\"./rib.js\": [\n\t\t44613,\n\t\t\"highlight/rib\"\n\t],\n\t\"./roboconf\": [\n\t\t33176,\n\t\t\"highlight/roboconf\"\n\t],\n\t\"./roboconf.js\": [\n\t\t33176,\n\t\t\"highlight/roboconf\"\n\t],\n\t\"./routeros\": [\n\t\t25096,\n\t\t\"highlight/routeros\"\n\t],\n\t\"./routeros.js\": [\n\t\t25096,\n\t\t\"highlight/routeros\"\n\t],\n\t\"./rsl\": [\n\t\t61025,\n\t\t\"highlight/rsl\"\n\t],\n\t\"./rsl.js\": [\n\t\t61025,\n\t\t\"highlight/rsl\"\n\t],\n\t\"./ruby\": [\n\t\t58473,\n\t\t\"highlight/ruby\"\n\t],\n\t\"./ruby.js\": [\n\t\t58473,\n\t\t\"highlight/ruby\"\n\t],\n\t\"./ruleslanguage\": [\n\t\t65506,\n\t\t\"highlight/ruleslanguage\"\n\t],\n\t\"./ruleslanguage.js\": [\n\t\t65506,\n\t\t\"highlight/ruleslanguage\"\n\t],\n\t\"./rust\": [\n\t\t11374,\n\t\t\"highlight/rust\"\n\t],\n\t\"./rust.js\": [\n\t\t11374,\n\t\t\"highlight/rust\"\n\t],\n\t\"./sas\": [\n\t\t35457,\n\t\t\"highlight/sas\"\n\t],\n\t\"./sas.js\": [\n\t\t35457,\n\t\t\"highlight/sas\"\n\t],\n\t\"./scala\": [\n\t\t5818,\n\t\t\"highlight/scala\"\n\t],\n\t\"./scala.js\": [\n\t\t5818,\n\t\t\"highlight/scala\"\n\t],\n\t\"./scheme\": [\n\t\t10336,\n\t\t\"highlight/scheme\"\n\t],\n\t\"./scheme.js\": [\n\t\t10336,\n\t\t\"highlight/scheme\"\n\t],\n\t\"./scilab\": [\n\t\t47691,\n\t\t\"highlight/scilab\"\n\t],\n\t\"./scilab.js\": [\n\t\t47691,\n\t\t\"highlight/scilab\"\n\t],\n\t\"./scss\": [\n\t\t36632,\n\t\t\"highlight/scss\"\n\t],\n\t\"./scss.js\": [\n\t\t36632,\n\t\t\"highlight/scss\"\n\t],\n\t\"./shell\": [\n\t\t19514,\n\t\t\"highlight/shell\"\n\t],\n\t\"./shell.js\": [\n\t\t19514,\n\t\t\"highlight/shell\"\n\t],\n\t\"./smali\": [\n\t\t60522,\n\t\t\"highlight/smali\"\n\t],\n\t\"./smali.js\": [\n\t\t60522,\n\t\t\"highlight/smali\"\n\t],\n\t\"./smalltalk\": [\n\t\t75030,\n\t\t\"highlight/smalltalk\"\n\t],\n\t\"./smalltalk.js\": [\n\t\t75030,\n\t\t\"highlight/smalltalk\"\n\t],\n\t\"./sml\": [\n\t\t79664,\n\t\t\"highlight/sml\"\n\t],\n\t\"./sml.js\": [\n\t\t79664,\n\t\t\"highlight/sml\"\n\t],\n\t\"./sqf\": [\n\t\t85168,\n\t\t\"highlight/sqf\"\n\t],\n\t\"./sqf.js\": [\n\t\t85168,\n\t\t\"highlight/sqf\"\n\t],\n\t\"./sql\": [\n\t\t97181,\n\t\t\"highlight/sql\"\n\t],\n\t\"./sql.js\": [\n\t\t97181,\n\t\t\"highlight/sql\"\n\t],\n\t\"./sql_more\": [\n\t\t83224,\n\t\t\"highlight/sql_more\"\n\t],\n\t\"./sql_more.js\": [\n\t\t83224,\n\t\t\"highlight/sql_more\"\n\t],\n\t\"./stan\": [\n\t\t53413,\n\t\t\"highlight/stan\"\n\t],\n\t\"./stan.js\": [\n\t\t53413,\n\t\t\"highlight/stan\"\n\t],\n\t\"./stata\": [\n\t\t92417,\n\t\t\"highlight/stata\"\n\t],\n\t\"./stata.js\": [\n\t\t92417,\n\t\t\"highlight/stata\"\n\t],\n\t\"./step21\": [\n\t\t52706,\n\t\t\"highlight/step21\"\n\t],\n\t\"./step21.js\": [\n\t\t52706,\n\t\t\"highlight/step21\"\n\t],\n\t\"./stylus\": [\n\t\t82054,\n\t\t\"highlight/stylus\"\n\t],\n\t\"./stylus.js\": [\n\t\t82054,\n\t\t\"highlight/stylus\"\n\t],\n\t\"./subunit\": [\n\t\t36886,\n\t\t\"highlight/subunit\"\n\t],\n\t\"./subunit.js\": [\n\t\t36886,\n\t\t\"highlight/subunit\"\n\t],\n\t\"./swift\": [\n\t\t26306,\n\t\t\"highlight/swift\"\n\t],\n\t\"./swift.js\": [\n\t\t26306,\n\t\t\"highlight/swift\"\n\t],\n\t\"./taggerscript\": [\n\t\t54858,\n\t\t\"highlight/taggerscript\"\n\t],\n\t\"./taggerscript.js\": [\n\t\t54858,\n\t\t\"highlight/taggerscript\"\n\t],\n\t\"./tap\": [\n\t\t49113,\n\t\t\"highlight/tap\"\n\t],\n\t\"./tap.js\": [\n\t\t49113,\n\t\t\"highlight/tap\"\n\t],\n\t\"./tcl\": [\n\t\t74562,\n\t\t\"highlight/tcl\"\n\t],\n\t\"./tcl.js\": [\n\t\t74562,\n\t\t\"highlight/tcl\"\n\t],\n\t\"./thrift\": [\n\t\t55063,\n\t\t\"highlight/thrift\"\n\t],\n\t\"./thrift.js\": [\n\t\t55063,\n\t\t\"highlight/thrift\"\n\t],\n\t\"./tp\": [\n\t\t27092,\n\t\t\"highlight/tp\"\n\t],\n\t\"./tp.js\": [\n\t\t27092,\n\t\t\"highlight/tp\"\n\t],\n\t\"./twig\": [\n\t\t35488,\n\t\t\"highlight/twig\"\n\t],\n\t\"./twig.js\": [\n\t\t35488,\n\t\t\"highlight/twig\"\n\t],\n\t\"./typescript\": [\n\t\t91533,\n\t\t\"highlight/typescript\"\n\t],\n\t\"./typescript.js\": [\n\t\t91533,\n\t\t\"highlight/typescript\"\n\t],\n\t\"./vala\": [\n\t\t65431,\n\t\t\"highlight/vala\"\n\t],\n\t\"./vala.js\": [\n\t\t65431,\n\t\t\"highlight/vala\"\n\t],\n\t\"./vbnet\": [\n\t\t86479,\n\t\t\"highlight/vbnet\"\n\t],\n\t\"./vbnet.js\": [\n\t\t86479,\n\t\t\"highlight/vbnet\"\n\t],\n\t\"./vbscript\": [\n\t\t80824,\n\t\t\"highlight/vbscript\"\n\t],\n\t\"./vbscript-html\": [\n\t\t3316,\n\t\t\"highlight/vbscript-html\"\n\t],\n\t\"./vbscript-html.js\": [\n\t\t3316,\n\t\t\"highlight/vbscript-html\"\n\t],\n\t\"./vbscript.js\": [\n\t\t80824,\n\t\t\"highlight/vbscript\"\n\t],\n\t\"./verilog\": [\n\t\t49115,\n\t\t\"highlight/verilog\"\n\t],\n\t\"./verilog.js\": [\n\t\t49115,\n\t\t\"highlight/verilog\"\n\t],\n\t\"./vhdl\": [\n\t\t53260,\n\t\t\"highlight/vhdl\"\n\t],\n\t\"./vhdl.js\": [\n\t\t53260,\n\t\t\"highlight/vhdl\"\n\t],\n\t\"./vim\": [\n\t\t5298,\n\t\t\"highlight/vim\"\n\t],\n\t\"./vim.js\": [\n\t\t5298,\n\t\t\"highlight/vim\"\n\t],\n\t\"./x86asm\": [\n\t\t43377,\n\t\t\"highlight/x86asm\"\n\t],\n\t\"./x86asm.js\": [\n\t\t43377,\n\t\t\"highlight/x86asm\"\n\t],\n\t\"./xl\": [\n\t\t731,\n\t\t\"highlight/xl\"\n\t],\n\t\"./xl.js\": [\n\t\t731,\n\t\t\"highlight/xl\"\n\t],\n\t\"./xml\": [\n\t\t42157,\n\t\t\"highlight/xml\"\n\t],\n\t\"./xml.js\": [\n\t\t42157,\n\t\t\"highlight/xml\"\n\t],\n\t\"./xquery\": [\n\t\t46629,\n\t\t\"highlight/xquery\"\n\t],\n\t\"./xquery.js\": [\n\t\t46629,\n\t\t\"highlight/xquery\"\n\t],\n\t\"./yaml\": [\n\t\t54587,\n\t\t\"highlight/yaml\"\n\t],\n\t\"./yaml.js\": [\n\t\t54587,\n\t\t\"highlight/yaml\"\n\t],\n\t\"./zephir\": [\n\t\t58737,\n\t\t\"highlight/zephir\"\n\t],\n\t\"./zephir.js\": [\n\t\t58737,\n\t\t\"highlight/zephir\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 63497;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","\n\n\n\t\n\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CollisionResolveDialog.vue?vue&type=template&id=4a5d4c0f&scoped=true&\"\nimport script from \"./CollisionResolveDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CollisionResolveDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CollisionResolveDialog.vue?vue&type=style&index=0&id=4a5d4c0f&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a5d4c0f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"collision-resolve-dialog\",attrs:{\"id\":\"resolve-conflicts\"}},[_c('button',{on:{\"click\":function($event){return _vm.$emit('resolve-use-this-version')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('text', 'Use current version'))+\"\\n\\t\")]),_vm._v(\" \"),_c('button',{on:{\"click\":function($event){return _vm.$emit('resolve-use-server-version')}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('text', 'Use the saved version'))+\"\\n\\t\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"editor-container\"}},[(_vm.displayed)?_c('div',{staticClass:\"document-status\"},[(_vm.idle)?_c('p',{staticClass:\"msg\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'Document idle for {timeout} minutes, click to continue editing', { timeout: _vm.IDLE_TIMEOUT }))+\" \"),_c('a',{staticClass:\"button primary\",on:{\"click\":_vm.reconnect}},[_vm._v(_vm._s(_vm.t('text', 'Reconnect')))])]):(_vm.hasSyncCollission)?_c('p',{staticClass:\"msg icon-error\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'The document has been changed outside of the editor. The changes cannot be applied.'))+\"\\n\\t\\t\")]):(_vm.hasConnectionIssue)?_c('p',{staticClass:\"msg\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('text', 'File could not be loaded. Please check your internet connection.'))+\" \"),_c('a',{staticClass:\"button primary\",on:{\"click\":_vm.reconnect}},[_vm._v(_vm._s(_vm.t('text', 'Reconnect')))])]):_vm._e(),_vm._v(\" \"),(_vm.lock)?_c('p',{staticClass:\"msg msg-locked\"},[_c('Lock'),_vm._v(\" \"+_vm._s(_vm.t('text', 'This file is opened read-only as it is currently locked by {user}.', { user: _vm.lock.displayName }))+\"\\n\\t\\t\")],1):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.displayed)?_c('div',{class:{'has-conflicts': _vm.hasSyncCollission, 'icon-loading': !_vm.contentLoaded && !_vm.hasConnectionIssue, 'richEditor': _vm.isRichEditor, 'show-color-annotations': _vm.showAuthorAnnotations},attrs:{\"id\":\"editor-wrapper\"}},[(_vm.$editor)?_c('div',{class:{ draggedOver: _vm.draggedOver },attrs:{\"id\":\"editor\"},on:{\"image-paste\":_vm.onPaste,\"dragover\":function($event){$event.preventDefault();$event.stopPropagation();_vm.draggedOver = true},\"dragleave\":function($event){$event.preventDefault();$event.stopPropagation();_vm.draggedOver = false},\"image-drop\":_vm.onEditorDrop}},[(_vm.renderMenus)?_c('MenuBar',{ref:\"menubar\",attrs:{\"file-path\":_vm.relativePath,\"file-id\":_vm.fileId,\"is-rich-editor\":_vm.isRichEditor,\"is-public\":_vm.isPublic,\"autohide\":_vm.autohide,\"loaded\":_vm.menubarLoaded,\"uploading-images\":_vm.uploadingImages},on:{\"update:loaded\":function($event){_vm.menubarLoaded=$event},\"show-help\":_vm.showHelp,\"image-insert\":_vm.insertImagePath,\"image-upload\":_vm.uploadImageFiles}},[_c('div',{attrs:{\"id\":\"editor-session-list\"}},[_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.lastSavedStatusTooltip),expression:\"lastSavedStatusTooltip\"}],staticClass:\"save-status\",class:_vm.lastSavedStatusClass},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.lastSavedStatus)+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('SessionList',{attrs:{\"sessions\":_vm.filteredSessions}},[(_vm.isPublic && _vm.currentSession.guestName)?_c('GuestNameDialog'):_vm._e()],1)],1),_vm._v(\" \"),_vm._t(\"header\")],2):_vm._e(),_vm._v(\" \"),(!_vm.menubarLoaded)?_c('div',{staticClass:\"menubar placeholder\"}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"contentWrapper\",staticClass:\"content-wrapper\"},[(_vm.renderMenus)?_c('MenuBubble',{attrs:{\"content-wrapper\":_vm.contentWrapper,\"file-path\":_vm.relativePath}}):_vm._e(),_vm._v(\" \"),_c('EditorContent',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.contentLoaded),expression:\"contentLoaded\"}],staticClass:\"editor__content\",attrs:{\"editor\":_vm.$editor}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.hasSyncCollission)?_c('ReadOnlyEditor',{attrs:{\"content\":_vm.syncError.data.outsideChange,\"is-rich-editor\":_vm.isRichEditor}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.hasSyncCollission && !_vm.readOnly)?_c('CollisionResolveDialog',{on:{\"resolve-use-this-version\":_vm.resolveUseThisVersion,\"resolve-use-server-version\":_vm.resolveUseServerVersion}}):_vm._e(),_vm._v(\" \"),(_vm.displayHelp)?_c('HelpModal',{on:{\"close\":_vm.hideHelp}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport axios from '@nextcloud/axios'\nimport { endpointUrl } from '../helpers'\nimport { SyncService, ERROR_TYPE } from './SyncService'\nimport { sendableSteps } from 'prosemirror-collab'\n\n/**\n * Minimum inverval to refetch the document changes\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL = 300\n\n/**\n * Maximum interval between refetches of document state if multiple users have joined\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_MAX = 5000\n\n/**\n * Interval to check for changes when there is only one user joined\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_SINGLE_EDITOR = 5000\n\n/**\n * Interval to fetch for changes when a browser window is considered invisible by the\n * page visibility API https://developer.mozilla.org/de/docs/Web/API/Page_Visibility_API\n *\n * @type {number} time in ms\n */\nconst FETCH_INTERVAL_INVISIBLE = 60000\n\nconst MIN_PUSH_RETRY = 500\nconst MAX_PUSH_RETRY = 10000\n\n/* Timeout after that a PUSH_FAILURE error is emitted */\nconst WARNING_PUSH_RETRY = 5000\n\n/* Maximum number of retries for fetching before emitting a connection error */\nconst MAX_RETRY_FETCH_COUNT = 5\n\n/**\n * Timeout for sessions to be marked as disconnected\n * Make sure that this is higher than any FETCH_INTERVAL_ values\n */\nconst COLLABORATOR_DISCONNECT_TIME = FETCH_INTERVAL_INVISIBLE * 1.5\n\nclass PollingBackend {\n\n\tconstructor(authority) {\n\t\t/** @type {SyncService} */\n\t\tthis._authority = authority\n\t\tthis.fetchInterval = FETCH_INTERVAL\n\t\tthis.retryTime = MIN_PUSH_RETRY\n\t\tthis.lock = false\n\t\tthis.fetchRetryCounter = 0\n\t}\n\n\tconnect() {\n\t\tthis.initialLoadingFinished = false\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), 50)\n\t\tdocument.addEventListener('visibilitychange', this.visibilitychange.bind(this))\n\t}\n\n\t_isPublic() {\n\t\treturn !!this._authority.options.shareToken\n\t}\n\n\tforceSave() {\n\t\tthis._forcedSave = true\n\t\tthis.fetchSteps()\n\t}\n\n\tsave() {\n\t\tthis._manualSave = true\n\t\tthis.fetchSteps()\n\t}\n\n\tfetchSteps() {\n\t\tthis._fetchSteps()\n\t}\n\n\t/**\n\t * This method is only called though the timer\n\t */\n\t_fetchSteps() {\n\t\tif (this.lock || !this.fetcher) {\n\t\t\treturn\n\t\t}\n\t\tthis.lock = true\n\t\tlet autosaveContent\n\t\tif (this._forcedSave || this._manualSave\n\t\t\t|| (!sendableSteps(this._authority.state)\n\t\t\t&& (this._authority._getVersion() !== this._authority.document.lastSavedVersion))\n\t\t) {\n\t\t\tautosaveContent = this._authority._getContent()\n\t\t}\n\t\taxios.post(endpointUrl('session/sync', this._isPublic()), {\n\t\t\tdocumentId: this._authority.document.id,\n\t\t\tsessionId: this._authority.session.id,\n\t\t\tsessionToken: this._authority.session.token,\n\t\t\tversion: this._authority._getVersion(),\n\t\t\tautosaveContent,\n\t\t\tforce: !!this._forcedSave,\n\t\t\tmanualSave: !!this._manualSave,\n\t\t\ttoken: this._authority.options.shareToken,\n\t\t\tfilePath: this._authority.options.filePath,\n\t\t}).then(this._handleResponse.bind(this), this._handleError.bind(this))\n\t\tthis._manualSave = false\n\t\tthis._forcedSave = false\n\t}\n\n\t_handleResponse(response) {\n\t\tthis.fetchRetryCounter = 0\n\n\t\tif (this._authority.document.lastSavedVersion < response.data.document.lastSavedVersion) {\n\t\t\tconsole.debug('Saved document', response.data.document)\n\t\t\tthis._authority.emit('save', { document: response.data.document, sessions: response.data.sessions })\n\t\t}\n\n\t\tthis._authority.emit('change', { document: response.data.document, sessions: response.data.sessions })\n\t\tthis._authority.document = response.data.document\n\t\tthis._authority.sessions = response.data.sessions\n\n\t\tif (response.data.steps.length === 0) {\n\t\t\tif (!this.initialLoadingFinished) {\n\t\t\t\tthis.initialLoadingFinished = true\n\t\t\t}\n\t\t\tif (this._authority.checkIdle()) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.lock = false\n\t\t\tif (response.data.sessions.filter((session) => session.lastContact > Date.now() / 1000 - COLLABORATOR_DISCONNECT_TIME).length < 2) {\n\t\t\t\tthis.maximumRefetchTimer()\n\t\t\t} else {\n\t\t\t\tthis.increaseRefetchTimer()\n\t\t\t}\n\t\t\tthis._authority.emit('stateChange', { dirty: false })\n\t\t\tthis._authority.emit('stateChange', { initialLoading: true })\n\t\t\treturn\n\t\t}\n\n\t\tthis._authority._receiveSteps(response.data)\n\t\tthis.lock = false\n\t\tthis._forcedSave = false\n\t\tif (this.initialLoadingFinished) {\n\t\t\tthis.resetRefetchTimer()\n\t\t}\n\t}\n\n\t_handleError(e) {\n\t\tthis.lock = false\n\t\tif (!e.response || e.code === 'ECONNABORTED') {\n\t\t\tif (this.fetchRetryCounter++ >= MAX_RETRY_FETCH_COUNT) {\n\t\t\t\tconsole.error('[PollingBackend:fetchSteps] Network error when fetching steps, emitting CONNECTION_FAILED')\n\t\t\t\tthis._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, { retry: false })\n\n\t\t\t} else {\n\t\t\t\tconsole.error(`[PollingBackend:fetchSteps] Network error when fetching steps, retry ${this.fetchRetryCounter}`)\n\t\t\t}\n\t\t} else if (e.response.status === 409 && e.response.data.document.currentVersion === this._authority.document.currentVersion) {\n\t\t\t// Only emit conflict event if we have synced until the latest version\n\t\t\tconsole.error('Conflict during file save, please resolve')\n\t\t\tthis._authority.emit('error', ERROR_TYPE.SAVE_COLLISSION, {\n\t\t\t\toutsideChange: e.response.data.outsideChange,\n\t\t\t})\n\t\t} else if (e.response.status === 403) {\n\t\t\tthis._authority.emit('error', ERROR_TYPE.SOURCE_NOT_FOUND, {})\n\t\t\tthis.disconnect()\n\t\t} else if (e.response.status === 404) {\n\t\t\tthis._authority.emit('error', ERROR_TYPE.SOURCE_NOT_FOUND, {})\n\t\t\tthis.disconnect()\n\t\t} else if (e.response.status === 503) {\n\t\t\tthis.increaseRefetchTimer()\n\t\t\tthis._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, { retry: false })\n\t\t\tconsole.error('Failed to fetch steps due to unavailable service', e)\n\t\t} else {\n\t\t\tthis.disconnect()\n\t\t\tthis._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, { retry: false })\n\t\t\tconsole.error('Failed to fetch steps due to other reason', e)\n\t\t}\n\n\t}\n\n\tsendSteps(_sendable) {\n\t\tthis._authority.emit('stateChange', { dirty: true })\n\t\tif (this.lock) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._authority.sendSteps()\n\t\t\t}, 100)\n\t\t\treturn\n\t\t}\n\t\tthis.lock = true\n\t\tconst sendable = (typeof _sendable === 'function') ? _sendable() : _sendable\n\t\tconst steps = sendable.steps\n\t\taxios.post(endpointUrl('session/push', !!this._authority.options.shareToken), {\n\t\t\tdocumentId: this._authority.document.id,\n\t\t\tsessionId: this._authority.session.id,\n\t\t\tsessionToken: this._authority.session.token,\n\t\t\tsteps: steps.map(s => s.toJSON ? s.toJSON() : s) || [],\n\t\t\tversion: sendable.version,\n\t\t\ttoken: this._authority.options.shareToken,\n\t\t\tfilePath: this._authority.options.filePath,\n\t\t}).then((response) => {\n\t\t\tthis.carefulRetryReset()\n\t\t\tthis.lock = false\n\t\t\tthis.fetchSteps()\n\t\t}).catch(({ response, code }) => {\n\t\t\tconsole.error('failed to apply steps due to collission, retrying')\n\t\t\tthis.lock = false\n\t\t\tif (!response || code === 'ECONNABORTED') {\n\t\t\t\tthis._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, {})\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst { status, data } = response\n\t\t\tif (status === 403) {\n\t\t\t\tif (!data.document) {\n\t\t\t\t\t// either the session is invalid or the document is read only.\n\t\t\t\t\tconsole.error('failed to write to document - not allowed')\n\t\t\t\t}\n\t\t\t\t// Only emit conflict event if we have synced until the latest version\n\t\t\t\tif (data.document?.currentVersion === this._authority.document.currentVersion) {\n\t\t\t\t\tthis._authority.emit('error', ERROR_TYPE.PUSH_FAILURE, {})\n\t\t\t\t\tOC.Notification.showTemporary('Changes could not be sent yet')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.fetchSteps()\n\t\t\tthis.carefulRetry()\n\t\t})\n\t}\n\n\tdisconnect() {\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = 0\n\t\tdocument.removeEventListener('visibilitychange', this.visibilitychange.bind(this))\n\t}\n\n\tresetRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = FETCH_INTERVAL\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\n\t}\n\n\tincreaseRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = Math.min(this.fetchInterval * 2, FETCH_INTERVAL_MAX)\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t}\n\n\tmaximumRefetchTimer() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tthis.fetchInterval = FETCH_INTERVAL_SINGLE_EDITOR\n\t\tclearInterval(this.fetcher)\n\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t}\n\n\tvisibilitychange() {\n\t\tif (this.fetcher === 0) {\n\t\t\treturn\n\t\t}\n\t\tif (document.visibilityState === 'hidden') {\n\t\t\tthis.fetchInterval = FETCH_INTERVAL_INVISIBLE\n\t\t\tclearInterval(this.fetcher)\n\t\t\tthis.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval)\n\t\t} else {\n\t\t\tthis.resetRefetchTimer()\n\t\t}\n\t}\n\n\tcarefulRetry() {\n\t\tconst newRetry = this.retryTime ? Math.min(this.retryTime * 2, MAX_PUSH_RETRY) : MIN_PUSH_RETRY\n\t\tif (newRetry > WARNING_PUSH_RETRY && this.retryTime < WARNING_PUSH_RETRY) {\n\t\t\tOC.Notification.showTemporary('Changes could not be sent yet')\n\t\t\tthis._authority.emit('error', ERROR_TYPE.PUSH_FAILURE, {})\n\t\t}\n\t\tthis.retryTime = newRetry\n\t}\n\n\tcarefulRetryReset() {\n\t\tthis.retryTime = MIN_PUSH_RETRY\n\t}\n\n}\n\nexport default PollingBackend\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport axios from '@nextcloud/axios'\n\nimport PollingBackend from './PollingBackend'\nimport { endpointUrl } from './../helpers'\nimport { getVersion, sendableSteps } from 'prosemirror-collab'\n\nconst defaultOptions = {\n\tshareToken: null,\n\tforceRecreate: false,\n\tserialize: (document) => document,\n}\n\n/**\n * Timeout after which the editor will consider a document without changes being synced as idle\n * The session will be terminated and the document will stay open in read-only mode with a button to reconnect if needed\n *\n * @type {number}\n */\nconst IDLE_TIMEOUT = 30\n\nconst ERROR_TYPE = {\n\t/**\n\t * Failed to save collaborative document due to external change\n\t * collission needs to be resolved manually\n\t */\n\tSAVE_COLLISSION: 0,\n\t/**\n\t * Failed to push changes for MAX_REBASE_RETRY times\n\t */\n\tPUSH_FAILURE: 1,\n\n\tLOAD_ERROR: 2,\n\n\tCONNECTION_FAILED: 3,\n\n\tSOURCE_NOT_FOUND: 4,\n}\n\nclass SyncService {\n\n\tconstructor(options) {\n\t\tthis.eventHandlers = {\n\t\t\t/* Document state */\n\t\t\topened: [],\n\t\t\tloaded: [],\n\t\t\t/* All initial steps fetched */\n\t\t\tfetched: [],\n\t\t\t/* received new steps */\n\t\t\tsync: [],\n\t\t\t/* state changed (dirty) */\n\t\t\tstateChange: [],\n\t\t\t/* error */\n\t\t\terror: [],\n\t\t\t/* Events for session and document meta data */\n\t\t\tchange: [],\n\t\t\t/* Emitted after successful save */\n\t\t\tsave: [],\n\t\t\t/* Emitted once a document becomes idle */\n\t\t\tidle: [],\n\t\t}\n\n\t\tthis.backend = new PollingBackend(this)\n\n\t\tthis.options = Object.assign({}, defaultOptions, options)\n\n\t\tthis.document = null\n\t\tthis.session = null\n\t\tthis.sessions = []\n\n\t\tthis.steps = []\n\t\tthis.stepClientIDs = []\n\n\t\tthis.lastStepPush = Date.now()\n\n\t\tthis.lock = null\n\n\t\treturn this\n\t}\n\n\tasync open({ fileId, filePath, initialSession }) {\n\t\tconst connectionData = initialSession\n\t\t\t|| await this._openDocument({ fileId, filePath })\n\t\tthis.document = connectionData.document\n\t\tthis.document.readOnly = connectionData.readOnly\n\t\tthis.session = connectionData.session\n\t\tthis.lock = connectionData.lock\n\t\tthis.emit('opened', {\n\t\t\tdocument: this.document,\n\t\t\tsession: this.session,\n\t\t})\n\t\tconst content = connectionData.content\n\t\t\t|| await this._fetchDocument()\n\t\tthis.emit('loaded', {\n\t\t\tdocument: this.document,\n\t\t\tsession: this.session,\n\t\t\tdocumentSource: '' + content,\n\t\t})\n\t}\n\n\tstartSync() {\n\t\tthis.backend.connect()\n\t}\n\n\t_openDocument({ fileId, filePath }) {\n\t\treturn axios.put(endpointUrl('session/create', !!this.options.shareToken), {\n\t\t\tfileId,\n\t\t\tfilePath,\n\t\t\ttoken: this.options.shareToken,\n\t\t\tguestName: this.options.guestName,\n\t\t\tforceRecreate: this.options.forceRecreate,\n\t\t})\n\t\t\t.then(response => response.data, error => {\n\t\t\t\tif (!error.response || error.code === 'ECONNABORTED') {\n\t\t\t\t\tthis.emit('error', ERROR_TYPE.CONNECTION_FAILED, {})\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit('error', ERROR_TYPE.LOAD_ERROR, error.response.status)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t})\n\t}\n\n\t_fetchDocument() {\n\t\treturn axios.post(\n\t\t\tendpointUrl('session/fetch', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t}, {\n\t\t\t\t// Axios normally tries to parse string responses as json.\n\t\t\t\t// Just return the plain content here.\n\t\t\t\ttransformResponse: [(data) => data],\n\t\t\t}\n\t\t).then(response => response.data)\n\t}\n\n\tupdateSession(guestName) {\n\t\tif (!this.isPublic()) {\n\t\t\treturn\n\t\t}\n\t\treturn axios.post(\n\t\t\tendpointUrl('session', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\tguestName,\n\t\t\t}\n\t\t).then(({ data }) => {\n\t\t\tthis.session = data\n\t\t\treturn data\n\t\t}).catch((error) => {\n\t\t\tconsole.error('Failed to update the session', error)\n\t\t\treturn Promise.reject(error)\n\t\t})\n\t}\n\n\tsendSteps(_sendable) {\n\t\tconst sendable = _sendable || sendableSteps(this.state)\n\t\tif (!sendable) {\n\t\t\treturn\n\t\t}\n\t\treturn this.backend.sendSteps(sendable)\n\t}\n\n\tstepsSince(version) {\n\t\treturn {\n\t\t\tsteps: this.steps.slice(version),\n\t\t\tclientIDs: this.stepClientIDs.slice(version),\n\t\t}\n\t}\n\n\t_receiveSteps({ steps, document }) {\n\t\tconst newSteps = []\n\t\tfor (let i = 0; i < steps.length; i++) {\n\t\t\tconst singleSteps = steps[i].data\n\t\t\tif (!Array.isArray(singleSteps)) {\n\t\t\t\tconsole.error('Invalid step data, skipping step', steps[i])\n\t\t\t\t// TODO: recover\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsingleSteps.forEach(step => {\n\t\t\t\tthis.steps.push(step)\n\t\t\t\tnewSteps.push({\n\t\t\t\t\tstep,\n\t\t\t\t\tclientID: steps[i].sessionId,\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t\tthis.lastStepPush = Date.now()\n\t\tthis.emit('sync', { steps: newSteps, document })\n\t\tconsole.debug('receivedSteps', 'newVersion', this._getVersion())\n\t}\n\n\tcheckIdle() {\n\t\tconst lastPushMinutesAgo = (Date.now() - this.lastStepPush) / 1000 / 60\n\t\tif (lastPushMinutesAgo > IDLE_TIMEOUT) {\n\t\t\tconsole.debug(`[SyncService] Document is idle for ${this.IDLE_TIMEOUT} minutes, suspending connection`)\n\t\t\tthis.emit('idle')\n\t\t}\n\t}\n\n\t_getVersion() {\n\t\tif (this.state) {\n\t\t\treturn getVersion(this.state)\n\t\t}\n\t\treturn 0\n\t}\n\n\t_getDocument() {\n\t\tif (this.state) {\n\t\t\treturn this.state.doc\n\t\t}\n\t}\n\n\t_getContent() {\n\t\treturn this.options.serialize(this._getDocument())\n\t}\n\n\tsave() {\n\t\tif (this.backend.save) {\n\t\t\tthis.backend.save()\n\t\t}\n\t}\n\n\tforceSave() {\n\t\tif (this.backend.forceSave) {\n\t\t\tthis.backend.forceSave()\n\t\t}\n\t}\n\n\tclose() {\n\t\tlet closed = false\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.on('save', () => {\n\t\t\t\tthis._close().then(() => {\n\t\t\t\t\tclosed = true\n\t\t\t\t\tresolve()\n\t\t\t\t}).catch(() => resolve())\n\t\t\t})\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!closed) {\n\t\t\t\t\tthis._close().then(() => {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t}\n\t\t\t}, 2000)\n\t\t\tthis.save()\n\t\t})\n\t}\n\n\t_close() {\n\t\tif (this.document === null || this.session === null) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tthis.backend.disconnect()\n\t\treturn axios.post(\n\t\t\tendpointUrl('session/close', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t})\n\t}\n\n\tuploadImage(image) {\n\t\tconst formData = new FormData()\n\t\tformData.append('image', image)\n\t\tformData.append('documentId', this.document.id)\n\t\tformData.append('sessionId', this.session.id)\n\t\tformData.append('sessionToken', this.session.token)\n\t\tformData.append('shareToken', this.options.shareToken || '')\n\t\tconst url = endpointUrl('image/upload')\n\t\treturn axios.post(url, formData, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t},\n\t\t})\n\t}\n\n\tinsertImageLink(imageLink) {\n\t\tconst params = {\n\t\t\tdocumentId: this.document.id,\n\t\t\tsessionId: this.session.id,\n\t\t\tsessionToken: this.session.token,\n\t\t\tshareToken: this.options.shareToken || '',\n\t\t\tlink: imageLink,\n\t\t}\n\t\tconst url = endpointUrl('image/link')\n\t\treturn axios.post(url, params)\n\t}\n\n\tinsertImageFile(imagePath) {\n\t\tconst params = {\n\t\t\tdocumentId: this.document.id,\n\t\t\tsessionId: this.session.id,\n\t\t\tsessionToken: this.session.token,\n\t\t\timagePath,\n\t\t}\n\t\tconst url = endpointUrl('image/filepath')\n\t\treturn axios.post(url, params)\n\t}\n\n\ton(event, callback, _this) {\n\t\tthis.eventHandlers[event].push(callback.bind(_this))\n\t\treturn this\n\t}\n\n\temit(event, data, additionalData) {\n\t\tif (typeof this.eventHandlers[event] !== 'undefined') {\n\t\t\tthis.eventHandlers[event].forEach(function(callback) {\n\t\t\t\tcallback(data, additionalData)\n\t\t\t})\n\t\t} else {\n\t\t\tconsole.error('Event not found', event)\n\t\t}\n\t}\n\n\tisPublic() {\n\t\treturn !!this.options.shareToken\n\t}\n\n}\n\nexport default SyncService\nexport { SyncService, ERROR_TYPE, IDLE_TIMEOUT }\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nconst extensionHighlight = {\n\tpy: 'python',\n\tgyp: 'python',\n\twsgi: 'python',\n\thtm: 'html',\n\txhtml: 'html',\n\terl: 'erlang',\n\tjsp: 'java',\n\tpl: 'perl',\n\trss: 'xml',\n\tatom: 'xml',\n\txsl: 'xml',\n\tplist: 'xml',\n\trb: 'ruby',\n\tbuilder: 'ruby',\n\tgemspec: 'ruby',\n\tpodspec: 'ruby',\n\tthor: 'ruby',\n\tdiff: 'patch',\n\ths: 'haskell',\n\ticl: 'haskell',\n\tphp3: 'php',\n\tphp4: 'php',\n\tphp5: 'php',\n\tphp6: 'php',\n\tsh: 'bash',\n\tzsh: 'bash',\n\tst: 'smalltalk',\n\tas: 'actionscript',\n\tapacheconf: 'apache',\n\tosacript: 'applescript',\n\tb: 'brainfuck',\n\tbf: 'brainfuck',\n\tclj: 'clojure',\n\t'cmake.in': 'cmake',\n\tcoffee: 'coffeescript',\n\tcson: 'coffescript',\n\ticed: 'coffescript',\n\tc: 'cpp',\n\th: 'cpp',\n\t'c++': 'cpp',\n\t'h++': 'cpp',\n\thh: 'cpp',\n\tjinja: 'django',\n\tbat: 'dos',\n\tcmd: 'dos',\n\tfs: 'fsharp',\n\thbs: 'handlebars',\n\t'html.hbs': 'handlebars',\n\t'html.handlebars': 'handlebars',\n\tsublime_metrics: 'json',\n\tsublime_session: 'json',\n\t'sublime-keymap': 'json',\n\t'sublime-mousemap': 'json',\n\t'sublime-project': 'json',\n\t'sublime-settings': 'json',\n\t'sublime-workspace': 'json',\n\tjs: 'javascript',\n\tmk: 'makefile',\n\tmak: 'makefile',\n\tmd: 'markdown',\n\tmkdown: 'markdown',\n\tmkd: 'markdown',\n\tnginxconf: 'nginx',\n\tm: 'objectivec',\n\tmm: 'objectivec',\n\tml: 'ocaml',\n\trs: 'rust',\n\tsci: 'scilab',\n\tvb: 'vbnet',\n\tvbs: 'vbscript',\n}\n\nexport default extensionHighlight\nexport {\n\textensionHighlight,\n}\n","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t{{ t('text', 'Document idle for {timeout} minutes, click to continue editing', { timeout: IDLE_TIMEOUT }) }} {{ t('text', 'Reconnect') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ t('text', 'The document has been changed outside of the editor. The changes cannot be applied.') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ t('text', 'File could not be loaded. Please check your internet connection.') }} {{ t('text', 'Reconnect') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t {{ t('text', 'This file is opened read-only as it is currently locked by {user}.', { user: lock.displayName }) }}\n\t\t\t
\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{ lastSavedStatus }}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\n\t\t\t\n\t\t\t \n\t\t\n\n\t\t \n\t\t \n\t\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=89544718&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=89544718&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditorWrapper.vue?vue&type=template&id=89544718&scoped=true&\"\nimport script from \"./EditorWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorWrapper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorWrapper.vue?vue&type=style&index=0&id=89544718&scoped=true&lang=scss&\"\nimport style1 from \"./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"89544718\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editor)?_c('EditorContent',{attrs:{\"id\":\"read-only-editor\",\"editor\":_vm.editor}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\t \n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ReadOnlyEditor.vue?vue&type=template&id=50fe6c2c&\"\nimport script from \"./ReadOnlyEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./ReadOnlyEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'icon-loading': _vm.saving},attrs:{\"id\":\"direct-editor\"}},[_c('EditorWrapper',{ref:\"editor\",attrs:{\"initial-session\":_vm.initialSession,\"active\":true,\"mime\":_vm.initial.mimetype,\"is-direct-editing\":true},on:{\"ready\":_vm.loaded},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('button',{staticClass:\"icon-share\",on:{\"click\":_vm.share}}),_vm._v(\" \"),_c('button',{staticClass:\"icon-close\",on:{\"click\":_vm.close}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t \n\t\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=style&index=0&id=8decc61c&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DirectEditing.vue?vue&type=style&index=0&id=8decc61c&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DirectEditing.vue?vue&type=template&id=8decc61c&scoped=true&\"\nimport script from \"./DirectEditing.vue?vue&type=script&lang=js&\"\nexport * from \"./DirectEditing.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DirectEditing.vue?vue&type=style&index=0&id=8decc61c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8decc61c\",\n null\n \n)\n\nexport default component.exports"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","editor","on","deleteNode","_s","t","_e","tableCaption","Node","name","content","addAttributes","renderHTML","toMarkdown","state","node","parseHTML","tag","priority","Table","addExtensions","addCommands","parent","insertTable","tr","dispatch","isInTable","schema","rowsCount","colsCount","cellContent","headerCells","cells","index","cell","nodes","tableCell","createAndFill","push","headerCell","tableHeader","headRow","tableHeadRow","createChecked","rows","tableRow","table","createTable","offset","selection","anchor","replaceSelectionWith","scrollIntoView","setSelection","TextSelection","doc","resolve","leaveTable","$head","empty","tableDepth","depth","$next","after","goToNextRow","$cell","childCount","cellStart","row","indexAfter","rowNode","child","nodeSize","findSameCellInNextRow","selectionCell","moveCellForward","HTMLAttributes","mergeAttributes","renderContent","closeBlock","addKeyboardShortcuts","Tab","commands","goToNextCell","Enter","can","addRowAfter","chain","run","addNodeView","VueNodeViewRenderer","TableView","addRowBefore","deleteRow","TableCell","write","renderInline","TableCellView","addColumnBefore","addColumnAfter","deleteColumn","TableHeader","TableHeaderView","TableRow","ensureNewLine","extend","forEach","repeat","textContent","length","basedir","file","end","lastIndexOf","slice","domHref","ref","href","match","relPath","id","dir","base","rel","split","pop","shift","concat","join","absolutePath","OCA","Viewer","generateUrl","parseHref","dom","getAttribute","path","clickHandler","Plugin","props","handleClick","view","pos","event","linkElement","target","parentElement","HTMLAnchorElement","isLink","htmlHref","stopPropagation","button","ctrlKey","startsWith","window","location","origin","query","OC","parseQueryString","fragment","filename","document","title","theme","pathname","open","fileId","markdownit","console","error","TipTapLink","default","inclusive","parseDOM","getAttrs","toDOM","addProseMirrorPlugins","plugins","filter","key","openOnClick","type","TipTapStrike","style","value","close","mixable","expelEnclosingWhitespace","Bold","addInputRules","markInputRule","find","starInputRegex","addPasteRules","markPasteRule","starPasteRegex","TipTapUnderline","underscoreInputRegex","underscorePasteRegex","Italic","TipTapItalic","class","loaded","src","imageLoaded","isSupportedImage","directives","rawName","showIcons","expression","$event","imageUrl","onLoaded","domProps","alt","indexOf","_k","keyCode","updateAlt","internalLinkOrImage","TiptapImage","selectable","addOptions","currentDirectory","undefined","ImageView","handleDrop","dataTransfer","files","coordinates","posAtCoords","left","clientX","top","clientY","customEvent","CustomEvent","bubbles","detail","position","dispatchEvent","handlePaste","clipboardData","insertContent","TiptapBulletList","InputRule","handler","range","wrappingInputRule","getAttributes","insertText","TipTapTaskItem","nested","draggable","adjust","checked","el","querySelector","context","listAttributes","checkboxAttributes","contenteditable","includes","parentList","findParentNodeClosestToPos","taskItem","listItem","tagName","toLowerCase","setNodeMarkup","TiptapTaskList","renderList","bullet","nodeEqualsType","types","Array","isArray","Extension","notAfter","plugin","PluginKey","disabledNodes","Object","entries","map","appendTransaction","_","__","shouldInsertNodeAtEnd","getState","endPosition","size","create","init","lastChild","apply","docChanged","TipTapHeading","levels","reduce","items","level","toggleHeading","group","defining","typesAvailable","rendered","element","classList","contains","attributes","classy","setCallout","wrapIn","toggleCallout","isNodeActive","unsetCallout","updateAttributes","lift","_l","emojiObject","selectedIndex","selectItem","native","short_name","loadSyntaxHighlight","language","list","listLanguages","info","syntax","registerLanguage","debug","createEditor","onCreate","onUpdate","extensions","enableRichEditing","richEditingExtensions","Markdown","Document","Paragraph","HardBreak","Heading","Strong","Strike","Link","Blockquote","Code","CodeBlock","BulletList","HorizontalRule","OrderedList","ListItem","TableHeadRow","TaskList","TaskItem","Callout","Underline","Image","inline","Emoji","suggestion","emojiSearch","render","component","popup","onStart","VueRenderer","EmojiList","propsData","tippy","getReferenceClientRect","clientRect","appendTo","body","showOnCreate","interactive","trigger","placement","updateProps","setProps","onKeyDown","hide","onExit","destroy","Placeholder","emptyNodeClass","placeholder","showOnlyWhenEditable","Dropcursor","TrailingNode","PlainTextDocument","CodeBlockLowlight","Editor","Text","History","SerializeException","message","serializePlainText","tiptap","getJSON","codeBlock","text","EDITOR","Symbol","SYNC_SERVICE","useEditorMixin","inject","$editor","from","useSyncServiceMixin","$syncService","extendMarkSchema","extension","storage","getExtensionField","extendNodeSchema","createMarkdownSerializer","marks","defaultNodes","convertNames","defaultMarkdownSerializer","defaultMarks","serializer","MarkdownSerializer","extractToMarkdown","serialize","tightLists","nodesOrMarks","spec","object","convert","replace","_m","letter","toUpperCase","fromEntries","EmojiPluginKey","char","pluginKey","command","focus","insertContentAt","emoji","Suggestion","TipTapHardBreak","i","handleKeyDown","metaKey","shiftKey","Span","to","author","updateBlameMap","transform","clientIDs","result","mapping","span","maps","start","next","splice","Math","min","max","insertIntoBlameMap","TrackState","blameMap","clientID","getMeta","steps","item","color","floor","abs","sin","toString","instance","tracked","deco","DecorationSet","oldState","decos","tState","setMeta","applyTransform","Decoration","dec","decorations","timeout","fn","delay","getSendableSteps","sendable","sendableSteps","editable","onSendable","version","step","toJSON","debounce","args","clearTimeout","setTimeout","random","update","getVersion","receiveTransaction","Step","collab","documentReady","callback","attachEvent","readyState","addEventListener","_baseUrl","endpointUrl","endpoint","isPublic","randomGuestNames","getRandomGuestName","buildRender","tokens","idx","env","slf","nesting","attrSet","attrJoin","renderToken","md","use","container","MarkdownIt","html","breaks","enable","taskLists","labelAfter","core","ruler","token","attrGet","firstChild","attrIndex","splitBefore","parentIndex","predicate","searchLevel","findChildOf","TokenConstructor","closeList","block","openList","splitListAt","Token","ruler2","markup","callouts","data","isMobile","_isMobile","beforeMount","_onResize","beforeDestroy","removeEventListener","methods","documentElement","clientWidth","$store","store","persistentStorage","getBuilder","persist","build","Vue","Vuex","Store","showAuthorAnnotations","getItem","currentSession","mutations","SET_SHOW_AUTHOR_ANNOTATIONS","setItem","SET_CURRENT_SESSION","actions","setShowAuthorAnnotations","commit","setCurrentSession","___CSS_LOADER_EXPORT___","module","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","deepFreeze","obj","Map","clear","delete","set","Error","Set","add","freeze","getOwnPropertyNames","prop","isFrozen","deepFreezeEs6","_default","Response","constructor","mode","isMatchIgnored","ignoreMatch","escapeHTML","inherit","original","objects","emitsWrappingTags","kind","HTMLRenderer","parseTree","buffer","classPrefix","walk","addText","openNode","className","sublanguage","closeNode","TokenTree","rootNode","children","stack","closeAllNodes","JSON","stringify","builder","_walk","every","_collapse","TokenTreeEmitter","super","addKeyword","addSublanguage","emitter","root","toHTML","finalize","source","re","BACKREF_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","begin","relevance","APOS_STRING_MODE","illegal","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","__proto__","MATCH_NOTHING_RE","RE_STARTERS_RE","SHEBANG","opts","beginShebang","binary","x","m","resp","END_SAME_AS_BEGIN","assign","_beginMatch","skipIfhasPrecedingDot","response","input","beginKeywords","__beforeBegin","keywords","compileIllegal","_parent","either","compileMatch","compileRelevance","COMMON_KEYWORDS","compileKeywords","rawKeywords","caseInsensitive","compiledKeywords","compileList","keys","keywordList","keyword","pair","scoreForKeyword","providedScore","Number","commonKeyword","compileLanguage","langRe","global","RegExp","case_insensitive","MultiRegex","matchIndexes","regexes","matchAt","addRule","exec","countMatchGroups","compile","terminators","matcherRe","regexps","separator","numCaptures","regex","out","substring","String","lastIndex","s","findIndex","matchData","ResumableMultiRegex","rules","multiRegexes","count","regexIndex","getMatcher","matcher","resumingScanAtSamePosition","considerAll","m2","compilerExtensions","classNameAliases","compileMode","cmode","isCompiled","ext","keywordPattern","$pattern","lexemes","keywordPatternRe","beginRe","endSameAsBegin","endsWithParent","endRe","terminatorEnd","illegalRe","c","variants","cachedVariants","variant","dependencyOnParent","starts","expandOrCloneMode","mm","term","rule","buildModeRegex","BuildVuePlugin","hljs","Component","detectedLanguage","unknownLanguage","computed","highlighted","autoDetect","getLanguage","warn","code","highlightAuto","highlight","ignoreIllegals","autodetect","Boolean","createElement","innerHTML","VuePlugin","install","mergeHTMLPlugin","originalStream","nodeStream","resultNode","processed","nodeStack","selectStream","attributeString","attr","nodeName","call","stream","reverse","substr","mergeStreams","_nodeStream","nextSibling","nodeType","nodeValue","seenDeprecations","log","deprecated","escape$1","inherit$1","NO_MATCH","languages","aliases","SAFE_MODE","fixMarkupRe","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","noHighlightRe","languageDetectRe","tabReplace","useBR","__emitter","shouldNotHighlight","languageName","test","codeOrlanguageName","optionsOrCode","continuation","fire","_highlight","codeToHighlight","keywordData","matchText","prototype","hasOwnProperty","processBuffer","subLanguage","modeBuffer","continuations","processSubLanguage","buf","keywordRelevance","cssClass","processKeywords","startNewMode","endOfMode","matchPlusRemainder","matched","lexeme","endsParent","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","cb","skip","excludeBegin","returnBegin","doEndMatch","endMode","returnEnd","excludeEnd","lastMatch","processLexeme","textBeforeMatch","err","badRule","iterations","current","unshift","processContinuations","processedCount","illegalBy","msg","sofar","errorRaised","languageSubset","plaintext","justTextHighlightResult","results","autoDetection","sorted","sort","a","b","supersetOf","best","secondBest","second_best","brPlugin","TAB_REPLACE_RE","tabReplacePlugin","highlightElement","classes","parentNode","_class","blockLanguage","currentLang","resultLang","updateClassName","relavance","initHighlighting","called","querySelectorAll","wantsHighlight","highlightAll","registerAliases","aliasList","alias","lang","fixMarkup","arg","highlightBlock","configure","userOptions","initHighlightingOnLoad","languageDefinition","error$1","rawDefinition","bind","unregisterLanguage","requireLanguage","addPlugin","upgradePluginAPI","vuePlugin","debugMode","safeMode","versionString","HLJS","exports","webpackAsyncContext","req","__webpack_require__","o","Promise","then","e","ids","webpackContext","webpackContextResolve","$emit","PollingBackend","authority","_authority","fetchInterval","retryTime","lock","fetchRetryCounter","initialLoadingFinished","fetcher","setInterval","_fetchSteps","visibilitychange","shareToken","_forcedSave","fetchSteps","_manualSave","autosaveContent","_getVersion","lastSavedVersion","_getContent","axios","_isPublic","documentId","sessionId","session","sessionToken","force","manualSave","filePath","_handleResponse","_handleError","emit","sessions","checkIdle","lastContact","Date","now","FETCH_INTERVAL_INVISIBLE","maximumRefetchTimer","increaseRefetchTimer","dirty","initialLoading","_receiveSteps","resetRefetchTimer","status","currentVersion","ERROR_TYPE","SAVE_COLLISSION","outsideChange","SOURCE_NOT_FOUND","disconnect","CONNECTION_FAILED","retry","_sendable","sendSteps","carefulRetryReset","catch","PUSH_FAILURE","Notification","showTemporary","carefulRetry","clearInterval","visibilityState","newRetry","defaultOptions","forceRecreate","LOAD_ERROR","SyncService","eventHandlers","opened","fetched","sync","stateChange","change","save","idle","backend","stepClientIDs","lastStepPush","initialSession","_openDocument","connectionData","readOnly","_fetchDocument","documentSource","connect","guestName","transformResponse","reject","newSteps","singleSteps","IDLE_TIMEOUT","_getDocument","forceSave","closed","_close","image","formData","FormData","append","url","headers","imageLink","params","link","imagePath","_this","additionalData","extensionHighlight","py","gyp","wsgi","htm","xhtml","erl","jsp","pl","rss","atom","xsl","plist","rb","gemspec","podspec","thor","diff","hs","icl","php3","php4","php5","php6","sh","zsh","st","as","apacheconf","osacript","bf","clj","coffee","cson","iced","h","hh","jinja","bat","cmd","fs","hbs","sublime_metrics","sublime_session","js","mk","mak","mkdown","mkd","nginxconf","ml","rs","sci","vb","vbs","reconnect","user","displayName","hasSyncCollission","contentLoaded","hasConnectionIssue","isRichEditor","draggedOver","onPaste","preventDefault","onEditorDrop","relativePath","autohide","menubarLoaded","uploadingImages","showHelp","insertImagePath","uploadImageFiles","lastSavedStatusClass","lastSavedStatus","filteredSessions","_t","contentWrapper","syncError","resolveUseThisVersion","resolveUseServerVersion","hideHelp","saving","initial","mimetype","scopedSlots","_u","share","proxy"],"sourceRoot":""}