From e3462422553c190a66f9b24eed9c5a4dbf12cea7 Mon Sep 17 00:00:00 2001 From: mawalu Date: Sun, 7 Nov 2021 19:29:44 +0100 Subject: [PATCH] Use yjs and monaco to get colab code editing --- .gitignore | 2 + backend/lib/SocketTypes.js | 2 + backend/package.json | 5 +- backend/src/containers.js | 1 - backend/src/editor.js | 229 +++++++++ backend/src/shell.js | 45 ++ backend/src/websocket.js | 60 +-- backend/yarn.lock | 26 + frontend/dist/css.worker.js | 2 + frontend/dist/css.worker.js.map | 1 + frontend/dist/css/app.5c9713c3.css | 1 + frontend/dist/css/chunk-6de790dc.a35e0796.css | 1 + frontend/dist/editor.worker.js | 2 + frontend/dist/editor.worker.js.map | 1 + frontend/dist/favicon.ico | Bin 0 -> 4286 bytes frontend/dist/html.worker.js | 2 + frontend/dist/html.worker.js.map | 1 + frontend/dist/index.html | 1 + frontend/dist/js/app.670a8fa4.js | 2 + frontend/dist/js/app.670a8fa4.js.map | 1 + frontend/dist/js/chunk-6de790dc.1b8599c0.js | 2 + .../dist/js/chunk-6de790dc.1b8599c0.js.map | 1 + frontend/dist/js/chunk-vendors.26b39111.js | 8 + .../dist/js/chunk-vendors.26b39111.js.map | 1 + frontend/dist/ts.worker.js | 17 + frontend/dist/ts.worker.js.map | 1 + frontend/package.json | 9 +- frontend/src/components/Editor.vue | 40 ++ frontend/src/components/WsTerm.vue | 2 +- frontend/src/views/Dashboard.vue | 5 +- frontend/vue.config.js | 16 + frontend/yarn.lock | 461 +++++++++++++----- 32 files changed, 781 insertions(+), 167 deletions(-) create mode 100644 backend/lib/SocketTypes.js create mode 100644 backend/src/editor.js create mode 100644 backend/src/shell.js create mode 100644 frontend/dist/css.worker.js create mode 100644 frontend/dist/css.worker.js.map create mode 100644 frontend/dist/css/app.5c9713c3.css create mode 100644 frontend/dist/css/chunk-6de790dc.a35e0796.css create mode 100644 frontend/dist/editor.worker.js create mode 100644 frontend/dist/editor.worker.js.map create mode 100644 frontend/dist/favicon.ico create mode 100644 frontend/dist/html.worker.js create mode 100644 frontend/dist/html.worker.js.map create mode 100644 frontend/dist/index.html create mode 100644 frontend/dist/js/app.670a8fa4.js create mode 100644 frontend/dist/js/app.670a8fa4.js.map create mode 100644 frontend/dist/js/chunk-6de790dc.1b8599c0.js create mode 100644 frontend/dist/js/chunk-6de790dc.1b8599c0.js.map create mode 100644 frontend/dist/js/chunk-vendors.26b39111.js create mode 100644 frontend/dist/js/chunk-vendors.26b39111.js.map create mode 100644 frontend/dist/ts.worker.js create mode 100644 frontend/dist/ts.worker.js.map create mode 100644 frontend/src/components/Editor.vue create mode 100644 frontend/vue.config.js diff --git a/.gitignore b/.gitignore index 403adbc..f32b652 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ pnpm-debug.log* *.njsproj *.sln *.sw? + +/files diff --git a/backend/lib/SocketTypes.js b/backend/lib/SocketTypes.js new file mode 100644 index 0000000..2ec987a --- /dev/null +++ b/backend/lib/SocketTypes.js @@ -0,0 +1,2 @@ +export const EDITOR_SESSION = 1 +export const TERMINAL_SESSION = 2 diff --git a/backend/package.json b/backend/package.json index e8884dd..d2630ce 100644 --- a/backend/package.json +++ b/backend/package.json @@ -7,7 +7,10 @@ "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", + "lib0": "^0.2.42", "node-pty": "^0.10.1", - "ws": "^8.2.3" + "ws": "^8.2.3", + "y-protocols": "^1.0.5", + "yjs": "^13.5.18" } } diff --git a/backend/src/containers.js b/backend/src/containers.js index 543d9db..2623b77 100644 --- a/backend/src/containers.js +++ b/backend/src/containers.js @@ -28,7 +28,6 @@ export function getContainerShell (containerId, shell = 'sh') { } export function startContainer (image = 'alpine', cmd = ['sh', '-c', 'while true; do sleep 1d; done']) { - console.log(['run', '-d', '-l', config.containerLabel, image, ...cmd]) return exec(config.containerBinary, ['run', '--rm', '-d', '-l', config.containerLabel, image, ...cmd]) } diff --git a/backend/src/editor.js b/backend/src/editor.js new file mode 100644 index 0000000..85c0722 --- /dev/null +++ b/backend/src/editor.js @@ -0,0 +1,229 @@ +// Mostly adopted from: https://github.com/yjs/y-websocket + +import * as awarenessProtocol from 'y-protocols/awareness.js' +import * as syncProtocol from 'y-protocols/sync.js' +import { Doc } from 'yjs' + +import { decoding, encoding, map } from 'lib0' + +import { readFile, stat, writeFile } from 'fs/promises' +import { fileURLToPath } from 'url' +import path from 'path' + +export async function upgrade (sessions, request, reqPath) { + // todo: check auth and project + + // todo: check dir traversal + request.editorFile = `${path.dirname(fileURLToPath(import.meta.url))}/../../files/${reqPath[3]}` + + return true +} + +export async function connection (ws, req) { + ws.binaryType = 'arraybuffer' + + // get doc, initialize if it does not exist yet + const doc = getYDoc(req.editorFile) + doc.conns.set(ws, new Set()) + + // listen and reply to events + ws.on('message', message => messageListener(ws, doc, new Uint8Array(message))) + + // Check if connection is still alive + let pongReceived = true + const pingInterval = setInterval(() => { + if (!pongReceived) { + if (doc.conns.has(ws)) { + closeConn(doc, ws) + } + clearInterval(pingInterval) + } else if (doc.conns.has(ws)) { + pongReceived = false + try { + ws.ping() + } catch (e) { + closeConn(doc, ws) + clearInterval(pingInterval) + } + } + }, pingTimeout) + + ws.on('close', () => { + closeConn(doc, ws) + clearInterval(pingInterval) + }) + + ws.on('pong', () => { + pongReceived = true + }) + + // put the following in a variables in a block so the interval handlers don't keep in in + // scope + { + // send sync step 1 + const encoder = encoding.createEncoder() + encoding.writeVarUint(encoder, messageSync) + syncProtocol.writeSyncStep1(encoder, doc) + send(doc, ws, encoding.toUint8Array(encoder)) + const awarenessStates = doc.awareness.getStates() + if (awarenessStates.size > 0) { + const encoder = encoding.createEncoder() + encoding.writeVarUint(encoder, messageAwareness) + encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(doc.awareness, Array.from(awarenessStates.keys()))) + send(doc, ws, encoding.toUint8Array(encoder)) + } + } + + return true +} + +const messageSync = 0 +const messageAwareness = 1 + +const wsReadyStateConnecting = 0 +const wsReadyStateOpen = 1 +const wsReadyStateClosing = 2 +const wsReadyStateClosed = 3 + +const pingTimeout = 30000 + +const docs = new Map() + +class WSSharedDoc extends Doc { + /** + * @param {string} name + */ + constructor (name) { + super({ gc: true }) + this.name = name + + this.conns = new Map() + + this.awareness = new awarenessProtocol.Awareness(this) + + this.awareness.setLocalState(null) + + const awarenessChangeHandler = ({ added, updated, removed }, conn) => { + const changedClients = added.concat(updated, removed) + if (conn !== null) { + const connControlledIDs = this.conns.get(conn) + + if (connControlledIDs !== undefined) { + added.forEach(clientID => connControlledIDs.add(clientID)) + removed.forEach(clientID => connControlledIDs.delete(clientID)) + } + } + // broadcast awareness update + const encoder = encoding.createEncoder() + encoding.writeVarUint(encoder, messageAwareness) + encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(this.awareness, changedClients)) + const buff = encoding.toUint8Array(encoder) + this.conns.forEach((_, c) => { + send(this, c, buff) + }) + } + + this.awareness.on('update', awarenessChangeHandler) + + this.on('update', updateHandler) + } +} + +const updateHandler = (update, origin, doc) => { + const encoder = encoding.createEncoder() + encoding.writeVarUint(encoder, messageSync) + syncProtocol.writeUpdate(encoder, update) + + const message = encoding.toUint8Array(encoder) + doc.conns.forEach((_, conn) => send(doc, conn, message)) + + writeUpdate(doc) +} + +const debounce = (func, wait, immediate) => { + let timeout + return (...args) => { + let context = this + let later = () => { + timeout = null + if (!immediate) func.apply(context, args) + } + let callNow = immediate && !timeout + clearTimeout(timeout) + timeout = setTimeout(later, wait) + if (callNow) func.apply(context, args) + } +} + +const writeUpdate = debounce(async doc => { + await writeFile(doc.name, doc.getText('monaco').toJSON()) +}, 2000) + +const getYDoc = file => map.setIfUndefined(docs, file, () => { + + const doc = new WSSharedDoc(file) + + doc.gc = true + docs.set(file, doc) + + stat(file) + .then(() => { + return readFile(file, { encoding: 'utf8' }) + }) + .then(content => { + const text = doc.getText('monaco') + text.insert(0, content) + }) + .catch(() => { + // new file + }) + + return doc +}) + +const messageListener = (conn, doc, message) => { + try { + const encoder = encoding.createEncoder() + const decoder = decoding.createDecoder(message) + const messageType = decoding.readVarUint(decoder) + switch (messageType) { + case messageSync: + encoding.writeVarUint(encoder, messageSync) + syncProtocol.readSyncMessage(decoder, encoder, doc, null) + if (encoding.length(encoder) > 1) { + send(doc, conn, encoding.toUint8Array(encoder)) + } + break + case messageAwareness: { + awarenessProtocol.applyAwarenessUpdate(doc.awareness, decoding.readVarUint8Array(decoder), conn) + break + } + } + } catch (err) { + console.error(err) + doc.emit('error', [err]) + } +} + +const send = (doc, conn, m) => { + if (conn.readyState !== wsReadyStateConnecting && conn.readyState !== wsReadyStateOpen) { + console.log(conn.readyState) + closeConn(doc, conn) + } + try { + conn.send(m, err => { err != null && closeConn(doc, conn) }) + } catch (e) { + closeConn(doc, conn) + } +} + +const closeConn = (doc, conn) => { + if (doc.conns.has(conn)) { + const controlledIds = doc.conns.get(conn) + doc.conns.delete(conn) + awarenessProtocol.removeAwarenessStates(doc.awareness, Array.from(controlledIds), null) + docs.delete(doc.name) + } + + conn.close() +} diff --git a/backend/src/shell.js b/backend/src/shell.js new file mode 100644 index 0000000..5046226 --- /dev/null +++ b/backend/src/shell.js @@ -0,0 +1,45 @@ +import { containerExists, getContainerShell } from './containers.js' + +export async function upgrade(sessions, request, path) { + const [container, sessionId] = path.splice(2) + const session = sessions[sessionId] + + if (session && session.container !== container) { + console.log('wrong session') + return false + } + + if (!(await containerExists(container))) { + console.log('no container') + return false + } + + if (!session) { + sessions[sessionId] = { container } + } + + request.session = sessions[sessionId] + + return true +} + +export async function connection(ws, req) { + if (!req.session.term) { + req.session.term = getContainerShell(req.session.container) + } + + ws.on('message', message => { + const decoded = message.toString() + + req.session.term.write(decoded) + }) + + req.session.term.onData(data => { + ws.send(data) + }) + + req.session.term.onExit(exit => { + ws.send(`Process terminated with code ${exit.exitCode}`) + ws.close() + }) +} diff --git a/backend/src/websocket.js b/backend/src/websocket.js index 3572a92..cb798db 100644 --- a/backend/src/websocket.js +++ b/backend/src/websocket.js @@ -1,63 +1,47 @@ -import { containerExists, getContainerShell } from './containers.js' import { WebSocketServer } from 'ws' +import { EDITOR_SESSION, TERMINAL_SESSION } from '../lib/SocketTypes.js' +import { upgrade as upgradeShell, connection as connectionShell } from './shell.js' +import { upgrade as upgradeEditor, connection as connectionEditor } from './editor.js' export default (server, sessions) => { const wss = new WebSocketServer({ noServer: true }) server.on('upgrade', async (request, socket, head) => { const forbidden = () => { - socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n'); - socket.destroy(); + socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n') + socket.destroy() } const path = request.url.substr(1).split('/') - if (path.length !== 3 || path[0] !== 'ws') { + if (path.length < 1 || path[0] !== 'ws') { return forbidden() } - const [_, container, sessionId] = path - const session = sessions[sessionId] + if (path.length > 3 && path[1] === 'editor' && (await upgradeEditor(sessions, request, path))) { + // /ws/editor/:project/:path + request.type = EDITOR_SESSION - if (session && session.container !== container) { - console.log('wrong session') + } else if (path.length === 4 && path[1] === 'terminal' && (await upgradeShell(sessions, request, path))) { + // /ws/terminal/:container/:session + request.type = TERMINAL_SESSION + + } else { return forbidden() } - if (!(await containerExists(container))) { - console.log('no container') - return forbidden() - } - - if (!session) { - sessions[sessionId] = { container } - } - - request.session = sessions[sessionId] - wss.handleUpgrade(request, socket, head, ws => { - wss.emit('connection', ws, request); - }); + wss.emit('connection', ws, request) + }) }) - wss.on('connection', (ws, req) => { - if (!req.session.term) { - req.session.term = getContainerShell(req.session.container) + wss.on('connection', async (ws, req) => { + if (req.type === EDITOR_SESSION) { + await connectionEditor(ws, req) } - ws.on('message', message => { - const decoded = message.toString() - - req.session.term.write(decoded) - }) - - req.session.term.onData(data => { - ws.send(data) - }) - - req.session.term.onExit(exit => { - ws.send(`Process terminated with code ${exit.exitCode}`) - ws.close() - }) + if (req.type === TERMINAL_SESSION) { + await connectionShell(ws, req) + } }) } diff --git a/backend/yarn.lock b/backend/yarn.lock index 519d204..74908f4 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -198,6 +198,18 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +isomorphic.js@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.4.tgz#24ca374163ae54a7ce3b86ce63b701b91aa84969" + integrity sha512-Y4NjZceAwaPXctwsHgNsmfuPxR8lJ3f8X7QTAkhltrX4oGIv+eTlgHLXn4tWysC9zGTi929gapnPp+8F8cg7nA== + +lib0@^0.2.42: + version "0.2.42" + resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.42.tgz#6d8bf1fb8205dec37a953c521c5ee403fd8769b0" + integrity sha512-8BNM4MiokEKzMvSxTOC3gnCBisJH+jL67CnSnqzHv3jli3pUvGC8wz+0DQ2YvGr4wVQdb2R2uNNPw9LEpVvJ4Q== + dependencies: + isomorphic.js "^0.2.4" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -383,3 +395,17 @@ ws@^8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +y-protocols@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/y-protocols/-/y-protocols-1.0.5.tgz#91d574250060b29fcac8f8eb5e276fbad594245e" + integrity sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A== + dependencies: + lib0 "^0.2.42" + +yjs@^13.5.18: + version "13.5.18" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.18.tgz#4151f381b170726b69be26296fd84b2efdc82e6e" + integrity sha512-6LcTL8gRe12fy89OvXG6Xs/uhsl7iwE4Wh106H1NItkcqcUaY2waTje1NVWmOZNXHXWVAzdf/fBQqB4Phq9sGA== + dependencies: + lib0 "^0.2.42" diff --git a/frontend/dist/css.worker.js b/frontend/dist/css.worker.js new file mode 100644 index 0000000..b1b561e --- /dev/null +++ b/frontend/dist/css.worker.js @@ -0,0 +1,2 @@ +(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s="2add")})({"2add":function(e,t,n){"use strict";n.r(t);class r{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{if(e.stack)throw new Error(e.message+"\n\n"+e.stack);throw e},0)}}emit(e){this.listeners.forEach(t=>{t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}const i=new r;function o(e){l(e)||i.onUnexpectedError(e)}function s(e){if(e instanceof Error){let{name:t,message:n}=e;const r=e.stacktrace||e.stack;return{$isError:!0,name:t,message:n,stack:r}}return e}const a="Canceled";function l(e){return e instanceof Error&&e.name===a&&e.message===a}Error;function c(e){const t=this;let n,r=!1;return function(){return r||(r=!0,n=e.apply(t,arguments)),n}}var d;(function(e){function t(e){return e&&"object"===typeof e&&"function"===typeof e[Symbol.iterator]}e.is=t;const n=Object.freeze([]);function r(){return n}function*i(e){yield e}function o(e){return e||n}function s(e){return!e||!0===e[Symbol.iterator]().next().done}function a(e){return e[Symbol.iterator]().next().value}function l(e,t){for(const n of e)if(t(n))return!0;return!1}function c(e,t){for(const n of e)if(t(n))return n}function*d(e,t){for(const n of e)t(n)&&(yield n)}function*h(e,t){let n=0;for(const r of e)yield t(r,n++)}function*p(...e){for(const t of e)for(const e of t)yield e}function*u(e){for(const t of e)for(const e of t)yield e}function m(e,t,n){let r=n;for(const i of e)r=t(r,i);return r}function*f(e,t,n=e.length){for(t<0&&(t+=e.length),n<0?n+=e.length:n>e.length&&(n=e.length);te===t)){const r=e[Symbol.iterator](),i=t[Symbol.iterator]();while(1){const e=r.next(),t=i.next();if(e.done!==t.done)return!1;if(e.done)return!0;if(!n(e.value,t.value))return!1}}e.empty=r,e.single=i,e.from=o,e.isEmpty=s,e.first=a,e.some=l,e.find=c,e.filter=d,e.map=h,e.concat=p,e.concatNested=u,e.reduce=m,e.slice=f,e.consume=g,e.equals=b})(d||(d={}));const h=!1;let p=null;function u(e){p=e}if(h){const e="__is_disposable_tracked__";u(new class{trackDisposable(t){const n=new Error("Potentially leaked disposable").stack;setTimeout(()=>{t[e]||console.log(n)},3e3)}setParent(t,n){if(t&&t!==C.None)try{t[e]=!0}catch(r){}}markAsDisposed(t){if(t&&t!==C.None)try{t[e]=!0}catch(n){}}markAsSingleton(e){}})}function m(e){return null===p||void 0===p||p.trackDisposable(e),e}function f(e){null===p||void 0===p||p.markAsDisposed(e)}function g(e,t){null===p||void 0===p||p.setParent(e,t)}function b(e,t){if(p)for(const n of e)p.setParent(n,t)}class v extends Error{constructor(e){super(`Encountered errors while disposing of store. Errors: [${e.join(", ")}]`),this.errors=e}}function y(e){if(d.is(e)){let n=[];for(const r of e)if(r)try{r.dispose()}catch(t){n.push(t)}if(1===n.length)throw n[0];if(n.length>1)throw new v(n);return Array.isArray(e)?[]:e}if(e)return e.dispose(),e}function w(...e){const t=x(()=>y(e));return b(e,t),t}function x(e){const t=m({dispose:c(()=>{f(t),e()})});return t}class S{constructor(){this._toDispose=new Set,this._isDisposed=!1,m(this)}dispose(){this._isDisposed||(f(this),this._isDisposed=!0,this.clear())}clear(){try{y(this._toDispose.values())}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return g(e,this),this._isDisposed?S.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}}S.DISABLE_DISPOSED_WARNING=!1;class C{constructor(){this._store=new S,m(this),g(this._store,this)}dispose(){f(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}C.None=Object.freeze({dispose(){}});class k{constructor(e){this.element=e,this.next=k.Undefined,this.prev=k.Undefined}}k.Undefined=new k(void 0);class _{constructor(){this._first=k.Undefined,this._last=k.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===k.Undefined}clear(){let e=this._first;while(e!==k.Undefined){const t=e.next;e.prev=k.Undefined,e.next=k.Undefined,e=t}this._first=k.Undefined,this._last=k.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const n=new k(e);if(this._first===k.Undefined)this._first=n,this._last=n;else if(t){const e=this._last;this._last=n,n.prev=e,e.next=n}else{const e=this._first;this._first=n,n.next=e,e.prev=n}this._size+=1;let r=!1;return()=>{r||(r=!0,this._remove(n))}}shift(){if(this._first!==k.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==k.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==k.Undefined&&e.next!==k.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===k.Undefined&&e.next===k.Undefined?(this._first=k.Undefined,this._last=k.Undefined):e.next===k.Undefined?(this._last=this._last.prev,this._last.next=k.Undefined):e.prev===k.Undefined&&(this._first=this._first.next,this._first.prev=k.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;while(e!==k.Undefined)yield e.element,e=e.next}}var E=n("30db");const F=E["a"].performance&&"function"===typeof E["a"].performance.now;class D{constructor(e){this._highResolution=F&&e,this._startTime=this._now(),this._stopTime=-1}static create(e=!0){return new D(e)}stop(){this._stopTime=this._now()}elapsed(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}_now(){return this._highResolution?E["a"].performance.now():Date.now()}}var T;(function(e){function t(e){return(t,n=null,r)=>{let i,o=!1;return i=e(e=>{if(!o)return i?i.dispose():o=!0,t.call(n,e)},null,r),o&&i.dispose(),i}}function n(e,t){return l((n,r=null,i)=>e(e=>n.call(r,t(e)),null,i))}function r(e,t){return l((n,r=null,i)=>e(e=>{t(e),n.call(r,e)},null,i))}function i(e,t){return l((n,r=null,i)=>e(e=>t(e)&&n.call(r,e),null,i))}function o(e){return e}function s(...e){return(t,n=null,r)=>w(...e.map(e=>e(e=>t.call(n,e),null,r)))}function a(e,t,r){let i=r;return n(e,e=>(i=t(i,e),i))}function l(e){let t;const n=new z({onFirstListenerAdd(){t=e(n.fire,n)},onLastListenerRemove(){t.dispose()}});return n.event}function c(e,t,n=100,r=!1,i){let o,s=void 0,a=void 0,l=0;const c=new z({leakWarningThreshold:i,onFirstListenerAdd(){o=e(e=>{l++,s=t(s,e),r&&!a&&(c.fire(s),s=void 0),clearTimeout(a),a=setTimeout(()=>{const e=s;s=void 0,a=void 0,(!r||l>1)&&c.fire(e),l=0},n)})},onLastListenerRemove(){o.dispose()}});return c.event}function d(e,t=((e,t)=>e===t)){let n,r=!0;return i(e,e=>{const i=r||!t(e,n);return r=!1,n=e,i})}function h(t,n){return[e.filter(t,n),e.filter(t,e=>!n(e))]}function p(e,t=!1,n=[]){let r=n.slice(),i=e(e=>{r?r.push(e):s.fire(e)});const o=()=>{r&&r.forEach(e=>s.fire(e)),r=null},s=new z({onFirstListenerAdd(){i||(i=e(e=>s.fire(e)))},onFirstListenerDidAdd(){r&&(t?setTimeout(o):o())},onLastListenerRemove(){i&&i.dispose(),i=null}});return s.event}e.None=()=>C.None,e.once=t,e.map=n,e.forEach=r,e.filter=i,e.signal=o,e.any=s,e.reduce=a,e.debounce=c,e.latch=d,e.split=h,e.buffer=p;class u{constructor(e){this.event=e}map(e){return new u(n(this.event,e))}forEach(e){return new u(r(this.event,e))}filter(e){return new u(i(this.event,e))}reduce(e,t){return new u(a(this.event,e,t))}latch(){return new u(d(this.event))}debounce(e,t=100,n=!1,r){return new u(c(this.event,e,t,n,r))}on(e,t,n){return this.event(e,t,n)}once(e,n,r){return t(this.event)(e,n,r)}}function m(e){return new u(e)}function f(e,t,n=(e=>e)){const r=(...e)=>s.fire(n(...e)),i=()=>e.on(t,r),o=()=>e.removeListener(t,r),s=new z({onFirstListenerAdd:i,onLastListenerRemove:o});return s.event}function g(e,t,n=(e=>e)){const r=(...e)=>s.fire(n(...e)),i=()=>e.addEventListener(t,r),o=()=>e.removeEventListener(t,r),s=new z({onFirstListenerAdd:i,onLastListenerRemove:o});return s.event}function b(e){return new Promise(n=>t(e)(n))}e.chain=m,e.fromNodeEventEmitter=f,e.fromDOMEventEmitter=g,e.toPromise=b})(T||(T={}));class N{constructor(e){this._listenerCount=0,this._invocationCount=0,this._elapsedOverall=0,this._name=`${e}_${N._idPool++}`}start(e){this._stopWatch=new D(!0),this._listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this._elapsedOverall+=e,this._invocationCount+=1,console.info(`did FIRE ${this._name}: elapsed_ms: ${e.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`),this._stopWatch=void 0}}}N._idPool=0;let R=-1;class A{constructor(e,t=Math.random().toString(18).slice(2,5)){this.customThreshold=e,this.name=t,this._warnCountdown=0}dispose(){this._stacks&&this._stacks.clear()}check(e){let t=R;if("number"===typeof this.customThreshold&&(t=this.customThreshold),t<=0||e{const e=this._stacks.get(n)||0;this._stacks.set(n,e-1)}}}class z{constructor(e){var t;this._disposed=!1,this._options=e,this._leakageMon=R>0?new A(this._options&&this._options.leakWarningThreshold):void 0,this._perfMon=(null===(t=this._options)||void 0===t?void 0:t._profName)?new N(this._options._profName):void 0}get event(){return this._event||(this._event=(e,t,n)=>{var r;this._listeners||(this._listeners=new _);const i=this._listeners.isEmpty();i&&this._options&&this._options.onFirstListenerAdd&&this._options.onFirstListenerAdd(this);const o=this._listeners.push(t?[e,t]:e);i&&this._options&&this._options.onFirstListenerDidAdd&&this._options.onFirstListenerDidAdd(this),this._options&&this._options.onListenerDidAdd&&this._options.onListenerDidAdd(this,e,t);const s=null===(r=this._leakageMon)||void 0===r?void 0:r.check(this._listeners.size),a=x(()=>{if(s&&s(),!this._disposed&&(o(),this._options&&this._options.onLastListenerRemove)){const e=this._listeners&&!this._listeners.isEmpty();e||this._options.onLastListenerRemove(this)}});return n instanceof S?n.add(a):Array.isArray(n)&&n.push(a),a}),this._event}fire(e){var t,n;if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new _);for(let t of this._listeners)this._deliveryQueue.push([t,e]);null===(t=this._perfMon)||void 0===t||t.start(this._deliveryQueue.size);while(this._deliveryQueue.size>0){const[e,t]=this._deliveryQueue.shift();try{"function"===typeof e?e.call(void 0,t):e[0].call(e[1],t)}catch(r){o(r)}}null===(n=this._perfMon)||void 0===n||n.stop()}}dispose(){var e,t,n,r,i;this._disposed||(this._disposed=!0,null===(e=this._listeners)||void 0===e||e.clear(),null===(t=this._deliveryQueue)||void 0===t||t.clear(),null===(r=null===(n=this._options)||void 0===n?void 0:n.onLastListenerRemove)||void 0===r||r.call(n),null===(i=this._leakageMon)||void 0===i||i.dispose())}}function I(e){let t=[],n=Object.getPrototypeOf(e);while(Object.prototype!==n)t=t.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return t}function M(e){const t=[];for(const n of I(e))"function"===typeof e[n]&&t.push(n);return t}function P(e,t){const n=e=>function(){const n=Array.prototype.slice.call(arguments,0);return t(e,n)};let r={};for(const i of e)r[i]=n(i);return r}function O(e){return e.split(/\r\n|\r|\n/)}function L(e){for(let t=0,n=e.length;t=0;n--){const t=e.charCodeAt(n);if(32!==t&&9!==t)return n}return-1}function V(e){return e>=65&&e<=90}function U(e){return 55296<=e&&e<=56319}function K(e){return 56320<=e&&e<=57343}function j(e,t){return t-56320+(e-55296<<10)+65536}String.fromCharCode(65279);class B{constructor(){this._data=q()}static getInstance(){return B._INSTANCE||(B._INSTANCE=new B),B._INSTANCE}getGraphemeBreakType(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;const t=this._data,n=t.length/3;let r=1;while(r<=n)if(et[3*r+1]))return t[3*r+2];r=2*r+1}return 0}}function q(){return JSON.parse("[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]")}B._INSTANCE=null;const $="$initialize";class H{constructor(e,t,n,r){this.vsWorker=e,this.req=t,this.method=n,this.args=r,this.type=0}}class G{constructor(e,t,n,r){this.vsWorker=e,this.seq=t,this.res=n,this.err=r,this.type=1}}class J{constructor(e,t,n,r){this.vsWorker=e,this.req=t,this.eventName=n,this.arg=r,this.type=2}}class X{constructor(e,t,n){this.vsWorker=e,this.req=t,this.event=n,this.type=3}}class Y{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class Z{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const n=String(++this._lastSentReq);return new Promise((r,i)=>{this._pendingReplies[n]={resolve:r,reject:i},this._send(new H(this._workerId,n,e,t))})}listen(e,t){let n=null;const r=new z({onFirstListenerAdd:()=>{n=String(++this._lastSentReq),this._pendingEmitters.set(n,r),this._send(new J(this._workerId,n,e,t))},onLastListenerRemove:()=>{this._pendingEmitters.delete(n),this._send(new Y(this._workerId,n)),n=null}});return r.event}handleMessage(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq])return void console.warn("Got reply to unknown seq");let t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let n=e.err;return e.err.$isError&&(n=new Error,n.name=e.err.name,n.message=e.err.message,n.stack=e.err.stack),void t.reject(n)}t.resolve(e.res)}_handleRequestMessage(e){let t=e.req,n=this._handler.handleMessage(e.method,e.args);n.then(e=>{this._send(new G(this._workerId,t,e,void 0))},e=>{e.detail instanceof Error&&(e.detail=s(e.detail)),this._send(new G(this._workerId,t,void 0,s(e)))})}_handleSubscribeEventMessage(e){const t=e.req,n=this._handler.handleEvent(e.eventName,e.arg)(e=>{this._send(new X(this._workerId,t,e))});this._pendingEvents.set(t,n)}_handleEventMessage(e){this._pendingEmitters.has(e.req)?this._pendingEmitters.get(e.req).fire(e.event):console.warn("Got event for unknown req")}_handleUnsubscribeEventMessage(e){this._pendingEvents.has(e.req)?(this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req)):console.warn("Got unsubscribe for unknown req")}_send(e){let t=[];if(0===e.type)for(let n=0;nfunction(){const n=Array.prototype.slice.call(arguments,0);return t(e,n)},i=e=>function(t){return n(e,t)};let o={};for(const s of e)ee(s)?o[s]=i(s):Q(s)?o[s]=n(s,void 0):o[s]=r(s);return o}class ne{constructor(e,t){this._requestHandlerFactory=t,this._requestHandler=null,this._protocol=new Z({sendMessage:(t,n)=>{e(t,n)},handleMessage:(e,t)=>this._handleMessage(e,t),handleEvent:(e,t)=>this._handleEvent(e,t)})}onmessage(e){this._protocol.handleMessage(e)}_handleMessage(e,t){if(e===$)return this.initialize(t[0],t[1],t[2],t[3]);if(!this._requestHandler||"function"!==typeof this._requestHandler[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._requestHandler[e].apply(this._requestHandler,t))}catch(n){return Promise.reject(n)}}_handleEvent(e,t){if(!this._requestHandler)throw new Error("Missing requestHandler");if(ee(e)){const n=this._requestHandler[e].call(this._requestHandler,t);if("function"!==typeof n)throw new Error(`Missing dynamic event ${e} on request handler.`);return n}if(Q(e)){const t=this._requestHandler[e];if("function"!==typeof t)throw new Error(`Missing event ${e} on request handler.`);return t}throw new Error("Malformed event name "+e)}initialize(e,t,n,r){this._protocol.setWorkerId(e);const i=(e,t)=>this._protocol.sendMessage(e,t),o=(e,t)=>this._protocol.listen(e,t),s=te(r,i,o);return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(s),Promise.resolve(M(this._requestHandler))):(t&&("undefined"!==typeof t.baseUrl&&delete t["baseUrl"],"undefined"!==typeof t.paths&&"undefined"!==typeof t.paths.vs&&delete t.paths["vs"],void 0!==typeof t.trustedTypesPolicy&&delete t["trustedTypesPolicy"],t.catchError=!0,E["a"].require.config(t)),new Promise((e,t)=>{const r=E["a"].require;r([n],n=>{this._requestHandler=n.create(s),this._requestHandler?e(M(this._requestHandler)):t(new Error("No RequestHandler!"))},t)}))}}class re{constructor(e,t,n,r){this.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=r}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}function ie(e,t){return(t<<5)-t+e|0}function oe(e,t){t=ie(149417,t);for(let n=0,r=e.length;n>>r)>>>0}function ae(e,t=0,n=e.byteLength,r=0){for(let i=0;ie.toString(16).padStart(2,"0")).join(""):le((e>>>0).toString(16),t/4)}class de{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(0===t)return;const n=this._buff;let r,i,o=this._buffLen,s=this._leftoverHighSurrogate;0!==s?(r=s,i=-1,s=0):(r=e.charCodeAt(0),i=0);while(1){let a=r;if(U(r)){if(!(i+1>>6,e[t++]=128|(63&n)>>>0):n<65536?(e[t++]=224|(61440&n)>>>12,e[t++]=128|(4032&n)>>>6,e[t++]=128|(63&n)>>>0):(e[t++]=240|(1835008&n)>>>18,e[t++]=128|(258048&n)>>>12,e[t++]=128|(4032&n)>>>6,e[t++]=128|(63&n)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),ce(this._h0)+ce(this._h1)+ce(this._h2)+ce(this._h3)+ce(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,ae(this._buff,this._buffLen),this._buffLen>56&&(this._step(),ae(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=de._bigBlock32,t=this._buffDV;for(let d=0;d<64;d+=4)e.setUint32(d,t.getUint32(d,!1),!1);for(let d=64;d<320;d+=4)e.setUint32(d,se(e.getUint32(d-12,!1)^e.getUint32(d-32,!1)^e.getUint32(d-56,!1)^e.getUint32(d-64,!1),1),!1);let n,r,i,o=this._h0,s=this._h1,a=this._h2,l=this._h3,c=this._h4;for(let d=0;d<80;d++)d<20?(n=s&a|~s&l,r=1518500249):d<40?(n=s^a^l,r=1859775393):d<60?(n=s&a|s&l|a&l,r=2400959708):(n=s^a^l,r=3395469782),i=se(o,5)+n+c+r+e.getUint32(4*d,!1)&4294967295,c=l,l=a,a=se(s,30),s=o,o=i;this._h0=this._h0+o&4294967295,this._h1=this._h1+s&4294967295,this._h2=this._h2+a&4294967295,this._h3=this._h3+l&4294967295,this._h4=this._h4+c&4294967295}}de._bigBlock32=new DataView(new ArrayBuffer(320));class he{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let n=0,r=e.length;n0||this.m_modifiedCount>0)&&this.m_changes.push(new re(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class ge{constructor(e,t,n=null){this.ContinueProcessingPredicate=n,this._originalSequence=e,this._modifiedSequence=t;const[r,i,o]=ge._getElements(e),[s,a,l]=ge._getElements(t);this._hasStrings=o&&l,this._originalStringElements=r,this._originalElementsOrHash=i,this._modifiedStringElements=s,this._modifiedElementsOrHash=a,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&"string"===typeof e[0]}static _getElements(e){const t=e.getElements();if(ge._isStringArray(t)){const e=new Int32Array(t.length);for(let n=0,r=t.length;n=e&&r>=n&&this.ElementsAreEqual(t,r))t--,r--;if(e>t||n>r){let i;return n<=r?(ue.Assert(e===t+1,"originalStart should only be one more than originalEnd"),i=[new re(e,0,n,r-n+1)]):e<=t?(ue.Assert(n===r+1,"modifiedStart should only be one more than modifiedEnd"),i=[new re(e,t-e+1,n,0)]):(ue.Assert(e===t+1,"originalStart should only be one more than originalEnd"),ue.Assert(n===r+1,"modifiedStart should only be one more than modifiedEnd"),i=[]),i}const o=[0],s=[0],a=this.ComputeRecursionPoint(e,t,n,r,o,s,i),l=o[0],c=s[0];if(null!==a)return a;if(!i[0]){const o=this.ComputeDiffRecursive(e,l,n,c,i);let s=[];return s=i[0]?[new re(l+1,t-(l+1)+1,c+1,r-(c+1)+1)]:this.ComputeDiffRecursive(l+1,t,c+1,r,i),this.ConcatenateChanges(o,s)}return[new re(e,t-e+1,n,r-n+1)]}WALKTRACE(e,t,n,r,i,o,s,a,l,c,d,h,p,u,m,f,g,b){let v=null,y=null,w=new fe,x=t,S=n,C=p[0]-f[0]-r,k=-1073741824,_=this.m_forwardHistory.length-1;do{const t=C+e;t===x||t=0&&(l=this.m_forwardHistory[_],e=l[0],x=1,S=l.length-1)}while(--_>=-1);if(v=w.getReverseChanges(),b[0]){let e=p[0]+1,t=f[0]+1;if(null!==v&&v.length>0){const n=v[v.length-1];e=Math.max(e,n.getOriginalEnd()),t=Math.max(t,n.getModifiedEnd())}y=[new re(e,h-e+1,t,m-t+1)]}else{w=new fe,x=o,S=s,C=p[0]-f[0]-a,k=1073741824,_=g?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const e=C+i;e===x||e=c[e+1]?(d=c[e+1]-1,u=d-C-a,d>k&&w.MarkNextChange(),k=d+1,w.AddOriginalElement(d+1,u+1),C=e+1-i):(d=c[e-1],u=d-C-a,d>k&&w.MarkNextChange(),k=d,w.AddModifiedElement(d+1,u+1),C=e-1-i),_>=0&&(c=this.m_reverseHistory[_],i=c[0],x=1,S=c.length-1)}while(--_>=-1);y=w.getChanges()}return this.ConcatenateChanges(v,y)}ComputeRecursionPoint(e,t,n,r,i,o,s){let a=0,l=0,c=0,d=0,h=0,p=0;e--,n--,i[0]=0,o[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const u=t-e+(r-n),m=u+1,f=new Int32Array(m),g=new Int32Array(m),b=r-n,v=t-e,y=e-n,w=t-r,x=v-b,S=x%2===0;f[b]=e,g[v]=t,s[0]=!1;for(let C=1;C<=u/2+1;C++){let u=0,x=0;c=this.ClipDiagonalBound(b-C,C,b,m),d=this.ClipDiagonalBound(b+C,C,b,m);for(let e=c;e<=d;e+=2){a=e===c||eu+x&&(u=a,x=l),!S&&Math.abs(e-v)<=C-1&&a>=g[e])return i[0]=a,o[0]=l,n<=g[e]&&C<=1448?this.WALKTRACE(b,c,d,y,v,h,p,w,f,g,a,t,i,l,r,o,S,s):null}const k=(u-e+(x-n)-C)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(u,k))return s[0]=!0,i[0]=u,o[0]=x,k>0&&C<=1448?this.WALKTRACE(b,c,d,y,v,h,p,w,f,g,a,t,i,l,r,o,S,s):(e++,n++,[new re(e,t-e+1,n,r-n+1)]);h=this.ClipDiagonalBound(v-C,C,v,m),p=this.ClipDiagonalBound(v+C,C,v,m);for(let m=h;m<=p;m+=2){a=m===h||m=g[m+1]?g[m+1]-1:g[m-1],l=a-(m-v)-w;const u=a;while(a>e&&l>n&&this.ElementsAreEqual(a,l))a--,l--;if(g[m]=a,S&&Math.abs(m-b)<=C&&a<=f[m])return i[0]=a,o[0]=l,u>=f[m]&&C<=1448?this.WALKTRACE(b,c,d,y,v,h,p,w,f,g,a,t,i,l,r,o,S,s):null}if(C<=1447){let e=new Int32Array(d-c+2);e[0]=b-c+1,me.Copy2(f,c,e,1,d-c+1),this.m_forwardHistory.push(e),e=new Int32Array(p-h+2),e[0]=v-h+1,me.Copy2(g,h,e,1,p-h+1),this.m_reverseHistory.push(e)}}return this.WALKTRACE(b,c,d,y,v,h,p,w,f,g,a,t,i,l,r,o,S,s)}PrettifyChanges(e){for(let t=0;t0,s=n.modifiedLength>0;while(n.originalStart+n.originalLength=0;t--){const n=e[t];let r=0,i=0;if(t>0){const n=e[t-1];r=n.originalStart+n.originalLength,i=n.modifiedStart+n.modifiedLength}const o=n.originalLength>0,s=n.modifiedLength>0;let a=0,l=this._boundaryScore(n.originalStart,n.originalLength,n.modifiedStart,n.modifiedLength);for(let e=1;;e++){const t=n.originalStart-e,c=n.modifiedStart-e;if(tl&&(l=h,a=e)}n.originalStart-=a,n.modifiedStart-=a;const c=[null];t>0&&this.ChangesOverlap(e[t-1],e[t],c)&&(e[t-1]=c[0],e.splice(t,1),t++)}if(this._hasStrings)for(let t=1,n=e.length;t0&&t>a&&(a=t,l=d,c=e)}return a>0?[l,c]:null}_contiguousSequenceScore(e,t,n){let r=0;for(let i=0;i=this._originalElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1}_boundaryScore(e,t,n,r){const i=this._OriginalRegionIsBoundary(e,t)?1:0,o=this._ModifiedRegionIsBoundary(n,r)?1:0;return i+o}ConcatenateChanges(e,t){let n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){const r=new Array(e.length+t.length-1);return me.Copy(e,0,r,0,e.length-1),r[e.length-1]=n[0],me.Copy(t,1,r,e.length,t.length-1),r}{const n=new Array(e.length+t.length);return me.Copy(e,0,n,0,e.length),me.Copy(t,0,n,e.length,t.length),n}}ChangesOverlap(e,t,n){if(ue.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),ue.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const r=e.originalStart;let i=e.originalLength;const o=e.modifiedStart;let s=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(i=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(s=t.modifiedStart+t.modifiedLength-e.modifiedStart),n[0]=new re(r,i,o,s),!0}return n[0]=null,!1}ClipDiagonalBound(e,t,n,r){if(e>=0&&e=ve&&e<=we||e>=ye&&e<=xe}function Ae(e,t,n,r){let i="",o=0,s=-1,a=0,l=0;for(let c=0;c<=e.length;++c){if(c2){const e=i.lastIndexOf(n);-1===e?(i="",o=0):(i=i.slice(0,e),o=i.length-1-i.lastIndexOf(n)),s=c,a=0;continue}if(0!==i.length){i="",o=0,s=c,a=0;continue}}t&&(i+=i.length>0?n+"..":"..",o=2)}else i.length>0?i+=`${n}${e.slice(s+1,c)}`:i=e.slice(s+1,c),o=c-s-1;s=c,a=0}else l===Se&&-1!==a?++a:a=-1}return i}function ze(e,t){if(null===t||"object"!==typeof t)throw new Fe("pathObject","Object",t);const n=t.dir||t.root,r=t.base||`${t.name||""}${t.ext||""}`;return n?n===t.root?`${n}${r}`:`${n}${e}${r}`:r}const Ie={resolve(...e){let t="",n="",r=!1;for(let i=e.length-1;i>=-1;i--){let o;if(i>=0){if(o=e[i],De(o,"path"),0===o.length)continue}else 0===t.length?o=be["a"]():(o=be["b"]["="+t]||be["a"](),(void 0===o||o.slice(0,2).toLowerCase()!==t.toLowerCase()&&o.charCodeAt(2)===ke)&&(o=t+"\\"));const s=o.length;let a=0,l="",c=!1;const d=o.charCodeAt(0);if(1===s)Te(d)&&(a=1,c=!0);else if(Te(d))if(c=!0,Te(o.charCodeAt(1))){let e=2,t=e;while(e2&&Te(o.charCodeAt(2))&&(c=!0,a=3));if(l.length>0)if(t.length>0){if(l.toLowerCase()!==t.toLowerCase())continue}else t=l;if(r){if(t.length>0)break}else if(n=`${o.slice(a)}\\${n}`,r=c,c&&t.length>0)break}return n=Ae(n,!r,"\\",Te),r?`${t}\\${n}`:`${t}${n}`||"."},normalize(e){De(e,"path");const t=e.length;if(0===t)return".";let n,r=0,i=!1;const o=e.charCodeAt(0);if(1===t)return Ne(o)?"\\":e;if(Te(o))if(i=!0,Te(e.charCodeAt(1))){let i=2,o=i;while(i2&&Te(e.charCodeAt(2))&&(i=!0,r=3));let s=r0&&Te(e.charCodeAt(t-1))&&(s+="\\"),void 0===n?i?"\\"+s:s:i?`${n}\\${s}`:`${n}${s}`},isAbsolute(e){De(e,"path");const t=e.length;if(0===t)return!1;const n=e.charCodeAt(0);return Te(n)||t>2&&Re(n)&&e.charCodeAt(1)===_e&&Te(e.charCodeAt(2))},join(...e){if(0===e.length)return".";let t,n;for(let o=0;o0&&(void 0===t?t=n=r:t+="\\"+r)}if(void 0===t)return".";let r=!0,i=0;if("string"===typeof n&&Te(n.charCodeAt(0))){++i;const e=n.length;e>1&&Te(n.charCodeAt(1))&&(++i,e>2&&(Te(n.charCodeAt(2))?++i:r=!1))}if(r){while(i=2&&(t="\\"+t.slice(i))}return Ie.normalize(t)},relative(e,t){if(De(e,"from"),De(t,"to"),e===t)return"";const n=Ie.resolve(e),r=Ie.resolve(t);if(n===r)return"";if(e=n.toLowerCase(),t=r.toLowerCase(),e===t)return"";let i=0;while(ii&&e.charCodeAt(o-1)===ke)o--;const s=o-i;let a=0;while(aa&&t.charCodeAt(l-1)===ke)l--;const c=l-a,d=sd){if(t.charCodeAt(a+p)===ke)return r.slice(a+p+1);if(2===p)return r.slice(a+p)}s>d&&(e.charCodeAt(i+p)===ke?h=p:2===p&&(h=3)),-1===h&&(h=0)}let u="";for(p=i+h+1;p<=o;++p)p!==o&&e.charCodeAt(p)!==ke||(u+=0===u.length?"..":"\\..");return a+=h,u.length>0?`${u}${r.slice(a,l)}`:(r.charCodeAt(a)===ke&&++a,r.slice(a,l))},toNamespacedPath(e){if("string"!==typeof e)return e;if(0===e.length)return"";const t=Ie.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===ke){if(t.charCodeAt(1)===ke){const e=t.charCodeAt(2);if(e!==Ee&&e!==Se)return"\\\\?\\UNC\\"+t.slice(2)}}else if(Re(t.charCodeAt(0))&&t.charCodeAt(1)===_e&&t.charCodeAt(2)===ke)return"\\\\?\\"+t;return e},dirname(e){De(e,"path");const t=e.length;if(0===t)return".";let n=-1,r=0;const i=e.charCodeAt(0);if(1===t)return Te(i)?e:".";if(Te(i)){if(n=r=1,Te(e.charCodeAt(1))){let i=2,o=i;while(i2&&Te(e.charCodeAt(2))?3:2,r=n);let o=-1,s=!0;for(let a=t-1;a>=r;--a)if(Te(e.charCodeAt(a))){if(!s){o=a;break}}else s=!1;if(-1===o){if(-1===n)return".";o=n}return e.slice(0,o)},basename(e,t){void 0!==t&&De(t,"ext"),De(e,"path");let n,r=0,i=-1,o=!0;if(e.length>=2&&Re(e.charCodeAt(0))&&e.charCodeAt(1)===_e&&(r=2),void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let s=t.length-1,a=-1;for(n=e.length-1;n>=r;--n){const l=e.charCodeAt(n);if(Te(l)){if(!o){r=n+1;break}}else-1===a&&(o=!1,a=n+1),s>=0&&(l===t.charCodeAt(s)?-1===--s&&(i=n):(s=-1,i=a))}return r===i?i=a:-1===i&&(i=e.length),e.slice(r,i)}for(n=e.length-1;n>=r;--n)if(Te(e.charCodeAt(n))){if(!o){r=n+1;break}}else-1===i&&(o=!1,i=n+1);return-1===i?"":e.slice(r,i)},extname(e){De(e,"path");let t=0,n=-1,r=0,i=-1,o=!0,s=0;e.length>=2&&e.charCodeAt(1)===_e&&Re(e.charCodeAt(0))&&(t=r=2);for(let a=e.length-1;a>=t;--a){const t=e.charCodeAt(a);if(Te(t)){if(!o){r=a+1;break}}else-1===i&&(o=!1,i=a+1),t===Se?-1===n?n=a:1!==s&&(s=1):-1!==n&&(s=-1)}return-1===n||-1===i||0===s||1===s&&n===i-1&&n===r+1?"":e.slice(n,i)},format:ze.bind(null,"\\"),parse(e){De(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const n=e.length;let r=0,i=e.charCodeAt(0);if(1===n)return Te(i)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(Te(i)){if(r=1,Te(e.charCodeAt(1))){let t=2,i=t;while(t0&&(t.root=e.slice(0,r));let o=-1,s=r,a=-1,l=!0,c=e.length-1,d=0;for(;c>=r;--c)if(i=e.charCodeAt(c),Te(i)){if(!l){s=c+1;break}}else-1===a&&(l=!1,a=c+1),i===Se?-1===o?o=c:1!==d&&(d=1):-1!==o&&(d=-1);return-1!==a&&(-1===o||0===d||1===d&&o===a-1&&o===s+1?t.base=t.name=e.slice(s,a):(t.name=e.slice(s,o),t.base=e.slice(s,a),t.ext=e.slice(o,a))),t.dir=s>0&&s!==r?e.slice(0,s-1):t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},Me={resolve(...e){let t="",n=!1;for(let r=e.length-1;r>=-1&&!n;r--){const i=r>=0?e[r]:be["a"]();De(i,"path"),0!==i.length&&(t=`${i}/${t}`,n=i.charCodeAt(0)===Ce)}return t=Ae(t,!n,"/",Ne),n?"/"+t:t.length>0?t:"."},normalize(e){if(De(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===Ce,n=e.charCodeAt(e.length-1)===Ce;return e=Ae(e,!t,"/",Ne),0===e.length?t?"/":n?"./":".":(n&&(e+="/"),t?"/"+e:e)},isAbsolute(e){return De(e,"path"),e.length>0&&e.charCodeAt(0)===Ce},join(...e){if(0===e.length)return".";let t;for(let n=0;n0&&(void 0===t?t=r:t+="/"+r)}return void 0===t?".":Me.normalize(t)},relative(e,t){if(De(e,"from"),De(t,"to"),e===t)return"";if(e=Me.resolve(e),t=Me.resolve(t),e===t)return"";const n=1,r=e.length,i=r-n,o=1,s=t.length-o,a=ia){if(t.charCodeAt(o+c)===Ce)return t.slice(o+c+1);if(0===c)return t.slice(o+c)}else i>a&&(e.charCodeAt(n+c)===Ce?l=c:0===c&&(l=0));let d="";for(c=n+l+1;c<=r;++c)c!==r&&e.charCodeAt(c)!==Ce||(d+=0===d.length?"..":"/..");return`${d}${t.slice(o+l)}`},toNamespacedPath(e){return e},dirname(e){if(De(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===Ce;let n=-1,r=!0;for(let i=e.length-1;i>=1;--i)if(e.charCodeAt(i)===Ce){if(!r){n=i;break}}else r=!1;return-1===n?t?"/":".":t&&1===n?"//":e.slice(0,n)},basename(e,t){void 0!==t&&De(t,"ext"),De(e,"path");let n,r=0,i=-1,o=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let s=t.length-1,a=-1;for(n=e.length-1;n>=0;--n){const l=e.charCodeAt(n);if(l===Ce){if(!o){r=n+1;break}}else-1===a&&(o=!1,a=n+1),s>=0&&(l===t.charCodeAt(s)?-1===--s&&(i=n):(s=-1,i=a))}return r===i?i=a:-1===i&&(i=e.length),e.slice(r,i)}for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===Ce){if(!o){r=n+1;break}}else-1===i&&(o=!1,i=n+1);return-1===i?"":e.slice(r,i)},extname(e){De(e,"path");let t=-1,n=0,r=-1,i=!0,o=0;for(let s=e.length-1;s>=0;--s){const a=e.charCodeAt(s);if(a!==Ce)-1===r&&(i=!1,r=s+1),a===Se?-1===t?t=s:1!==o&&(o=1):-1!==t&&(o=-1);else if(!i){n=s+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===n+1?"":e.slice(t,r)},format:ze.bind(null,"/"),parse(e){De(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const n=e.charCodeAt(0)===Ce;let r;n?(t.root="/",r=1):r=0;let i=-1,o=0,s=-1,a=!0,l=e.length-1,c=0;for(;l>=r;--l){const t=e.charCodeAt(l);if(t!==Ce)-1===s&&(a=!1,s=l+1),t===Se?-1===i?i=l:1!==c&&(c=1):-1!==i&&(c=-1);else if(!a){o=l+1;break}}if(-1!==s){const r=0===o&&n?1:o;-1===i||0===c||1===c&&i===s-1&&i===o+1?t.base=t.name=e.slice(r,s):(t.name=e.slice(r,i),t.base=e.slice(r,s),t.ext=e.slice(i,s))}return o>0?t.dir=e.slice(0,o-1):n&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};Me.win32=Ie.win32=Ie,Me.posix=Ie.posix=Me;"win32"===be["c"]?Ie.normalize:Me.normalize,"win32"===be["c"]?Ie.resolve:Me.resolve,"win32"===be["c"]?Ie.relative:Me.relative,"win32"===be["c"]?Ie.dirname:Me.dirname,"win32"===be["c"]?Ie.basename:Me.basename,"win32"===be["c"]?Ie.extname:Me.extname,"win32"===be["c"]?Ie.sep:Me.sep;const Pe=/^\w[\w\d+.-]*$/,Oe=/^\//,Le=/^\/\//;function We(e,t){if(!e.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!Pe.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!Oe.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(Le.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}function Ve(e,t){return e||t?e:"file"}function Ue(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==je&&(t=je+t):t=je;break}return t}const Ke="",je="/",Be=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class qe{constructor(e,t,n,r,i,o=!1){"object"===typeof e?(this.scheme=e.scheme||Ke,this.authority=e.authority||Ke,this.path=e.path||Ke,this.query=e.query||Ke,this.fragment=e.fragment||Ke):(this.scheme=Ve(e,o),this.authority=t||Ke,this.path=Ue(this.scheme,n||Ke),this.query=r||Ke,this.fragment=i||Ke,We(this,o))}static isUri(e){return e instanceof qe||!!e&&("string"===typeof e.authority&&"string"===typeof e.fragment&&"string"===typeof e.path&&"string"===typeof e.query&&"string"===typeof e.scheme&&"string"===typeof e.fsPath&&"function"===typeof e.with&&"function"===typeof e.toString)}get fsPath(){return Ye(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:o}=e;return void 0===t?t=this.scheme:null===t&&(t=Ke),void 0===n?n=this.authority:null===n&&(n=Ke),void 0===r?r=this.path:null===r&&(r=Ke),void 0===i?i=this.query:null===i&&(i=Ke),void 0===o?o=this.fragment:null===o&&(o=Ke),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new He(t,n,r,i,o)}static parse(e,t=!1){const n=Be.exec(e);return n?new He(n[2]||Ke,tt(n[4]||Ke),tt(n[5]||Ke),tt(n[7]||Ke),tt(n[9]||Ke),t):new He(Ke,Ke,Ke,Ke,Ke)}static file(e){let t=Ke;if(E["d"]&&(e=e.replace(/\\/g,je)),e[0]===je&&e[1]===je){const n=e.indexOf(je,2);-1===n?(t=e.substring(2),e=je):(t=e.substring(2,n),e=e.substring(n)||je)}return new He("file",t,e,Ke,Ke)}static from(e){const t=new He(e.scheme,e.authority,e.path,e.query,e.fragment);return We(t,!0),t}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let n;return n=E["d"]&&"file"===e.scheme?qe.file(Ie.join(Ye(e,!0),...t)).path:Me.join(e.path,...t),e.with({path:n})}toString(e=!1){return Ze(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof qe)return e;{const t=new He(e);return t._formatted=e.external,t._fsPath=e._sep===$e?e.fsPath:null,t}}return e}}const $e=E["d"]?1:void 0;class He extends qe{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=Ye(this,!1)),this._fsPath}toString(e=!1){return e?Ze(this,!0):(this._formatted||(this._formatted=Ze(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=$e),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const Ge={[58]:"%3A",[47]:"%2F",[63]:"%3F",[35]:"%23",[91]:"%5B",[93]:"%5D",[64]:"%40",[33]:"%21",[36]:"%24",[38]:"%26",[39]:"%27",[40]:"%28",[41]:"%29",[42]:"%2A",[43]:"%2B",[44]:"%2C",[59]:"%3B",[61]:"%3D",[32]:"%20"};function Je(e,t){let n=void 0,r=-1;for(let i=0;i=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));const t=Ge[o];void 0!==t?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=t):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function Xe(e){let t=void 0;for(let n=0;n1&&"file"===e.scheme?`//${e.authority}${e.path}`:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?t?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,E["d"]&&(n=n.replace(/\//g,"\\")),n}function Ze(e,t){const n=t?Xe:Je;let r="",{scheme:i,authority:o,path:s,query:a,fragment:l}=e;if(i&&(r+=i,r+=":"),(o||"file"===i)&&(r+=je,r+=je),o){let e=o.indexOf("@");if(-1!==e){const t=o.substr(0,e);o=o.substr(e+1),e=t.indexOf(":"),-1===e?r+=n(t,!1):(r+=n(t.substr(0,e),!1),r+=":",r+=n(t.substr(e+1),!1)),r+="@"}o=o.toLowerCase(),e=o.indexOf(":"),-1===e?r+=n(o,!1):(r+=n(o.substr(0,e),!1),r+=o.substr(e))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){const e=s.charCodeAt(1);e>=65&&e<=90&&(s=`/${String.fromCharCode(e+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){const e=s.charCodeAt(0);e>=65&&e<=90&&(s=`${String.fromCharCode(e+32)}:${s.substr(2)}`)}r+=n(s,!0)}return a&&(r+="?",r+=n(a,!1)),l&&(r+="#",r+=t?l:Je(l,!1)),r}function Qe(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+Qe(e.substr(3)):e}}const et=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function tt(e){return e.match(et)?e.replace(et,e=>Qe(e)):e}class nt{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new nt(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return nt.equals(this,e)}static equals(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return nt.isBefore(this,e)}static isBefore(e,t){return e.lineNumbern||e===n&&t>r?(this.startLineNumber=n,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r)}isEmpty(){return rt.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return rt.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumbere.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.columne.endColumn))}containsRange(e){return rt.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)))}strictContainsRange(e){return rt.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))}plusRange(e){return rt.plusRange(this,e)}static plusRange(e,t){let n,r,i,o;return t.startLineNumbere.endLineNumber?(i=t.endLineNumber,o=t.endColumn):t.endLineNumber===e.endLineNumber?(i=t.endLineNumber,o=Math.max(t.endColumn,e.endColumn)):(i=e.endLineNumber,o=e.endColumn),new rt(n,r,i,o)}intersectRanges(e){return rt.intersectRanges(this,e)}static intersectRanges(e,t){let n=e.startLineNumber,r=e.startColumn,i=e.endLineNumber,o=e.endColumn,s=t.startLineNumber,a=t.startColumn,l=t.endLineNumber,c=t.endColumn;return nl?(i=l,o=c):i===l&&(o=Math.min(o,c)),n>i||n===i&&r>o?null:new rt(n,r,i,o)}equalsRange(e){return rt.equalsRange(this,e)}static equalsRange(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return rt.getEndPosition(this)}static getEndPosition(e){return new nt(e.endLineNumber,e.endColumn)}getStartPosition(){return rt.getStartPosition(this)}static getStartPosition(e){return new nt(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new rt(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new rt(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return rt.collapseToStart(this)}static collapseToStart(e){return new rt(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}static fromPositions(e,t=e){return new rt(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new rt(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&"number"===typeof e.startLineNumber&&"number"===typeof e.startColumn&&"number"===typeof e.endLineNumber&&"number"===typeof e.endColumn}static areIntersectingOrTouching(e,t){return!(e.endLineNumbere.startLineNumber}}const it=3;function ot(e,t,n,r){const i=new ge(e,t,n);return i.ComputeDiff(r)}class st{constructor(e){const t=[],n=[];for(let r=0,i=e.length;r0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&i()){const o=n.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),a=r.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);let l=ot(o,a,i,!0).changes;s&&(l=ct(l)),h=[];for(let e=0,t=l.length;e1&&s>1){const r=e.charCodeAt(n-2),i=t.charCodeAt(s-2);if(r!==i)break;n--,s--}(n>1||s>1)&&this._pushTrimWhitespaceCharChange(r,i+1,1,n,o+1,1,s)}{let n=ut(e,1),s=ut(t,1);const a=e.length+1,l=t.length+1;while(n!0;const t=Date.now();return()=>Date.now()-t255?255:0|e}function gt(e){return e<0?0:e>4294967295?4294967295:0|e}class bt{constructor(e,t){this._prefixSumIndexOfResultBrand=void 0,this.index=e,this.remainder=t}}class vt{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=gt(e);const n=this.values,r=this.prefixSum,i=t.length;return 0!==i&&(this.values=new Uint32Array(n.length+i),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e),e+i),this.values.set(t,e),e-1=0&&this.prefixSum.set(r.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}changeValue(e,t){return e=gt(e),t=gt(t),this.values[e]!==t&&(this.values[e]=t,e-1=n.length)return!1;let i=n.length-e;return t>=i&&(t=i),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(r.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return 0===this.values.length?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=gt(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,n=this.values.length-1,r=0,i=0,o=0;while(t<=n)if(r=t+(n-t)/2|0,i=this.prefixSum[r],o=i-this.values[r],e=i))break;t=r+1}return new bt(r,e-o)}}class yt{constructor(e,t,n,r){this._uri=e,this._lines=t,this._eol=n,this._versionId=r,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const n of t)this._acceptDeleteRange(n.range),this._acceptInsertText(new nt(n.range.startLineNumber,n.range.startColumn),n.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,n=new Uint32Array(t);for(let r=0;r/?";function xt(e=""){let t="(-?\\d*\\.\\d\\w*)|([^";for(const n of wt)e.indexOf(n)>=0||(t+="\\"+n);return t+="\\s]+)",new RegExp(t,"g")}const St=xt();function Ct(e){let t=St;if(e&&e instanceof RegExp)if(e.global)t=e;else{let n="g";e.ignoreCase&&(n+="i"),e.multiline&&(n+="m"),e.unicode&&(n+="u"),t=new RegExp(e.source,n)}return t.lastIndex=0,t}const kt={maxLen:1e3,windowSize:15,timeBudget:150};function _t(e,t,n,r,i=kt){if(n.length>i.maxLen){let o=e-i.maxLen/2;return o<0?o=0:r+=o,n=n.substring(o,e+i.maxLen/2),_t(e,t,n,r,i)}const o=Date.now(),s=e-1-r;let a=-1,l=null;for(let c=1;;c++){if(Date.now()-o>=i.timeBudget)break;const e=s-i.windowSize*c;t.lastIndex=Math.max(0,e);const r=Et(t,n,s,a);if(!r&&l)break;if(l=r,e<=0)break;a=e}if(l){let e={word:l[0],startColumn:r+1+l.index,endColumn:r+1+l.index+l[0].length};return t.lastIndex=0,e}return null}function Et(e,t,n,r){let i;while(i=e.exec(t)){const t=i.index||0;if(t<=n&&e.lastIndex>=n)return i;if(r>0&&t>r)return null}return null}class Ft{constructor(e){let t=ft(e);this._defaultValue=t,this._asciiMap=Ft._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){let t=new Uint8Array(256);for(let n=0;n<256;n++)t[n]=e;return t}set(e,t){let n=ft(t);e>=0&&e<256?this._asciiMap[e]=n:this._map.set(e,n)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}}class Dt{constructor(e,t,n){const r=new Uint8Array(e*t);for(let i=0,o=e*t;it&&(t=o),r>n&&(n=r),s>n&&(n=s)}t++,n++;let r=new Dt(n,t,0);for(let i=0,o=e.length;i=this._maxCharCode?0:this._states.get(e,t)}}let Nt=null;function Rt(){return null===Nt&&(Nt=new Tt([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),Nt}let At=null;function zt(){if(null===At){At=new Ft(0);const e=" \t<>'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…";for(let n=0;nr);if(r>0){const e=t.charCodeAt(r-1),n=t.charCodeAt(o);(40===e&&41===n||91===e&&93===n||123===e&&125===n)&&o--}return{range:{startLineNumber:n,startColumn:r+1,endLineNumber:n,endColumn:o+2},url:t.substring(r,o+1)}}static computeLinks(e,t=Rt()){const n=zt();let r=[];for(let i=1,o=e.getLineCount();i<=o;i++){const o=e.getLineContent(i),s=o.length;let a=0,l=0,c=0,d=1,h=!1,p=!1,u=!1,m=!1;while(a=0?(r+=n?1:-1,r<0?r=e.length-1:r%=e.length,e[r]):null}}Pt.INSTANCE=new Pt;const Ot=Object.freeze((function(e,t){const n=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(n)}}}));var Lt;(function(e){function t(t){return t===e.None||t===e.Cancelled||(t instanceof Wt||!(!t||"object"!==typeof t)&&("boolean"===typeof t.isCancellationRequested&&"function"===typeof t.onCancellationRequested))}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:T.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Ot})})(Lt||(Lt={}));class Wt{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?Ot:(this._emitter||(this._emitter=new z),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class Vt{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new Wt),this._token}cancel(){this._token?this._token instanceof Wt&&this._token.cancel():this._token=Lt.Cancelled}dispose(e=!1){e&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof Wt&&this._token.dispose():this._token=Lt.None}}class Ut{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const Kt=new Ut,jt=new Ut,Bt=new Ut,qt=new Array(230),$t={},Ht=[],Gt=Object.create(null),Jt=Object.create(null),Xt=[],Yt=[];for(let kd=0;kd<=193;kd++)Xt[kd]=-1;for(let kd=0;kd<=126;kd++)Yt[kd]=-1;var Zt,Qt,en,tn,nn,rn,on,sn,an,ln,cn,dn,hn,pn,un,mn,fn,gn,bn,vn,yn,wn,xn,Sn,Cn,kn,_n,En,Fn,Dn,Tn,Nn,Rn,An,zn,In;function Mn(e,t){const n=(65535&t)<<16>>>0;return(e|n)>>>0}(function(){const e="",t=[[0,1,0,"None",0,"unknown",0,"VK_UNKNOWN",e,e],[0,1,1,"Hyper",0,e,0,e,e,e],[0,1,2,"Super",0,e,0,e,e,e],[0,1,3,"Fn",0,e,0,e,e,e],[0,1,4,"FnLock",0,e,0,e,e,e],[0,1,5,"Suspend",0,e,0,e,e,e],[0,1,6,"Resume",0,e,0,e,e,e],[0,1,7,"Turbo",0,e,0,e,e,e],[0,1,8,"Sleep",0,e,0,"VK_SLEEP",e,e],[0,1,9,"WakeUp",0,e,0,e,e,e],[31,0,10,"KeyA",31,"A",65,"VK_A",e,e],[32,0,11,"KeyB",32,"B",66,"VK_B",e,e],[33,0,12,"KeyC",33,"C",67,"VK_C",e,e],[34,0,13,"KeyD",34,"D",68,"VK_D",e,e],[35,0,14,"KeyE",35,"E",69,"VK_E",e,e],[36,0,15,"KeyF",36,"F",70,"VK_F",e,e],[37,0,16,"KeyG",37,"G",71,"VK_G",e,e],[38,0,17,"KeyH",38,"H",72,"VK_H",e,e],[39,0,18,"KeyI",39,"I",73,"VK_I",e,e],[40,0,19,"KeyJ",40,"J",74,"VK_J",e,e],[41,0,20,"KeyK",41,"K",75,"VK_K",e,e],[42,0,21,"KeyL",42,"L",76,"VK_L",e,e],[43,0,22,"KeyM",43,"M",77,"VK_M",e,e],[44,0,23,"KeyN",44,"N",78,"VK_N",e,e],[45,0,24,"KeyO",45,"O",79,"VK_O",e,e],[46,0,25,"KeyP",46,"P",80,"VK_P",e,e],[47,0,26,"KeyQ",47,"Q",81,"VK_Q",e,e],[48,0,27,"KeyR",48,"R",82,"VK_R",e,e],[49,0,28,"KeyS",49,"S",83,"VK_S",e,e],[50,0,29,"KeyT",50,"T",84,"VK_T",e,e],[51,0,30,"KeyU",51,"U",85,"VK_U",e,e],[52,0,31,"KeyV",52,"V",86,"VK_V",e,e],[53,0,32,"KeyW",53,"W",87,"VK_W",e,e],[54,0,33,"KeyX",54,"X",88,"VK_X",e,e],[55,0,34,"KeyY",55,"Y",89,"VK_Y",e,e],[56,0,35,"KeyZ",56,"Z",90,"VK_Z",e,e],[22,0,36,"Digit1",22,"1",49,"VK_1",e,e],[23,0,37,"Digit2",23,"2",50,"VK_2",e,e],[24,0,38,"Digit3",24,"3",51,"VK_3",e,e],[25,0,39,"Digit4",25,"4",52,"VK_4",e,e],[26,0,40,"Digit5",26,"5",53,"VK_5",e,e],[27,0,41,"Digit6",27,"6",54,"VK_6",e,e],[28,0,42,"Digit7",28,"7",55,"VK_7",e,e],[29,0,43,"Digit8",29,"8",56,"VK_8",e,e],[30,0,44,"Digit9",30,"9",57,"VK_9",e,e],[21,0,45,"Digit0",21,"0",48,"VK_0",e,e],[3,1,46,"Enter",3,"Enter",13,"VK_RETURN",e,e],[9,1,47,"Escape",9,"Escape",27,"VK_ESCAPE",e,e],[1,1,48,"Backspace",1,"Backspace",8,"VK_BACK",e,e],[2,1,49,"Tab",2,"Tab",9,"VK_TAB",e,e],[10,1,50,"Space",10,"Space",32,"VK_SPACE",e,e],[83,0,51,"Minus",83,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[81,0,52,"Equal",81,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[87,0,53,"BracketLeft",87,"[",219,"VK_OEM_4","[","OEM_4"],[89,0,54,"BracketRight",89,"]",221,"VK_OEM_6","]","OEM_6"],[88,0,55,"Backslash",88,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,0,56,"IntlHash",0,e,0,e,e,e],[80,0,57,"Semicolon",80,";",186,"VK_OEM_1",";","OEM_1"],[90,0,58,"Quote",90,"'",222,"VK_OEM_7","'","OEM_7"],[86,0,59,"Backquote",86,"`",192,"VK_OEM_3","`","OEM_3"],[82,0,60,"Comma",82,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[84,0,61,"Period",84,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[85,0,62,"Slash",85,"/",191,"VK_OEM_2","/","OEM_2"],[8,1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",e,e],[59,1,64,"F1",59,"F1",112,"VK_F1",e,e],[60,1,65,"F2",60,"F2",113,"VK_F2",e,e],[61,1,66,"F3",61,"F3",114,"VK_F3",e,e],[62,1,67,"F4",62,"F4",115,"VK_F4",e,e],[63,1,68,"F5",63,"F5",116,"VK_F5",e,e],[64,1,69,"F6",64,"F6",117,"VK_F6",e,e],[65,1,70,"F7",65,"F7",118,"VK_F7",e,e],[66,1,71,"F8",66,"F8",119,"VK_F8",e,e],[67,1,72,"F9",67,"F9",120,"VK_F9",e,e],[68,1,73,"F10",68,"F10",121,"VK_F10",e,e],[69,1,74,"F11",69,"F11",122,"VK_F11",e,e],[70,1,75,"F12",70,"F12",123,"VK_F12",e,e],[0,1,76,"PrintScreen",0,e,0,e,e,e],[79,1,77,"ScrollLock",79,"ScrollLock",145,"VK_SCROLL",e,e],[7,1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",e,e],[19,1,79,"Insert",19,"Insert",45,"VK_INSERT",e,e],[14,1,80,"Home",14,"Home",36,"VK_HOME",e,e],[11,1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",e,e],[20,1,82,"Delete",20,"Delete",46,"VK_DELETE",e,e],[13,1,83,"End",13,"End",35,"VK_END",e,e],[12,1,84,"PageDown",12,"PageDown",34,"VK_NEXT",e,e],[17,1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",e],[15,1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",e],[18,1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",e],[16,1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",e],[78,1,89,"NumLock",78,"NumLock",144,"VK_NUMLOCK",e,e],[108,1,90,"NumpadDivide",108,"NumPad_Divide",111,"VK_DIVIDE",e,e],[103,1,91,"NumpadMultiply",103,"NumPad_Multiply",106,"VK_MULTIPLY",e,e],[106,1,92,"NumpadSubtract",106,"NumPad_Subtract",109,"VK_SUBTRACT",e,e],[104,1,93,"NumpadAdd",104,"NumPad_Add",107,"VK_ADD",e,e],[3,1,94,"NumpadEnter",3,e,0,e,e,e],[94,1,95,"Numpad1",94,"NumPad1",97,"VK_NUMPAD1",e,e],[95,1,96,"Numpad2",95,"NumPad2",98,"VK_NUMPAD2",e,e],[96,1,97,"Numpad3",96,"NumPad3",99,"VK_NUMPAD3",e,e],[97,1,98,"Numpad4",97,"NumPad4",100,"VK_NUMPAD4",e,e],[98,1,99,"Numpad5",98,"NumPad5",101,"VK_NUMPAD5",e,e],[99,1,100,"Numpad6",99,"NumPad6",102,"VK_NUMPAD6",e,e],[100,1,101,"Numpad7",100,"NumPad7",103,"VK_NUMPAD7",e,e],[101,1,102,"Numpad8",101,"NumPad8",104,"VK_NUMPAD8",e,e],[102,1,103,"Numpad9",102,"NumPad9",105,"VK_NUMPAD9",e,e],[93,1,104,"Numpad0",93,"NumPad0",96,"VK_NUMPAD0",e,e],[107,1,105,"NumpadDecimal",107,"NumPad_Decimal",110,"VK_DECIMAL",e,e],[92,0,106,"IntlBackslash",92,"OEM_102",226,"VK_OEM_102",e,e],[58,1,107,"ContextMenu",58,"ContextMenu",93,e,e,e],[0,1,108,"Power",0,e,0,e,e,e],[0,1,109,"NumpadEqual",0,e,0,e,e,e],[71,1,110,"F13",71,"F13",124,"VK_F13",e,e],[72,1,111,"F14",72,"F14",125,"VK_F14",e,e],[73,1,112,"F15",73,"F15",126,"VK_F15",e,e],[74,1,113,"F16",74,"F16",127,"VK_F16",e,e],[75,1,114,"F17",75,"F17",128,"VK_F17",e,e],[76,1,115,"F18",76,"F18",129,"VK_F18",e,e],[77,1,116,"F19",77,"F19",130,"VK_F19",e,e],[0,1,117,"F20",0,e,0,"VK_F20",e,e],[0,1,118,"F21",0,e,0,"VK_F21",e,e],[0,1,119,"F22",0,e,0,"VK_F22",e,e],[0,1,120,"F23",0,e,0,"VK_F23",e,e],[0,1,121,"F24",0,e,0,"VK_F24",e,e],[0,1,122,"Open",0,e,0,e,e,e],[0,1,123,"Help",0,e,0,e,e,e],[0,1,124,"Select",0,e,0,e,e,e],[0,1,125,"Again",0,e,0,e,e,e],[0,1,126,"Undo",0,e,0,e,e,e],[0,1,127,"Cut",0,e,0,e,e,e],[0,1,128,"Copy",0,e,0,e,e,e],[0,1,129,"Paste",0,e,0,e,e,e],[0,1,130,"Find",0,e,0,e,e,e],[0,1,131,"AudioVolumeMute",112,"AudioVolumeMute",173,"VK_VOLUME_MUTE",e,e],[0,1,132,"AudioVolumeUp",113,"AudioVolumeUp",175,"VK_VOLUME_UP",e,e],[0,1,133,"AudioVolumeDown",114,"AudioVolumeDown",174,"VK_VOLUME_DOWN",e,e],[105,1,134,"NumpadComma",105,"NumPad_Separator",108,"VK_SEPARATOR",e,e],[110,0,135,"IntlRo",110,"ABNT_C1",193,"VK_ABNT_C1",e,e],[0,1,136,"KanaMode",0,e,0,e,e,e],[0,0,137,"IntlYen",0,e,0,e,e,e],[0,1,138,"Convert",0,e,0,e,e,e],[0,1,139,"NonConvert",0,e,0,e,e,e],[0,1,140,"Lang1",0,e,0,e,e,e],[0,1,141,"Lang2",0,e,0,e,e,e],[0,1,142,"Lang3",0,e,0,e,e,e],[0,1,143,"Lang4",0,e,0,e,e,e],[0,1,144,"Lang5",0,e,0,e,e,e],[0,1,145,"Abort",0,e,0,e,e,e],[0,1,146,"Props",0,e,0,e,e,e],[0,1,147,"NumpadParenLeft",0,e,0,e,e,e],[0,1,148,"NumpadParenRight",0,e,0,e,e,e],[0,1,149,"NumpadBackspace",0,e,0,e,e,e],[0,1,150,"NumpadMemoryStore",0,e,0,e,e,e],[0,1,151,"NumpadMemoryRecall",0,e,0,e,e,e],[0,1,152,"NumpadMemoryClear",0,e,0,e,e,e],[0,1,153,"NumpadMemoryAdd",0,e,0,e,e,e],[0,1,154,"NumpadMemorySubtract",0,e,0,e,e,e],[0,1,155,"NumpadClear",0,e,0,e,e,e],[0,1,156,"NumpadClearEntry",0,e,0,e,e,e],[5,1,0,e,5,"Ctrl",17,"VK_CONTROL",e,e],[4,1,0,e,4,"Shift",16,"VK_SHIFT",e,e],[6,1,0,e,6,"Alt",18,"VK_MENU",e,e],[57,1,0,e,57,"Meta",0,"VK_COMMAND",e,e],[5,1,157,"ControlLeft",5,e,0,"VK_LCONTROL",e,e],[4,1,158,"ShiftLeft",4,e,0,"VK_LSHIFT",e,e],[6,1,159,"AltLeft",6,e,0,"VK_LMENU",e,e],[57,1,160,"MetaLeft",57,e,0,"VK_LWIN",e,e],[5,1,161,"ControlRight",5,e,0,"VK_RCONTROL",e,e],[4,1,162,"ShiftRight",4,e,0,"VK_RSHIFT",e,e],[6,1,163,"AltRight",6,e,0,"VK_RMENU",e,e],[57,1,164,"MetaRight",57,e,0,"VK_RWIN",e,e],[0,1,165,"BrightnessUp",0,e,0,e,e,e],[0,1,166,"BrightnessDown",0,e,0,e,e,e],[0,1,167,"MediaPlay",0,e,0,e,e,e],[0,1,168,"MediaRecord",0,e,0,e,e,e],[0,1,169,"MediaFastForward",0,e,0,e,e,e],[0,1,170,"MediaRewind",0,e,0,e,e,e],[114,1,171,"MediaTrackNext",119,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",e,e],[115,1,172,"MediaTrackPrevious",120,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",e,e],[116,1,173,"MediaStop",121,"MediaStop",178,"VK_MEDIA_STOP",e,e],[0,1,174,"Eject",0,e,0,e,e,e],[117,1,175,"MediaPlayPause",122,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",e,e],[0,1,176,"MediaSelect",123,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",e,e],[0,1,177,"LaunchMail",124,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",e,e],[0,1,178,"LaunchApp2",125,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",e,e],[0,1,179,"LaunchApp1",0,e,0,"VK_MEDIA_LAUNCH_APP1",e,e],[0,1,180,"SelectTask",0,e,0,e,e,e],[0,1,181,"LaunchScreenSaver",0,e,0,e,e,e],[0,1,182,"BrowserSearch",115,"BrowserSearch",170,"VK_BROWSER_SEARCH",e,e],[0,1,183,"BrowserHome",116,"BrowserHome",172,"VK_BROWSER_HOME",e,e],[112,1,184,"BrowserBack",117,"BrowserBack",166,"VK_BROWSER_BACK",e,e],[113,1,185,"BrowserForward",118,"BrowserForward",167,"VK_BROWSER_FORWARD",e,e],[0,1,186,"BrowserStop",0,e,0,"VK_BROWSER_STOP",e,e],[0,1,187,"BrowserRefresh",0,e,0,"VK_BROWSER_REFRESH",e,e],[0,1,188,"BrowserFavorites",0,e,0,"VK_BROWSER_FAVORITES",e,e],[0,1,189,"ZoomToggle",0,e,0,e,e,e],[0,1,190,"MailReply",0,e,0,e,e,e],[0,1,191,"MailForward",0,e,0,e,e,e],[0,1,192,"MailSend",0,e,0,e,e,e],[109,1,0,e,109,"KeyInComposition",229,e,e,e],[111,1,0,e,111,"ABNT_C2",194,"VK_ABNT_C2",e,e],[91,1,0,e,91,"OEM_8",223,"VK_OEM_8",e,e],[0,1,0,e,0,e,0,"VK_CLEAR",e,e],[0,1,0,e,0,e,0,"VK_KANA",e,e],[0,1,0,e,0,e,0,"VK_HANGUL",e,e],[0,1,0,e,0,e,0,"VK_JUNJA",e,e],[0,1,0,e,0,e,0,"VK_FINAL",e,e],[0,1,0,e,0,e,0,"VK_HANJA",e,e],[0,1,0,e,0,e,0,"VK_KANJI",e,e],[0,1,0,e,0,e,0,"VK_CONVERT",e,e],[0,1,0,e,0,e,0,"VK_NONCONVERT",e,e],[0,1,0,e,0,e,0,"VK_ACCEPT",e,e],[0,1,0,e,0,e,0,"VK_MODECHANGE",e,e],[0,1,0,e,0,e,0,"VK_SELECT",e,e],[0,1,0,e,0,e,0,"VK_PRINT",e,e],[0,1,0,e,0,e,0,"VK_EXECUTE",e,e],[0,1,0,e,0,e,0,"VK_SNAPSHOT",e,e],[0,1,0,e,0,e,0,"VK_HELP",e,e],[0,1,0,e,0,e,0,"VK_APPS",e,e],[0,1,0,e,0,e,0,"VK_PROCESSKEY",e,e],[0,1,0,e,0,e,0,"VK_PACKET",e,e],[0,1,0,e,0,e,0,"VK_DBE_SBCSCHAR",e,e],[0,1,0,e,0,e,0,"VK_DBE_DBCSCHAR",e,e],[0,1,0,e,0,e,0,"VK_ATTN",e,e],[0,1,0,e,0,e,0,"VK_CRSEL",e,e],[0,1,0,e,0,e,0,"VK_EXSEL",e,e],[0,1,0,e,0,e,0,"VK_EREOF",e,e],[0,1,0,e,0,e,0,"VK_PLAY",e,e],[0,1,0,e,0,e,0,"VK_ZOOM",e,e],[0,1,0,e,0,e,0,"VK_NONAME",e,e],[0,1,0,e,0,e,0,"VK_PA1",e,e],[0,1,0,e,0,e,0,"VK_OEM_CLEAR",e,e]];let n=[],r=[];for(const i of t){const[e,t,o,s,a,l,c,d,h,p]=i;if(r[o]||(r[o]=!0,Ht[o]=s,Gt[s]=o,Jt[s.toLowerCase()]=o,t&&(Xt[o]=a,0!==a&&3!==a&&5!==a&&4!==a&&6!==a&&57!==a&&(Yt[a]=o))),!n[a]){if(n[a]=!0,!l)throw new Error(`String representation missing for key code ${a} around scan code ${s}`);Kt.define(a,l),jt.define(a,h||l),Bt.define(a,p||h||l)}c&&(qt[c]=a),d&&($t[d]=a)}Yt[3]=46})(),function(e){function t(e){return Kt.keyCodeToStr(e)}function n(e){return Kt.strToKeyCode(e)}function r(e){return jt.keyCodeToStr(e)}function i(e){return Bt.keyCodeToStr(e)}function o(e){return jt.strToKeyCode(e)||Bt.strToKeyCode(e)}function s(e){if(e>=93&&e<=108)return null;switch(e){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return Kt.keyCodeToStr(e)}e.toString=t,e.fromString=n,e.toUserSettingsUS=r,e.toUserSettingsGeneral=i,e.fromUserSettings=o,e.toElectronAccelerator=s}(Zt||(Zt={}));class Pn extends rt{constructor(e,t,n,r){super(e,t,n,r),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=n,this.positionColumn=r}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return Pn.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return 0===this.getDirection()?new Pn(this.startLineNumber,this.startColumn,e,t):new Pn(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new nt(this.positionLineNumber,this.positionColumn)}setStartPosition(e,t){return 0===this.getDirection()?new Pn(e,t,this.endLineNumber,this.endColumn):new Pn(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new Pn(e.lineNumber,e.column,t.lineNumber,t.column)}static liftSelection(e){return new Pn(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let n=0,r=e.length;nthis._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,r=!0;else{let e=this._lines[t-1].length+1;n<1?(n=1,r=!0):n>e&&(n=e,r=!0)}return r?{lineNumber:t,column:n}:e}}class Kn{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){let e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new Un(qe.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;let n=this._models[e];n.onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}computeDiff(e,t,n,r){return Vn(this,void 0,void 0,(function*(){const i=this._getModel(e),o=this._getModel(t);if(!i||!o)return null;const s=i.getLinesContent(),a=o.getLinesContent(),l=new ht(s,a,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0,maxComputationTime:r}),c=l.computeDiff(),d=!(c.changes.length>0)&&this._modelsAreIdentical(i,o);return{quitEarly:c.quitEarly,identical:d,changes:c.changes}}))}_modelsAreIdentical(e,t){const n=e.getLineCount(),r=t.getLineCount();if(n!==r)return!1;for(let i=1;i<=n;i++){const n=e.getLineContent(i),r=t.getLineContent(i);if(n!==r)return!1}return!0}computeMoreMinimalEdits(e,t){return Vn(this,void 0,void 0,(function*(){const n=this._getModel(e);if(!n)return t;const r=[];let i=void 0;t=t.slice(0).sort((e,t)=>{if(e.range&&t.range)return rt.compareRangesUsingStarts(e.range,t.range);let n=e.range?0:1,r=t.range?0:1;return n-r});for(let{range:e,text:o,eol:s}of t){if("number"===typeof s&&(i=s),rt.isEmpty(e)&&!o)continue;const t=n.getValueInRange(e);if(o=o.replace(/\r\n|\n|\r/g,n.eol),t===o)continue;if(Math.max(o.length,t.length)>Kn._diffLimit){r.push({range:e,text:o});continue}const a=pe(t,o,!1),l=n.offsetAt(rt.lift(e).getStartPosition());for(const e of a){const t=n.positionAt(l+e.originalStart),i=n.positionAt(l+e.originalStart+e.originalLength),s={text:o.substr(e.modifiedStart,e.modifiedLength),range:{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:i.lineNumber,endColumn:i.column}};n.getValueInRange(s.range)!==s.text&&r.push(s)}}return"number"===typeof i&&r.push({eol:i,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),r}))}computeLinks(e){return Vn(this,void 0,void 0,(function*(){let t=this._getModel(e);return t?Mt(t):null}))}textualSuggest(e,t,n,r){return Vn(this,void 0,void 0,(function*(){const i=new D(!0),o=new RegExp(n,r),s=new Set;e:for(let n of e){const e=this._getModel(n);if(e)for(let n of e.words(o))if(n!==t&&isNaN(Number(n))&&(s.add(n),s.size>Kn._suggestionsLimit))break e}return{words:Array.from(s),duration:i.elapsed()}}))}computeWordRanges(e,t,n,r){return Vn(this,void 0,void 0,(function*(){let i=this._getModel(e);if(!i)return Object.create(null);const o=new RegExp(n,r),s=Object.create(null);for(let e=t.startLineNumber;ethis._host.fhr(e,t),i=P(n,r);let o={host:i,getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(o,t),Promise.resolve(M(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(e,t){if(!this._foreignModule||"function"!==typeof this._foreignModule[e])return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(n){return Promise.reject(n)}}}Kn._diffLimit=1e5,Kn._suggestionsLimit=1e4,"function"===typeof importScripts&&(E["a"].monaco=Wn());let jn=!1;function Bn(e){if(jn)return;jn=!0;const t=new ne(e=>{self.postMessage(e)},t=>new Kn(t,e));self.onmessage=e=>{t.onmessage(e.data)}}var qn;self.onmessage=e=>{jn||Bn(null)},function(e){e[e["Ident"]=0]="Ident",e[e["AtKeyword"]=1]="AtKeyword",e[e["String"]=2]="String",e[e["BadString"]=3]="BadString",e[e["UnquotedString"]=4]="UnquotedString",e[e["Hash"]=5]="Hash",e[e["Num"]=6]="Num",e[e["Percentage"]=7]="Percentage",e[e["Dimension"]=8]="Dimension",e[e["UnicodeRange"]=9]="UnicodeRange",e[e["CDO"]=10]="CDO",e[e["CDC"]=11]="CDC",e[e["Colon"]=12]="Colon",e[e["SemiColon"]=13]="SemiColon",e[e["CurlyL"]=14]="CurlyL",e[e["CurlyR"]=15]="CurlyR",e[e["ParenthesisL"]=16]="ParenthesisL",e[e["ParenthesisR"]=17]="ParenthesisR",e[e["BracketL"]=18]="BracketL",e[e["BracketR"]=19]="BracketR",e[e["Whitespace"]=20]="Whitespace",e[e["Includes"]=21]="Includes",e[e["Dashmatch"]=22]="Dashmatch",e[e["SubstringOperator"]=23]="SubstringOperator",e[e["PrefixOperator"]=24]="PrefixOperator",e[e["SuffixOperator"]=25]="SuffixOperator",e[e["Delim"]=26]="Delim",e[e["EMS"]=27]="EMS",e[e["EXS"]=28]="EXS",e[e["Length"]=29]="Length",e[e["Angle"]=30]="Angle",e[e["Time"]=31]="Time",e[e["Freq"]=32]="Freq",e[e["Exclamation"]=33]="Exclamation",e[e["Resolution"]=34]="Resolution",e[e["Comma"]=35]="Comma",e[e["Charset"]=36]="Charset",e[e["EscapedJavaScript"]=37]="EscapedJavaScript",e[e["BadEscapedJavaScript"]=38]="BadEscapedJavaScript",e[e["Comment"]=39]="Comment",e[e["SingleLineComment"]=40]="SingleLineComment",e[e["EOF"]=41]="EOF",e[e["CustomToken"]=42]="CustomToken"}(qn||(qn={}));var $n=function(){function e(e){this.source=e,this.len=e.length,this.position=0}return e.prototype.substring=function(e,t){return void 0===t&&(t=this.position),this.source.substring(e,t)},e.prototype.eos=function(){return this.len<=this.position},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.lookbackChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position-e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){if(this.position+e.length>this.source.length)return!1;for(var t=0;t=Qn&&e<=er&&(this.stream.advance(t+1),this.stream.advanceWhileChar((function(e){return e>=Qn&&e<=er||0===t&&e===Ar})),!0)},e.prototype._newline=function(e){var t=this.stream.peekChar();switch(t){case yr:case wr:case vr:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===yr&&this.stream.advanceIfChar(vr)&&e.push("\n"),!0}return!1},e.prototype._escape=function(e,t){var n=this.stream.peekChar();if(n===gr){this.stream.advance(1),n=this.stream.peekChar();var r=0;while(r<6&&(n>=Qn&&n<=er||n>=Hn&&n<=Gn||n>=Xn&&n<=Yn))this.stream.advance(1),n=this.stream.peekChar(),r++;if(r>0){try{var i=parseInt(this.stream.substring(this.stream.pos()-r),16);i&&e.push(String.fromCharCode(i))}catch(o){}return n===Cr||n===kr?this.stream.advance(1):this._newline([]),!0}if(n!==yr&&n!==wr&&n!==vr)return this.stream.advance(1),e.push(String.fromCharCode(n)),!0;if(t)return this._newline(e)}return!1},e.prototype._stringChar=function(e,t){var n=this.stream.peekChar();return 0!==n&&n!==e&&n!==gr&&n!==yr&&n!==wr&&n!==vr&&(this.stream.advance(1),t.push(String.fromCharCode(n)),!0)},e.prototype._string=function(e){if(this.stream.peekChar()===Sr||this.stream.peekChar()===xr){var t=this.stream.nextChar();e.push(String.fromCharCode(t));while(this._stringChar(t,e)||this._escape(e,!0));return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),qn.String):qn.BadString}return null},e.prototype._unquotedChar=function(e){var t=this.stream.peekChar();return 0!==t&&t!==gr&&t!==Sr&&t!==xr&&t!==cr&&t!==dr&&t!==Cr&&t!==kr&&t!==vr&&t!==wr&&t!==yr&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._unquotedString=function(e){var t=!1;while(this._unquotedChar(e)||this._escape(e))t=!0;return t},e.prototype._whitespace=function(){var e=this.stream.advanceWhileChar((function(e){return e===Cr||e===kr||e===vr||e===wr||e===yr}));return e>0},e.prototype._name=function(e){var t=!1;while(this._identChar(e)||this._escape(e))t=!0;return t},e.prototype.ident=function(e){var t=this.stream.pos(),n=this._minus(e);if(n){if(this._minus(e)||this._identFirstChar(e)||this._escape(e)){while(this._identChar(e)||this._escape(e));return!0}}else if(this._identFirstChar(e)||this._escape(e)){while(this._identChar(e)||this._escape(e));return!0}return this.stream.goBackTo(t),!1},e.prototype._identFirstChar=function(e){var t=this.stream.peekChar();return(t===sr||t>=Hn&&t<=Jn||t>=Xn&&t<=Zn||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._minus=function(e){var t=this.stream.peekChar();return t===or&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._identChar=function(e){var t=this.stream.peekChar();return(t===sr||t===or||t>=Hn&&t<=Jn||t>=Xn&&t<=Zn||t>=Qn&&t<=er||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e}();function Or(e,t){if(e.length0?e.lastIndexOf(t)===n:0===n&&e===t}function Wr(e,t,n){void 0===n&&(n=4);var r=Math.abs(e.length-t.length);if(r>n)return 0;var i,o,s=[],a=[];for(i=0;ie.end?null:(e.accept((function(e){return-1===e.offset&&-1===e.length||e.offset<=t&&e.end>=t&&(n?e.length<=n.length&&(n=e):n=e,!0)})),n)}function $r(e,t){var n=qr(e,t),r=[];while(n)r.unshift(n),n=n.parent;return r}function Hr(e){var t=e.findParent(Kr.Declaration),n=t&&t.getValue();return n&&n.encloses(e)?t:null}(function(e){e[e["Undefined"]=0]="Undefined",e[e["Identifier"]=1]="Identifier",e[e["Stylesheet"]=2]="Stylesheet",e[e["Ruleset"]=3]="Ruleset",e[e["Selector"]=4]="Selector",e[e["SimpleSelector"]=5]="SimpleSelector",e[e["SelectorInterpolation"]=6]="SelectorInterpolation",e[e["SelectorCombinator"]=7]="SelectorCombinator",e[e["SelectorCombinatorParent"]=8]="SelectorCombinatorParent",e[e["SelectorCombinatorSibling"]=9]="SelectorCombinatorSibling",e[e["SelectorCombinatorAllSiblings"]=10]="SelectorCombinatorAllSiblings",e[e["SelectorCombinatorShadowPiercingDescendant"]=11]="SelectorCombinatorShadowPiercingDescendant",e[e["Page"]=12]="Page",e[e["PageBoxMarginBox"]=13]="PageBoxMarginBox",e[e["ClassSelector"]=14]="ClassSelector",e[e["IdentifierSelector"]=15]="IdentifierSelector",e[e["ElementNameSelector"]=16]="ElementNameSelector",e[e["PseudoSelector"]=17]="PseudoSelector",e[e["AttributeSelector"]=18]="AttributeSelector",e[e["Declaration"]=19]="Declaration",e[e["Declarations"]=20]="Declarations",e[e["Property"]=21]="Property",e[e["Expression"]=22]="Expression",e[e["BinaryExpression"]=23]="BinaryExpression",e[e["Term"]=24]="Term",e[e["Operator"]=25]="Operator",e[e["Value"]=26]="Value",e[e["StringLiteral"]=27]="StringLiteral",e[e["URILiteral"]=28]="URILiteral",e[e["EscapedValue"]=29]="EscapedValue",e[e["Function"]=30]="Function",e[e["NumericValue"]=31]="NumericValue",e[e["HexColorValue"]=32]="HexColorValue",e[e["RatioValue"]=33]="RatioValue",e[e["MixinDeclaration"]=34]="MixinDeclaration",e[e["MixinReference"]=35]="MixinReference",e[e["VariableName"]=36]="VariableName",e[e["VariableDeclaration"]=37]="VariableDeclaration",e[e["Prio"]=38]="Prio",e[e["Interpolation"]=39]="Interpolation",e[e["NestedProperties"]=40]="NestedProperties",e[e["ExtendsReference"]=41]="ExtendsReference",e[e["SelectorPlaceholder"]=42]="SelectorPlaceholder",e[e["Debug"]=43]="Debug",e[e["If"]=44]="If",e[e["Else"]=45]="Else",e[e["For"]=46]="For",e[e["Each"]=47]="Each",e[e["While"]=48]="While",e[e["MixinContentReference"]=49]="MixinContentReference",e[e["MixinContentDeclaration"]=50]="MixinContentDeclaration",e[e["Media"]=51]="Media",e[e["Keyframe"]=52]="Keyframe",e[e["FontFace"]=53]="FontFace",e[e["Import"]=54]="Import",e[e["Namespace"]=55]="Namespace",e[e["Invocation"]=56]="Invocation",e[e["FunctionDeclaration"]=57]="FunctionDeclaration",e[e["ReturnStatement"]=58]="ReturnStatement",e[e["MediaQuery"]=59]="MediaQuery",e[e["MediaCondition"]=60]="MediaCondition",e[e["MediaFeature"]=61]="MediaFeature",e[e["FunctionParameter"]=62]="FunctionParameter",e[e["FunctionArgument"]=63]="FunctionArgument",e[e["KeyframeSelector"]=64]="KeyframeSelector",e[e["ViewPort"]=65]="ViewPort",e[e["Document"]=66]="Document",e[e["AtApplyRule"]=67]="AtApplyRule",e[e["CustomPropertyDeclaration"]=68]="CustomPropertyDeclaration",e[e["CustomPropertySet"]=69]="CustomPropertySet",e[e["ListEntry"]=70]="ListEntry",e[e["Supports"]=71]="Supports",e[e["SupportsCondition"]=72]="SupportsCondition",e[e["NamespacePrefix"]=73]="NamespacePrefix",e[e["GridLine"]=74]="GridLine",e[e["Plugin"]=75]="Plugin",e[e["UnknownAtRule"]=76]="UnknownAtRule",e[e["Use"]=77]="Use",e[e["ModuleConfiguration"]=78]="ModuleConfiguration",e[e["Forward"]=79]="Forward",e[e["ForwardVisibility"]=80]="ForwardVisibility",e[e["Module"]=81]="Module"})(Kr||(Kr={})),function(e){e[e["Mixin"]=0]="Mixin",e[e["Rule"]=1]="Rule",e[e["Variable"]=2]="Variable",e[e["Function"]=3]="Function",e[e["Keyframe"]=4]="Keyframe",e[e["Unknown"]=5]="Unknown",e[e["Module"]=6]="Module",e[e["Forward"]=7]="Forward",e[e["ForwardVisibility"]=8]="ForwardVisibility"}(jr||(jr={}));var Gr,Jr=function(){function e(e,t,n){void 0===e&&(e=-1),void 0===t&&(t=-1),this.parent=null,this.offset=e,this.length=t,n&&(this.nodeType=n)}return Object.defineProperty(e.prototype,"end",{get:function(){return this.offset+this.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this.nodeType||Kr.Undefined},set:function(e){this.nodeType=e},enumerable:!1,configurable:!0}),e.prototype.getTextProvider=function(){var e=this;while(e&&!e.textProvider)e=e.parent;return e?e.textProvider:function(){return"unknown"}},e.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},e.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},e.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},e.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},e.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,n=this.children;t=0&&e.parent.children.splice(n,1)}e.parent=this;var r=this.children;return r||(r=this.children=[]),-1!==t?r.splice(t,0,e):r.push(e),e},e.prototype.attachTo=function(e,t){return void 0===t&&(t=-1),e&&e.adoptChild(this,t),this},e.prototype.collectIssues=function(e){this.issues&&e.push.apply(e,this.issues)},e.prototype.addIssue=function(e){this.issues||(this.issues=[]),this.issues.push(e)},e.prototype.hasIssue=function(e){return Array.isArray(this.issues)&&this.issues.some((function(t){return t.getRule()===e}))},e.prototype.isErroneous=function(e){return void 0===e&&(e=!1),!!(this.issues&&this.issues.length>0)||e&&Array.isArray(this.children)&&this.children.some((function(e){return e.isErroneous(!0)}))},e.prototype.setNode=function(e,t,n){return void 0===n&&(n=-1),!!t&&(t.attachTo(this,n),this[e]=t,!0)},e.prototype.addChild=function(e){return!!e&&(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0)},e.prototype.updateOffsetAndLength=function(e){(e.offsetthis.end||-1===this.length)&&(this.length=t-this.offset)},e.prototype.hasChildren=function(){return!!this.children&&this.children.length>0},e.prototype.getChildren=function(){return this.children?this.children.slice(0):[]},e.prototype.getChild=function(e){return this.children&&e=0;n--)if(t=this.children[n],t.offset<=e)return t;return null},e.prototype.findChildAtOffset=function(e,t){var n=this.findFirstChildBeforeOffset(e);return n&&n.end>=e?t&&n.findChildAtOffset(e,!0)||n:null},e.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},e.prototype.getParent=function(){var e=this.parent;while(e instanceof Xr)e=e.parent;return e},e.prototype.findParent=function(e){var t=this;while(t&&t.type!==e)t=t.parent;return t},e.prototype.findAParent=function(){for(var e=[],t=0;t/g,">")}function So(e,t){if(!e.description||""===e.description)return"";if("string"!==typeof e.description)return e.description.value;var n="";if(!1!==(null===t||void 0===t?void 0:t.documentation)){e.status&&(n+=yo(e.status)),n+=e.description;var r=ko(e.browsers);r&&(n+="\n("+r+")"),"syntax"in e&&(n+="\n\nSyntax: "+e.syntax)}return e.references&&e.references.length>0&&!1!==(null===t||void 0===t?void 0:t.references)&&(n.length>0&&(n+="\n\n"),n+=e.references.map((function(e){return e.name+": "+e.url})).join(" | ")),n}function Co(e,t){if(!e.description||""===e.description)return"";var n="";if(!1!==(null===t||void 0===t?void 0:t.documentation)){e.status&&(n+=yo(e.status));var r="string"===typeof e.description?e.description:e.description.value;n+=xo(r);var i=ko(e.browsers);i&&(n+="\n\n("+xo(i)+")"),"syntax"in e&&e.syntax&&(n+="\n\nSyntax: "+xo(e.syntax))}return e.references&&e.references.length>0&&!1!==(null===t||void 0===t?void 0:t.references)&&(n.length>0&&(n+="\n\n"),n+=e.references.map((function(e){return"["+e.name+"]("+e.url+")"})).join(" | ")),n}function ko(e){return void 0===e&&(e=[]),0===e.length?null:e.map((function(e){var t="",n=e.match(/([A-Z]+)(\d+)?/),r=n[1],i=n[2];return r in vo&&(t+=vo[r]),i&&(t+=" "+i),t})).join(", ")}var _o=mo(),Eo=[{func:"rgb($red, $green, $blue)",desc:_o("css.builtin.rgb","Creates a Color from red, green, and blue values.")},{func:"rgba($red, $green, $blue, $alpha)",desc:_o("css.builtin.rgba","Creates a Color from red, green, blue, and alpha values.")},{func:"hsl($hue, $saturation, $lightness)",desc:_o("css.builtin.hsl","Creates a Color from hue, saturation, and lightness values.")},{func:"hsla($hue, $saturation, $lightness, $alpha)",desc:_o("css.builtin.hsla","Creates a Color from hue, saturation, lightness, and alpha values.")}],Fo={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rebeccapurple:"#663399",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},Do={currentColor:"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.",transparent:"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value."};function To(e,t){var n=e.getText(),r=n.match(/^([-+]?[0-9]*\.?[0-9]+)(%?)$/);if(r){r[2]&&(t=100);var i=parseFloat(r[1])/t;if(i>=0&&i<=1)return i}throw new Error}function No(e){var t=e.getText(),n=t.match(/^([-+]?[0-9]*\.?[0-9]+)(deg)?$/);if(n)return parseFloat(t)%360;throw new Error}function Ro(e){var t=e.getName();return!!t&&/^(rgb|rgba|hsl|hsla)$/gi.test(t)}var Ao=48,zo=57,Io=65,Mo=97,Po=102;function Oo(e){return e=Mo&&e<=Po?e-Mo+10:0)}function Lo(e){if("#"!==e[0])return null;switch(e.length){case 4:return{red:17*Oo(e.charCodeAt(1))/255,green:17*Oo(e.charCodeAt(2))/255,blue:17*Oo(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*Oo(e.charCodeAt(1))/255,green:17*Oo(e.charCodeAt(2))/255,blue:17*Oo(e.charCodeAt(3))/255,alpha:17*Oo(e.charCodeAt(4))/255};case 7:return{red:(16*Oo(e.charCodeAt(1))+Oo(e.charCodeAt(2)))/255,green:(16*Oo(e.charCodeAt(3))+Oo(e.charCodeAt(4)))/255,blue:(16*Oo(e.charCodeAt(5))+Oo(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*Oo(e.charCodeAt(1))+Oo(e.charCodeAt(2)))/255,green:(16*Oo(e.charCodeAt(3))+Oo(e.charCodeAt(4)))/255,blue:(16*Oo(e.charCodeAt(5))+Oo(e.charCodeAt(6)))/255,alpha:(16*Oo(e.charCodeAt(7))+Oo(e.charCodeAt(8)))/255}}return null}function Wo(e,t,n,r){if(void 0===r&&(r=1),e/=60,0===t)return{red:n,green:n,blue:n,alpha:r};var i=function(e,t,n){while(n<0)n+=6;while(n>=6)n-=6;return n<1?(t-e)*n+e:n<3?t:n<4?(t-e)*(4-n)+e:e},o=n<=.5?n*(t+1):n+t-n*t,s=2*n-o;return{red:i(s,o,e+2),green:i(s,o,e),blue:i(s,o,e-2),alpha:r}}function Vo(e){var t=e.red,n=e.green,r=e.blue,i=e.alpha,o=Math.max(t,n,r),s=Math.min(t,n,r),a=0,l=0,c=(s+o)/2,d=o-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),o){case t:a=(n-r)/d+(n4)return null;try{var o=4===i.length?To(i[3],1):1;if("rgb"===r||"rgba"===r)return{red:To(i[0],255),green:To(i[1],255),blue:To(i[2],255),alpha:o};if("hsl"===r||"hsla"===r){var s=No(i[0]),a=To(i[1],100),l=To(i[2],100);return Wo(s,a,l,o)}}catch(u){return null}}else if(e.type===Kr.Identifier){if(e.parent&&e.parent.type!==Kr.Term)return null;var c=e.parent;if(c&&c.parent&&c.parent.type===Kr.BinaryExpression){var d=c.parent;if(d.parent&&d.parent.type===Kr.ListEntry&&d.parent.key===d)return null}var h=e.getText().toLowerCase();if("none"===h)return null;var p=Fo[h];if(p)return Lo(p)}return null}var Ko={bottom:"Computes to ‘100%’ for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.",center:"Computes to ‘50%’ (‘left 50%’) for the horizontal position if the horizontal position is not otherwise specified, or ‘50%’ (‘top 50%’) for the vertical position if it is.",left:"Computes to ‘0%’ for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.",right:"Computes to ‘100%’ for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.",top:"Computes to ‘0%’ for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset."},jo={"no-repeat":"Placed once and not repeated in this direction.",repeat:"Repeated in this direction as often as needed to cover the background painting area.","repeat-x":"Computes to ‘repeat no-repeat’.","repeat-y":"Computes to ‘no-repeat repeat’.",round:"Repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does.",space:"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area."},Bo={dashed:"A series of square-ended dashes.",dotted:"A series of round dots.",double:"Two parallel solid lines with some space between them.",groove:"Looks as if it were carved in the canvas.",hidden:"Same as ‘none’, but has different behavior in the border conflict resolution rules for border-collapsed tables.",inset:"Looks as if the content on the inside of the border is sunken into the canvas.",none:"No border. Color and width are ignored.",outset:"Looks as if the content on the inside of the border is coming out of the canvas.",ridge:"Looks as if it were coming out of the canvas.",solid:"A single line segment."},qo=["medium","thick","thin"],$o={"border-box":"The background is painted within (clipped to) the border box.","content-box":"The background is painted within (clipped to) the content box.","padding-box":"The background is painted within (clipped to) the padding box."},Ho={"margin-box":"Uses the margin box as reference box.","fill-box":"Uses the object bounding box as reference box.","stroke-box":"Uses the stroke bounding box as reference box.","view-box":"Uses the nearest SVG viewport as reference box."},Go={initial:"Represents the value specified as the property’s initial value.",inherit:"Represents the computed value of the property on the element’s parent.",unset:"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not."},Jo={"var()":"Evaluates the value of a custom variable.","calc()":"Evaluates an mathematical expression. The following operators can be used: + - * /."},Xo={"url()":"Reference an image file by URL","image()":"Provide image fallbacks and annotations.","-webkit-image-set()":"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.","image-set()":"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.","-moz-element()":"Use an element in the document as an image. Remember to use unprefixed element() in addition.","element()":"Use an element in the document as an image.","cross-fade()":"Indicates the two images to be combined and how far along in the transition the combination is.","-webkit-gradient()":"Deprecated. Use modern linear-gradient() or radial-gradient() instead.","-webkit-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-moz-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-o-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","linear-gradient()":"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.","-webkit-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-moz-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-o-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","repeating-linear-gradient()":"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position.","-webkit-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","-moz-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","radial-gradient()":"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.","-webkit-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","-moz-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","repeating-radial-gradient()":"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop’s position and the first specified color-stop’s position."},Yo={ease:"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).","ease-in":"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).","ease-in-out":"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).","ease-out":"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).",linear:"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).","step-end":"Equivalent to steps(1, end).","step-start":"Equivalent to steps(1, start).","steps()":"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value “start” or “end”.","cubic-bezier()":"Specifies a cubic-bezier curve. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2).","cubic-bezier(0.6, -0.28, 0.735, 0.045)":"Ease-in Back. Overshoots.","cubic-bezier(0.68, -0.55, 0.265, 1.55)":"Ease-in-out Back. Overshoots.","cubic-bezier(0.175, 0.885, 0.32, 1.275)":"Ease-out Back. Overshoots.","cubic-bezier(0.6, 0.04, 0.98, 0.335)":"Ease-in Circular. Based on half circle.","cubic-bezier(0.785, 0.135, 0.15, 0.86)":"Ease-in-out Circular. Based on half circle.","cubic-bezier(0.075, 0.82, 0.165, 1)":"Ease-out Circular. Based on half circle.","cubic-bezier(0.55, 0.055, 0.675, 0.19)":"Ease-in Cubic. Based on power of three.","cubic-bezier(0.645, 0.045, 0.355, 1)":"Ease-in-out Cubic. Based on power of three.","cubic-bezier(0.215, 0.610, 0.355, 1)":"Ease-out Cubic. Based on power of three.","cubic-bezier(0.95, 0.05, 0.795, 0.035)":"Ease-in Exponential. Based on two to the power ten.","cubic-bezier(1, 0, 0, 1)":"Ease-in-out Exponential. Based on two to the power ten.","cubic-bezier(0.19, 1, 0.22, 1)":"Ease-out Exponential. Based on two to the power ten.","cubic-bezier(0.47, 0, 0.745, 0.715)":"Ease-in Sine.","cubic-bezier(0.445, 0.05, 0.55, 0.95)":"Ease-in-out Sine.","cubic-bezier(0.39, 0.575, 0.565, 1)":"Ease-out Sine.","cubic-bezier(0.55, 0.085, 0.68, 0.53)":"Ease-in Quadratic. Based on power of two.","cubic-bezier(0.455, 0.03, 0.515, 0.955)":"Ease-in-out Quadratic. Based on power of two.","cubic-bezier(0.25, 0.46, 0.45, 0.94)":"Ease-out Quadratic. Based on power of two.","cubic-bezier(0.895, 0.03, 0.685, 0.22)":"Ease-in Quartic. Based on power of four.","cubic-bezier(0.77, 0, 0.175, 1)":"Ease-in-out Quartic. Based on power of four.","cubic-bezier(0.165, 0.84, 0.44, 1)":"Ease-out Quartic. Based on power of four.","cubic-bezier(0.755, 0.05, 0.855, 0.06)":"Ease-in Quintic. Based on power of five.","cubic-bezier(0.86, 0, 0.07, 1)":"Ease-in-out Quintic. Based on power of five.","cubic-bezier(0.23, 1, 0.320, 1)":"Ease-out Quintic. Based on power of five."},Zo={"circle()":"Defines a circle.","ellipse()":"Defines an ellipse.","inset()":"Defines an inset rectangle.","polygon()":"Defines a polygon."},Qo={length:["em","rem","ex","px","cm","mm","in","pt","pc","ch","vw","vh","vmin","vmax"],angle:["deg","rad","grad","turn"],time:["ms","s"],frequency:["Hz","kHz"],resolution:["dpi","dpcm","dppx"],percentage:["%","fr"]},es=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","const","video","wbr"],ts=["circle","clipPath","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","hatch","hatchpath","image","line","linearGradient","marker","mask","mesh","meshpatch","meshrow","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","solidcolor","stop","svg","switch","symbol","text","textPath","tspan","use","view"],ns=["@bottom-center","@bottom-left","@bottom-left-corner","@bottom-right","@bottom-right-corner","@left-bottom","@left-middle","@left-top","@right-bottom","@right-middle","@right-top","@top-center","@top-left","@top-left-corner","@top-right","@top-right-corner"];function rs(e){return Object.keys(e).map((function(t){return e[t]}))}function is(e){return"undefined"!==typeof e}var os=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;ie.offset?i-e.offset:0}return e},e.prototype.markError=function(e,t,n,r){this.token!==this.lastErrorToken&&(e.addIssue(new co(e,t,Gr.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(n||r)&&this.resync(n,r)},e.prototype.parseStylesheet=function(e){var t=e.version,n=e.getText(),r=function(r,i){if(e.version!==t)throw new Error("Underlying model has changed, AST is no longer valid");return n.substr(r,i)};return this.internalParse(n,this._parseStylesheet,r)},e.prototype.internalParse=function(e,t,n){this.scanner.setSource(e),this.token=this.scanner.scan();var r=t.bind(this)();return r&&(r.textProvider=n||function(t,n){return e.substr(t,n)}),r},e.prototype._parseStylesheet=function(){var e=this.create(Zr);while(e.addChild(this._parseStylesheetStart()));var t=!1;do{var n=!1;do{n=!1;var r=this._parseStylesheetStatement();r&&(e.addChild(r),n=!0,t=!1,this.peek(qn.EOF)||!this._needsSemicolonAfter(r)||this.accept(qn.SemiColon)||this.markError(e,bo.SemiColonExpected));while(this.accept(qn.SemiColon)||this.accept(qn.CDO)||this.accept(qn.CDC))n=!0,t=!1}while(n);if(this.peek(qn.EOF))break;t||(this.peek(qn.AtKeyword)?this.markError(e,bo.UnknownAtRule):this.markError(e,bo.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(qn.EOF));return this.finish(e)},e.prototype._parseStylesheetStart=function(){return this._parseCharset()},e.prototype._parseStylesheetStatement=function(e){return void 0===e&&(e=!1),this.peek(qn.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)},e.prototype._parseStylesheetAtStatement=function(e){return void 0===e&&(e=!1),this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseUnknownAtRule()},e.prototype._tryParseRuleset=function(e){var t=this.mark();if(this._parseSelector(e)){while(this.accept(qn.Comma)&&this._parseSelector(e));if(this.accept(qn.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null},e.prototype._parseRuleset=function(e){void 0===e&&(e=!1);var t=this.create(ti),n=t.getSelectors();if(!n.addChild(this._parseSelector(e)))return null;while(this.accept(qn.Comma))if(!n.addChild(this._parseSelector(e)))return this.finish(t,bo.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseRuleSetDeclarationAtStatement=function(){return this._parseUnknownAtRule()},e.prototype._parseRuleSetDeclaration=function(){return this.peek(qn.AtKeyword)?this._parseRuleSetDeclarationAtStatement():this._parseDeclaration()},e.prototype._needsSemicolonAfter=function(e){switch(e.type){case Kr.Keyframe:case Kr.ViewPort:case Kr.Media:case Kr.Ruleset:case Kr.Namespace:case Kr.If:case Kr.For:case Kr.Each:case Kr.While:case Kr.MixinDeclaration:case Kr.FunctionDeclaration:case Kr.MixinContentDeclaration:return!1;case Kr.ExtendsReference:case Kr.MixinContentReference:case Kr.ReturnStatement:case Kr.MediaQuery:case Kr.Debug:case Kr.Import:case Kr.AtApplyRule:case Kr.CustomPropertyDeclaration:return!0;case Kr.VariableDeclaration:return e.needsSemicolon;case Kr.MixinReference:return!e.getContent();case Kr.Declaration:return!e.getNestedProperties()}return!1},e.prototype._parseDeclarations=function(e){var t=this.create(Qr);if(!this.accept(qn.CurlyL))return null;var n=e();while(t.addChild(n)){if(this.peek(qn.CurlyR))break;if(this._needsSemicolonAfter(n)&&!this.accept(qn.SemiColon))return this.finish(t,bo.SemiColonExpected,[qn.SemiColon,qn.CurlyR]);n&&this.prevToken&&this.prevToken.type===qn.SemiColon&&(n.semicolonPosition=this.prevToken.offset);while(this.accept(qn.SemiColon));n=e()}return this.accept(qn.CurlyR)?this.finish(t):this.finish(t,bo.RightCurlyExpected,[qn.CurlyR,qn.SemiColon])},e.prototype._parseBody=function(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,bo.LeftCurlyExpected,[qn.CurlyR,qn.SemiColon])},e.prototype._parseSelector=function(e){var t=this.create(ni),n=!1;e&&(n=t.addChild(this._parseCombinator()));while(t.addChild(this._parseSimpleSelector()))n=!0,t.addChild(this._parseCombinator());return n?this.finish(t):null},e.prototype._parseDeclaration=function(e){var t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;var n=this.create(si);return n.setProperty(this._parseProperty())?this.accept(qn.Colon)?(this.prevToken&&(n.colonPosition=this.prevToken.offset),n.setValue(this._parseExpr())?(n.addChild(this._parsePrio()),this.peek(qn.SemiColon)&&(n.semicolonPosition=this.token.offset),this.finish(n)):this.finish(n,bo.PropertyValueExpected)):this.finish(n,bo.ColonExpected,[qn.Colon],e||[qn.SemiColon]):null},e.prototype._tryParseCustomPropertyDeclaration=function(e){if(!this.peekRegExp(qn.Ident,/^--/))return null;var t=this.create(ai);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(qn.Colon))return this.finish(t,bo.ColonExpected,[qn.Colon]);this.prevToken&&(t.colonPosition=this.prevToken.offset);var n=this.mark();if(this.peek(qn.CurlyL)){var r=this.create(oi),i=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(r.setDeclarations(i)&&!i.isErroneous(!0)&&(r.addChild(this._parsePrio()),this.peek(qn.SemiColon)))return this.finish(r),t.setPropertySet(r),t.semicolonPosition=this.token.offset,this.finish(t);this.restoreAtMark(n)}var o=this._parseExpr();return o&&!o.isErroneous(!0)&&(this._parsePrio(),this.peekOne.apply(this,os(os([],e||[],!1),[qn.SemiColon,qn.EOF],!1)))?(t.setValue(o),this.peek(qn.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):(this.restoreAtMark(n),t.addChild(this._parseCustomPropertyValue(e)),t.addChild(this._parsePrio()),is(t.colonPosition)&&this.token.offset===t.colonPosition+1?this.finish(t,bo.PropertyValueExpected):this.finish(t))},e.prototype._parseCustomPropertyValue=function(e){var t=this;void 0===e&&(e=[qn.CurlyR]);var n=this.create(Jr),r=function(){return 0===o&&0===s&&0===a},i=function(){return-1!==e.indexOf(t.token.type)},o=0,s=0,a=0;e:while(1){switch(this.token.type){case qn.SemiColon:if(r())break e;break;case qn.Exclamation:if(r())break e;break;case qn.CurlyL:o++;break;case qn.CurlyR:if(o--,o<0){if(i()&&0===s&&0===a)break e;return this.finish(n,bo.LeftCurlyExpected)}break;case qn.ParenthesisL:s++;break;case qn.ParenthesisR:if(s--,s<0){if(i()&&0===a&&0===o)break e;return this.finish(n,bo.LeftParenthesisExpected)}break;case qn.BracketL:a++;break;case qn.BracketR:if(a--,a<0)return this.finish(n,bo.LeftSquareBracketExpected);break;case qn.BadString:break e;case qn.EOF:var l=bo.RightCurlyExpected;return a>0?l=bo.RightSquareBracketExpected:s>0&&(l=bo.RightParenthesisExpected),this.finish(n,l)}this.consumeToken()}return this.finish(n)},e.prototype._tryToParseDeclaration=function(e){var t=this.mark();return this._parseProperty()&&this.accept(qn.Colon)?(this.restoreAtMark(t),this._parseDeclaration(e)):(this.restoreAtMark(t),null)},e.prototype._parseProperty=function(){var e=this.create(li),t=this.mark();return(this.acceptDelim("*")||this.acceptDelim("_"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null},e.prototype._parsePropertyIdentifier=function(){return this._parseIdent()},e.prototype._parseCharset=function(){if(!this.peek(qn.Charset))return null;var e=this.create(Jr);return this.consumeToken(),this.accept(qn.String)?this.accept(qn.SemiColon)?this.finish(e):this.finish(e,bo.SemiColonExpected):this.finish(e,bo.IdentifierExpected)},e.prototype._parseImport=function(){if(!this.peekKeyword("@import"))return null;var e=this.create(ki);return this.consumeToken(),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(qn.SemiColon)||this.peek(qn.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,bo.URIOrStringExpected)},e.prototype._parseNamespace=function(){if(!this.peekKeyword("@namespace"))return null;var e=this.create(Ti);return this.consumeToken(),e.addChild(this._parseURILiteral())||(e.addChild(this._parseIdent()),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral()))?this.accept(qn.SemiColon)?this.finish(e):this.finish(e,bo.SemiColonExpected):this.finish(e,bo.URIExpected,[qn.SemiColon])},e.prototype._parseFontFace=function(){if(!this.peekKeyword("@font-face"))return null;var e=this.create(wi);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseViewPort=function(){if(!this.peekKeyword("@-ms-viewport")&&!this.peekKeyword("@-o-viewport")&&!this.peekKeyword("@viewport"))return null;var e=this.create(yi);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseKeyframe=function(){if(!this.peekRegExp(qn.AtKeyword,this.keyframeRegex))return null;var e=this.create(Si),t=this.create(Jr);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches("@-ms-keyframes")&&this.markError(t,bo.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,bo.IdentifierExpected,[qn.CurlyR])},e.prototype._parseKeyframeIdent=function(){return this._parseIdent([jr.Keyframe])},e.prototype._parseKeyframeSelector=function(){var e=this.create(Ci);if(!e.addChild(this._parseIdent())&&!this.accept(qn.Percentage))return null;while(this.accept(qn.Comma))if(!e.addChild(this._parseIdent())&&!this.accept(qn.Percentage))return this.finish(e,bo.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._tryParseKeyframeSelector=function(){var e=this.create(Ci),t=this.mark();if(!e.addChild(this._parseIdent())&&!this.accept(qn.Percentage))return null;while(this.accept(qn.Comma))if(!e.addChild(this._parseIdent())&&!this.accept(qn.Percentage))return this.restoreAtMark(t),null;return this.peek(qn.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)},e.prototype._parseSupports=function(e){if(void 0===e&&(e=!1),!this.peekKeyword("@supports"))return null;var t=this.create(Ri);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))},e.prototype._parseSupportsDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseSupportsCondition=function(){var e=this.create(Oi);if(this.acceptIdent("not"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(qn.Ident,/^(and|or)$/i)){var t=this.token.text.toLowerCase();while(this.acceptIdent(t))e.addChild(this._parseSupportsConditionInParens())}return this.finish(e)},e.prototype._parseSupportsConditionInParens=function(){var e=this.create(Oi);if(this.accept(qn.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),e.addChild(this._tryToParseDeclaration([qn.ParenthesisR]))||this._parseSupportsCondition()?this.accept(qn.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,bo.RightParenthesisExpected,[qn.ParenthesisR],[]):this.finish(e,bo.ConditionExpected);if(this.peek(qn.Ident)){var t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(qn.ParenthesisL)){var n=1;while(this.token.type!==qn.EOF&&0!==n)this.token.type===qn.ParenthesisL?n++:this.token.type===qn.ParenthesisR&&n--,this.consumeToken();return this.finish(e)}this.restoreAtMark(t)}return this.finish(e,bo.LeftParenthesisExpected,[],[qn.ParenthesisL])},e.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseMedia=function(e){if(void 0===e&&(e=!1),!this.peekKeyword("@media"))return null;var t=this.create(Ni);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,bo.MediaQueryExpected)},e.prototype._parseMediaQueryList=function(){var e=this.create(zi);if(!e.addChild(this._parseMediaQuery()))return this.finish(e,bo.MediaQueryExpected);while(this.accept(qn.Comma))if(!e.addChild(this._parseMediaQuery()))return this.finish(e,bo.MediaQueryExpected);return this.finish(e)},e.prototype._parseMediaQuery=function(){var e=this.create(Ii),t=this.mark();if(this.acceptIdent("not"),this.peek(qn.ParenthesisL))this.restoreAtMark(t),e.addChild(this._parseMediaCondition());else{if(this.acceptIdent("only"),!e.addChild(this._parseIdent()))return null;this.acceptIdent("and")&&e.addChild(this._parseMediaCondition())}return this.finish(e)},e.prototype._parseRatio=function(){var e=this.mark(),t=this.create(qi);return this._parseNumeric()?this.acceptDelim("/")?this._parseNumeric()?this.finish(t):this.finish(t,bo.NumberExpected):(this.restoreAtMark(e),null):null},e.prototype._parseMediaCondition=function(){var e=this.create(Mi);this.acceptIdent("not");var t=!0;while(t){if(!this.accept(qn.ParenthesisL))return this.finish(e,bo.LeftParenthesisExpected,[],[qn.CurlyL]);if(this.peek(qn.ParenthesisL)||this.peekIdent("not")?e.addChild(this._parseMediaCondition()):e.addChild(this._parseMediaFeature()),!this.accept(qn.ParenthesisR))return this.finish(e,bo.RightParenthesisExpected,[],[qn.CurlyL]);t=this.acceptIdent("and")||this.acceptIdent("or")}return this.finish(e)},e.prototype._parseMediaFeature=function(){var e=this,t=[qn.ParenthesisR],n=this.create(Pi),r=function(){return e.acceptDelim("<")||e.acceptDelim(">")?(e.hasWhitespace()||e.acceptDelim("="),!0):!!e.acceptDelim("=")};if(n.addChild(this._parseMediaFeatureName())){if(this.accept(qn.Colon)){if(!n.addChild(this._parseMediaFeatureValue()))return this.finish(n,bo.TermExpected,[],t)}else if(r()){if(!n.addChild(this._parseMediaFeatureValue()))return this.finish(n,bo.TermExpected,[],t);if(r()&&!n.addChild(this._parseMediaFeatureValue()))return this.finish(n,bo.TermExpected,[],t)}}else{if(!n.addChild(this._parseMediaFeatureValue()))return this.finish(n,bo.IdentifierExpected,[],t);if(!r())return this.finish(n,bo.OperatorExpected,[],t);if(!n.addChild(this._parseMediaFeatureName()))return this.finish(n,bo.IdentifierExpected,[],t);if(r()&&!n.addChild(this._parseMediaFeatureValue()))return this.finish(n,bo.TermExpected,[],t)}return this.finish(n)},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()},e.prototype._parseMediaFeatureValue=function(){return this._parseRatio()||this._parseTermExpression()},e.prototype._parseMedium=function(){var e=this.create(Jr);return e.addChild(this._parseIdent())?this.finish(e):null},e.prototype._parsePageDeclaration=function(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()},e.prototype._parsePage=function(){if(!this.peekKeyword("@page"))return null;var e=this.create(Li);if(this.consumeToken(),e.addChild(this._parsePageSelector()))while(this.accept(qn.Comma))if(!e.addChild(this._parsePageSelector()))return this.finish(e,bo.IdentifierExpected);return this._parseBody(e,this._parsePageDeclaration.bind(this))},e.prototype._parsePageMarginBox=function(){if(!this.peek(qn.AtKeyword))return null;var e=this.create(Wi);return this.acceptOneKeyword(ns)||this.markError(e,bo.UnknownAtRule,[],[qn.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parsePageSelector=function(){if(!this.peek(qn.Ident)&&!this.peek(qn.Colon))return null;var e=this.create(Jr);return e.addChild(this._parseIdent()),this.accept(qn.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,bo.IdentifierExpected):this.finish(e)},e.prototype._parseDocument=function(){if(!this.peekKeyword("@-moz-document"))return null;var e=this.create(Ai);return this.consumeToken(),this.resync([],[qn.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))},e.prototype._parseUnknownAtRule=function(){if(!this.peek(qn.AtKeyword))return null;var e=this.create(io);e.addChild(this._parseUnknownAtRuleName());var t=function(){return 0===r&&0===i&&0===o},n=0,r=0,i=0,o=0;e:while(1){switch(this.token.type){case qn.SemiColon:if(t())break e;break;case qn.EOF:return r>0?this.finish(e,bo.RightCurlyExpected):o>0?this.finish(e,bo.RightSquareBracketExpected):i>0?this.finish(e,bo.RightParenthesisExpected):this.finish(e);case qn.CurlyL:n++,r++;break;case qn.CurlyR:if(r--,n>0&&0===r){if(this.consumeToken(),o>0)return this.finish(e,bo.RightSquareBracketExpected);if(i>0)return this.finish(e,bo.RightParenthesisExpected);break e}if(r<0){if(0===i&&0===o)break e;return this.finish(e,bo.LeftCurlyExpected)}break;case qn.ParenthesisL:i++;break;case qn.ParenthesisR:if(i--,i<0)return this.finish(e,bo.LeftParenthesisExpected);break;case qn.BracketL:o++;break;case qn.BracketR:if(o--,o<0)return this.finish(e,bo.LeftSquareBracketExpected);break}this.consumeToken()}return e},e.prototype._parseUnknownAtRuleName=function(){var e=this.create(Jr);return this.accept(qn.AtKeyword)?this.finish(e):e},e.prototype._parseOperator=function(){if(this.peekDelim("/")||this.peekDelim("*")||this.peekDelim("+")||this.peekDelim("-")||this.peek(qn.Dashmatch)||this.peek(qn.Includes)||this.peek(qn.SubstringOperator)||this.peek(qn.PrefixOperator)||this.peek(qn.SuffixOperator)||this.peekDelim("=")){var e=this.createNode(Kr.Operator);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseUnaryOperator=function(){if(!this.peekDelim("+")&&!this.peekDelim("-"))return null;var e=this.create(Jr);return this.consumeToken(),this.finish(e)},e.prototype._parseCombinator=function(){if(this.peekDelim(">")){var e=this.create(Jr);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(">")){if(!this.hasWhitespace()&&this.acceptDelim(">"))return e.type=Kr.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=Kr.SelectorCombinatorParent,this.finish(e)}if(this.peekDelim("+")){e=this.create(Jr);return this.consumeToken(),e.type=Kr.SelectorCombinatorSibling,this.finish(e)}if(this.peekDelim("~")){e=this.create(Jr);return this.consumeToken(),e.type=Kr.SelectorCombinatorAllSiblings,this.finish(e)}if(this.peekDelim("/")){e=this.create(Jr);this.consumeToken();t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent("deep")&&!this.hasWhitespace()&&this.acceptDelim("/"))return e.type=Kr.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null},e.prototype._parseSimpleSelector=function(){var e=this.create(ri),t=0;e.addChild(this._parseElementName())&&t++;while((0===t||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody()))t++;return t>0?this.finish(e):null},e.prototype._parseSimpleSelectorBody=function(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()},e.prototype._parseSelectorIdent=function(){return this._parseIdent()},e.prototype._parseHash=function(){if(!this.peek(qn.Hash)&&!this.peekDelim("#"))return null;var e=this.createNode(Kr.IdentifierSelector);if(this.acceptDelim("#")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,bo.IdentifierExpected)}else this.consumeToken();return this.finish(e)},e.prototype._parseClass=function(){if(!this.peekDelim("."))return null;var e=this.createNode(Kr.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,bo.IdentifierExpected):this.finish(e)},e.prototype._parseElementName=function(){var e=this.mark(),t=this.createNode(Kr.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),t.addChild(this._parseSelectorIdent())||this.acceptDelim("*")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseNamespacePrefix=function(){var e=this.mark(),t=this.createNode(Kr.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim("*"),this.acceptDelim("|")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseAttrib=function(){if(!this.peek(qn.BracketL))return null;var e=this.create(ji);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent("i")),this.accept(qn.BracketR)?this.finish(e):this.finish(e,bo.RightSquareBracketExpected)):this.finish(e,bo.IdentifierExpected)},e.prototype._parsePseudo=function(){var e=this,t=this._tryParsePseudoIdentifier();if(t){if(!this.hasWhitespace()&&this.accept(qn.ParenthesisL)){var n=function(){var t=e.create(Jr);if(!t.addChild(e._parseSelector(!1)))return null;while(e.accept(qn.Comma)&&t.addChild(e._parseSelector(!1)));return e.peek(qn.ParenthesisR)?e.finish(t):null};if(t.addChild(this.try(n)||this._parseBinaryExpr()),!this.accept(qn.ParenthesisR))return this.finish(t,bo.RightParenthesisExpected)}return this.finish(t)}return null},e.prototype._tryParsePseudoIdentifier=function(){if(!this.peek(qn.Colon))return null;var e=this.mark(),t=this.createNode(Kr.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(qn.Colon),this.hasWhitespace()||!t.addChild(this._parseIdent())?this.finish(t,bo.IdentifierExpected):this.finish(t))},e.prototype._tryParsePrio=function(){var e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)},e.prototype._parsePrio=function(){if(!this.peek(qn.Exclamation))return null;var e=this.createNode(Kr.Prio);return this.accept(qn.Exclamation)&&this.acceptIdent("important")?this.finish(e):null},e.prototype._parseExpr=function(e){void 0===e&&(e=!1);var t=this.create(Vi);if(!t.addChild(this._parseBinaryExpr()))return null;while(1){if(this.peek(qn.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)},e.prototype._parseNamedLine=function(){if(!this.peek(qn.BracketL))return null;var e=this.createNode(Kr.GridLine);this.consumeToken();while(e.addChild(this._parseIdent()));return this.accept(qn.BracketR)?this.finish(e):this.finish(e,bo.RightSquareBracketExpected)},e.prototype._parseBinaryExpr=function(e,t){var n=this.create(Ui);if(!n.setLeft(e||this._parseTerm()))return null;if(!n.setOperator(t||this._parseOperator()))return this.finish(n);if(!n.setRight(this._parseTerm()))return this.finish(n,bo.TermExpected);n=this.finish(n);var r=this._parseOperator();return r&&(n=this._parseBinaryExpr(n,r)),this.finish(n)},e.prototype._parseTerm=function(){var e=this.create(Ki);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseTermExpression())?this.finish(e):null},e.prototype._parseTermExpression=function(){return this._parseURILiteral()||this._parseFunction()||this._parseIdent()||this._parseStringLiteral()||this._parseNumeric()||this._parseHexColor()||this._parseOperation()||this._parseNamedLine()},e.prototype._parseOperation=function(){if(!this.peek(qn.ParenthesisL))return null;var e=this.create(Jr);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(qn.ParenthesisR)?this.finish(e):this.finish(e,bo.RightParenthesisExpected)},e.prototype._parseNumeric=function(){if(this.peek(qn.Num)||this.peek(qn.Percentage)||this.peek(qn.Resolution)||this.peek(qn.Length)||this.peek(qn.EMS)||this.peek(qn.EXS)||this.peek(qn.Angle)||this.peek(qn.Time)||this.peek(qn.Dimension)||this.peek(qn.Freq)){var e=this.create(Ji);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseStringLiteral=function(){if(!this.peek(qn.String)&&!this.peek(qn.BadString))return null;var e=this.createNode(Kr.StringLiteral);return this.consumeToken(),this.finish(e)},e.prototype._parseURILiteral=function(){if(!this.peekRegExp(qn.Ident,/^url(-prefix)?$/i))return null;var e=this.mark(),t=this.createNode(Kr.URILiteral);return this.accept(qn.Ident),this.hasWhitespace()||!this.peek(qn.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(qn.ParenthesisR)?this.finish(t):this.finish(t,bo.RightParenthesisExpected))},e.prototype._parseURLArgument=function(){var e=this.create(Jr);return this.accept(qn.String)||this.accept(qn.BadString)||this.acceptUnquotedString()?this.finish(e):null},e.prototype._parseIdent=function(e){if(!this.peek(qn.Ident))return null;var t=this.create(Yr);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(qn.Ident,/^--/),this.consumeToken(),this.finish(t)},e.prototype._parseFunction=function(){var e=this.mark(),t=this.create(di);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(qn.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))while(this.accept(qn.Comma)){if(this.peek(qn.ParenthesisR))break;t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,bo.ExpressionExpected)}return this.accept(qn.ParenthesisR)?this.finish(t):this.finish(t,bo.RightParenthesisExpected)},e.prototype._parseFunctionIdentifier=function(){if(!this.peek(qn.Ident))return null;var e=this.create(Yr);if(e.referenceTypes=[jr.Function],this.acceptIdent("progid")){if(this.accept(qn.Colon))while(this.accept(qn.Ident)&&this.acceptDelim("."));return this.finish(e)}return this.consumeToken(),this.finish(e)},e.prototype._parseFunctionArgument=function(){var e=this.create(pi);return e.setValue(this._parseExpr(!0))?this.finish(e):null},e.prototype._parseHexColor=function(){if(this.peekRegExp(qn.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){var e=this.create(Bi);return this.consumeToken(),this.finish(e)}return null},e}();function as(e,t){var n=0,r=e.length;if(0===r)return 0;while(ne+t||this.offset===e&&this.length===t?this.findInScope(e,t):null},e.prototype.findInScope=function(e,t){void 0===t&&(t=0);var n=e+t,r=as(this.children,(function(e){return e.offset>n}));if(0===r)return this;var i=this.children[r-1];return i.offset<=e&&i.offset+i.length>=e+t?i.findInScope(e,t):this},e.prototype.addSymbol=function(e){this.symbols.push(e)},e.prototype.getSymbol=function(e,t){for(var n=0;n0&&(i.arguments=n),i}function n(e){var t=e;return xa.defined(t)&&xa.string(t.title)&&xa.string(t.command)}e.create=t,e.is=n}(Es||(Es={})),function(e){function t(e,t){return{range:e,newText:t}}function n(e,t){return{range:{start:e,end:e},newText:t}}function r(e){return{range:e,newText:""}}function i(e){var t=e;return xa.objectLiteral(t)&&xa.string(t.newText)&&us.is(t.range)}e.replace=t,e.insert=n,e.del=r,e.is=i}(Fs||(Fs={})),function(e){function t(e,t,n){var r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r}function n(e){var t=e;return void 0!==t&&xa.objectLiteral(t)&&xa.string(t.label)&&(xa.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(xa.string(t.description)||void 0===t.description)}e.create=t,e.is=n}(Ds||(Ds={})),function(e){function t(e){var t=e;return"string"===typeof t}e.is=t}(Ts||(Ts={})),function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}function r(e,t){return{range:e,newText:"",annotationId:t}}function i(e){var t=e;return Fs.is(t)&&(Ds.is(t.annotationId)||Ts.is(t.annotationId))}e.replace=t,e.insert=n,e.del=r,e.is=i}(Ns||(Ns={})),function(e){function t(e,t){return{textDocument:e,edits:t}}function n(e){var t=e;return xa.defined(t)&&Bs.is(t.textDocument)&&Array.isArray(t.edits)}e.create=t,e.is=n}(Rs||(Rs={})),function(e){function t(e,t,n){var r={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(r.options=t),void 0!==n&&(r.annotationId=n),r}function n(e){var t=e;return t&&"create"===t.kind&&xa.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||xa.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||xa.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Ts.is(t.annotationId))}e.create=t,e.is=n}(As||(As={})),function(e){function t(e,t,n,r){var i={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),void 0!==r&&(i.annotationId=r),i}function n(e){var t=e;return t&&"rename"===t.kind&&xa.string(t.oldUri)&&xa.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||xa.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||xa.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Ts.is(t.annotationId))}e.create=t,e.is=n}(zs||(zs={})),function(e){function t(e,t,n){var r={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(r.options=t),void 0!==n&&(r.annotationId=n),r}function n(e){var t=e;return t&&"delete"===t.kind&&xa.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||xa.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||xa.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||Ts.is(t.annotationId))}e.create=t,e.is=n}(Is||(Is={})),function(e){function t(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return xa.string(e.kind)?As.is(e)||zs.is(e)||Is.is(e):Rs.is(e)})))}e.is=t}(Ms||(Ms={}));var Ks,js,Bs,qs,$s,Hs,Gs,Js,Xs,Ys,Zs,Qs,ea,ta,na,ra,ia,oa,sa,aa,la,ca,da,ha,pa,ua,ma,fa,ga,ba,va=function(){function e(e,t){this.edits=e,this.changeAnnotations=t}return e.prototype.insert=function(e,t,n){var r,i;if(void 0===n?r=Fs.insert(e,t):Ts.is(n)?(i=n,r=Ns.insert(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=Ns.insert(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.replace=function(e,t,n){var r,i;if(void 0===n?r=Fs.replace(e,t):Ts.is(n)?(i=n,r=Ns.replace(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=Ns.replace(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.delete=function(e,t){var n,r;if(void 0===t?n=Fs.del(e):Ts.is(t)?(r=t,n=Ns.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),n=Ns.del(e,r)),this.edits.push(n),void 0!==r)return r},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(e){if(void 0===e)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),ya=function(){function e(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(e,t){var n;if(Ts.is(e)?n=e:(n=this.nextId(),t=e),void 0!==this._annotations[n])throw new Error("Id "+n+" is already in use.");if(void 0===t)throw new Error("No annotation provided for id "+n);return this._annotations[n]=t,this._size++,n},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();(function(){function e(e){var t=this;this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new ya(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach((function(e){if(Rs.is(e)){var n=new va(e.edits,t._changeAnnotations);t._textEditChanges[e.textDocument.uri]=n}}))):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new va(e.changes[n]);t._textEditChanges[n]=r}))):this._workspaceEdit={}}Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(e){if(Bs.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version},n=this._textEditChanges[t.uri];if(!n){var r=[],i={textDocument:t,edits:r};this._workspaceEdit.documentChanges.push(i),n=new va(r,this._changeAnnotations),this._textEditChanges[t.uri]=n}return n}if(this.initChanges(),void 0===this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");n=this._textEditChanges[e];if(!n){r=[];this._workspaceEdit.changes[e]=r,n=new va(r),this._textEditChanges[e]=n}return n},e.prototype.initDocumentChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new ya,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(Ds.is(t)||Ts.is(t)?r=t:n=t,void 0===r?i=As.create(e,n):(o=Ts.is(r)?r:this._changeAnnotations.manage(r),i=As.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o},e.prototype.renameFile=function(e,t,n,r){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var i,o,s;if(Ds.is(n)||Ts.is(n)?i=n:r=n,void 0===i?o=zs.create(e,t,r):(s=Ts.is(i)?i:this._changeAnnotations.manage(i),o=zs.create(e,t,r,s)),this._workspaceEdit.documentChanges.push(o),void 0!==s)return s},e.prototype.deleteFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(Ds.is(t)||Ts.is(t)?r=t:n=t,void 0===r?i=Is.create(e,n):(o=Ts.is(r)?r:this._changeAnnotations.manage(r),i=Is.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o}})();(function(e){function t(e){return{uri:e}}function n(e){var t=e;return xa.defined(t)&&xa.string(t.uri)}e.create=t,e.is=n})(Ks||(Ks={})),function(e){function t(e,t){return{uri:e,version:t}}function n(e){var t=e;return xa.defined(t)&&xa.string(t.uri)&&xa.integer(t.version)}e.create=t,e.is=n}(js||(js={})),function(e){function t(e,t){return{uri:e,version:t}}function n(e){var t=e;return xa.defined(t)&&xa.string(t.uri)&&(null===t.version||xa.integer(t.version))}e.create=t,e.is=n}(Bs||(Bs={})),function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}function n(e){var t=e;return xa.defined(t)&&xa.string(t.uri)&&xa.string(t.languageId)&&xa.integer(t.version)&&xa.string(t.text)}e.create=t,e.is=n}(qs||(qs={})),function(e){e.PlainText="plaintext",e.Markdown="markdown"}($s||($s={})),function(e){function t(t){var n=t;return n===e.PlainText||n===e.Markdown}e.is=t}($s||($s={})),function(e){function t(e){var t=e;return xa.objectLiteral(e)&&$s.is(t.kind)&&xa.string(t.value)}e.is=t}(Hs||(Hs={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(Gs||(Gs={})),function(e){e.PlainText=1,e.Snippet=2}(Js||(Js={})),function(e){e.Deprecated=1}(Xs||(Xs={})),function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}function n(e){var t=e;return t&&xa.string(t.newText)&&us.is(t.insert)&&us.is(t.replace)}e.create=t,e.is=n}(Ys||(Ys={})),function(e){e.asIs=1,e.adjustIndentation=2}(Zs||(Zs={})),function(e){function t(e){return{label:e}}e.create=t}(Qs||(Qs={})),function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t}(ea||(ea={})),function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}function n(e){var t=e;return xa.string(t)||xa.objectLiteral(t)&&xa.string(t.language)&&xa.string(t.value)}e.fromPlainText=t,e.is=n}(ta||(ta={})),function(e){function t(e){var t=e;return!!t&&xa.objectLiteral(t)&&(Hs.is(t.contents)||ta.is(t.contents)||xa.typedArray(t.contents,ta.is))&&(void 0===e.range||us.is(e.range))}e.is=t}(na||(na={})),function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t}(ra||(ra={})),function(e){function t(e,t){for(var n=[],r=2;r=0;s--){var a=r[s],l=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=o))throw new Error("Overlapping edit");n=n.substring(0,l)+a.newText+n.substring(c,n.length),o=l}return n}function i(e,t){if(e.length<=1)return e;var n=e.length/2|0,r=e.slice(0,n),o=e.slice(n);i(r,t),i(o,t);var s=0,a=0,l=0;while(s0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return ps.create(0,e);while(ne?r=i:n=i+1}var o=n-1;return ps.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1e?r=i:n=i+1}var o=n-1;return{line:o,character:e-t[o]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function Ra(e){var t=Na(e.range);return t!==e.range?{newText:e.newText,range:t}:e}(function(e){function t(e,t,n,r){return new Fa(e,t,n,r)}function n(e,t,n){if(e instanceof Fa)return e.update(t,n),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")}function r(e,t){for(var n=e.getText(),r=Da(t.map(Ra),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=0,o=[],s=0,a=r;si&&o.push(n.substring(i,c)),l.newText.length&&o.push(l.newText),i=e.offsetAt(l.range.end)}return o.push(n.substr(i)),o.join("")}e.create=t,e.update=n,e.applyEdits=r})(Ca||(Ca={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[$s.Markdown,$s.PlainText]}},hover:{contentFormat:[$s.Markdown,$s.PlainText]}}}}(ka||(ka={})),function(e){e[e["Unknown"]=0]="Unknown",e[e["File"]=1]="File",e[e["Directory"]=2]="Directory",e[e["SymbolicLink"]=64]="SymbolicLink"}(_a||(_a={}));var Aa=n("ed59"),za=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;o--){var s=this.nodePath[o];if(s instanceof li)this.getCompletionsForDeclarationProperty(s.getParent(),i);else if(s instanceof Vi)s.parent instanceof Yi?this.getVariableProposals(null,i):this.getCompletionsForExpression(s,i);else if(s instanceof ri){var a=s.findAParent(Kr.ExtendsReference,Kr.Ruleset);if(a)if(a.type===Kr.ExtendsReference)this.getCompletionsForExtendsReference(a,s,i);else{var l=a;this.getCompletionsForSelector(l,l&&l.isNested(),i)}}else if(s instanceof pi)this.getCompletionsForFunctionArgument(s,s.getParent(),i);else if(s instanceof Qr)this.getCompletionsForDeclarations(s,i);else if(s instanceof Xi)this.getCompletionsForVariableDeclaration(s,i);else if(s instanceof ti)this.getCompletionsForRuleSet(s,i);else if(s instanceof Yi)this.getCompletionsForInterpolation(s,i);else if(s instanceof vi)this.getCompletionsForFunctionDeclaration(s,i);else if(s instanceof no)this.getCompletionsForMixinReference(s,i);else if(s instanceof di)this.getCompletionsForFunctionArgument(null,s,i);else if(s instanceof Ri)this.getCompletionsForSupports(s,i);else if(s instanceof Oi)this.getCompletionsForSupportsCondition(s,i);else if(s instanceof Qi)this.getCompletionsForExtendsReference(s,null,i);else if(s.type===Kr.URILiteral)this.getCompletionForUriLiteralValue(s,i);else if(null===s.parent)this.getCompletionForTopLevel(i);else{if(s.type!==Kr.StringLiteral||!this.isImportPathParent(s.parent.type))continue;this.getCompletionForImportPath(s,i)}if(i.items.length>0||this.offset>s.offset)return this.finalize(i)}return this.getCompletionsForStylesheet(i),0===i.items.length&&this.variablePrefix&&0===this.currentWord.indexOf(this.variablePrefix)&&this.getVariableProposals(null,i),this.finalize(i)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}},e.prototype.isImportPathParent=function(e){return e===Kr.Import},e.prototype.finalize=function(e){return e},e.prototype.findInNodePath=function(){for(var e=[],t=0;t=0;n--){var r=this.nodePath[n];if(-1!==e.indexOf(r.type))return r}return null},e.prototype.getCompletionsForDeclarationProperty=function(e,t){return this.getPropertyProposals(e,t)},e.prototype.getPropertyProposals=function(e,t){var n=this,r=this.isTriggerPropertyValueCompletionEnabled,i=this.isCompletePropertyWithSemicolonEnabled,o=this.cssDataManager.getProperties();return o.forEach((function(o){var s,a,l=!1;e?(s=n.getCompletionRange(e.getProperty()),a=o.name,is(e.colonPosition)||(a+=": ",l=!0)):(s=n.getCompletionRange(null),a=o.name+": ",l=!0),!e&&i&&(a+="$0;"),e&&!e.semicolonPosition&&i&&n.offset>=n.textDocument.offsetAt(s.end)&&(a+="$0;");var c={label:o.name,documentation:wo(o,n.doesSupportMarkdown()),tags:Qa(o)?[Xs.Deprecated]:[],textEdit:Fs.replace(s,a),insertTextFormat:Js.Snippet,kind:Gs.Property};o.restrictions||(l=!1),r&&l&&(c.command=Ya);var d="number"===typeof o.relevance?Math.min(Math.max(o.relevance,0),99):50,h=(255-d).toString(16),p=Or(o.name,"-")?$a.VendorPrefixed:$a.Normal;c.sortText=p+"_"+h,t.items.push(c)})),this.completionParticipants.forEach((function(e){e.onCssProperty&&e.onCssProperty({propertyName:n.currentWord,range:n.defaultReplaceRange})})),t},Object.defineProperty(e.prototype,"isTriggerPropertyValueCompletionEnabled",{get:function(){var e,t;return null===(t=null===(e=this.documentSettings)||void 0===e?void 0:e.triggerPropertyValueCompletion)||void 0===t||t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isCompletePropertyWithSemicolonEnabled",{get:function(){var e,t;return null===(t=null===(e=this.documentSettings)||void 0===e?void 0:e.completePropertyWithSemicolon)||void 0===t||t},enumerable:!1,configurable:!0}),e.prototype.getCompletionsForDeclarationValue=function(e,t){var n=this,r=e.getFullPropertyName(),i=this.cssDataManager.getProperty(r),o=e.getValue()||null;while(o&&o.hasChildren())o=o.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach((function(e){e.onCssPropertyValue&&e.onCssPropertyValue({propertyName:r,propertyValue:n.currentWord,range:n.getCompletionRange(o)})})),i){if(i.restrictions)for(var s=0,a=i.restrictions;s=e.offset+2&&this.getVariableProposals(null,t),t},e.prototype.getVariableProposals=function(e,t){for(var n=this.getSymbolContext().findSymbolsAtOffset(this.offset,jr.Variable),r=0,i=n;r0){var i=this.currentWord.match(/^-?\d[\.\d+]*/);i&&(r=i[0],n.isIncomplete=r.length===this.currentWord.length)}else 0===this.currentWord.length&&(n.isIncomplete=!0);if(t&&t.parent&&t.parent.type===Kr.Term&&(t=t.getParent()),e.restrictions)for(var o=0,s=e.restrictions;o=n.end;if(r)return this.getCompletionForTopLevel(t);var i=!n||this.offset<=n.offset;return i?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)},e.prototype.getCompletionsForSelector=function(e,t,n){var r=this,i=this.findInNodePath(Kr.PseudoSelector,Kr.IdentifierSelector,Kr.ClassSelector,Kr.ElementNameSelector);!i&&this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord,this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord),this.defaultReplaceRange=us.create(ps.create(this.position.line,this.position.character-this.currentWord.length),this.position));var o=this.cssDataManager.getPseudoClasses();o.forEach((function(e){var t=tl(e.name),o={label:e.name,textEdit:Fs.replace(r.getCompletionRange(i),t),documentation:wo(e,r.doesSupportMarkdown()),tags:Qa(e)?[Xs.Deprecated]:[],kind:Gs.Function,insertTextFormat:e.name!==t?Xa:void 0};Or(e.name,":-")&&(o.sortText=$a.VendorPrefixed),n.items.push(o)}));var s=this.cssDataManager.getPseudoElements();if(s.forEach((function(e){var t=tl(e.name),o={label:e.name,textEdit:Fs.replace(r.getCompletionRange(i),t),documentation:wo(e,r.doesSupportMarkdown()),tags:Qa(e)?[Xs.Deprecated]:[],kind:Gs.Function,insertTextFormat:e.name!==t?Xa:void 0};Or(e.name,"::-")&&(o.sortText=$a.VendorPrefixed),n.items.push(o)})),!t){for(var a=0,l=es;a0){var t=u.substr(e.offset,e.length);return"."!==t.charAt(0)||p[t]||(p[t]=!0,n.items.push({label:t,textEdit:Fs.replace(r.getCompletionRange(i),t),kind:Gs.Keyword})),!1}return!0})),e&&e.isNested()){var m=e.getSelectors().findFirstChildBeforeOffset(this.offset);m&&0===e.getSelectors().getChildren().indexOf(m)&&this.getPropertyProposals(null,n)}return n},e.prototype.getCompletionsForDeclarations=function(e,t){if(!e||this.offset===e.offset)return t;var n=e.findFirstChildBeforeOffset(this.offset);if(!n)return this.getCompletionsForDeclarationProperty(null,t);if(n instanceof ii){var r=n;if(!is(r.colonPosition)||this.offset<=r.colonPosition)return this.getCompletionsForDeclarationProperty(r,t);if(is(r.semicolonPosition)&&r.semicolonPositione.colonPosition&&this.getVariableProposals(e.getValue(),t),t},e.prototype.getCompletionsForExpression=function(e,t){var n=e.getParent();if(n instanceof pi)return this.getCompletionsForFunctionArgument(n,n.getParent(),t),t;var r=e.findParent(Kr.Declaration);if(!r)return this.getTermProposals(void 0,null,t),t;var i=e.findChildAtOffset(this.offset,!0);return i?i instanceof Ji||i instanceof Yr?this.getCompletionsForDeclarationValue(r,t):t:this.getCompletionsForDeclarationValue(r,t)},e.prototype.getCompletionsForFunctionArgument=function(e,t,n){var r=t.getIdentifier();return r&&r.matches("var")&&(t.getArguments().hasChildren()&&t.getArguments().getChild(0)!==e||this.getVariableProposalsForCSSVarFunction(n)),n},e.prototype.getCompletionsForFunctionDeclaration=function(e,t){var n=e.getDeclarations();return n&&this.offset>n.offset&&this.offsete.lParent&&(!is(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t},e.prototype.getCompletionsForSupports=function(e,t){var n=e.getDeclarations(),r=!n||this.offset<=n.offset;if(r){var i=e.findFirstChildBeforeOffset(this.offset);return i instanceof Oi?this.getCompletionsForSupportsCondition(i,t):t}return this.getCompletionForTopLevel(t)},e.prototype.getCompletionsForExtendsReference=function(e,t,n){return n},e.prototype.getCompletionForUriLiteralValue=function(e,t){var n,r,i;if(e.hasChildren()){var o=e.getChild(0);n=o.getText(),r=this.position,i=this.getCompletionRange(o)}else{n="",r=this.position;var s=this.textDocument.positionAt(e.offset+"url(".length);i=us.create(s,s)}return this.completionParticipants.forEach((function(e){e.onCssURILiteralValue&&e.onCssURILiteralValue({uriValue:n,position:r,range:i})})),t},e.prototype.getCompletionForImportPath=function(e,t){var n=this;return this.completionParticipants.forEach((function(t){t.onCssImportPath&&t.onCssImportPath({pathValue:e.getText(),position:n.position,range:n.getCompletionRange(e)})})),t},e.prototype.hasCharacterAtPosition=function(e,t){var n=this.textDocument.getText();return e>=0&&e=0&&-1===' \t\n\r":{[()]},*>+'.indexOf(r.charAt(n)))n--;return r.substring(n+1,t)}function sl(e){return e.toLowerCase()in Fo||/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)}var al,ll=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),cl=mo(),dl=function(){function e(){this.parent=null,this.children=null,this.attributes=null}return e.prototype.findAttribute=function(e){if(this.attributes)for(var t=0,n=this.attributes;t"),this.writeLine(t,r.join(""))}},e}();(function(e){function t(e,t){return t+n(e)+t}function n(e){var t=e.match(/^['"](.*)["']$/);return t?t[1]:e}e.ensure=t,e.remove=n})(al||(al={}));var ml=function(){function e(){this.id=0,this.attr=0,this.tag=0}return e}();function fl(e,t){for(var n=new dl,r=0,i=e.getChildren();r1){var c=t.cloneWithParent();n.addChild(c.findRoot()),n=c}n.append(s[l])}}break;case Kr.SelectorPlaceholder:if(o.matches("@at-root"))return n;case Kr.ElementNameSelector:var d=o.getText();n.addAttr("name","*"===d?"element":gl(d));break;case Kr.ClassSelector:n.addAttr("class",gl(o.getText().substring(1)));break;case Kr.IdentifierSelector:n.addAttr("id",gl(o.getText().substring(1)));break;case Kr.MixinDeclaration:n.addAttr("class",o.getName());break;case Kr.PseudoSelector:n.addAttr(gl(o.getText()),"");break;case Kr.AttributeSelector:var h=o,p=h.getIdentifier();if(p){var u=h.getValue(),m=h.getOperator(),f=void 0;if(u&&m)switch(gl(m.getText())){case"|=":f=al.remove(gl(u.getText()))+"-…";break;case"^=":f=al.remove(gl(u.getText()))+"…";break;case"$=":f="…"+al.remove(gl(u.getText()));break;case"~=":f=" … "+al.remove(gl(u.getText()))+" … ";break;case"*=":f="…"+al.remove(gl(u.getText()))+"…";break;default:f=al.remove(gl(u.getText()));break}n.addAttr(gl(p.getText()),f)}break}}return n}function gl(e){var t=new Pr;t.setSource(e);var n=t.scanUnquotedString();return n?n.text:e}var bl=function(){function e(e){this.cssDataManager=e}return e.prototype.selectorToMarkedString=function(e){var t=wl(e);if(t){var n=new ul('"').print(t);return n.push(this.selectorToSpecificityMarkedString(e)),n}return[]},e.prototype.simpleSelectorToMarkedString=function(e){var t=fl(e),n=new ul('"').print(t);return n.push(this.selectorToSpecificityMarkedString(e)),n},e.prototype.isPseudoElementIdentifier=function(e){var t=e.match(/^::?([\w-]+)/);return!!t&&!!this.cssDataManager.getPseudoElement("::"+t[1])},e.prototype.selectorToSpecificityMarkedString=function(e){var t=this,n=function(e){for(var i=0,o=e.getChildren();i0&&n(s)}},r=new ml;return n(e),cl("specificity","[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})",r.id,r.attr,r.tag)},e}(),vl=function(){function e(e){this.prev=null,this.element=e}return e.prototype.processSelector=function(e){var t=null;if(!(this.element instanceof hl)&&e.getChildren().some((function(e){return e.hasChildren()&&e.getChild(0).type===Kr.SelectorCombinator}))){var n=this.element.findRoot();n.parent instanceof hl&&(t=this.element,this.element=n.parent,this.element.removeChild(n),this.prev=null)}for(var r=0,i=e.getChildren();r=0;s--){var a=n[s].getSelectors().getChild(0);a&&o.processSelector(a)}return o.processSelector(e),t}var xl=function(){function e(e,t){this.clientCapabilities=e,this.cssDataManager=t,this.selectorPrinting=new bl(t)}return e.prototype.configure=function(e){this.defaultSettings=e},e.prototype.doHover=function(e,t,n,r){function i(t){return us.create(e.positionAt(t.offset),e.positionAt(t.end))}void 0===r&&(r=this.defaultSettings);for(var o=e.offsetAt(t),s=$r(n,o),a=null,l=0;l0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=i.length/2&&o.push({property:e.name,score:t})})),o.sort((function(e,t){return t.score-e.score||e.property.localeCompare(t.property)}));for(var s=3,a=0,l=o;a=0;a--){var l=s[a];if(l instanceof si){var c=l.getProperty();if(c&&c.offset===i&&c.end===o)return void this.getFixesForUnknownProperty(e,c,n,r)}}},e}(),ql=function(){function e(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e}return e}();function $l(e,t,n,r){var i=e[t];i.value=n,n&&(ls(i.properties,r)||i.properties.push(r))}function Hl(e,t,n){$l(e,"top",t,n),$l(e,"right",t,n),$l(e,"bottom",t,n),$l(e,"left",t,n)}function Gl(e,t,n,r){"top"===t||"right"===t||"bottom"===t||"left"===t?$l(e,t,n,r):Hl(e,n,r)}function Jl(e,t,n){switch(t.length){case 1:Gl(e,void 0,t[0],n);break;case 2:Gl(e,"top",t[0],n),Gl(e,"bottom",t[0],n),Gl(e,"right",t[1],n),Gl(e,"left",t[1],n);break;case 3:Gl(e,"top",t[0],n),Gl(e,"right",t[1],n),Gl(e,"left",t[1],n),Gl(e,"bottom",t[2],n);break;case 4:Gl(e,"top",t[0],n),Gl(e,"right",t[1],n),Gl(e,"bottom",t[2],n),Gl(e,"left",t[3],n);break}}function Xl(e,t){for(var n=0,r=t;n0)for(var f=this.fetch(r,"float"),g=0;g0)for(f=this.fetch(r,"vertical-align"),g=0;g1)for(var S=0;S")||this.peekDelim("<")||this.peekIdent("and")||this.peekIdent("or")||this.peekDelim("%")){var t=this.createNode(Kr.Operator);return this.consumeToken(),this.finish(t)}return e.prototype._parseOperator.call(this)},t.prototype._parseUnaryOperator=function(){if(this.peekIdent("not")){var t=this.create(Jr);return this.consumeToken(),this.finish(t)}return e.prototype._parseUnaryOperator.call(this)},t.prototype._parseRuleSetDeclaration=function(){return this.peek(qn.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0)||e.prototype._parseRuleSetDeclarationAtStatement.call(this):this._parseVariableDeclaration()||this._tryParseRuleset(!0)||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseDeclaration=function(e){var t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;var n=this.create(si);if(!n.setProperty(this._parseProperty()))return null;if(!this.accept(qn.Colon))return this.finish(n,bo.ColonExpected,[qn.Colon],e||[qn.SemiColon]);this.prevToken&&(n.colonPosition=this.prevToken.offset);var r=!1;if(n.setValue(this._parseExpr())&&(r=!0,n.addChild(this._parsePrio())),this.peek(qn.CurlyL))n.setNestedProperties(this._parseNestedProperties());else if(!r)return this.finish(n,bo.PropertyValueExpected);return this.peek(qn.SemiColon)&&(n.semicolonPosition=this.token.offset),this.finish(n)},t.prototype._parseNestedProperties=function(){var e=this.create(xi);return this._parseBody(e,this._parseDeclaration.bind(this))},t.prototype._parseExtends=function(){if(this.peekKeyword("@extend")){var e=this.create(Qi);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,bo.SelectorExpected);while(this.accept(qn.Comma))e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(qn.Exclamation)&&!this.acceptIdent("optional")?this.finish(e,bo.UnknownKeyword):this.finish(e)}return null},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||this._parseSelectorPlaceholder()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim("&")){var e=this.createNode(Kr.SelectorCombinator);this.consumeToken();while(!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(qn.Num)||this.accept(qn.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")));return this.finish(e)}return null},t.prototype._parseSelectorPlaceholder=function(){if(this.peekDelim("%")){var e=this.createNode(Kr.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}if(this.peekKeyword("@at-root")){e=this.createNode(Kr.SelectorPlaceholder);return this.consumeToken(),this.finish(e)}return null},t.prototype._parseElementName=function(){var t=this.mark(),n=e.prototype._parseElementName.call(this);return n&&!this.hasWhitespace()&&this.peek(qn.ParenthesisL)?(this.restoreAtMark(t),null):n},t.prototype._tryParsePseudoIdentifier=function(){return this._parseInterpolation()||e.prototype._tryParsePseudoIdentifier.call(this)},t.prototype._parseWarnAndDebug=function(){if(!this.peekKeyword("@debug")&&!this.peekKeyword("@warn")&&!this.peekKeyword("@error"))return null;var e=this.createNode(Kr.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)},t.prototype._parseControlStatement=function(e){return void 0===e&&(e=this._parseRuleSetDeclaration.bind(this)),this.peek(qn.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null},t.prototype._parseIfStatement=function(e){return this.peekKeyword("@if")?this._internalParseIfStatement(e):null},t.prototype._internalParseIfStatement=function(e){var t=this.create(ui);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,bo.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword("@else"))if(this.peekIdent("if"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(qn.CurlyL)){var n=this.create(bi);this._parseBody(n,e),t.setElseClause(n)}return this.finish(t)},t.prototype._parseForStatement=function(e){if(!this.peekKeyword("@for"))return null;var t=this.create(mi);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent("from")?t.addChild(this._parseBinaryExpr())?this.acceptIdent("to")||this.acceptIdent("through")?t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,bo.ExpressionExpected,[qn.CurlyR]):this.finish(t,Rc.ThroughOrToExpected,[qn.CurlyR]):this.finish(t,bo.ExpressionExpected,[qn.CurlyR]):this.finish(t,Rc.FromExpected,[qn.CurlyR]):this.finish(t,bo.VariableNameExpected,[qn.CurlyR])},t.prototype._parseEachStatement=function(e){if(!this.peekKeyword("@each"))return null;var t=this.create(fi);this.consumeToken();var n=t.getVariables();if(!n.addChild(this._parseVariable()))return this.finish(t,bo.VariableNameExpected,[qn.CurlyR]);while(this.accept(qn.Comma))if(!n.addChild(this._parseVariable()))return this.finish(t,bo.VariableNameExpected,[qn.CurlyR]);return this.finish(n),this.acceptIdent("in")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,bo.ExpressionExpected,[qn.CurlyR]):this.finish(t,Rc.InExpected,[qn.CurlyR])},t.prototype._parseWhileStatement=function(e){if(!this.peekKeyword("@while"))return null;var t=this.create(gi);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,bo.ExpressionExpected,[qn.CurlyR])},t.prototype._parseFunctionBodyDeclaration=function(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))},t.prototype._parseFunctionDeclaration=function(){if(!this.peekKeyword("@function"))return null;var e=this.create(vi);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([jr.Function])))return this.finish(e,bo.IdentifierExpected,[qn.CurlyR]);if(!this.accept(qn.ParenthesisL))return this.finish(e,bo.LeftParenthesisExpected,[qn.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration()))while(this.accept(qn.Comma)){if(this.peek(qn.ParenthesisR))break;if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,bo.VariableNameExpected)}return this.accept(qn.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,bo.RightParenthesisExpected,[qn.CurlyR])},t.prototype._parseReturnStatement=function(){if(!this.peekKeyword("@return"))return null;var e=this.createNode(Kr.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,bo.ExpressionExpected)},t.prototype._parseMixinDeclaration=function(){if(!this.peekKeyword("@mixin"))return null;var e=this.create(ro);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([jr.Mixin])))return this.finish(e,bo.IdentifierExpected,[qn.CurlyR]);if(this.accept(qn.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration()))while(this.accept(qn.Comma)){if(this.peek(qn.ParenthesisR))break;if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,bo.VariableNameExpected)}if(!this.accept(qn.ParenthesisR))return this.finish(e,bo.RightParenthesisExpected,[qn.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},t.prototype._parseParameterDeclaration=function(){var e=this.create(hi);return e.setIdentifier(this._parseVariable())?(this.accept(Fc),this.accept(qn.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,bo.VariableValueExpected,[],[qn.Comma,qn.ParenthesisR]):this.finish(e)):null},t.prototype._parseMixinContent=function(){if(!this.peekKeyword("@content"))return null;var e=this.create(eo);if(this.consumeToken(),this.accept(qn.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))while(this.accept(qn.Comma)){if(this.peek(qn.ParenthesisR))break;if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,bo.ExpressionExpected)}if(!this.accept(qn.ParenthesisR))return this.finish(e,bo.RightParenthesisExpected)}return this.finish(e)},t.prototype._parseMixinReference=function(){if(!this.peekKeyword("@include"))return null;var e=this.create(no);this.consumeToken();var t=this._parseIdent([jr.Mixin]);if(!e.setIdentifier(t))return this.finish(e,bo.IdentifierExpected,[qn.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(".")&&!this.hasWhitespace()){var n=this._parseIdent([jr.Mixin]);if(!n)return this.finish(e,bo.IdentifierExpected,[qn.CurlyR]);var r=this.create(lo);t.referenceTypes=[jr.Module],r.setIdentifier(t),e.setIdentifier(n),e.addChild(r)}if(this.accept(qn.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))while(this.accept(qn.Comma)){if(this.peek(qn.ParenthesisR))break;if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,bo.ExpressionExpected)}if(!this.accept(qn.ParenthesisR))return this.finish(e,bo.RightParenthesisExpected)}return(this.peekIdent("using")||this.peek(qn.CurlyL))&&e.setContent(this._parseMixinContentDeclaration()),this.finish(e)},t.prototype._parseMixinContentDeclaration=function(){var e=this.create(to);if(this.acceptIdent("using")){if(!this.accept(qn.ParenthesisL))return this.finish(e,bo.LeftParenthesisExpected,[qn.CurlyL]);if(e.getParameters().addChild(this._parseParameterDeclaration()))while(this.accept(qn.Comma)){if(this.peek(qn.ParenthesisR))break;if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,bo.VariableNameExpected)}if(!this.accept(qn.ParenthesisR))return this.finish(e,bo.RightParenthesisExpected,[qn.CurlyL])}return this.peek(qn.CurlyL)&&this._parseBody(e,this._parseMixinReferenceBodyStatement.bind(this)),this.finish(e)},t.prototype._parseMixinReferenceBodyStatement=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._parseFunctionArgument=function(){var e=this.create(pi),t=this.mark(),n=this._parseVariable();if(n)if(this.accept(qn.Colon))e.setIdentifier(n);else{if(this.accept(Fc))return e.setValue(n),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(Fc),e.addChild(this._parsePrio()),this.finish(e)):e.setValue(this._tryParsePrio())?this.finish(e):null},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(qn.ParenthesisR)){this.restoreAtMark(t);var r=this.create(Jr);return r.addChild(this._parseBinaryExpr()),this.finish(r)}return n},t.prototype._parseOperation=function(){if(!this.peek(qn.ParenthesisL))return null;var e=this.create(Jr);this.consumeToken();while(e.addChild(this._parseListElement()))this.accept(qn.Comma);return this.accept(qn.ParenthesisR)?this.finish(e):this.finish(e,bo.RightParenthesisExpected)},t.prototype._parseListElement=function(){var e=this.create(oo),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(qn.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,bo.ExpressionExpected)}else e.setValue(t);return this.finish(e)},t.prototype._parseUse=function(){if(!this.peekKeyword("@use"))return null;var e=this.create(_i);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,bo.StringLiteralExpected);if(!this.peek(qn.SemiColon)&&!this.peek(qn.EOF)){if(!this.peekRegExp(qn.Ident,/as|with/))return this.finish(e,bo.UnknownKeyword);if(this.acceptIdent("as")&&!e.setIdentifier(this._parseIdent([jr.Module]))&&!this.acceptDelim("*"))return this.finish(e,bo.IdentifierOrWildcardExpected);if(this.acceptIdent("with")){if(!this.accept(qn.ParenthesisL))return this.finish(e,bo.LeftParenthesisExpected,[qn.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,bo.VariableNameExpected);while(this.accept(qn.Comma)){if(this.peek(qn.ParenthesisR))break;if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,bo.VariableNameExpected)}if(!this.accept(qn.ParenthesisR))return this.finish(e,bo.RightParenthesisExpected)}}return this.accept(qn.SemiColon)||this.accept(qn.EOF)?this.finish(e):this.finish(e,bo.SemiColonExpected)},t.prototype._parseModuleConfigDeclaration=function(){var e=this.create(Ei);return e.setIdentifier(this._parseVariable())?this.accept(qn.Colon)&&e.setValue(this._parseExpr(!0))?!this.accept(qn.Exclamation)||!this.hasWhitespace()&&this.acceptIdent("default")?this.finish(e):this.finish(e,bo.UnknownKeyword):this.finish(e,bo.VariableValueExpected,[],[qn.Comma,qn.ParenthesisR]):null},t.prototype._parseForward=function(){if(!this.peekKeyword("@forward"))return null;var e=this.create(Fi);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,bo.StringLiteralExpected);if(this.acceptIdent("with")){if(!this.accept(qn.ParenthesisL))return this.finish(e,bo.LeftParenthesisExpected,[qn.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,bo.VariableNameExpected);while(this.accept(qn.Comma)){if(this.peek(qn.ParenthesisR))break;if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,bo.VariableNameExpected)}if(!this.accept(qn.ParenthesisR))return this.finish(e,bo.RightParenthesisExpected)}if(!this.peek(qn.SemiColon)&&!this.peek(qn.EOF)){if(!this.peekRegExp(qn.Ident,/as|hide|show/))return this.finish(e,bo.UnknownKeyword);if(this.acceptIdent("as")){var t=this._parseIdent([jr.Forward]);if(!e.setIdentifier(t))return this.finish(e,bo.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim("*"))return this.finish(e,bo.WildcardExpected)}if((this.peekIdent("hide")||this.peekIdent("show"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,bo.IdentifierOrVariableExpected)}return this.accept(qn.SemiColon)||this.accept(qn.EOF)?this.finish(e):this.finish(e,bo.SemiColonExpected)},t.prototype._parseForwardVisibility=function(){var e=this.create(Di);e.setIdentifier(this._parseIdent());while(e.addChild(this._parseVariable()||this._parseIdent()))this.accept(qn.Comma);return e.getChildren().length>1?e:null},t.prototype._parseSupportsCondition=function(){return this._parseInterpolation()||e.prototype._parseSupportsCondition.call(this)},t}(ss),Ic=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Mc=mo(),Pc=function(e){function t(n,r){var i=e.call(this,"$",n,r)||this;return Oc(t.scssModuleLoaders),Oc(t.scssModuleBuiltIns),i}return Ic(t,e),t.prototype.isImportPathParent=function(t){return t===Kr.Forward||t===Kr.Use||e.prototype.isImportPathParent.call(this,t)},t.prototype.getCompletionForImportPath=function(n,r){var i=n.getParent().type;if(i===Kr.Forward||i===Kr.Use)for(var o=0,s=t.scssModuleBuiltIns;o0){var t="string"===typeof e.documentation?{kind:"markdown",value:e.documentation}:{kind:"markdown",value:e.documentation.value};t.value+="\n\n",t.value+=e.references.map((function(e){return"["+e.name+"]("+e.url+")"})).join(" | "),e.documentation=t}}))}var Lc=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Wc="/".charCodeAt(0),Vc="\n".charCodeAt(0),Uc="\r".charCodeAt(0),Kc="\f".charCodeAt(0),jc="`".charCodeAt(0),Bc=".".charCodeAt(0),qc=qn.CustomToken,$c=qc++,Hc=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Lc(t,e),t.prototype.scanNext=function(t){var n=this.escapedJavaScript();return null!==n?this.finishToken(t,n):this.stream.advanceIfChars([Bc,Bc,Bc])?this.finishToken(t,$c):e.prototype.scanNext.call(this,t)},t.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([Wc,Wc]))&&(this.stream.advanceWhileChar((function(e){switch(e){case Vc:case Uc:case Kc:return!1;default:return!0}})),!0)},t.prototype.escapedJavaScript=function(){var e=this.stream.peekChar();return e===jc?(this.stream.advance(1),this.stream.advanceWhileChar((function(e){return e!==jc})),this.stream.advanceIfChar(jc)?qn.EscapedJavaScript:qn.BadEscapedJavaScript):null},t}(Pr),Gc=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Jc=function(e){function t(){return e.call(this,new Hc)||this}return Gc(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(qn.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||e.prototype._parseStylesheetAtStatement.call(this,t):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},t.prototype._parseImport=function(){if(!this.peekKeyword("@import")&&!this.peekKeyword("@import-once"))return null;var e=this.create(ki);if(this.consumeToken(),this.accept(qn.ParenthesisL)){if(!this.accept(qn.Ident))return this.finish(e,bo.IdentifierExpected,[qn.SemiColon]);do{if(!this.accept(qn.Comma))break}while(this.accept(qn.Ident));if(!this.accept(qn.ParenthesisR))return this.finish(e,bo.RightParenthesisExpected,[qn.SemiColon])}return e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(qn.SemiColon)||this.peek(qn.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,bo.URIOrStringExpected,[qn.SemiColon])},t.prototype._parsePlugin=function(){if(!this.peekKeyword("@plugin"))return null;var e=this.createNode(Kr.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(qn.SemiColon)?this.finish(e):this.finish(e,bo.SemiColonExpected):this.finish(e,bo.StringLiteralExpected)},t.prototype._parseMediaQuery=function(){var t=e.prototype._parseMediaQuery.call(this);if(!t){var n=this.create(Ii);return n.addChild(this._parseVariable())?this.finish(n):null}return t},t.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)},t.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},t.prototype._parseVariableDeclaration=function(e){void 0===e&&(e=[]);var t=this.create(Xi),n=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(!this.accept(qn.Colon))return this.restoreAtMark(n),null;if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,bo.VariableValueExpected,[],e);return t.addChild(this._parsePrio()),this.peek(qn.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseDetachedRuleSet=function(){var e=this.mark();if(this.peekDelim("#")||this.peekDelim(".")){if(this.consumeToken(),this.hasWhitespace()||!this.accept(qn.ParenthesisL))return this.restoreAtMark(e),null;var t=this.create(ro);if(t.getParameters().addChild(this._parseMixinParameter()))while(this.accept(qn.Comma)||this.accept(qn.SemiColon)){if(this.peek(qn.ParenthesisR))break;t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,bo.IdentifierExpected,[],[qn.ParenthesisR])}if(!this.accept(qn.ParenthesisR))return this.restoreAtMark(e),null}if(!this.peek(qn.CurlyL))return null;var n=this.create(ei);return this._parseBody(n,this._parseDetachedRuleSetBody.bind(this)),this.finish(n)},t.prototype._parseDetachedRuleSetBody=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._addLookupChildren=function(e){if(!e.addChild(this._parseLookupValue()))return!1;var t=!1;while(1){if(this.peek(qn.BracketL)&&(t=!0),!e.addChild(this._parseLookupValue()))break;t=!1}return!t},t.prototype._parseLookupValue=function(){var e=this.create(Jr),t=this.mark();return this.accept(qn.BracketL)&&((e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(qn.BracketR)||this.accept(qn.BracketR))?e:(this.restoreAtMark(t),null)},t.prototype._parseVariable=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var n=!e&&this.peekDelim("$");if(!this.peekDelim("@")&&!n&&!this.peek(qn.AtKeyword))return null;var r=this.create(Zi),i=this.mark();while(this.acceptDelim("@")||!e&&this.acceptDelim("$"))if(this.hasWhitespace())return this.restoreAtMark(i),null;return(this.accept(qn.AtKeyword)||this.accept(qn.Ident))&&(t||!this.peek(qn.BracketL)||this._addLookupChildren(r))?r:(this.restoreAtMark(i),null)},t.prototype._parseTermExpression=function(){return this._parseVariable()||this._parseEscaped()||e.prototype._parseTermExpression.call(this)||this._tryParseMixinReference(!1)},t.prototype._parseEscaped=function(){if(this.peek(qn.EscapedJavaScript)||this.peek(qn.BadEscapedJavaScript)){var e=this.createNode(Kr.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim("~")){e=this.createNode(Kr.EscapedValue);return this.consumeToken(),this.accept(qn.String)||this.accept(qn.EscapedJavaScript)?this.finish(e):this.finish(e,bo.TermExpected)}return null},t.prototype._parseOperator=function(){var t=this._parseGuardOperator();return t||e.prototype._parseOperator.call(this)},t.prototype._parseGuardOperator=function(){if(this.peekDelim(">")){var e=this.createNode(Kr.Operator);return this.consumeToken(),this.acceptDelim("="),e}if(this.peekDelim("=")){e=this.createNode(Kr.Operator);return this.consumeToken(),this.acceptDelim("<"),e}if(this.peekDelim("<")){e=this.createNode(Kr.Operator);return this.consumeToken(),this.acceptDelim("="),e}return null},t.prototype._parseRuleSetDeclaration=function(){return this.peek(qn.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||e.prototype._parseRuleSetDeclarationAtStatement.call(this):this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseKeyframeIdent=function(){return this._parseIdent([jr.Keyframe])||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._parseDetachedRuleSetMixin()||e.prototype._parseKeyframeSelector.call(this)},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelector=function(e){var t=this.create(ni),n=!1;e&&(n=t.addChild(this._parseCombinator()));while(t.addChild(this._parseSimpleSelector())){n=!0;var r=this.mark();if(t.addChild(this._parseGuard())&&this.peek(qn.CurlyL))break;this.restoreAtMark(r),t.addChild(this._parseCombinator())}return n?this.finish(t):null},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim("&")){var e=this.createNode(Kr.SelectorCombinator);this.consumeToken();while(!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(qn.Num)||this.accept(qn.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")));return this.finish(e)}return null},t.prototype._parseSelectorIdent=function(){if(!this.peekInterpolatedIdent())return null;var e=this.createNode(Kr.SelectorInterpolation),t=this._acceptInterpolatedIdent(e);return t?this.finish(e):null},t.prototype._parsePropertyIdentifier=function(e){void 0===e&&(e=!1);var t=/^[\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;var n=this.mark(),r=this.create(Yr);r.isCustomProperty=this.acceptDelim("-")&&this.acceptDelim("-");var i=!1;return i=e?r.isCustomProperty?r.addChild(this._parseIdent()):r.addChild(this._parseRegexp(t)):r.isCustomProperty?this._acceptInterpolatedIdent(r):this._acceptInterpolatedIdent(r,t),i?(e||this.hasWhitespace()||(this.acceptDelim("+"),this.hasWhitespace()||this.acceptIdent("_")),this.finish(r)):(this.restoreAtMark(n),null)},t.prototype.peekInterpolatedIdent=function(){return this.peek(qn.Ident)||this.peekDelim("@")||this.peekDelim("$")||this.peekDelim("-")},t.prototype._acceptInterpolatedIdent=function(e,t){var n=this,r=!1,i=function(){var e=n.mark();return n.acceptDelim("-")&&(n.hasWhitespace()||n.acceptDelim("-"),n.hasWhitespace())?(n.restoreAtMark(e),null):n._parseInterpolation()},o=t?function(){return n.acceptRegexp(t)}:function(){return n.accept(qn.Ident)};while(o()||e.addChild(this._parseInterpolation()||this.try(i)))if(r=!0,this.hasWhitespace())break;return r},t.prototype._parseInterpolation=function(){var e=this.mark();if(this.peekDelim("@")||this.peekDelim("$")){var t=this.createNode(Kr.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(qn.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(qn.CurlyR)?this.finish(t):this.finish(t,bo.RightCurlyExpected):this.finish(t,bo.IdentifierExpected)}return null},t.prototype._tryParseMixinDeclaration=function(){var e=this.mark(),t=this.create(ro);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(qn.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))while(this.accept(qn.Comma)||this.accept(qn.SemiColon)){if(this.peek(qn.ParenthesisR))break;t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,bo.IdentifierExpected,[],[qn.ParenthesisR])}return this.accept(qn.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(qn.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)},t.prototype._parseMixInBodyDeclaration=function(){return this._parseFontFace()||this._parseRuleSetDeclaration()},t.prototype._parseMixinDeclarationIdentifier=function(){var e;if(this.peekDelim("#")||this.peekDelim(".")){if(e=this.create(Yr),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else{if(!this.peek(qn.Hash))return null;e=this.create(Yr),this.consumeToken()}return e.referenceTypes=[jr.Mixin],this.finish(e)},t.prototype._parsePseudo=function(){if(!this.peek(qn.Colon))return null;var t=this.mark(),n=this.create(Qi);return this.consumeToken(),this.acceptIdent("extend")?this._completeExtends(n):(this.restoreAtMark(t),e.prototype._parsePseudo.call(this))},t.prototype._parseExtend=function(){if(!this.peekDelim("&"))return null;var e=this.mark(),t=this.create(Qi);return this.consumeToken(),!this.hasWhitespace()&&this.accept(qn.Colon)&&this.acceptIdent("extend")?this._completeExtends(t):(this.restoreAtMark(e),null)},t.prototype._completeExtends=function(e){if(!this.accept(qn.ParenthesisL))return this.finish(e,bo.LeftParenthesisExpected);var t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,bo.SelectorExpected);while(this.accept(qn.Comma))if(!t.addChild(this._parseSelector(!0)))return this.finish(e,bo.SelectorExpected);return this.accept(qn.ParenthesisR)?this.finish(e):this.finish(e,bo.RightParenthesisExpected)},t.prototype._parseDetachedRuleSetMixin=function(){if(!this.peek(qn.AtKeyword))return null;var e=this.mark(),t=this.create(no);return!t.addChild(this._parseVariable(!0))||!this.hasWhitespace()&&this.accept(qn.ParenthesisL)?this.accept(qn.ParenthesisR)?this.finish(t):this.finish(t,bo.RightParenthesisExpected):(this.restoreAtMark(e),null)},t.prototype._tryParseMixinReference=function(e){void 0===e&&(e=!0);var t=this.mark(),n=this.create(no),r=this._parseMixinDeclarationIdentifier();while(r){this.acceptDelim(">");var i=this._parseMixinDeclarationIdentifier();if(!i)break;n.getNamespaces().addChild(r),r=i}if(!n.setIdentifier(r))return this.restoreAtMark(t),null;var o=!1;if(this.accept(qn.ParenthesisL)){if(o=!0,n.getArguments().addChild(this._parseMixinArgument()))while(this.accept(qn.Comma)||this.accept(qn.SemiColon)){if(this.peek(qn.ParenthesisR))break;if(!n.getArguments().addChild(this._parseMixinArgument()))return this.finish(n,bo.ExpressionExpected)}if(!this.accept(qn.ParenthesisR))return this.finish(n,bo.RightParenthesisExpected);r.referenceTypes=[jr.Mixin]}else r.referenceTypes=[jr.Mixin,jr.Rule];return this.peek(qn.BracketL)?e||this._addLookupChildren(n):n.addChild(this._parsePrio()),o||this.peek(qn.SemiColon)||this.peek(qn.CurlyR)||this.peek(qn.EOF)?this.finish(n):(this.restoreAtMark(t),null)},t.prototype._parseMixinArgument=function(){var e=this.create(pi),t=this.mark(),n=this._parseVariable();return n&&(this.accept(qn.Colon)?e.setIdentifier(n):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)},t.prototype._parseMixinParameter=function(){var e=this.create(hi);if(this.peekKeyword("@rest")){var t=this.create(Jr);return this.consumeToken(),this.accept($c)?(e.setIdentifier(this.finish(t)),this.finish(e)):this.finish(e,bo.DotExpected,[],[qn.Comma,qn.ParenthesisR])}if(this.peek($c)){var n=this.create(Jr);return this.consumeToken(),e.setIdentifier(this.finish(n)),this.finish(e)}var r=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(qn.Colon),r=!0),e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))||r?this.finish(e):null},t.prototype._parseGuard=function(){if(!this.peekIdent("when"))return null;var e=this.create(so);if(this.consumeToken(),e.isNegated=this.acceptIdent("not"),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,bo.ConditionExpected);while(this.acceptIdent("and")||this.accept(qn.Comma))if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,bo.ConditionExpected);return this.finish(e)},t.prototype._parseGuardCondition=function(){if(!this.peek(qn.ParenthesisL))return null;var e=this.create(ao);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(qn.ParenthesisR)?this.finish(e):this.finish(e,bo.RightParenthesisExpected)},t.prototype._parseFunction=function(){var e=this.mark(),t=this.create(di);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(qn.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument()))while(this.accept(qn.Comma)||this.accept(qn.SemiColon)){if(this.peek(qn.ParenthesisR))break;if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,bo.ExpressionExpected)}return this.accept(qn.ParenthesisR)?this.finish(t):this.finish(t,bo.RightParenthesisExpected)},t.prototype._parseFunctionIdentifier=function(){if(this.peekDelim("%")){var t=this.create(Yr);return t.referenceTypes=[jr.Function],this.consumeToken(),this.finish(t)}return e.prototype._parseFunctionIdentifier.call(this)},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(qn.ParenthesisR)){this.restoreAtMark(t);var r=this.create(Jr);return r.addChild(this._parseBinaryExpr()),this.finish(r)}return n},t}(ss),Xc=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Yc=mo(),Zc=function(e){function t(t,n){return e.call(this,"@",t,n)||this}return Xc(t,e),t.prototype.createFunctionProposals=function(e,t,n,r){for(var i=0,o=e;i 50%"),example:"percentage(@number);",type:"percentage"},{name:"round",description:Yc("less.builtin.round","rounds a number to a number of places"),example:"round(number, [places: 0]);"},{name:"sqrt",description:Yc("less.builtin.sqrt","calculates square root of a number"),example:"sqrt(number);"},{name:"sin",description:Yc("less.builtin.sin","sine function"),example:"sin(number);"},{name:"tan",description:Yc("less.builtin.tan","tangent function"),example:"tan(number);"},{name:"atan",description:Yc("less.builtin.atan","arctangent - inverse of tangent function"),example:"atan(number);"},{name:"pi",description:Yc("less.builtin.pi","returns pi"),example:"pi();"},{name:"pow",description:Yc("less.builtin.pow","first argument raised to the power of the second argument"),example:"pow(@base, @exponent);"},{name:"mod",description:Yc("less.builtin.mod","first argument modulus second argument"),example:"mod(number, number);"},{name:"min",description:Yc("less.builtin.min","returns the lowest of one or more values"),example:"min(@x, @y);"},{name:"max",description:Yc("less.builtin.max","returns the lowest of one or more values"),example:"max(@x, @y);"}],t.colorProposals=[{name:"argb",example:"argb(@color);",description:Yc("less.builtin.argb","creates a #AARRGGBB")},{name:"hsl",example:"hsl(@hue, @saturation, @lightness);",description:Yc("less.builtin.hsl","creates a color")},{name:"hsla",example:"hsla(@hue, @saturation, @lightness, @alpha);",description:Yc("less.builtin.hsla","creates a color")},{name:"hsv",example:"hsv(@hue, @saturation, @value);",description:Yc("less.builtin.hsv","creates a color")},{name:"hsva",example:"hsva(@hue, @saturation, @value, @alpha);",description:Yc("less.builtin.hsva","creates a color")},{name:"hue",example:"hue(@color);",description:Yc("less.builtin.hue","returns the `hue` channel of `@color` in the HSL space")},{name:"saturation",example:"saturation(@color);",description:Yc("less.builtin.saturation","returns the `saturation` channel of `@color` in the HSL space")},{name:"lightness",example:"lightness(@color);",description:Yc("less.builtin.lightness","returns the `lightness` channel of `@color` in the HSL space")},{name:"hsvhue",example:"hsvhue(@color);",description:Yc("less.builtin.hsvhue","returns the `hue` channel of `@color` in the HSV space")},{name:"hsvsaturation",example:"hsvsaturation(@color);",description:Yc("less.builtin.hsvsaturation","returns the `saturation` channel of `@color` in the HSV space")},{name:"hsvvalue",example:"hsvvalue(@color);",description:Yc("less.builtin.hsvvalue","returns the `value` channel of `@color` in the HSV space")},{name:"red",example:"red(@color);",description:Yc("less.builtin.red","returns the `red` channel of `@color`")},{name:"green",example:"green(@color);",description:Yc("less.builtin.green","returns the `green` channel of `@color`")},{name:"blue",example:"blue(@color);",description:Yc("less.builtin.blue","returns the `blue` channel of `@color`")},{name:"alpha",example:"alpha(@color);",description:Yc("less.builtin.alpha","returns the `alpha` channel of `@color`")},{name:"luma",example:"luma(@color);",description:Yc("less.builtin.luma","returns the `luma` value (perceptual brightness) of `@color`")},{name:"saturate",example:"saturate(@color, 10%);",description:Yc("less.builtin.saturate","return `@color` 10% points more saturated")},{name:"desaturate",example:"desaturate(@color, 10%);",description:Yc("less.builtin.desaturate","return `@color` 10% points less saturated")},{name:"lighten",example:"lighten(@color, 10%);",description:Yc("less.builtin.lighten","return `@color` 10% points lighter")},{name:"darken",example:"darken(@color, 10%);",description:Yc("less.builtin.darken","return `@color` 10% points darker")},{name:"fadein",example:"fadein(@color, 10%);",description:Yc("less.builtin.fadein","return `@color` 10% points less transparent")},{name:"fadeout",example:"fadeout(@color, 10%);",description:Yc("less.builtin.fadeout","return `@color` 10% points more transparent")},{name:"fade",example:"fade(@color, 50%);",description:Yc("less.builtin.fade","return `@color` with 50% transparency")},{name:"spin",example:"spin(@color, 10);",description:Yc("less.builtin.spin","return `@color` with a 10 degree larger in hue")},{name:"mix",example:"mix(@color1, @color2, [@weight: 50%]);",description:Yc("less.builtin.mix","return a mix of `@color1` and `@color2`")},{name:"greyscale",example:"greyscale(@color);",description:Yc("less.builtin.greyscale","returns a grey, 100% desaturated color")},{name:"contrast",example:"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);",description:Yc("less.builtin.contrast","return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes")},{name:"multiply",example:"multiply(@color1, @color2);"},{name:"screen",example:"screen(@color1, @color2);"},{name:"overlay",example:"overlay(@color1, @color2);"},{name:"softlight",example:"softlight(@color1, @color2);"},{name:"hardlight",example:"hardlight(@color1, @color2);"},{name:"difference",example:"difference(@color1, @color2);"},{name:"exclusion",example:"exclusion(@color1, @color2);"},{name:"average",example:"average(@color1, @color2);"},{name:"negation",example:"negation(@color1, @color2);"}],t}(Za);function Qc(e,t){var n=ed(e);return nd(n,t)}function ed(e){function t(t){return e.positionAt(t.offset).line}function n(t){return e.positionAt(t.offset+t.len).line}function r(){switch(e.languageId){case"scss":return new Dc;case"less":return new Hc;default:return new Pr}}function i(e,r){var i=t(e),o=n(e);return i!==o?{startLine:i,endLine:o,kind:r}:null}var o=[],s=[],a=r();a.ignoreComment=!1,a.setSource(e.getText());var l=a.scan(),c=null,d=function(){switch(l.type){case qn.CurlyL:case Sc:s.push({line:t(l),type:"brace",isStart:!0});break;case qn.CurlyR:if(0!==s.length){var r=td(s,"brace");if(!r)break;var d=n(l);"brace"===r.type&&(c&&n(c)!==d&&d--,r.line!==d&&o.push({startLine:r.line,endLine:d,kind:void 0}))}break;case qn.Comment:var h=function(e){return"#region"===e?{line:t(l),type:"comment",isStart:!0}:{line:n(l),type:"comment",isStart:!1}},p=function(t){var n=t.text.match(/^\s*\/\*\s*(#region|#endregion)\b\s*(.*?)\s*\*\//);if(n)return h(n[1]);if("scss"===e.languageId||"less"===e.languageId){var r=t.text.match(/^\s*\/\/\s*(#region|#endregion)\b\s*(.*?)\s*/);if(r)return h(r[1])}return null},u=p(l);if(u)if(u.isStart)s.push(u);else{r=td(s,"comment");if(!r)break;"comment"===r.type&&r.line!==u.line&&o.push({startLine:r.line,endLine:u.line,kind:"region"})}else{var m=i(l,"comment");m&&o.push(m)}break}c=l,l=a.scan()};while(l.type!==qn.EOF)d();return o}function td(e,t){if(0===e.length)return null;for(var n=e.length-1;n>=0;n--)if(e[n].type===t&&e[n].isStart)return e.splice(n,1)[0];return null}function nd(e,t){var n=t&&t.rangeLimit||Number.MAX_VALUE,r=e.sort((function(e,t){var n=e.startLine-t.startLine;return 0===n&&(n=e.endLine-t.endLine),n})),i=[],o=-1;return r.forEach((function(e){e.startLine && ]#",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.",restrictions:["integer","string","image","identifier"]},{name:"align-content",values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"flex-end",description:"Lines are packed toward the end of the flex container."},{name:"flex-start",description:"Lines are packed toward the start of the flex container."},{name:"space-around",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"space-between",description:"Lines are evenly distributed in the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."}],syntax:"normal | | | ? ",relevance:61,description:"Aligns a flex container’s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"align-items",values:[{name:"baseline",description:"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item’s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"normal | stretch | | [ ? ]",relevance:85,description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"justify-items",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"},{name:"legacy"}],syntax:"normal | stretch | | ? [ | left | right ] | legacy | legacy && [ left | right | center ]",relevance:51,description:"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis",restrictions:["enum"]},{name:"justify-self",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"}],syntax:"auto | normal | stretch | | ? [ | left | right ]",relevance:52,description:"Defines the way of justifying a box inside its container along the appropriate axis.",restrictions:["enum"]},{name:"align-self",values:[{name:"auto",description:"Computes to the value of 'align-items' on the element’s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself."},{name:"baseline",description:"If the flex item’s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item’s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"auto | normal | stretch | | ? ",relevance:70,description:"Allows the default alignment along the cross axis to be overridden for individual flex items.",restrictions:["enum"]},{name:"all",browsers:["E79","FF27","S9.1","C37","O24"],values:[],syntax:"initial | inherit | unset | revert",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/all"}],description:"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.",restrictions:["enum"]},{name:"alt",browsers:["S9"],values:[],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/alt"}],description:"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.",restrictions:["string","enum"]},{name:"animation",values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],syntax:"#",relevance:82,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation"}],description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","timing-function","enum","identifier","number"]},{name:"animation-delay",syntax:"