diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/.DS_Store differ
diff --git a/.env b/.env
new file mode 100644
index 0000000..ce6c982
--- /dev/null
+++ b/.env
@@ -0,0 +1,2 @@
+ELEVENTY_ENV=production
+WEBMENTION_IO_TOKEN=ugotwct4XSh60GCL81iESA
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 75f10e8..0000000
--- a/README.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# eleventy-base-blog v9
-
-A starter repository showing how to build a blog with the [Eleventy](https://www.11ty.dev/) site generator (using the [v3.0 release](https://github.com/11ty/eleventy/releases/tag/v3.0.0)).
-
-## Getting Started
-
-* [Want a more generic/detailed getting started guide?](https://www.11ty.dev/docs/getting-started/)
-
-1. Make a directory and navigate to it:
-
-```
-mkdir my-blog-name
-cd my-blog-name
-```
-
-2. Clone this Repository
-
-```
-git clone https://github.com/11ty/eleventy-base-blog.git .
-```
-
-_Optional:_ Review `eleventy.config.js` and `_data/metadata.js` to configure the site’s options and data.
-
-3. Install dependencies
-
-```
-npm install
-```
-
-4. Run Eleventy
-
-Generate a production-ready build to the `_site` folder:
-
-```
-npx @11ty/eleventy
-```
-
-Or build and host on a local development server:
-
-```
-npx @11ty/eleventy --serve
-```
-
-Or you can run [debug mode](https://www.11ty.dev/docs/debugging/) to see all the internals.
-
-## Features
-
-- Using [Eleventy v3](https://github.com/11ty/eleventy/releases/tag/v3.0.0) with zero-JavaScript output.
- - Content is exclusively pre-rendered (this is a static site).
- - Can easily [deploy to a subfolder without changing any content](https://www.11ty.dev/docs/plugins/html-base/)
- - All URLs are decoupled from the content’s location on the file system.
- - Configure templates via the [Eleventy Data Cascade](https://www.11ty.dev/docs/data-cascade/)
-- **Performance focused**: four-hundos Lighthouse score out of the box!
- - _0 Cumulative Layout Shift_
- - _0ms Total Blocking Time_
-- Local development live reload provided by [Eleventy Dev Server](https://www.11ty.dev/docs/dev-server/).
-- Content-driven [navigation menu](https://www.11ty.dev/docs/plugins/navigation/)
-- Fully automated [Image optimization](https://www.11ty.dev/docs/plugins/image/)
- - Zero-JavaScript output.
- - Support for modern image formats automatically (e.g. AVIF and WebP)
- - Processes images on-request during `--serve` for speedy local builds.
- - Prefers `` markup if possible (single image format) but switches automatically to `` for multiple image formats.
- - Automated `` syntax markup with `srcset` and optional `sizes`
- - Includes `width`/`height` attributes to avoid [content layout shift](https://web.dev/cls/).
- - Includes `loading="lazy"` for native lazy loading without JavaScript.
- - Includes [`decoding="async"`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decoding)
- - Images can be co-located with blog post files.
-- Per page CSS bundles [via `eleventy-plugin-bundle`](https://github.com/11ty/eleventy-plugin-bundle).
-- Built-in [syntax highlighter](https://www.11ty.dev/docs/plugins/syntaxhighlight/) (zero-JavaScript output).
-- Draft content: use `draft: true` to mark any template as a draft. Drafts are **only** included during `--serve`/`--watch` and are excluded from full builds. This is driven by the `addPreprocessor` configuration API in `eleventy.config.js`. Schema validator will show an error if non-boolean value is set in data cascade.
-- Blog Posts
- - Automated next/previous links
- - Accessible deep links to headings
-- Generated Pages
- - Home, Archive, and About pages.
- - [Atom feed included (with easy one-line swap to use RSS or JSON](https://www.11ty.dev/docs/plugins/rss/)
- - `sitemap.xml`
- - Zero-maintenance tag pages ([View on the Demo](https://eleventy-base-blog.netlify.app/tags/))
- - Content not found (404) page
-
-## Demos
-
-- [Netlify](https://eleventy-base-blog.netlify.app/)
-- [Vercel](https://demo-base-blog.11ty.dev/)
-- [Cloudflare Pages](https://eleventy-base-blog-d2a.pages.dev/)
-- [Remix on Glitch](https://glitch.com/~11ty-eleventy-base-blog)
-- [GitHub Pages](https://11ty.github.io/eleventy-base-blog/)
-
-## Deploy this to your own site
-
-Deploy this Eleventy site in just a few clicks on these services:
-
-- Read more about [Deploying an Eleventy project](https://www.11ty.dev/docs/deployment/) to the web.
-- [Deploy this to **Netlify**](https://app.netlify.com/start/deploy?repository=https://github.com/11ty/eleventy-base-blog)
-- [Deploy this to **Vercel**](https://vercel.com/import/project?template=11ty%2Feleventy-base-blog)
-- Look in `.github/workflows/gh-pages.yml.sample` for information on Deploying to **GitHub Pages**.
-- [Try it out on **Stackblitz**](https://stackblitz.com/github/11ty/eleventy-base-blog)
-
-### Implementation Notes
-
-- `content/about/index.md` is an example of a content page.
-- `content/blog/` has the blog posts but really they can live in any directory. They need only the `posts` tag to be included in the blog posts [collection](https://www.11ty.dev/docs/collections/).
-- Use the `eleventyNavigation` key (via the [Eleventy Navigation plugin](https://www.11ty.dev/docs/plugins/navigation/)) in your front matter to add a template to the top level site navigation. This is in use on `content/index.njk` and `content/about/index.md`.
-- Content can be in _any template format_ (blog posts needn’t exclusively be markdown, for example). Configure your project’s supported templates in `eleventy.config.js` -> `templateFormats`.
-- The `public` folder in your input directory will be copied to the output folder (via `addPassthroughCopy` in the `eleventy.config.js` file). This means `./public/css/*` will live at `./_site/css/*` after your build completes.
-- This project uses three [Eleventy Layouts](https://www.11ty.dev/docs/layouts/):
- - `_includes/layouts/base.njk`: the top level HTML structure
- - `_includes/layouts/home.njk`: the home page template (wrapped into `base.njk`)
- - `_includes/layouts/post.njk`: the blog post template (wrapped into `base.njk`)
-- `_includes/postslist.njk` is a Nunjucks include and is a reusable component used to display a list of all the posts. `content/index.njk` has an example of how to use it.
-
-#### Content Security Policy
-
-If your site enforces a [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) (as public-facing sites should), you have a few choices (pick one):
-
-1. In `base.njk`, remove `` and uncomment ``
-2. Configure the server with the CSP directive `style-src: 'unsafe-inline'` (less secure).
diff --git a/_cache/webmentions.json b/_cache/webmentions.json
new file mode 100644
index 0000000..7de67af
--- /dev/null
+++ b/_cache/webmentions.json
@@ -0,0 +1,4 @@
+{
+ "lastFetched": "2024-10-14T22:07:30.128Z",
+ "children": []
+}
\ No newline at end of file
diff --git a/_config/filters.js b/_config/filters.js
index 4af2fe8..7f80e29 100644
--- a/_config/filters.js
+++ b/_config/filters.js
@@ -23,6 +23,65 @@ export default function(eleventyConfig) {
return array.slice(0, n);
});
+ eleventyConfig.addFilter('mentionsForUrl', (webmentions, url) => {
+ const allowedTypes = ['in-reply-to', 'mention-of']
+
+ const allowedHTML = {
+ allowedTags: ['b', 'i', 'em', 'strong', 'a'],
+ allowedAttributes: {
+ a: ['href']
+ }
+ }
+
+ const clean = (entry) => {
+ const { html, text } = entry.content
+ if (html) {
+ entry.content.value = sanitizeHTML(text, allowedHTML)
+ };
+ return entry;
+ }
+
+ // sort webmentions by published timestamp chronologically.
+ // swap a.published and b.published to reverse order.
+ const orderByDate = (a, b) => new Date(b.published) - new Date(a.published)
+
+ // only allow webmentions that have an author name and a timestamp
+ const checkRequiredFields = (entry) => {
+ const { author, published } = entry
+ return !!author && !!author.name && !!published
+ }
+
+ return webmentions
+ .filter((entry) => entry['wm-target'] === url)
+ .filter((entry) => allowedTypes.includes(entry['wm-property']))
+ .filter(checkRequiredFields)
+ .sort(orderByDate)
+ .map(clean)
+
+ });
+
+ eleventyConfig.addFilter('likesForUrl', (webmentions, url) => {
+ const allowedTypes = ['like-of']
+ return webmentions
+ .filter((entry) => entry['wm-target'] === url)
+ .filter((entry) => allowedTypes.includes(entry['wm-property']))
+ });
+
+ eleventyConfig.addFilter('repostsForUrl', (webmentions, url) => {
+ const allowedTypes = ['repost-of']
+ return webmentions
+ .filter((entry) => entry['wm-target'] === url)
+ .filter((entry) => allowedTypes.includes(entry['wm-property']))
+ });
+
+ eleventyConfig.addFilter('size', (mentions) => {
+ return !mentions ? 0 : mentions.length
+ });
+
+ eleventyConfig.addFilter('webmentionsByType', (mentions, mentionType) => {
+ return mentions.filter(entry => !!entry['mentionType'])
+ });
+
// Return the smallest number argument
eleventyConfig.addFilter("min", (...numbers) => {
return Math.min.apply(null, numbers);
diff --git a/_data/metadata.js b/_data/metadata.js
index 7e8b636..3791054 100644
--- a/_data/metadata.js
+++ b/_data/metadata.js
@@ -1,11 +1,12 @@
export default {
- title: "Eleventy Base Blog v9",
- url: "https://example.com/",
+ title: "kfitz",
+ url: "https://kfitz.info/",
+ domain: "kfitz.info",
language: "en",
- description: "I am writing about my experiences as a naval navel-gazer.",
+ description: "The long-running and erratically updated blog of Kathleen Fitzpatrick.",
author: {
- name: "Your Name Here",
- email: "youremailaddress@example.com",
- url: "https://example.com/about-me/"
- }
+ name: "Kathleen Fitzpatrick",
+ email: "kfitz@kfitz.info",
+ url: "https://kfitz.info"
+ }
}
diff --git a/_data/webmentions.js b/_data/webmentions.js
new file mode 100644
index 0000000..c67c4bb
--- /dev/null
+++ b/_data/webmentions.js
@@ -0,0 +1,96 @@
+import fs from "fs";
+import fetch from "node-fetch";
+import unionBy from "lodash-es/unionBy.js";
+import domain from "./metadata.js";
+
+// Load .env variables with dotenv
+import "dotenv/config.js";
+
+// Configuration Parameters
+const CACHE_DIR = '_cache';
+const API_ORIGIN = 'https://webmention.io/api/mentions.jf2';
+const TOKEN = process.env.WEBMENTION_IO_TOKEN;
+
+async function fetchWebmentions(since, perPage = 10000) {
+ // If we don't have a domain name or token, abort
+ if (!domain || !TOKEN) {
+ console.warn('>>> unable to fetch webmentions: missing domain or token');
+ return false;
+ }
+
+ let url = `${API_ORIGIN}?domain=${domain}&token=${TOKEN}&per-page=${perPage}`;
+ if (since) url += `&since=${since}`; // only fetch new mentions
+
+ const response = await fetch(url);
+ if (response.ok) {
+ const feed = await response.json();
+ console.log(`>>> ${feed.children.length} new webmentions fetched from ${API_ORIGIN}`);
+ return feed;
+ }
+
+ return null;
+}
+
+// Merge fresh webmentions with cached entries, unique per id
+function mergeWebmentions(a, b) {
+ return unionBy(a.children, b.children, 'wm-id');
+}
+
+// save combined webmentions in cache file
+function writeToCache(data) {
+ const filePath = `${CACHE_DIR}/webmentions.json`;
+ const fileContent = JSON.stringify(data, null, 2);
+
+ // create cache folder if it doesnt exist already
+ if (!fs.existsSync(CACHE_DIR)) {
+ fs.mkdirSync(CACHE_DIR);
+ }
+ // write data to cache json file
+ fs.writeFile(filePath, fileContent, err => {
+ if (err) throw err;
+ console.log(`>>> webmentions cached to ${filePath}`);
+ });
+}
+
+// get cache contents from json file
+function readFromCache() {
+ const filePath = `${CACHE_DIR}/webmentions.json`;
+
+ if (fs.existsSync(filePath)) {
+ const cacheFile = fs.readFileSync(filePath);
+ return JSON.parse(cacheFile);
+ };
+ // no cache found
+ return {
+ lastFetched: null,
+ children: []
+ };
+}
+
+export default async function() {
+ console.log('>>> Reading webmentions from cache...');
+
+ const cache = readFromCache();
+
+ if (cache.children.length) {
+ console.log(`>>> ${cache.children.length} webmentions loaded from cache`);
+ };
+
+ // Only fetch new mentions in production
+ if (process.env.ELEVENTY_ENV === 'production') {
+ console.log('>>> Checking for new webmentions...');
+ const feed = await fetchWebmentions(cache.lastFetched);
+
+ if (feed) {
+ const webmentions = {
+ lastFetched: new Date().toISOString(),
+ children: mergeWebmentions(cache, feed)
+ }
+
+ writeToCache(webmentions);
+ return webmentions;
+ }
+ }
+
+ return cache;
+}
diff --git a/_includes/archive.njk b/_includes/archive.njk
new file mode 100644
index 0000000..d8f6d68
--- /dev/null
+++ b/_includes/archive.njk
@@ -0,0 +1,13 @@
+
+{% for year, yearPosts in collections.postsByYear %}
+ {{ year }}
+
+ {% for post in yearPosts | reverse %}
+
\ No newline at end of file
diff --git a/content/.DS_Store b/content/.DS_Store
new file mode 100644
index 0000000..9b96a3e
Binary files /dev/null and b/content/.DS_Store differ
diff --git a/content/.obsidian/app.json b/content/.obsidian/app.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/content/.obsidian/app.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/content/.obsidian/appearance.json b/content/.obsidian/appearance.json
new file mode 100644
index 0000000..cefd83b
--- /dev/null
+++ b/content/.obsidian/appearance.json
@@ -0,0 +1,7 @@
+{
+ "accentColor": "#ce36d9",
+ "cssTheme": "Minimal",
+ "interfaceFontFamily": "Atkinson Hyperlegible",
+ "textFontFamily": "Atkinson Hyperlegible",
+ "baseFontSize": 17
+}
\ No newline at end of file
diff --git a/content/.obsidian/community-plugins.json b/content/.obsidian/community-plugins.json
new file mode 100644
index 0000000..957cc9c
--- /dev/null
+++ b/content/.obsidian/community-plugins.json
@@ -0,0 +1,4 @@
+[
+ "obsidian-minimal-settings",
+ "vscode-editor"
+]
\ No newline at end of file
diff --git a/content/.obsidian/core-plugins-migration.json b/content/.obsidian/core-plugins-migration.json
new file mode 100644
index 0000000..436f43c
--- /dev/null
+++ b/content/.obsidian/core-plugins-migration.json
@@ -0,0 +1,30 @@
+{
+ "file-explorer": true,
+ "global-search": true,
+ "switcher": true,
+ "graph": true,
+ "backlink": true,
+ "canvas": true,
+ "outgoing-link": true,
+ "tag-pane": true,
+ "properties": false,
+ "page-preview": true,
+ "daily-notes": true,
+ "templates": true,
+ "note-composer": true,
+ "command-palette": true,
+ "slash-command": false,
+ "editor-status": true,
+ "bookmarks": true,
+ "markdown-importer": false,
+ "zk-prefixer": false,
+ "random-note": false,
+ "outline": true,
+ "word-count": true,
+ "slides": false,
+ "audio-recorder": false,
+ "workspaces": false,
+ "file-recovery": true,
+ "publish": false,
+ "sync": false
+}
\ No newline at end of file
diff --git a/content/.obsidian/core-plugins.json b/content/.obsidian/core-plugins.json
new file mode 100644
index 0000000..436f43c
--- /dev/null
+++ b/content/.obsidian/core-plugins.json
@@ -0,0 +1,30 @@
+{
+ "file-explorer": true,
+ "global-search": true,
+ "switcher": true,
+ "graph": true,
+ "backlink": true,
+ "canvas": true,
+ "outgoing-link": true,
+ "tag-pane": true,
+ "properties": false,
+ "page-preview": true,
+ "daily-notes": true,
+ "templates": true,
+ "note-composer": true,
+ "command-palette": true,
+ "slash-command": false,
+ "editor-status": true,
+ "bookmarks": true,
+ "markdown-importer": false,
+ "zk-prefixer": false,
+ "random-note": false,
+ "outline": true,
+ "word-count": true,
+ "slides": false,
+ "audio-recorder": false,
+ "workspaces": false,
+ "file-recovery": true,
+ "publish": false,
+ "sync": false
+}
\ No newline at end of file
diff --git a/content/.obsidian/plugins/obsidian-minimal-settings/data.json b/content/.obsidian/plugins/obsidian-minimal-settings/data.json
new file mode 100644
index 0000000..d9fd6cc
--- /dev/null
+++ b/content/.obsidian/plugins/obsidian-minimal-settings/data.json
@@ -0,0 +1,34 @@
+{
+ "lightStyle": "minimal-light",
+ "darkStyle": "minimal-dark",
+ "lightScheme": "minimal-default-light",
+ "darkScheme": "minimal-default-dark",
+ "editorFont": "",
+ "lineHeight": 1.7,
+ "lineWidth": 50,
+ "lineWidthWide": 60,
+ "maxWidth": 88,
+ "textNormal": 17,
+ "textSmall": 13,
+ "imgGrid": false,
+ "imgWidth": "img-default-width",
+ "tableWidth": "table-default-width",
+ "iframeWidth": "iframe-default-width",
+ "mapWidth": "map-default-width",
+ "chartWidth": "chart-default-width",
+ "colorfulHeadings": false,
+ "colorfulFrame": false,
+ "colorfulActiveStates": false,
+ "trimNames": true,
+ "labeledNav": false,
+ "fullWidthMedia": true,
+ "bordersToggle": true,
+ "minimalStatus": true,
+ "focusMode": false,
+ "underlineInternal": true,
+ "underlineExternal": true,
+ "folding": true,
+ "lineNumbers": false,
+ "readableLineLength": true,
+ "devBlockWidth": false
+}
\ No newline at end of file
diff --git a/content/.obsidian/plugins/obsidian-minimal-settings/main.js b/content/.obsidian/plugins/obsidian-minimal-settings/main.js
new file mode 100644
index 0000000..48690b9
--- /dev/null
+++ b/content/.obsidian/plugins/obsidian-minimal-settings/main.js
@@ -0,0 +1,961 @@
+/*
+THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
+if you want to view the source, please visit the github repository of this plugin
+*/
+
+var __create = Object.create;
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __getProtoOf = Object.getPrototypeOf;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
+var __export = (target, all) => {
+ __markAsModule(target);
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+};
+var __reExport = (target, module2, desc) => {
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
+ for (let key of __getOwnPropNames(module2))
+ if (!__hasOwnProp.call(target, key) && key !== "default")
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
+ }
+ return target;
+};
+var __toModule = (module2) => {
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
+};
+var __async = (__this, __arguments, generator) => {
+ return new Promise((resolve, reject) => {
+ var fulfilled = (value) => {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ };
+ var rejected = (value) => {
+ try {
+ step(generator.throw(value));
+ } catch (e) {
+ reject(e);
+ }
+ };
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
+ step((generator = generator.apply(__this, __arguments)).next());
+ });
+};
+
+// main.ts
+__export(exports, {
+ default: () => MinimalTheme
+});
+var import_obsidian = __toModule(require("obsidian"));
+var MinimalTheme = class extends import_obsidian.Plugin {
+ onload() {
+ return __async(this, null, function* () {
+ yield this.loadSettings();
+ this.addSettingTab(new MinimalSettingTab(this.app, this));
+ this.addStyle();
+ let settingsUpdate = () => {
+ const fontSize = this.app.vault.getConfig("baseFontSize");
+ this.settings.textNormal = fontSize;
+ if (this.app.vault.getConfig("foldHeading")) {
+ this.settings.folding = true;
+ this.saveData(this.settings);
+ console.log("Folding is on");
+ } else {
+ this.settings.folding = false;
+ this.saveData(this.settings);
+ console.log("Folding is off");
+ }
+ document.body.classList.toggle("minimal-folding", this.settings.folding);
+ if (this.app.vault.getConfig("showLineNumber")) {
+ this.settings.lineNumbers = true;
+ this.saveData(this.settings);
+ console.log("Line numbers are on");
+ } else {
+ this.settings.lineNumbers = false;
+ this.saveData(this.settings);
+ console.log("Line numbers are off");
+ }
+ document.body.classList.toggle("minimal-line-nums", this.settings.lineNumbers);
+ if (this.app.vault.getConfig("readableLineLength")) {
+ this.settings.readableLineLength = true;
+ this.saveData(this.settings);
+ console.log("Readable line length is on");
+ } else {
+ this.settings.readableLineLength = false;
+ this.saveData(this.settings);
+ console.log("Readable line length is off");
+ }
+ document.body.classList.toggle("minimal-readable", this.settings.readableLineLength);
+ document.body.classList.toggle("minimal-readable-off", !this.settings.readableLineLength);
+ };
+ let sidebarUpdate = () => {
+ const sidebarEl = document.getElementsByClassName("mod-left-split")[0];
+ const ribbonEl = document.getElementsByClassName("side-dock-ribbon")[0];
+ if (sidebarEl && ribbonEl && document.body.classList.contains("theme-light") && this.settings.lightStyle == "minimal-light-contrast") {
+ sidebarEl.addClass("theme-dark");
+ ribbonEl.addClass("theme-dark");
+ } else if (sidebarEl && ribbonEl) {
+ sidebarEl.removeClass("theme-dark");
+ ribbonEl.removeClass("theme-dark");
+ }
+ };
+ this.registerEvent(app.vault.on("config-changed", settingsUpdate));
+ this.registerEvent(app.workspace.on("css-change", sidebarUpdate));
+ settingsUpdate();
+ app.workspace.onLayoutReady(() => {
+ sidebarUpdate();
+ });
+ const lightStyles = ["minimal-light", "minimal-light-tonal", "minimal-light-contrast", "minimal-light-white"];
+ const darkStyles = ["minimal-dark", "minimal-dark-tonal", "minimal-dark-black"];
+ const imgGridStyles = ["img-grid", "img-grid-ratio", "img-nogrid"];
+ const tableWidthStyles = ["table-100", "table-default-width", "table-wide", "table-max"];
+ const iframeWidthStyles = ["iframe-100", "iframe-default-width", "iframe-wide", "iframe-max"];
+ const imgWidthStyles = ["img-100", "img-default-width", "img-wide", "img-max"];
+ const mapWidthStyles = ["map-100", "map-default-width", "map-wide", "map-max"];
+ const chartWidthStyles = ["chart-100", "chart-default-width", "chart-wide", "chart-max"];
+ this.addCommand({
+ id: "increase-body-font-size",
+ name: "Increase body font size",
+ callback: () => {
+ this.settings.textNormal = this.settings.textNormal + 0.5;
+ this.saveData(this.settings);
+ this.setFontSize();
+ }
+ });
+ this.addCommand({
+ id: "decrease-body-font-size",
+ name: "Decrease body font size",
+ callback: () => {
+ this.settings.textNormal = this.settings.textNormal - 0.5;
+ this.saveData(this.settings);
+ this.setFontSize();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-dark-cycle",
+ name: "Cycle between dark mode styles",
+ callback: () => {
+ this.settings.darkStyle = darkStyles[(darkStyles.indexOf(this.settings.darkStyle) + 1) % darkStyles.length];
+ this.saveData(this.settings);
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-light-cycle",
+ name: "Cycle between light mode styles",
+ callback: () => {
+ this.settings.lightStyle = lightStyles[(lightStyles.indexOf(this.settings.lightStyle) + 1) % lightStyles.length];
+ this.saveData(this.settings);
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-hidden-borders",
+ name: "Toggle sidebar borders",
+ callback: () => {
+ this.settings.bordersToggle = !this.settings.bordersToggle;
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "toggle-colorful-headings",
+ name: "Toggle colorful headings",
+ callback: () => {
+ this.settings.colorfulHeadings = !this.settings.colorfulHeadings;
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-focus-mode",
+ name: "Toggle focus mode",
+ callback: () => {
+ this.settings.focusMode = !this.settings.focusMode;
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-colorful-frame",
+ name: "Toggle colorful window frame",
+ callback: () => {
+ this.settings.colorfulFrame = !this.settings.colorfulFrame;
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "cycle-minimal-table-width",
+ name: "Cycle between table width options",
+ callback: () => {
+ this.settings.tableWidth = tableWidthStyles[(tableWidthStyles.indexOf(this.settings.tableWidth) + 1) % tableWidthStyles.length];
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "cycle-minimal-image-width",
+ name: "Cycle between image width options",
+ callback: () => {
+ this.settings.imgWidth = imgWidthStyles[(imgWidthStyles.indexOf(this.settings.imgWidth) + 1) % imgWidthStyles.length];
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "cycle-minimal-iframe-width",
+ name: "Cycle between iframe width options",
+ callback: () => {
+ this.settings.iframeWidth = iframeWidthStyles[(iframeWidthStyles.indexOf(this.settings.iframeWidth) + 1) % iframeWidthStyles.length];
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "cycle-minimal-chart-width",
+ name: "Cycle between chart width options",
+ callback: () => {
+ this.settings.chartWidth = chartWidthStyles[(chartWidthStyles.indexOf(this.settings.chartWidth) + 1) % chartWidthStyles.length];
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "cycle-minimal-map-width",
+ name: "Cycle between map width options",
+ callback: () => {
+ this.settings.mapWidth = mapWidthStyles[(mapWidthStyles.indexOf(this.settings.mapWidth) + 1) % mapWidthStyles.length];
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-img-grid",
+ name: "Toggle image grids",
+ callback: () => {
+ this.settings.imgGrid = !this.settings.imgGrid;
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-switch",
+ name: "Switch between light and dark mode",
+ callback: () => {
+ this.updateTheme();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-light-default",
+ name: "Use light mode (default)",
+ callback: () => {
+ this.settings.lightStyle = "minimal-light";
+ this.saveData(this.settings);
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-light-white",
+ name: "Use light mode (all white)",
+ callback: () => {
+ this.settings.lightStyle = "minimal-light-white";
+ this.saveData(this.settings);
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-light-tonal",
+ name: "Use light mode (low contrast)",
+ callback: () => {
+ this.settings.lightStyle = "minimal-light-tonal";
+ this.saveData(this.settings);
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-light-contrast",
+ name: "Use light mode (high contrast)",
+ callback: () => {
+ this.settings.lightStyle = "minimal-light-contrast";
+ this.saveData(this.settings);
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-dark-default",
+ name: "Use dark mode (default)",
+ callback: () => {
+ this.settings.darkStyle = "minimal-dark";
+ this.saveData(this.settings);
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-dark-tonal",
+ name: "Use dark mode (low contrast)",
+ callback: () => {
+ this.settings.darkStyle = "minimal-dark-tonal";
+ this.saveData(this.settings);
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-dark-black",
+ name: "Use dark mode (true black)",
+ callback: () => {
+ this.settings.darkStyle = "minimal-dark-black";
+ this.saveData(this.settings);
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-atom-light",
+ name: "Switch light color scheme to Atom (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-atom-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-ayu-light",
+ name: "Switch light color scheme to Ayu (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-ayu-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-catppuccin-light",
+ name: "Switch light color scheme to Catppuccin (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-catppuccin-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-default-light",
+ name: "Switch light color scheme to default (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-default-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-gruvbox-light",
+ name: "Switch light color scheme to Gruvbox (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-gruvbox-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-eink-light",
+ name: "Switch light color scheme to E-ink (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-eink-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-everforest-light",
+ name: "Switch light color scheme to Everforest (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-everforest-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-flexoki-light",
+ name: "Switch light color scheme to Flexoki (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-flexoki-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-macos-light",
+ name: "Switch light color scheme to macOS (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-macos-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-notion-light",
+ name: "Switch light color scheme to Sky (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-notion-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-nord-light",
+ name: "Switch light color scheme to Nord (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-nord-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-rose-pine-light",
+ name: "Switch light color scheme to Ros\xE9 Pine (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-rose-pine-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-solarized-light",
+ name: "Switch light color scheme to Solarized (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-solarized-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-things-light",
+ name: "Switch light color scheme to Things (light)",
+ callback: () => {
+ this.settings.lightScheme = "minimal-things-light";
+ this.saveData(this.settings);
+ this.updateLightScheme();
+ this.updateLightStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-atom-dark",
+ name: "Switch dark color scheme to Atom (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-atom-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-ayu-dark",
+ name: "Switch dark color scheme to Ayu (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-ayu-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-catppuccin-dark",
+ name: "Switch dark color scheme to Catppuccin (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-catppuccin-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-dracula-dark",
+ name: "Switch dark color scheme to Dracula (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-dracula-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-default-dark",
+ name: "Switch dark color scheme to default (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-default-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-eink-dark",
+ name: "Switch dark color scheme to E-ink (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-eink-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-everforest-dark",
+ name: "Switch dark color scheme to Everforest (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-everforest-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-flexoki-dark",
+ name: "Switch dark color scheme to Flexoki (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-flexoki-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-gruvbox-dark",
+ name: "Switch dark color scheme to Gruvbox (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-gruvbox-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-macos-dark",
+ name: "Switch dark color scheme to macOS (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-macos-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-nord-dark",
+ name: "Switch dark color scheme to Nord (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-nord-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-notion-dark",
+ name: "Switch dark color scheme to Sky (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-notion-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-rose-pine-dark",
+ name: "Switch dark color scheme to Ros\xE9 Pine (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-rose-pine-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-solarized-dark",
+ name: "Switch dark color scheme to Solarized (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-solarized-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-things-dark",
+ name: "Switch dark color scheme to Things (dark)",
+ callback: () => {
+ this.settings.darkScheme = "minimal-things-dark";
+ this.saveData(this.settings);
+ this.updateDarkScheme();
+ this.updateDarkStyle();
+ }
+ });
+ this.addCommand({
+ id: "toggle-minimal-dev-block-width",
+ name: "Dev \u2014 Show block widths",
+ callback: () => {
+ this.settings.devBlockWidth = !this.settings.devBlockWidth;
+ this.saveData(this.settings);
+ this.refresh();
+ }
+ });
+ this.refresh();
+ });
+ }
+ onunload() {
+ console.log("Unloading Minimal Theme Settings plugin");
+ }
+ loadSettings() {
+ return __async(this, null, function* () {
+ this.settings = Object.assign(DEFAULT_SETTINGS, yield this.loadData());
+ });
+ }
+ saveSettings() {
+ return __async(this, null, function* () {
+ yield this.saveData(this.settings);
+ });
+ }
+ refresh() {
+ this.updateStyle();
+ }
+ addStyle() {
+ const css = document.createElement("style");
+ css.id = "minimal-theme";
+ document.getElementsByTagName("head")[0].appendChild(css);
+ document.body.classList.add("minimal-theme");
+ this.updateStyle();
+ }
+ setFontSize() {
+ this.app.vault.setConfig("baseFontSize", this.settings.textNormal);
+ this.app.updateFontSize();
+ }
+ updateStyle() {
+ this.removeStyle();
+ document.body.addClass(this.settings.darkScheme);
+ document.body.addClass(this.settings.lightScheme);
+ document.body.classList.toggle("borders-none", !this.settings.bordersToggle);
+ document.body.classList.toggle("colorful-headings", this.settings.colorfulHeadings);
+ document.body.classList.toggle("colorful-frame", this.settings.colorfulFrame);
+ document.body.classList.toggle("colorful-active", this.settings.colorfulActiveStates);
+ document.body.classList.toggle("minimal-focus-mode", this.settings.focusMode);
+ document.body.classList.toggle("links-int-on", this.settings.underlineInternal);
+ document.body.classList.toggle("links-ext-on", this.settings.underlineExternal);
+ document.body.classList.toggle("full-width-media", this.settings.fullWidthMedia);
+ document.body.classList.toggle("img-grid", this.settings.imgGrid);
+ document.body.classList.toggle("minimal-dev-block-width", this.settings.devBlockWidth);
+ document.body.classList.toggle("minimal-status-off", !this.settings.minimalStatus);
+ document.body.classList.toggle("full-file-names", !this.settings.trimNames);
+ document.body.classList.toggle("labeled-nav", this.settings.labeledNav);
+ document.body.classList.toggle("minimal-folding", this.settings.folding);
+ document.body.removeClass("table-wide", "table-max", "table-100", "table-default-width", "iframe-wide", "iframe-max", "iframe-100", "iframe-default-width", "img-wide", "img-max", "img-100", "img-default-width", "chart-wide", "chart-max", "chart-100", "chart-default-width", "map-wide", "map-max", "map-100", "map-default-width");
+ document.body.addClass(this.settings.chartWidth);
+ document.body.addClass(this.settings.tableWidth);
+ document.body.addClass(this.settings.imgWidth);
+ document.body.addClass(this.settings.iframeWidth);
+ document.body.addClass(this.settings.mapWidth);
+ const el = document.getElementById("minimal-theme");
+ if (!el)
+ throw "minimal-theme element not found!";
+ else {
+ el.innerText = "body.minimal-theme{--font-ui-small:" + this.settings.textSmall + "px;--line-height:" + this.settings.lineHeight + ";--line-width:" + this.settings.lineWidth + "rem;--line-width-wide:" + this.settings.lineWidthWide + "rem;--max-width:" + this.settings.maxWidth + "%;--font-editor-override:" + this.settings.editorFont + ";";
+ }
+ }
+ updateDarkStyle() {
+ document.body.removeClass("theme-light", "minimal-dark", "minimal-dark-tonal", "minimal-dark-black");
+ document.body.addClass("theme-dark", this.settings.darkStyle);
+ if (this.app.vault.getConfig("theme") !== "system") {
+ this.app.setTheme("obsidian");
+ this.app.vault.setConfig("theme", "obsidian");
+ }
+ this.app.workspace.trigger("css-change");
+ }
+ updateLightStyle() {
+ document.body.removeClass("theme-dark", "minimal-light", "minimal-light-tonal", "minimal-light-contrast", "minimal-light-white");
+ document.body.addClass("theme-light", this.settings.lightStyle);
+ if (this.app.vault.getConfig("theme") !== "system") {
+ this.app.setTheme("moonstone");
+ this.app.vault.setConfig("theme", "moonstone");
+ }
+ this.app.workspace.trigger("css-change");
+ }
+ updateDarkScheme() {
+ document.body.removeClass("minimal-atom-dark", "minimal-ayu-dark", "minimal-catppuccin-dark", "minimal-default-dark", "minimal-dracula-dark", "minimal-eink-dark", "minimal-everforest-dark", "minimal-flexoki-dark", "minimal-gruvbox-dark", "minimal-macos-dark", "minimal-nord-dark", "minimal-notion-dark", "minimal-rose-pine-dark", "minimal-solarized-dark", "minimal-things-dark");
+ document.body.addClass(this.settings.darkScheme);
+ }
+ updateLightScheme() {
+ document.body.removeClass("minimal-atom-light", "minimal-ayu-light", "minimal-catppuccin-light", "minimal-default-light", "minimal-eink-light", "minimal-everforest-light", "minimal-flexoki-light", "minimal-gruvbox-light", "minimal-macos-light", "minimal-nord-light", "minimal-notion-light", "minimal-rose-pine-light", "minimal-solarized-light", "minimal-things-light");
+ document.body.addClass(this.settings.lightScheme);
+ }
+ updateTheme() {
+ if (this.app.vault.getConfig("theme") === "system") {
+ if (document.body.classList.contains("theme-light")) {
+ document.body.removeClass("theme-light");
+ document.body.addClass("theme-dark");
+ } else {
+ document.body.removeClass("theme-dark");
+ document.body.addClass("theme-light");
+ }
+ } else {
+ if (document.body.classList.contains("theme-light")) {
+ document.body.removeClass("theme-light");
+ document.body.addClass("theme-dark");
+ } else {
+ document.body.removeClass("theme-dark");
+ document.body.addClass("theme-light");
+ }
+ const currentTheme = this.app.vault.getConfig("theme");
+ const newTheme = currentTheme === "moonstone" ? "obsidian" : "moonstone";
+ this.app.setTheme(newTheme);
+ this.app.vault.setConfig("theme", newTheme);
+ }
+ this.app.workspace.trigger("css-change");
+ }
+ removeStyle() {
+ document.body.removeClass("minimal-light", "minimal-light-tonal", "minimal-light-contrast", "minimal-light-white", "minimal-dark", "minimal-dark-tonal", "minimal-dark-black");
+ document.body.addClass(this.settings.lightStyle, this.settings.darkStyle);
+ }
+};
+var DEFAULT_SETTINGS = {
+ lightStyle: "minimal-light",
+ darkStyle: "minimal-dark",
+ lightScheme: "minimal-default-light",
+ darkScheme: "minimal-default-dark",
+ editorFont: "",
+ lineHeight: 1.5,
+ lineWidth: 40,
+ lineWidthWide: 50,
+ maxWidth: 88,
+ textNormal: 16,
+ textSmall: 13,
+ imgGrid: false,
+ imgWidth: "img-default-width",
+ tableWidth: "table-default-width",
+ iframeWidth: "iframe-default-width",
+ mapWidth: "map-default-width",
+ chartWidth: "chart-default-width",
+ colorfulHeadings: false,
+ colorfulFrame: false,
+ colorfulActiveStates: false,
+ trimNames: true,
+ labeledNav: false,
+ fullWidthMedia: true,
+ bordersToggle: true,
+ minimalStatus: true,
+ focusMode: false,
+ underlineInternal: true,
+ underlineExternal: true,
+ folding: true,
+ lineNumbers: false,
+ readableLineLength: false,
+ devBlockWidth: false
+};
+var MinimalSettingTab = class extends import_obsidian.PluginSettingTab {
+ constructor(app2, plugin) {
+ super(app2, plugin);
+ this.plugin = plugin;
+ }
+ display() {
+ let { containerEl } = this;
+ containerEl.empty();
+ const colorSection = containerEl.createEl("div", { cls: "setting-item setting-item-heading" });
+ const colorSectionInfo = colorSection.createEl("div", { cls: "setting-item-info" });
+ colorSectionInfo.createEl("div", { text: "Color scheme", cls: "setting-item-name" });
+ const colorDesc = colorSectionInfo.createEl("div", { cls: "setting-item-description" });
+ colorDesc.appendChild(createEl("span", {
+ text: "To create a custom color scheme use the "
+ }));
+ colorDesc.appendChild(createEl("a", {
+ text: "Style Settings",
+ href: "obsidian://show-plugin?id=obsidian-style-settings"
+ }));
+ colorDesc.appendText(" plugin. See ");
+ colorDesc.appendChild(createEl("a", {
+ text: "documentation",
+ href: "https://minimal.guide/features/color-schemes"
+ }));
+ colorDesc.appendText(" for details.");
+ new import_obsidian.Setting(containerEl).setName("Light mode color scheme").setDesc("Preset color options for light mode.").addDropdown((dropdown) => dropdown.addOption("minimal-default-light", "Default").addOption("minimal-atom-light", "Atom").addOption("minimal-ayu-light", "Ayu").addOption("minimal-catppuccin-light", "Catppuccin").addOption("minimal-eink-light", "E-ink (beta)").addOption("minimal-everforest-light", "Everforest").addOption("minimal-flexoki-light", "Flexoki").addOption("minimal-gruvbox-light", "Gruvbox").addOption("minimal-macos-light", "macOS").addOption("minimal-nord-light", "Nord").addOption("minimal-rose-pine-light", "Ros\xE9 Pine").addOption("minimal-notion-light", "Sky").addOption("minimal-solarized-light", "Solarized").addOption("minimal-things-light", "Things").setValue(this.plugin.settings.lightScheme).onChange((value) => {
+ this.plugin.settings.lightScheme = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.updateLightScheme();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Light mode background contrast").setDesc("Level of contrast between sidebar and main content.").addDropdown((dropdown) => dropdown.addOption("minimal-light", "Default").addOption("minimal-light-white", "All white").addOption("minimal-light-tonal", "Low contrast").addOption("minimal-light-contrast", "High contrast").setValue(this.plugin.settings.lightStyle).onChange((value) => {
+ this.plugin.settings.lightStyle = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.updateLightStyle();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Dark mode color scheme").setDesc("Preset colors options for dark mode.").addDropdown((dropdown) => dropdown.addOption("minimal-default-dark", "Default").addOption("minimal-atom-dark", "Atom").addOption("minimal-ayu-dark", "Ayu").addOption("minimal-catppuccin-dark", "Catppuccin").addOption("minimal-dracula-dark", "Dracula").addOption("minimal-eink-dark", "E-ink (beta)").addOption("minimal-everforest-dark", "Everforest").addOption("minimal-flexoki-dark", "Flexoki").addOption("minimal-gruvbox-dark", "Gruvbox").addOption("minimal-macos-dark", "macOS").addOption("minimal-nord-dark", "Nord").addOption("minimal-rose-pine-dark", "Ros\xE9 Pine").addOption("minimal-notion-dark", "Sky").addOption("minimal-solarized-dark", "Solarized").addOption("minimal-things-dark", "Things").setValue(this.plugin.settings.darkScheme).onChange((value) => {
+ this.plugin.settings.darkScheme = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.updateDarkScheme();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Dark mode background contrast").setDesc("Level of contrast between sidebar and main content.").addDropdown((dropdown) => dropdown.addOption("minimal-dark", "Default").addOption("minimal-dark-tonal", "Low contrast").addOption("minimal-dark-black", "True black").setValue(this.plugin.settings.darkStyle).onChange((value) => {
+ this.plugin.settings.darkStyle = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.updateDarkStyle();
+ }));
+ containerEl.createEl("br");
+ const featuresSection = containerEl.createEl("div", { cls: "setting-item setting-item-heading" });
+ const featuresSectionInfo = featuresSection.createEl("div", { cls: "setting-item-info" });
+ featuresSectionInfo.createEl("div", { text: "Features", cls: "setting-item-name" });
+ const featuresSectionDesc = featuresSectionInfo.createEl("div", { cls: "setting-item-description" });
+ featuresSectionDesc.appendChild(createEl("span", {
+ text: "See "
+ }));
+ featuresSectionDesc.appendChild(createEl("a", {
+ text: "documentation",
+ href: "https://minimal.guide"
+ }));
+ featuresSectionDesc.appendText(" for details.");
+ new import_obsidian.Setting(containerEl).setName("Text labels for primary navigation").setDesc("Navigation items in the left sidebar uses text labels.").addToggle((toggle) => toggle.setValue(this.plugin.settings.labeledNav).onChange((value) => {
+ this.plugin.settings.labeledNav = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Colorful window frame").setDesc("The top area of the app uses your accent color.").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulFrame).onChange((value) => {
+ this.plugin.settings.colorfulFrame = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Colorful active states").setDesc("Active file and menu items use your accent color.").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulActiveStates).onChange((value) => {
+ this.plugin.settings.colorfulActiveStates = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Colorful headings").setDesc("Headings use a different color for each size.").addToggle((toggle) => toggle.setValue(this.plugin.settings.colorfulHeadings).onChange((value) => {
+ this.plugin.settings.colorfulHeadings = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Minimal status bar").setDesc("Turn off to use full-width status bar.").addToggle((toggle) => toggle.setValue(this.plugin.settings.minimalStatus).onChange((value) => {
+ this.plugin.settings.minimalStatus = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Trim file names in sidebars").setDesc("Use ellipses to fit file names on a single line.").addToggle((toggle) => toggle.setValue(this.plugin.settings.trimNames).onChange((value) => {
+ this.plugin.settings.trimNames = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Workspace borders").setDesc("Display divider lines between workspace elements.").addToggle((toggle) => toggle.setValue(this.plugin.settings.bordersToggle).onChange((value) => {
+ this.plugin.settings.bordersToggle = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Focus mode").setDesc("Hide tab bar and status bar, hover to display. Can be toggled via hotkey.").addToggle((toggle) => toggle.setValue(this.plugin.settings.focusMode).onChange((value) => {
+ this.plugin.settings.focusMode = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Underline internal links").setDesc("Show underlines on internal links.").addToggle((toggle) => toggle.setValue(this.plugin.settings.underlineInternal).onChange((value) => {
+ this.plugin.settings.underlineInternal = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Underline external links").setDesc("Show underlines on external links.").addToggle((toggle) => toggle.setValue(this.plugin.settings.underlineExternal).onChange((value) => {
+ this.plugin.settings.underlineExternal = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Maximize media").setDesc("Images and videos fill the width of the line.").addToggle((toggle) => toggle.setValue(this.plugin.settings.fullWidthMedia).onChange((value) => {
+ this.plugin.settings.fullWidthMedia = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ containerEl.createEl("br");
+ const layoutSection = containerEl.createEl("div", { cls: "setting-item setting-item-heading" });
+ const layoutSectionInfo = layoutSection.createEl("div", { cls: "setting-item-info" });
+ layoutSectionInfo.createEl("div", { text: "Layout", cls: "setting-item-name" });
+ const layoutSectionDesc = layoutSectionInfo.createEl("div", { cls: "setting-item-description" });
+ layoutSectionDesc.appendChild(createEl("span", {
+ text: "These options can also be defined on a per-file basis, see "
+ }));
+ layoutSectionDesc.appendChild(createEl("a", {
+ text: "documentation",
+ href: "https://minimal.guide/features/block-width"
+ }));
+ layoutSectionDesc.appendText(" for details.");
+ new import_obsidian.Setting(containerEl).setName("Image grids").setDesc("Turn consecutive images into columns \u2014 to make a new row, add an extra line break between images.").addToggle((toggle) => toggle.setValue(this.plugin.settings.imgGrid).onChange((value) => {
+ this.plugin.settings.imgGrid = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Chart width").setDesc("Default width for chart blocks.").addDropdown((dropdown) => dropdown.addOption("chart-default-width", "Default").addOption("chart-wide", "Wide line width").addOption("chart-max", "Maximum line width").addOption("chart-100", "100% pane width").setValue(this.plugin.settings.chartWidth).onChange((value) => {
+ this.plugin.settings.chartWidth = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Iframe width").setDesc("Default width for iframe blocks.").addDropdown((dropdown) => dropdown.addOption("iframe-default-width", "Default").addOption("iframe-wide", "Wide line width").addOption("iframe-max", "Maximum line width").addOption("iframe-100", "100% pane width").setValue(this.plugin.settings.iframeWidth).onChange((value) => {
+ this.plugin.settings.iframeWidth = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Image width").setDesc("Default width for image blocks.").addDropdown((dropdown) => dropdown.addOption("img-default-width", "Default").addOption("img-wide", "Wide line width").addOption("img-max", "Maximum line width").addOption("img-100", "100% pane width").setValue(this.plugin.settings.imgWidth).onChange((value) => {
+ this.plugin.settings.imgWidth = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Map width").setDesc("Default width for map blocks.").addDropdown((dropdown) => dropdown.addOption("map-default-width", "Default").addOption("map-wide", "Wide line width").addOption("map-max", "Maximum line width").addOption("map-100", "100% pane width").setValue(this.plugin.settings.mapWidth).onChange((value) => {
+ this.plugin.settings.mapWidth = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Table width").setDesc("Default width for table and Dataview blocks.").addDropdown((dropdown) => dropdown.addOption("table-default-width", "Default").addOption("table-wide", "Wide line width").addOption("table-max", "Maximum line width").addOption("table-100", "100% pane width").setValue(this.plugin.settings.tableWidth).onChange((value) => {
+ this.plugin.settings.tableWidth = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ containerEl.createEl("br");
+ containerEl.createEl("div", { text: "Typography", cls: "setting-item setting-item-heading" });
+ new import_obsidian.Setting(containerEl).setName("Text font size").setDesc("Used for the main text (default 16).").addText((text) => text.setPlaceholder("16").setValue((this.plugin.settings.textNormal || "") + "").onChange((value) => {
+ this.plugin.settings.textNormal = parseFloat(value);
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.setFontSize();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Small font size").setDesc("Used for text in the sidebars and tabs (default 13).").addText((text) => text.setPlaceholder("13").setValue((this.plugin.settings.textSmall || "") + "").onChange((value) => {
+ this.plugin.settings.textSmall = parseFloat(value);
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Line height").setDesc("Line height of text (default 1.5).").addText((text) => text.setPlaceholder("1.5").setValue((this.plugin.settings.lineHeight || "") + "").onChange((value) => {
+ this.plugin.settings.lineHeight = parseFloat(value);
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Normal line width").setDesc("Number of characters per line (default 40).").addText((text) => text.setPlaceholder("40").setValue((this.plugin.settings.lineWidth || "") + "").onChange((value) => {
+ this.plugin.settings.lineWidth = parseInt(value.trim());
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Wide line width").setDesc("Number of characters per line for wide elements (default 50).").addText((text) => text.setPlaceholder("50").setValue((this.plugin.settings.lineWidthWide || "") + "").onChange((value) => {
+ this.plugin.settings.lineWidthWide = parseInt(value.trim());
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Maximum line width %").setDesc("Percentage of space inside a pane that a line can fill (default 88).").addText((text) => text.setPlaceholder("88").setValue((this.plugin.settings.maxWidth || "") + "").onChange((value) => {
+ this.plugin.settings.maxWidth = parseInt(value.trim());
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ new import_obsidian.Setting(containerEl).setName("Editor font").setDesc("Overrides the text font defined in Obsidian Appearance settings when in edit mode.").addText((text) => text.setPlaceholder("").setValue((this.plugin.settings.editorFont || "") + "").onChange((value) => {
+ this.plugin.settings.editorFont = value;
+ this.plugin.saveData(this.plugin.settings);
+ this.plugin.refresh();
+ }));
+ }
+};
+//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgQXBwLCBXb3Jrc3BhY2UsIE1vZGFsLCBOb3RpY2UsIFBsdWdpbiwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZyB9IGZyb20gJ29ic2lkaWFuJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1pbmltYWxUaGVtZSBleHRlbmRzIFBsdWdpbiB7XHJcblxyXG4gIHNldHRpbmdzOiBNaW5pbWFsU2V0dGluZ3M7XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpIHtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG5cclxuICAgIHRoaXMuYWRkU2V0dGluZ1RhYihuZXcgTWluaW1hbFNldHRpbmdUYWIodGhpcy5hcHAsIHRoaXMpKTtcclxuXHJcbiAgICB0aGlzLmFkZFN0eWxlKCk7XHJcblxyXG4gICAgLy8gQ2hlY2sgc3RhdGUgb2YgT2JzaWRpYW4gU2V0dGluZ3NcclxuICAgIGxldCBzZXR0aW5nc1VwZGF0ZSA9ICgpID0+IHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBjb25zdCBmb250U2l6ZSA9IHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygnYmFzZUZvbnRTaXplJyk7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudGV4dE5vcm1hbCA9IGZvbnRTaXplO1xyXG5cclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBpZiAodGhpcy5hcHAudmF1bHQuZ2V0Q29uZmlnKCdmb2xkSGVhZGluZycpKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5mb2xkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdGb2xkaW5nIGlzIG9uJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5mb2xkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnRm9sZGluZyBpcyBvZmYnKTtcclxuICAgICAgfVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtZm9sZGluZycsIHRoaXMuc2V0dGluZ3MuZm9sZGluZyk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgaWYgKHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygnc2hvd0xpbmVOdW1iZXInKSkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGluZU51bWJlcnMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0xpbmUgbnVtYmVycyBhcmUgb24nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpbmVOdW1iZXJzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnTGluZSBudW1iZXJzIGFyZSBvZmYnKTtcclxuICAgICAgfVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtbGluZS1udW1zJywgdGhpcy5zZXR0aW5ncy5saW5lTnVtYmVycyk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgaWYgKHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygncmVhZGFibGVMaW5lTGVuZ3RoJykpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnUmVhZGFibGUgbGluZSBsZW5ndGggaXMgb24nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1JlYWRhYmxlIGxpbmUgbGVuZ3RoIGlzIG9mZicpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtcmVhZGFibGUnLCB0aGlzLnNldHRpbmdzLnJlYWRhYmxlTGluZUxlbmd0aCk7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1yZWFkYWJsZS1vZmYnLCAhdGhpcy5zZXR0aW5ncy5yZWFkYWJsZUxpbmVMZW5ndGgpO1xyXG4gIFxyXG4gICAgfVxyXG4gIFxyXG4gICAgbGV0IHNpZGViYXJVcGRhdGUgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNpZGViYXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21vZC1sZWZ0LXNwbGl0JylbMF07XHJcbiAgICAgIGNvbnN0IHJpYmJvbkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc2lkZS1kb2NrLXJpYmJvbicpWzBdO1xyXG4gICAgICBpZiAoc2lkZWJhckVsICYmIHJpYmJvbkVsICYmIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCd0aGVtZS1saWdodCcpICYmIHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSA9PSAnbWluaW1hbC1saWdodC1jb250cmFzdCcpIHtcclxuICAgICAgICBzaWRlYmFyRWwuYWRkQ2xhc3MoJ3RoZW1lLWRhcmsnKTtcclxuICAgICAgICByaWJib25FbC5hZGRDbGFzcygndGhlbWUtZGFyaycpO1xyXG4gICAgICB9IGVsc2UgaWYgKHNpZGViYXJFbCAmJiByaWJib25FbCkge1xyXG4gICAgICAgIHNpZGViYXJFbC5yZW1vdmVDbGFzcygndGhlbWUtZGFyaycpOyBcclxuICAgICAgICByaWJib25FbC5yZW1vdmVDbGFzcygndGhlbWUtZGFyaycpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5yZWdpc3RlckV2ZW50KGFwcC52YXVsdC5vbignY29uZmlnLWNoYW5nZWQnLCBzZXR0aW5nc1VwZGF0ZSkpO1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5yZWdpc3RlckV2ZW50KGFwcC53b3Jrc3BhY2Uub24oJ2Nzcy1jaGFuZ2UnLCBzaWRlYmFyVXBkYXRlKSk7XHJcblxyXG4gICAgc2V0dGluZ3NVcGRhdGUoKTtcclxuICAgIFxyXG4gICAgYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpID0+IHtcclxuICAgICAgc2lkZWJhclVwZGF0ZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgbGlnaHRTdHlsZXMgPSBbJ21pbmltYWwtbGlnaHQnLCAnbWluaW1hbC1saWdodC10b25hbCcsICdtaW5pbWFsLWxpZ2h0LWNvbnRyYXN0JywgJ21pbmltYWwtbGlnaHQtd2hpdGUnXTtcclxuICAgIGNvbnN0IGRhcmtTdHlsZXMgPSBbJ21pbmltYWwtZGFyaycsICdtaW5pbWFsLWRhcmstdG9uYWwnLCAnbWluaW1hbC1kYXJrLWJsYWNrJ107XHJcbiAgICBjb25zdCBpbWdHcmlkU3R5bGVzID0gWydpbWctZ3JpZCcsJ2ltZy1ncmlkLXJhdGlvJywnaW1nLW5vZ3JpZCddO1xyXG4gICAgY29uc3QgdGFibGVXaWR0aFN0eWxlcyA9IFsndGFibGUtMTAwJywndGFibGUtZGVmYXVsdC13aWR0aCcsJ3RhYmxlLXdpZGUnLCd0YWJsZS1tYXgnXTtcclxuICAgIGNvbnN0IGlmcmFtZVdpZHRoU3R5bGVzID0gWydpZnJhbWUtMTAwJywnaWZyYW1lLWRlZmF1bHQtd2lkdGgnLCdpZnJhbWUtd2lkZScsJ2lmcmFtZS1tYXgnXTtcclxuICAgIGNvbnN0IGltZ1dpZHRoU3R5bGVzID0gWydpbWctMTAwJywnaW1nLWRlZmF1bHQtd2lkdGgnLCdpbWctd2lkZScsJ2ltZy1tYXgnXTtcclxuICAgIGNvbnN0IG1hcFdpZHRoU3R5bGVzID0gWydtYXAtMTAwJywnbWFwLWRlZmF1bHQtd2lkdGgnLCdtYXAtd2lkZScsJ21hcC1tYXgnXTtcclxuICAgIGNvbnN0IGNoYXJ0V2lkdGhTdHlsZXMgPSBbJ2NoYXJ0LTEwMCcsJ2NoYXJ0LWRlZmF1bHQtd2lkdGgnLCdjaGFydC13aWRlJywnY2hhcnQtbWF4J107XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICdpbmNyZWFzZS1ib2R5LWZvbnQtc2l6ZScsXHJcbiAgICAgIG5hbWU6ICdJbmNyZWFzZSBib2R5IGZvbnQgc2l6ZScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy50ZXh0Tm9ybWFsID0gdGhpcy5zZXR0aW5ncy50ZXh0Tm9ybWFsICsgMC41O1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5zZXRGb250U2l6ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ2RlY3JlYXNlLWJvZHktZm9udC1zaXplJyxcclxuICAgICAgbmFtZTogJ0RlY3JlYXNlIGJvZHkgZm9udCBzaXplJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLnRleHROb3JtYWwgPSB0aGlzLnNldHRpbmdzLnRleHROb3JtYWwgLSAwLjU7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnNldEZvbnRTaXplKCk7XHJcbiAgICAgIH1cclxuICAgIH0pOyBcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWRhcmstY3ljbGUnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiBkYXJrIG1vZGUgc3R5bGVzJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSA9IGRhcmtTdHlsZXNbKGRhcmtTdHlsZXMuaW5kZXhPZih0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSkgKyAxKSAlIGRhcmtTdHlsZXMubGVuZ3RoXTtcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pOyAgXHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1saWdodC1jeWNsZScsXHJcbiAgICAgIG5hbWU6ICdDeWNsZSBiZXR3ZWVuIGxpZ2h0IG1vZGUgc3R5bGVzJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U3R5bGUgPSBsaWdodFN0eWxlc1sobGlnaHRTdHlsZXMuaW5kZXhPZih0aGlzLnNldHRpbmdzLmxpZ2h0U3R5bGUpICsgMSkgJSBsaWdodFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLWhpZGRlbi1ib3JkZXJzJyxcclxuICAgICAgbmFtZTogJ1RvZ2dsZSBzaWRlYmFyIGJvcmRlcnMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuYm9yZGVyc1RvZ2dsZSA9ICF0aGlzLnNldHRpbmdzLmJvcmRlcnNUb2dnbGU7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtY29sb3JmdWwtaGVhZGluZ3MnLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIGNvbG9yZnVsIGhlYWRpbmdzJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNvbG9yZnVsSGVhZGluZ3MgPSAhdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEhlYWRpbmdzO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZm9jdXMtbW9kZScsXHJcbiAgICAgIG5hbWU6ICdUb2dnbGUgZm9jdXMgbW9kZScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5mb2N1c01vZGUgPSAhdGhpcy5zZXR0aW5ncy5mb2N1c01vZGU7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1jb2xvcmZ1bC1mcmFtZScsXHJcbiAgICAgIG5hbWU6ICdUb2dnbGUgY29sb3JmdWwgd2luZG93IGZyYW1lJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNvbG9yZnVsRnJhbWUgPSAhdGhpcy5zZXR0aW5ncy5jb2xvcmZ1bEZyYW1lO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnY3ljbGUtbWluaW1hbC10YWJsZS13aWR0aCcsXHJcbiAgICAgIG5hbWU6ICdDeWNsZSBiZXR3ZWVuIHRhYmxlIHdpZHRoIG9wdGlvbnMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MudGFibGVXaWR0aCA9IHRhYmxlV2lkdGhTdHlsZXNbKHRhYmxlV2lkdGhTdHlsZXMuaW5kZXhPZih0aGlzLnNldHRpbmdzLnRhYmxlV2lkdGgpICsgMSkgJSB0YWJsZVdpZHRoU3R5bGVzLmxlbmd0aF07XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICdjeWNsZS1taW5pbWFsLWltYWdlLXdpZHRoJyxcclxuICAgICAgbmFtZTogJ0N5Y2xlIGJldHdlZW4gaW1hZ2Ugd2lkdGggb3B0aW9ucycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbWdXaWR0aCA9IGltZ1dpZHRoU3R5bGVzWyhpbWdXaWR0aFN0eWxlcy5pbmRleE9mKHRoaXMuc2V0dGluZ3MuaW1nV2lkdGgpICsgMSkgJSBpbWdXaWR0aFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnY3ljbGUtbWluaW1hbC1pZnJhbWUtd2lkdGgnLFxyXG4gICAgICBuYW1lOiAnQ3ljbGUgYmV0d2VlbiBpZnJhbWUgd2lkdGggb3B0aW9ucycsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pZnJhbWVXaWR0aCA9IGlmcmFtZVdpZHRoU3R5bGVzWyhpZnJhbWVXaWR0aFN0eWxlcy5pbmRleE9mKHRoaXMuc2V0dGluZ3MuaWZyYW1lV2lkdGgpICsgMSkgJSBpZnJhbWVXaWR0aFN0eWxlcy5sZW5ndGhdO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAnY3ljbGUtbWluaW1hbC1jaGFydC13aWR0aCcsXHJcbiAgICAgIG5hbWU6ICdDeWNsZSBiZXR3ZWVuIGNoYXJ0IHdpZHRoIG9wdGlvbnMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY2hhcnRXaWR0aCA9IGNoYXJ0V2lkdGhTdHlsZXNbKGNoYXJ0V2lkdGhTdHlsZXMuaW5kZXhPZih0aGlzLnNldHRpbmdzLmNoYXJ0V2lkdGgpICsgMSkgJSBjaGFydFdpZHRoU3R5bGVzLmxlbmd0aF07XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICdjeWNsZS1taW5pbWFsLW1hcC13aWR0aCcsXHJcbiAgICAgIG5hbWU6ICdDeWNsZSBiZXR3ZWVuIG1hcCB3aWR0aCBvcHRpb25zJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLm1hcFdpZHRoID0gbWFwV2lkdGhTdHlsZXNbKG1hcFdpZHRoU3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy5tYXBXaWR0aCkgKyAxKSAlIG1hcFdpZHRoU3R5bGVzLmxlbmd0aF07XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1pbWctZ3JpZCcsXHJcbiAgICAgIG5hbWU6ICdUb2dnbGUgaW1hZ2UgZ3JpZHMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaW1nR3JpZCA9ICF0aGlzLnNldHRpbmdzLmltZ0dyaWQ7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1zd2l0Y2gnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGJldHdlZW4gbGlnaHQgYW5kIGRhcmsgbW9kZScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUaGVtZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWxpZ2h0LWRlZmF1bHQnLFxyXG4gICAgICBuYW1lOiAnVXNlIGxpZ2h0IG1vZGUgKGRlZmF1bHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U3R5bGUgPSAnbWluaW1hbC1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1saWdodC13aGl0ZScsXHJcbiAgICAgIG5hbWU6ICdVc2UgbGlnaHQgbW9kZSAoYWxsIHdoaXRlKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFN0eWxlID0gJ21pbmltYWwtbGlnaHQtd2hpdGUnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtbGlnaHQtdG9uYWwnLFxyXG4gICAgICBuYW1lOiAnVXNlIGxpZ2h0IG1vZGUgKGxvdyBjb250cmFzdCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTdHlsZSA9ICdtaW5pbWFsLWxpZ2h0LXRvbmFsJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWxpZ2h0LWNvbnRyYXN0JyxcclxuICAgICAgbmFtZTogJ1VzZSBsaWdodCBtb2RlIChoaWdoIGNvbnRyYXN0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFN0eWxlID0gJ21pbmltYWwtbGlnaHQtY29udHJhc3QnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZGFyay1kZWZhdWx0JyxcclxuICAgICAgbmFtZTogJ1VzZSBkYXJrIG1vZGUgKGRlZmF1bHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTdHlsZSA9ICdtaW5pbWFsLWRhcmsnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXJrU3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1kYXJrLXRvbmFsJyxcclxuICAgICAgbmFtZTogJ1VzZSBkYXJrIG1vZGUgKGxvdyBjb250cmFzdCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1N0eWxlID0gJ21pbmltYWwtZGFyay10b25hbCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWRhcmstYmxhY2snLFxyXG4gICAgICBuYW1lOiAnVXNlIGRhcmsgbW9kZSAodHJ1ZSBibGFjayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1N0eWxlID0gJ21pbmltYWwtZGFyay1ibGFjayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWF0b20tbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBBdG9tIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1hdG9tLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1heXUtbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBBeXUgKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLWF5dS1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtY2F0cHB1Y2Npbi1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIENhdHBwdWNjaW4gKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLWNhdHBwdWNjaW4tbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWRlZmF1bHQtbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBkZWZhdWx0IChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1kZWZhdWx0LWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ncnV2Ym94LWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gR3J1dmJveCAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtZ3J1dmJveC1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZWluay1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIEUtaW5rIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1laW5rLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ldmVyZm9yZXN0LWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gRXZlcmZvcmVzdCAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtZXZlcmZvcmVzdC1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZmxleG9raS1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIEZsZXhva2kgKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLWZsZXhva2ktbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLW1hY29zLWxpZ2h0JyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBsaWdodCBjb2xvciBzY2hlbWUgdG8gbWFjT1MgKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLW1hY29zLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC1ub3Rpb24tbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBTa3kgKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLW5vdGlvbi1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtbm9yZC1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIE5vcmQgKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLW5vcmQtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLXJvc2UtcGluZS1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIFJvc1x1MDBFOSBQaW5lIChsaWdodCknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MubGlnaHRTY2hlbWUgPSAnbWluaW1hbC1yb3NlLXBpbmUtbGlnaHQnO1xyXG4gICAgICAgIHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLXNvbGFyaXplZC1saWdodCcsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggbGlnaHQgY29sb3Igc2NoZW1lIHRvIFNvbGFyaXplZCAobGlnaHQpJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gJ21pbmltYWwtc29sYXJpemVkLWxpZ2h0JztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlnaHRTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6ICd0b2dnbGUtbWluaW1hbC10aGluZ3MtbGlnaHQnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGxpZ2h0IGNvbG9yIHNjaGVtZSB0byBUaGluZ3MgKGxpZ2h0KScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSA9ICdtaW5pbWFsLXRoaW5ncy1saWdodCc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpZ2h0U2NoZW1lKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaWdodFN0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtYXRvbS1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBBdG9tIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtYXRvbS1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtYXl1LWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIEF5dSAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWF5dS1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtY2F0cHB1Y2Npbi1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBDYXRwcHVjY2luIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtY2F0cHB1Y2Npbi1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZHJhY3VsYS1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBEcmFjdWxhIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtZHJhY3VsYS1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZGVmYXVsdC1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBkZWZhdWx0IChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtZGVmYXVsdC1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZWluay1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBFLWluayAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWVpbmstZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWV2ZXJmb3Jlc3QtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gRXZlcmZvcmVzdCAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWV2ZXJmb3Jlc3QtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWZsZXhva2ktZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gRmxleG9raSAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWZsZXhva2ktZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLWdydXZib3gtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gR3J1dmJveCAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLWdydXZib3gtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLW1hY29zLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIG1hY09TIChkYXJrKScsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lID0gJ21pbmltYWwtbWFjb3MtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLW5vcmQtZGFyaycsXHJcbiAgICAgIG5hbWU6ICdTd2l0Y2ggZGFyayBjb2xvciBzY2hlbWUgdG8gTm9yZCAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLW5vcmQtZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLW5vdGlvbi1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBTa3kgKGRhcmspJyxcclxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUgPSAnbWluaW1hbC1ub3Rpb24tZGFyayc7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTY2hlbWUoKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhcmtTdHlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1taW5pbWFsLXJvc2UtcGluZS1kYXJrJyxcclxuICAgICAgbmFtZTogJ1N3aXRjaCBkYXJrIGNvbG9yIHNjaGVtZSB0byBSb3NcdTAwRTkgUGluZSAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLXJvc2UtcGluZS1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtc29sYXJpemVkLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIFNvbGFyaXplZCAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLXNvbGFyaXplZC1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtdGhpbmdzLWRhcmsnLFxyXG4gICAgICBuYW1lOiAnU3dpdGNoIGRhcmsgY29sb3Igc2NoZW1lIHRvIFRoaW5ncyAoZGFyayknLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1NjaGVtZSA9ICdtaW5pbWFsLXRoaW5ncy1kYXJrJztcclxuICAgICAgICB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLW1pbmltYWwtZGV2LWJsb2NrLXdpZHRoJyxcclxuICAgICAgbmFtZTogJ0RldiBcdTIwMTQgU2hvdyBibG9jayB3aWR0aHMnLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuZGV2QmxvY2tXaWR0aCA9ICF0aGlzLnNldHRpbmdzLmRldkJsb2NrV2lkdGg7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yZWZyZXNoKClcclxuICB9XHJcblxyXG4gIG9udW5sb2FkKCkge1xyXG4gICAgY29uc29sZS5sb2coJ1VubG9hZGluZyBNaW5pbWFsIFRoZW1lIFNldHRpbmdzIHBsdWdpbicpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbG9hZFNldHRpbmdzKCkge1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oREVGQVVMVF9TRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNhdmVTZXR0aW5ncygpIHtcclxuICAgIGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgfVxyXG5cclxuICAvLyByZWZyZXNoIGZ1bmN0aW9uIGZvciB3aGVuIHdlIGNoYW5nZSBzZXR0aW5nc1xyXG4gIHJlZnJlc2goKSB7XHJcbiAgICAvLyByZS1sb2FkIHRoZSBzdHlsZVxyXG4gICAgdGhpcy51cGRhdGVTdHlsZSgpXHJcbiAgfVxyXG5cclxuICAvLyBhZGQgdGhlIHN0eWxpbmcgZWxlbWVudHMgd2UgbmVlZFxyXG4gIGFkZFN0eWxlKCkge1xyXG4gICAgLy8gYWRkIGEgY3NzIGJsb2NrIGZvciBvdXIgc2V0dGluZ3MtZGVwZW5kZW50IHN0eWxlc1xyXG4gICAgY29uc3QgY3NzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuICAgIGNzcy5pZCA9ICdtaW5pbWFsLXRoZW1lJztcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5hcHBlbmRDaGlsZChjc3MpO1xyXG5cclxuICAgIC8vIGFkZCB0aGUgbWFpbiBjbGFzc1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtaW5pbWFsLXRoZW1lJyk7XHJcblxyXG4gICAgLy8gdXBkYXRlIHRoZSBzdHlsZSB3aXRoIHRoZSBzZXR0aW5ncy1kZXBlbmRlbnQgc3R5bGVzXHJcbiAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRGb250U2l6ZSgpIHtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuYXBwLnZhdWx0LnNldENvbmZpZygnYmFzZUZvbnRTaXplJywgdGhpcy5zZXR0aW5ncy50ZXh0Tm9ybWFsKTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuYXBwLnVwZGF0ZUZvbnRTaXplKCk7XHJcbiAgfVxyXG5cclxuICAvLyB1cGRhdGUgdGhlIHN0eWxlcyAoYXQgdGhlIHN0YXJ0LCBvciBhcyB0aGUgcmVzdWx0IG9mIGEgc2V0dGluZ3MgY2hhbmdlKVxyXG4gIHVwZGF0ZVN0eWxlKCkge1xyXG4gICAgdGhpcy5yZW1vdmVTdHlsZSgpO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5kYXJrU2NoZW1lKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSk7XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdib3JkZXJzLW5vbmUnLCAhdGhpcy5zZXR0aW5ncy5ib3JkZXJzVG9nZ2xlKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnY29sb3JmdWwtaGVhZGluZ3MnLCB0aGlzLnNldHRpbmdzLmNvbG9yZnVsSGVhZGluZ3MpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdjb2xvcmZ1bC1mcmFtZScsIHRoaXMuc2V0dGluZ3MuY29sb3JmdWxGcmFtZSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2NvbG9yZnVsLWFjdGl2ZScsIHRoaXMuc2V0dGluZ3MuY29sb3JmdWxBY3RpdmVTdGF0ZXMpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdtaW5pbWFsLWZvY3VzLW1vZGUnLCB0aGlzLnNldHRpbmdzLmZvY3VzTW9kZSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2xpbmtzLWludC1vbicsIHRoaXMuc2V0dGluZ3MudW5kZXJsaW5lSW50ZXJuYWwpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdsaW5rcy1leHQtb24nLCB0aGlzLnNldHRpbmdzLnVuZGVybGluZUV4dGVybmFsKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnZnVsbC13aWR0aC1tZWRpYScsIHRoaXMuc2V0dGluZ3MuZnVsbFdpZHRoTWVkaWEpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdpbWctZ3JpZCcsIHRoaXMuc2V0dGluZ3MuaW1nR3JpZCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ21pbmltYWwtZGV2LWJsb2NrLXdpZHRoJywgdGhpcy5zZXR0aW5ncy5kZXZCbG9ja1dpZHRoKTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1zdGF0dXMtb2ZmJywgIXRoaXMuc2V0dGluZ3MubWluaW1hbFN0YXR1cyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2Z1bGwtZmlsZS1uYW1lcycsICF0aGlzLnNldHRpbmdzLnRyaW1OYW1lcyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2xhYmVsZWQtbmF2JywgdGhpcy5zZXR0aW5ncy5sYWJlbGVkTmF2KTtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnbWluaW1hbC1mb2xkaW5nJywgdGhpcy5zZXR0aW5ncy5mb2xkaW5nKTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKCd0YWJsZS13aWRlJywndGFibGUtbWF4JywndGFibGUtMTAwJywndGFibGUtZGVmYXVsdC13aWR0aCcsXHJcbiAgICAgICdpZnJhbWUtd2lkZScsJ2lmcmFtZS1tYXgnLCdpZnJhbWUtMTAwJywnaWZyYW1lLWRlZmF1bHQtd2lkdGgnLFxyXG4gICAgICAnaW1nLXdpZGUnLCdpbWctbWF4JywnaW1nLTEwMCcsJ2ltZy1kZWZhdWx0LXdpZHRoJyxcclxuICAgICAgJ2NoYXJ0LXdpZGUnLCdjaGFydC1tYXgnLCdjaGFydC0xMDAnLCdjaGFydC1kZWZhdWx0LXdpZHRoJyxcclxuICAgICAgJ21hcC13aWRlJywnbWFwLW1heCcsJ21hcC0xMDAnLCdtYXAtZGVmYXVsdC13aWR0aCcpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmNoYXJ0V2lkdGgpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLnRhYmxlV2lkdGgpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmltZ1dpZHRoKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5pZnJhbWVXaWR0aCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKHRoaXMuc2V0dGluZ3MubWFwV2lkdGgpO1xyXG5cclxuICAgIC8vIGdldCB0aGUgY3VzdG9tIGNzcyBlbGVtZW50XHJcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaW5pbWFsLXRoZW1lJyk7XHJcbiAgICBpZiAoIWVsKSB0aHJvdyBcIm1pbmltYWwtdGhlbWUgZWxlbWVudCBub3QgZm91bmQhXCI7XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gc2V0IHRoZSBzZXR0aW5ncy1kZXBlbmRlbnQgY3NzXHJcbiAgICAgIGVsLmlubmVyVGV4dCA9IFxyXG4gICAgICAgICdib2R5Lm1pbmltYWwtdGhlbWV7J1xyXG4gICAgICAgICsgJy0tZm9udC11aS1zbWFsbDonICsgdGhpcy5zZXR0aW5ncy50ZXh0U21hbGwgKyAncHg7J1xyXG4gICAgICAgICsgJy0tbGluZS1oZWlnaHQ6JyArIHRoaXMuc2V0dGluZ3MubGluZUhlaWdodCArICc7J1xyXG4gICAgICAgICsgJy0tbGluZS13aWR0aDonICsgdGhpcy5zZXR0aW5ncy5saW5lV2lkdGggKyAncmVtOydcclxuICAgICAgICArICctLWxpbmUtd2lkdGgtd2lkZTonICsgdGhpcy5zZXR0aW5ncy5saW5lV2lkdGhXaWRlICsgJ3JlbTsnXHJcbiAgICAgICAgKyAnLS1tYXgtd2lkdGg6JyArIHRoaXMuc2V0dGluZ3MubWF4V2lkdGggKyAnJTsnXHJcbiAgICAgICAgKyAnLS1mb250LWVkaXRvci1vdmVycmlkZTonICsgdGhpcy5zZXR0aW5ncy5lZGl0b3JGb250ICsgJzsnO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHVwZGF0ZURhcmtTdHlsZSgpIHtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2xhc3MoXHJcbiAgICAgICd0aGVtZS1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1kYXJrLXRvbmFsJyxcclxuICAgICAgJ21pbmltYWwtZGFyay1ibGFjaydcclxuICAgICk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKFxyXG4gICAgICAndGhlbWUtZGFyaycsXHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuZGFya1N0eWxlXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygndGhlbWUnKSAhPT0gJ3N5c3RlbScpIHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLmFwcC5zZXRUaGVtZSgnb2JzaWRpYW4nKTtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLmFwcC52YXVsdC5zZXRDb25maWcoJ3RoZW1lJywgJ29ic2lkaWFuJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2UudHJpZ2dlcignY3NzLWNoYW5nZScpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTGlnaHRTdHlsZSgpIHtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2xhc3MoXHJcbiAgICAgICd0aGVtZS1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1saWdodC10b25hbCcsXHJcbiAgICAgICdtaW5pbWFsLWxpZ2h0LWNvbnRyYXN0JyxcclxuICAgICAgJ21pbmltYWwtbGlnaHQtd2hpdGUnXHJcbiAgICApO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyhcclxuICAgICAgJ3RoZW1lLWxpZ2h0JyxcclxuICAgICAgdGhpcy5zZXR0aW5ncy5saWdodFN0eWxlXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygndGhlbWUnKSAhPT0gJ3N5c3RlbScpIHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLmFwcC5zZXRUaGVtZSgnbW9vbnN0b25lJyk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgdGhpcy5hcHAudmF1bHQuc2V0Q29uZmlnKCd0aGVtZScsICdtb29uc3RvbmUnKTtcclxuICAgIH1cclxuICAgIHRoaXMuYXBwLndvcmtzcGFjZS50cmlnZ2VyKCdjc3MtY2hhbmdlJyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEYXJrU2NoZW1lKCkge1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDbGFzcyhcclxuICAgICAgJ21pbmltYWwtYXRvbS1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtYXl1LWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1jYXRwcHVjY2luLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1kZWZhdWx0LWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1kcmFjdWxhLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1laW5rLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1ldmVyZm9yZXN0LWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1mbGV4b2tpLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1ncnV2Ym94LWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1tYWNvcy1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtbm9yZC1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtbm90aW9uLWRhcmsnLFxyXG4gICAgICAnbWluaW1hbC1yb3NlLXBpbmUtZGFyaycsXHJcbiAgICAgICdtaW5pbWFsLXNvbGFyaXplZC1kYXJrJyxcclxuICAgICAgJ21pbmltYWwtdGhpbmdzLWRhcmsnXHJcbiAgICApO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmRhcmtTY2hlbWUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTGlnaHRTY2hlbWUoKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKFxyXG4gICAgICAnbWluaW1hbC1hdG9tLWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtYXl1LWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtY2F0cHB1Y2Npbi1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWRlZmF1bHQtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1laW5rLWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtZXZlcmZvcmVzdC1saWdodCcsXHJcbiAgICAgICdtaW5pbWFsLWZsZXhva2ktbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1ncnV2Ym94LWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtbWFjb3MtbGlnaHQnLFxyXG4gICAgICAnbWluaW1hbC1ub3JkLWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtbm90aW9uLWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtcm9zZS1waW5lLWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtc29sYXJpemVkLWxpZ2h0JyxcclxuICAgICAgJ21pbmltYWwtdGhpbmdzLWxpZ2h0J1xyXG4gICAgKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5saWdodFNjaGVtZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUaGVtZSgpIHtcclxuICAgIGlmICh0aGlzLmFwcC52YXVsdC5nZXRDb25maWcoJ3RoZW1lJykgPT09ICdzeXN0ZW0nKSB7XHJcbiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCd0aGVtZS1saWdodCcpKSB7XHJcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKCd0aGVtZS1saWdodCcpO1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcygndGhlbWUtZGFyaycpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKCd0aGVtZS1kYXJrJyk7XHJcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKCd0aGVtZS1saWdodCcpO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCd0aGVtZS1saWdodCcpKSB7XHJcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKCd0aGVtZS1saWdodCcpO1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRDbGFzcygndGhlbWUtZGFyaycpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNsYXNzKCd0aGVtZS1kYXJrJyk7XHJcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFkZENsYXNzKCd0aGVtZS1saWdodCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGN1cnJlbnRUaGVtZSA9IHRoaXMuYXBwLnZhdWx0LmdldENvbmZpZygndGhlbWUnKTtcclxuICAgICAgY29uc3QgbmV3VGhlbWUgPSBjdXJyZW50VGhlbWUgPT09ICdtb29uc3RvbmUnID8gJ29ic2lkaWFuJyA6ICdtb29uc3RvbmUnO1xyXG5cclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLmFwcC5zZXRUaGVtZShuZXdUaGVtZSk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgdGhpcy5hcHAudmF1bHQuc2V0Q29uZmlnKCd0aGVtZScsIG5ld1RoZW1lKTtcclxuICAgIH1cclxuICAgIHRoaXMuYXBwLndvcmtzcGFjZS50cmlnZ2VyKCdjc3MtY2hhbmdlJyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVTdHlsZSgpIHtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2xhc3MoJ21pbmltYWwtbGlnaHQnLCdtaW5pbWFsLWxpZ2h0LXRvbmFsJywnbWluaW1hbC1saWdodC1jb250cmFzdCcsJ21pbmltYWwtbGlnaHQtd2hpdGUnLCdtaW5pbWFsLWRhcmsnLCdtaW5pbWFsLWRhcmstdG9uYWwnLCdtaW5pbWFsLWRhcmstYmxhY2snKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5saWdodFN0eWxlLHRoaXMuc2V0dGluZ3MuZGFya1N0eWxlKTtcclxuICB9XHJcblxyXG59XHJcblxyXG5pbnRlcmZhY2UgTWluaW1hbFNldHRpbmdzIHtcclxuICBsaWdodFN0eWxlOiBzdHJpbmc7XHJcbiAgZGFya1N0eWxlOiBzdHJpbmc7XHJcbiAgbGlnaHRTY2hlbWU6IHN0cmluZztcclxuICBkYXJrU2NoZW1lOiBzdHJpbmc7XHJcbiAgZWRpdG9yRm9udDogc3RyaW5nO1xyXG4gIGNvbG9yZnVsSGVhZGluZ3M6IGJvb2xlYW47XHJcbiAgY29sb3JmdWxGcmFtZTogYm9vbGVhbjtcclxuICBjb2xvcmZ1bEFjdGl2ZVN0YXRlczogYm9vbGVhbixcclxuICB0cmltTmFtZXM6IGJvb2xlYW47XHJcbiAgbGFiZWxlZE5hdjogYm9vbGVhbjtcclxuICBib3JkZXJzVG9nZ2xlOiBib29sZWFuO1xyXG4gIGZvY3VzTW9kZTogYm9vbGVhbjtcclxuICBsaW5lSGVpZ2h0OiBudW1iZXI7XHJcbiAgbGluZVdpZHRoOiBudW1iZXI7XHJcbiAgbGluZVdpZHRoV2lkZTogbnVtYmVyO1xyXG4gIG1heFdpZHRoOiBudW1iZXI7XHJcbiAgaW1nR3JpZDogYm9vbGVhbjtcclxuICBkZXZCbG9ja1dpZHRoOiBib29sZWFuO1xyXG4gIHRhYmxlV2lkdGg6IHN0cmluZztcclxuICBpZnJhbWVXaWR0aDogc3RyaW5nO1xyXG4gIGltZ1dpZHRoOiBzdHJpbmc7XHJcbiAgY2hhcnRXaWR0aDogc3RyaW5nO1xyXG4gIG1hcFdpZHRoOiBzdHJpbmc7XHJcbiAgZnVsbFdpZHRoTWVkaWE6IGJvb2xlYW4sXHJcbiAgbWluaW1hbFN0YXR1czogYm9vbGVhbixcclxuICB0ZXh0Tm9ybWFsOiBudW1iZXI7XHJcbiAgdGV4dFNtYWxsOiBudW1iZXI7XHJcbiAgdW5kZXJsaW5lSW50ZXJuYWw6IGJvb2xlYW47XHJcbiAgdW5kZXJsaW5lRXh0ZXJuYWw6IGJvb2xlYW47XHJcbiAgZm9sZGluZzogYm9vbGVhbjtcclxuICBsaW5lTnVtYmVyczogYm9vbGVhbjtcclxuICByZWFkYWJsZUxpbmVMZW5ndGg6IGJvb2xlYW47XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IE1pbmltYWxTZXR0aW5ncyA9IHtcclxuICBsaWdodFN0eWxlOiAnbWluaW1hbC1saWdodCcsXHJcbiAgZGFya1N0eWxlOiAnbWluaW1hbC1kYXJrJyxcclxuICBsaWdodFNjaGVtZTogJ21pbmltYWwtZGVmYXVsdC1saWdodCcsXHJcbiAgZGFya1NjaGVtZTogJ21pbmltYWwtZGVmYXVsdC1kYXJrJyxcclxuICBlZGl0b3JGb250OiAnJyxcclxuICBsaW5lSGVpZ2h0OiAxLjUsXHJcbiAgbGluZVdpZHRoOiA0MCxcclxuICBsaW5lV2lkdGhXaWRlOiA1MCxcclxuICBtYXhXaWR0aDogODgsXHJcbiAgdGV4dE5vcm1hbDogMTYsXHJcbiAgdGV4dFNtYWxsOiAxMyxcclxuICBpbWdHcmlkOiBmYWxzZSxcclxuICBpbWdXaWR0aDogJ2ltZy1kZWZhdWx0LXdpZHRoJyxcclxuICB0YWJsZVdpZHRoOiAndGFibGUtZGVmYXVsdC13aWR0aCcsXHJcbiAgaWZyYW1lV2lkdGg6ICdpZnJhbWUtZGVmYXVsdC13aWR0aCcsXHJcbiAgbWFwV2lkdGg6ICdtYXAtZGVmYXVsdC13aWR0aCcsXHJcbiAgY2hhcnRXaWR0aDogJ2NoYXJ0LWRlZmF1bHQtd2lkdGgnLFxyXG4gIGNvbG9yZnVsSGVhZGluZ3M6IGZhbHNlLFxyXG4gIGNvbG9yZnVsRnJhbWU6IGZhbHNlLFxyXG4gIGNvbG9yZnVsQWN0aXZlU3RhdGVzOiBmYWxzZSxcclxuICB0cmltTmFtZXM6IHRydWUsXHJcbiAgbGFiZWxlZE5hdjogZmFsc2UsXHJcbiAgZnVsbFdpZHRoTWVkaWE6IHRydWUsXHJcbiAgYm9yZGVyc1RvZ2dsZTogdHJ1ZSxcclxuICBtaW5pbWFsU3RhdHVzOiB0cnVlLFxyXG4gIGZvY3VzTW9kZTogZmFsc2UsXHJcbiAgdW5kZXJsaW5lSW50ZXJuYWw6IHRydWUsXHJcbiAgdW5kZXJsaW5lRXh0ZXJuYWw6IHRydWUsXHJcbiAgZm9sZGluZzogdHJ1ZSxcclxuICBsaW5lTnVtYmVyczogZmFsc2UsXHJcbiAgcmVhZGFibGVMaW5lTGVuZ3RoOiBmYWxzZSxcclxuICBkZXZCbG9ja1dpZHRoOiBmYWxzZSxcclxufVxyXG5cclxuY2xhc3MgTWluaW1hbFNldHRpbmdUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcclxuXHJcblxyXG4gIHBsdWdpbjogTWluaW1hbFRoZW1lO1xyXG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IE1pbmltYWxUaGVtZSkge1xyXG4gICAgc3VwZXIoYXBwLCBwbHVnaW4pO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5KCk6IHZvaWQge1xyXG4gICAgbGV0IHtjb250YWluZXJFbH0gPSB0aGlzO1xyXG5cclxuICAgIGNvbnRhaW5lckVsLmVtcHR5KCk7XHJcblxyXG4gICAgY29uc3QgY29sb3JTZWN0aW9uID0gY29udGFpbmVyRWwuY3JlYXRlRWwoJ2RpdicsIHtjbHM6ICdzZXR0aW5nLWl0ZW0gc2V0dGluZy1pdGVtLWhlYWRpbmcnfSk7XHJcblxyXG4gICAgY29uc3QgY29sb3JTZWN0aW9uSW5mbyA9ICBjb2xvclNlY3Rpb24uY3JlYXRlRWwoJ2RpdicsIHtjbHM6ICdzZXR0aW5nLWl0ZW0taW5mbyd9KTtcclxuXHJcbiAgICBjb2xvclNlY3Rpb25JbmZvLmNyZWF0ZUVsKCdkaXYnLCB7dGV4dDogJ0NvbG9yIHNjaGVtZScsIGNsczogJ3NldHRpbmctaXRlbS1uYW1lJ30pO1xyXG5cclxuICAgIGNvbnN0IGNvbG9yRGVzYyA9IGNvbG9yU2VjdGlvbkluZm8uY3JlYXRlRWwoJ2RpdicsIHtjbHM6ICdzZXR0aW5nLWl0ZW0tZGVzY3JpcHRpb24nfSk7XHJcblxyXG4gICAgICBjb2xvckRlc2MuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgY3JlYXRlRWwoJ3NwYW4nLCB7XHJcbiAgICAgICAgICB0ZXh0OiAnVG8gY3JlYXRlIGEgY3VzdG9tIGNvbG9yIHNjaGVtZSB1c2UgdGhlICdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgY29sb3JEZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdhJywge1xyXG4gICAgICAgICAgdGV4dDogXCJTdHlsZSBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgaHJlZjogXCJvYnNpZGlhbjovL3Nob3ctcGx1Z2luP2lkPW9ic2lkaWFuLXN0eWxlLXNldHRpbmdzXCIsXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgY29sb3JEZXNjLmFwcGVuZFRleHQoJyBwbHVnaW4uIFNlZSAnKTtcclxuXHJcbiAgICAgIGNvbG9yRGVzYy5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnYScsIHtcclxuICAgICAgICAgIHRleHQ6IFwiZG9jdW1lbnRhdGlvblwiLFxyXG4gICAgICAgICAgaHJlZjogXCJodHRwczovL21pbmltYWwuZ3VpZGUvZmVhdHVyZXMvY29sb3Itc2NoZW1lc1wiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbG9yRGVzYy5hcHBlbmRUZXh0KCcgZm9yIGRldGFpbHMuJyk7XHJcblxyXG4gICAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgICAuc2V0TmFtZSgnTGlnaHQgbW9kZSBjb2xvciBzY2hlbWUnKVxyXG4gICAgICAgIC5zZXREZXNjKCdQcmVzZXQgY29sb3Igb3B0aW9ucyBmb3IgbGlnaHQgbW9kZS4nKVxyXG4gICAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1kZWZhdWx0LWxpZ2h0JywnRGVmYXVsdCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWF0b20tbGlnaHQnLCdBdG9tJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtYXl1LWxpZ2h0JywnQXl1JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtY2F0cHB1Y2Npbi1saWdodCcsJ0NhdHBwdWNjaW4nKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1laW5rLWxpZ2h0JywnRS1pbmsgKGJldGEpJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZXZlcmZvcmVzdC1saWdodCcsJ0V2ZXJmb3Jlc3QnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1mbGV4b2tpLWxpZ2h0JywnRmxleG9raScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWdydXZib3gtbGlnaHQnLCdHcnV2Ym94JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbWFjb3MtbGlnaHQnLCdtYWNPUycpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLW5vcmQtbGlnaHQnLCdOb3JkJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtcm9zZS1waW5lLWxpZ2h0JywnUm9zXHUwMEU5IFBpbmUnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1ub3Rpb24tbGlnaHQnLCdTa3knKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1zb2xhcml6ZWQtbGlnaHQnLCdTb2xhcml6ZWQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC10aGluZ3MtbGlnaHQnLCdUaGluZ3MnKVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmxpZ2h0U2NoZW1lKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmxpZ2h0U2NoZW1lID0gdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi51cGRhdGVMaWdodFNjaGVtZSgpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAgIC5zZXROYW1lKCdMaWdodCBtb2RlIGJhY2tncm91bmQgY29udHJhc3QnKVxyXG4gICAgICAgIC5zZXREZXNjKCdMZXZlbCBvZiBjb250cmFzdCBiZXR3ZWVuIHNpZGViYXIgYW5kIG1haW4gY29udGVudC4nKVxyXG4gICAgICAgIC5hZGREcm9wZG93bihkcm9wZG93biA9PiBkcm9wZG93blxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1saWdodCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1saWdodC13aGl0ZScsJ0FsbCB3aGl0ZScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWxpZ2h0LXRvbmFsJywnTG93IGNvbnRyYXN0JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbGlnaHQtY29udHJhc3QnLCdIaWdoIGNvbnRyYXN0JylcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saWdodFN0eWxlKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmxpZ2h0U3R5bGUgPSB2YWx1ZTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnVwZGF0ZUxpZ2h0U3R5bGUoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgICAuc2V0TmFtZSgnRGFyayBtb2RlIGNvbG9yIHNjaGVtZScpXHJcbiAgICAgICAgLnNldERlc2MoJ1ByZXNldCBjb2xvcnMgb3B0aW9ucyBmb3IgZGFyayBtb2RlLicpXHJcbiAgICAgICAgLmFkZERyb3Bkb3duKGRyb3Bkb3duID0+IGRyb3Bkb3duXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWRlZmF1bHQtZGFyaycsJ0RlZmF1bHQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1hdG9tLWRhcmsnLCdBdG9tJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtYXl1LWRhcmsnLCdBeXUnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1jYXRwcHVjY2luLWRhcmsnLCdDYXRwcHVjY2luJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZHJhY3VsYS1kYXJrJywnRHJhY3VsYScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWVpbmstZGFyaycsJ0UtaW5rIChiZXRhKScpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLWV2ZXJmb3Jlc3QtZGFyaycsJ0V2ZXJmb3Jlc3QnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1mbGV4b2tpLWRhcmsnLCdGbGV4b2tpJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZ3J1dmJveC1kYXJrJywnR3J1dmJveCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLW1hY29zLWRhcmsnLCdtYWNPUycpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLW5vcmQtZGFyaycsJ05vcmQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1yb3NlLXBpbmUtZGFyaycsJ1Jvc1x1MDBFOSBQaW5lJylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtbm90aW9uLWRhcmsnLCdTa3knKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1zb2xhcml6ZWQtZGFyaycsJ1NvbGFyaXplZCcpXHJcbiAgICAgICAgICAuYWRkT3B0aW9uKCdtaW5pbWFsLXRoaW5ncy1kYXJrJywnVGhpbmdzJylcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5kYXJrU2NoZW1lKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5kYXJrU2NoZW1lID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4udXBkYXRlRGFya1NjaGVtZSgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgICAgLnNldE5hbWUoJ0RhcmsgbW9kZSBiYWNrZ3JvdW5kIGNvbnRyYXN0JylcclxuICAgICAgICAuc2V0RGVzYygnTGV2ZWwgb2YgY29udHJhc3QgYmV0d2VlbiBzaWRlYmFyIGFuZCBtYWluIGNvbnRlbnQuJylcclxuICAgICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZGFyaycsJ0RlZmF1bHQnKVxyXG4gICAgICAgICAgLmFkZE9wdGlvbignbWluaW1hbC1kYXJrLXRvbmFsJywnTG93IGNvbnRyYXN0JylcclxuICAgICAgICAgIC5hZGRPcHRpb24oJ21pbmltYWwtZGFyay1ibGFjaycsJ1RydWUgYmxhY2snKVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmRhcmtTdHlsZSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZGFya1N0eWxlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4udXBkYXRlRGFya1N0eWxlKCk7XHJcbiAgICAgICAgICB9KSk7XHJcblxyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ2JyJyk7XHJcblxyXG4gICAgY29uc3QgZmVhdHVyZXNTZWN0aW9uID0gY29udGFpbmVyRWwuY3JlYXRlRWwoJ2RpdicsIHtjbHM6ICdzZXR0aW5nLWl0ZW0gc2V0dGluZy1pdGVtLWhlYWRpbmcnfSk7XHJcblxyXG4gICAgY29uc3QgZmVhdHVyZXNTZWN0aW9uSW5mbyA9ICBmZWF0dXJlc1NlY3Rpb24uY3JlYXRlRWwoJ2RpdicsIHtjbHM6ICdzZXR0aW5nLWl0ZW0taW5mbyd9KTtcclxuXHJcbiAgICBmZWF0dXJlc1NlY3Rpb25JbmZvLmNyZWF0ZUVsKCdkaXYnLCB7dGV4dDogJ0ZlYXR1cmVzJywgY2xzOiAnc2V0dGluZy1pdGVtLW5hbWUnfSk7XHJcblxyXG4gICAgY29uc3QgZmVhdHVyZXNTZWN0aW9uRGVzYyA9IGZlYXR1cmVzU2VjdGlvbkluZm8uY3JlYXRlRWwoJ2RpdicsIHtjbHM6ICdzZXR0aW5nLWl0ZW0tZGVzY3JpcHRpb24nfSk7XHJcblxyXG4gICAgICBmZWF0dXJlc1NlY3Rpb25EZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdzcGFuJywge1xyXG4gICAgICAgICAgdGV4dDogJ1NlZSAnXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICBmZWF0dXJlc1NlY3Rpb25EZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdhJywge1xyXG4gICAgICAgICAgdGV4dDogXCJkb2N1bWVudGF0aW9uXCIsXHJcbiAgICAgICAgICBocmVmOiBcImh0dHBzOi8vbWluaW1hbC5ndWlkZVwiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIGZlYXR1cmVzU2VjdGlvbkRlc2MuYXBwZW5kVGV4dCgnIGZvciBkZXRhaWxzLicpO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnVGV4dCBsYWJlbHMgZm9yIHByaW1hcnkgbmF2aWdhdGlvbicpXHJcbiAgICAgIC5zZXREZXNjKCdOYXZpZ2F0aW9uIGl0ZW1zIGluIHRoZSBsZWZ0IHNpZGViYXIgdXNlcyB0ZXh0IGxhYmVscy4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MubGFiZWxlZE5hdilcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubGFiZWxlZE5hdiA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0NvbG9yZnVsIHdpbmRvdyBmcmFtZScpXHJcbiAgICAgIC5zZXREZXNjKCdUaGUgdG9wIGFyZWEgb2YgdGhlIGFwcCB1c2VzIHlvdXIgYWNjZW50IGNvbG9yLicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jb2xvcmZ1bEZyYW1lKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jb2xvcmZ1bEZyYW1lID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0NvbG9yZnVsIGFjdGl2ZSBzdGF0ZXMnKVxyXG4gICAgICAuc2V0RGVzYygnQWN0aXZlIGZpbGUgYW5kIG1lbnUgaXRlbXMgdXNlIHlvdXIgYWNjZW50IGNvbG9yLicpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jb2xvcmZ1bEFjdGl2ZVN0YXRlcylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY29sb3JmdWxBY3RpdmVTdGF0ZXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnQ29sb3JmdWwgaGVhZGluZ3MnKVxyXG4gICAgICAuc2V0RGVzYygnSGVhZGluZ3MgdXNlIGEgZGlmZmVyZW50IGNvbG9yIGZvciBlYWNoIHNpemUuJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsSGVhZGluZ3MpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yZnVsSGVhZGluZ3MgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnTWluaW1hbCBzdGF0dXMgYmFyJylcclxuICAgICAgLnNldERlc2MoJ1R1cm4gb2ZmIHRvIHVzZSBmdWxsLXdpZHRoIHN0YXR1cyBiYXIuJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLm1pbmltYWxTdGF0dXMpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLm1pbmltYWxTdGF0dXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdUcmltIGZpbGUgbmFtZXMgaW4gc2lkZWJhcnMnKVxyXG4gICAgICAuc2V0RGVzYygnVXNlIGVsbGlwc2VzIHRvIGZpdCBmaWxlIG5hbWVzIG9uIGEgc2luZ2xlIGxpbmUuJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnRyaW1OYW1lcylcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudHJpbU5hbWVzID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgICAgLnNldE5hbWUoJ1dvcmtzcGFjZSBib3JkZXJzJylcclxuICAgICAgICAuc2V0RGVzYygnRGlzcGxheSBkaXZpZGVyIGxpbmVzIGJldHdlZW4gd29ya3NwYWNlIGVsZW1lbnRzLicpXHJcbiAgICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmJvcmRlcnNUb2dnbGUpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmJvcmRlcnNUb2dnbGUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdGb2N1cyBtb2RlJylcclxuICAgICAgLnNldERlc2MoJ0hpZGUgdGFiIGJhciBhbmQgc3RhdHVzIGJhciwgaG92ZXIgdG8gZGlzcGxheS4gQ2FuIGJlIHRvZ2dsZWQgdmlhIGhvdGtleS4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZm9jdXNNb2RlKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5mb2N1c01vZGUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnVW5kZXJsaW5lIGludGVybmFsIGxpbmtzJylcclxuICAgICAgLnNldERlc2MoJ1Nob3cgdW5kZXJsaW5lcyBvbiBpbnRlcm5hbCBsaW5rcy4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MudW5kZXJsaW5lSW50ZXJuYWwpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLnVuZGVybGluZUludGVybmFsID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ1VuZGVybGluZSBleHRlcm5hbCBsaW5rcycpXHJcbiAgICAgIC5zZXREZXNjKCdTaG93IHVuZGVybGluZXMgb24gZXh0ZXJuYWwgbGlua3MuJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnVuZGVybGluZUV4dGVybmFsKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy51bmRlcmxpbmVFeHRlcm5hbCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdNYXhpbWl6ZSBtZWRpYScpXHJcbiAgICAgIC5zZXREZXNjKCdJbWFnZXMgYW5kIHZpZGVvcyBmaWxsIHRoZSB3aWR0aCBvZiB0aGUgbGluZS4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZnVsbFdpZHRoTWVkaWEpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmZ1bGxXaWR0aE1lZGlhID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSkpO1xyXG5cclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdicicpO1xyXG5cclxuICAgIGNvbnN0IGxheW91dFNlY3Rpb24gPSBjb250YWluZXJFbC5jcmVhdGVFbCgnZGl2Jywge2NsczogJ3NldHRpbmctaXRlbSBzZXR0aW5nLWl0ZW0taGVhZGluZyd9KTtcclxuXHJcbiAgICBjb25zdCBsYXlvdXRTZWN0aW9uSW5mbyA9ICBsYXlvdXRTZWN0aW9uLmNyZWF0ZUVsKCdkaXYnLCB7Y2xzOiAnc2V0dGluZy1pdGVtLWluZm8nfSk7XHJcblxyXG4gICAgbGF5b3V0U2VjdGlvbkluZm8uY3JlYXRlRWwoJ2RpdicsIHt0ZXh0OiAnTGF5b3V0JywgY2xzOiAnc2V0dGluZy1pdGVtLW5hbWUnfSk7XHJcblxyXG4gICAgY29uc3QgbGF5b3V0U2VjdGlvbkRlc2MgPSBsYXlvdXRTZWN0aW9uSW5mby5jcmVhdGVFbCgnZGl2Jywge2NsczogJ3NldHRpbmctaXRlbS1kZXNjcmlwdGlvbid9KTtcclxuXHJcbiAgICAgIGxheW91dFNlY3Rpb25EZXNjLmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGNyZWF0ZUVsKCdzcGFuJywge1xyXG4gICAgICAgICAgdGV4dDogJ1RoZXNlIG9wdGlvbnMgY2FuIGFsc28gYmUgZGVmaW5lZCBvbiBhIHBlci1maWxlIGJhc2lzLCBzZWUgJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICBsYXlvdXRTZWN0aW9uRGVzYy5hcHBlbmRDaGlsZChcclxuICAgICAgICBjcmVhdGVFbCgnYScsIHtcclxuICAgICAgICAgIHRleHQ6IFwiZG9jdW1lbnRhdGlvblwiLFxyXG4gICAgICAgICAgaHJlZjogXCJodHRwczovL21pbmltYWwuZ3VpZGUvZmVhdHVyZXMvYmxvY2std2lkdGhcIixcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICBsYXlvdXRTZWN0aW9uRGVzYy5hcHBlbmRUZXh0KCcgZm9yIGRldGFpbHMuJyk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdJbWFnZSBncmlkcycpXHJcbiAgICAgIC5zZXREZXNjKCdUdXJuIGNvbnNlY3V0aXZlIGltYWdlcyBpbnRvIGNvbHVtbnMgXHUyMDE0IHRvIG1ha2UgYSBuZXcgcm93LCBhZGQgYW4gZXh0cmEgbGluZSBicmVhayBiZXR3ZWVuIGltYWdlcy4nKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaW1nR3JpZClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaW1nR3JpZCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0NoYXJ0IHdpZHRoJylcclxuICAgICAgLnNldERlc2MoJ0RlZmF1bHQgd2lkdGggZm9yIGNoYXJ0IGJsb2Nrcy4nKVxyXG4gICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAuYWRkT3B0aW9uKCdjaGFydC1kZWZhdWx0LXdpZHRoJywnRGVmYXVsdCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignY2hhcnQtd2lkZScsJ1dpZGUgbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignY2hhcnQtbWF4JywnTWF4aW11bSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCdjaGFydC0xMDAnLCcxMDAlIHBhbmUgd2lkdGgnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jaGFydFdpZHRoKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jaGFydFdpZHRoID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSWZyYW1lIHdpZHRoJylcclxuICAgICAgLnNldERlc2MoJ0RlZmF1bHQgd2lkdGggZm9yIGlmcmFtZSBibG9ja3MuJylcclxuICAgICAgLmFkZERyb3Bkb3duKGRyb3Bkb3duID0+IGRyb3Bkb3duXHJcbiAgICAgICAgLmFkZE9wdGlvbignaWZyYW1lLWRlZmF1bHQtd2lkdGgnLCdEZWZhdWx0JylcclxuICAgICAgICAuYWRkT3B0aW9uKCdpZnJhbWUtd2lkZScsJ1dpZGUgbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignaWZyYW1lLW1heCcsJ01heGltdW0gbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignaWZyYW1lLTEwMCcsJzEwMCUgcGFuZSB3aWR0aCcpXHJcbiAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmlmcmFtZVdpZHRoKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5pZnJhbWVXaWR0aCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0ltYWdlIHdpZHRoJylcclxuICAgICAgLnNldERlc2MoJ0RlZmF1bHQgd2lkdGggZm9yIGltYWdlIGJsb2Nrcy4nKVxyXG4gICAgICAuYWRkRHJvcGRvd24oZHJvcGRvd24gPT4gZHJvcGRvd25cclxuICAgICAgICAuYWRkT3B0aW9uKCdpbWctZGVmYXVsdC13aWR0aCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2ltZy13aWRlJywnV2lkZSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCdpbWctbWF4JywnTWF4aW11bSBsaW5lIHdpZHRoJylcclxuICAgICAgICAuYWRkT3B0aW9uKCdpbWctMTAwJywnMTAwJSBwYW5lIHdpZHRoJylcclxuICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaW1nV2lkdGgpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmltZ1dpZHRoID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnTWFwIHdpZHRoJylcclxuICAgICAgLnNldERlc2MoJ0RlZmF1bHQgd2lkdGggZm9yIG1hcCBibG9ja3MuJylcclxuICAgICAgLmFkZERyb3Bkb3duKGRyb3Bkb3duID0+IGRyb3Bkb3duXHJcbiAgICAgICAgLmFkZE9wdGlvbignbWFwLWRlZmF1bHQtd2lkdGgnLCdEZWZhdWx0JylcclxuICAgICAgICAuYWRkT3B0aW9uKCdtYXAtd2lkZScsJ1dpZGUgbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignbWFwLW1heCcsJ01heGltdW0gbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbignbWFwLTEwMCcsJzEwMCUgcGFuZSB3aWR0aCcpXHJcbiAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLm1hcFdpZHRoKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5tYXBXaWR0aCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ1RhYmxlIHdpZHRoJylcclxuICAgICAgLnNldERlc2MoJ0RlZmF1bHQgd2lkdGggZm9yIHRhYmxlIGFuZCBEYXRhdmlldyBibG9ja3MuJylcclxuICAgICAgLmFkZERyb3Bkb3duKGRyb3Bkb3duID0+IGRyb3Bkb3duXHJcbiAgICAgICAgLmFkZE9wdGlvbigndGFibGUtZGVmYXVsdC13aWR0aCcsJ0RlZmF1bHQnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ3RhYmxlLXdpZGUnLCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ3RhYmxlLW1heCcsJ01heGltdW0gbGluZSB3aWR0aCcpXHJcbiAgICAgICAgLmFkZE9wdGlvbigndGFibGUtMTAwJywnMTAwJSBwYW5lIHdpZHRoJylcclxuICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGFibGVXaWR0aClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGFibGVXaWR0aCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnYnInKTtcclxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdkaXYnLCB7dGV4dDogJ1R5cG9ncmFwaHknLCBjbHM6ICdzZXR0aW5nLWl0ZW0gc2V0dGluZy1pdGVtLWhlYWRpbmcnfSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdUZXh0IGZvbnQgc2l6ZScpXHJcbiAgICAgIC5zZXREZXNjKCdVc2VkIGZvciB0aGUgbWFpbiB0ZXh0IChkZWZhdWx0IDE2KS4nKVxyXG4gICAgICAuYWRkVGV4dCh0ZXh0ID0+IHRleHQuc2V0UGxhY2Vob2xkZXIoJzE2JylcclxuICAgICAgICAuc2V0VmFsdWUoKHRoaXMucGx1Z2luLnNldHRpbmdzLnRleHROb3JtYWwgfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGV4dE5vcm1hbCA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0Rm9udFNpemUoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdTbWFsbCBmb250IHNpemUnKVxyXG4gICAgICAuc2V0RGVzYygnVXNlZCBmb3IgdGV4dCBpbiB0aGUgc2lkZWJhcnMgYW5kIHRhYnMgKGRlZmF1bHQgMTMpLicpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignMTMnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSgodGhpcy5wbHVnaW4uc2V0dGluZ3MudGV4dFNtYWxsIHx8ICcnKSArICcnKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLnRleHRTbWFsbCA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0xpbmUgaGVpZ2h0JylcclxuICAgICAgLnNldERlc2MoJ0xpbmUgaGVpZ2h0IG9mIHRleHQgKGRlZmF1bHQgMS41KS4nKVxyXG4gICAgICAuYWRkVGV4dCh0ZXh0ID0+IHRleHQuc2V0UGxhY2Vob2xkZXIoJzEuNScpXHJcbiAgICAgICAgLnNldFZhbHVlKCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lSGVpZ2h0IHx8ICcnKSArICcnKVxyXG4gICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KHZhbHVlKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdOb3JtYWwgbGluZSB3aWR0aCcpXHJcbiAgICAgIC5zZXREZXNjKCdOdW1iZXIgb2YgY2hhcmFjdGVycyBwZXIgbGluZSAoZGVmYXVsdCA0MCkuJylcclxuICAgICAgLmFkZFRleHQodGV4dCA9PiB0ZXh0LnNldFBsYWNlaG9sZGVyKCc0MCcpXHJcbiAgICAgICAgLnNldFZhbHVlKCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lV2lkdGggfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubGluZVdpZHRoID0gcGFyc2VJbnQodmFsdWUudHJpbSgpKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdXaWRlIGxpbmUgd2lkdGgnKVxyXG4gICAgICAuc2V0RGVzYygnTnVtYmVyIG9mIGNoYXJhY3RlcnMgcGVyIGxpbmUgZm9yIHdpZGUgZWxlbWVudHMgKGRlZmF1bHQgNTApLicpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignNTAnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSgodGhpcy5wbHVnaW4uc2V0dGluZ3MubGluZVdpZHRoV2lkZSB8fCAnJykgKyAnJylcclxuICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lV2lkdGhXaWRlID0gcGFyc2VJbnQodmFsdWUudHJpbSgpKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdNYXhpbXVtIGxpbmUgd2lkdGggJScpXHJcbiAgICAgIC5zZXREZXNjKCdQZXJjZW50YWdlIG9mIHNwYWNlIGluc2lkZSBhIHBhbmUgdGhhdCBhIGxpbmUgY2FuIGZpbGwgKGRlZmF1bHQgODgpLicpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignODgnKVxyXG4gICAgICAgIC5zZXRWYWx1ZSgodGhpcy5wbHVnaW4uc2V0dGluZ3MubWF4V2lkdGggfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MubWF4V2lkdGggPSBwYXJzZUludCh2YWx1ZS50cmltKCkpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgIH0pKTtcclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnRWRpdG9yIGZvbnQnKVxyXG4gICAgICAuc2V0RGVzYygnT3ZlcnJpZGVzIHRoZSB0ZXh0IGZvbnQgZGVmaW5lZCBpbiBPYnNpZGlhbiBBcHBlYXJhbmNlIHNldHRpbmdzIHdoZW4gaW4gZWRpdCBtb2RlLicpXHJcbiAgICAgIC5hZGRUZXh0KHRleHQgPT4gdGV4dC5zZXRQbGFjZWhvbGRlcignJylcclxuICAgICAgICAuc2V0VmFsdWUoKHRoaXMucGx1Z2luLnNldHRpbmdzLmVkaXRvckZvbnQgfHwgJycpICsgJycpXHJcbiAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuZWRpdG9yRm9udCA9IHZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgfVxyXG59XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUEsc0JBQWlGO0FBRWpGLGlDQUEwQyx1QkFBTztBQUFBLEVBSXpDLFNBQVM7QUFBQTtBQUViLFlBQU0sS0FBSztBQUVYLFdBQUssY0FBYyxJQUFJLGtCQUFrQixLQUFLLEtBQUs7QUFFbkQsV0FBSztBQUdMLFVBQUksaUJBQWlCLE1BQU07QUFFekIsY0FBTSxXQUFXLEtBQUssSUFBSSxNQUFNLFVBQVU7QUFDMUMsYUFBSyxTQUFTLGFBQWE7QUFHM0IsWUFBSSxLQUFLLElBQUksTUFBTSxVQUFVLGdCQUFnQjtBQUMzQyxlQUFLLFNBQVMsVUFBVTtBQUN4QixlQUFLLFNBQVMsS0FBSztBQUNuQixrQkFBUSxJQUFJO0FBQUEsZUFDUDtBQUNMLGVBQUssU0FBUyxVQUFVO0FBQ3hCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGtCQUFRLElBQUk7QUFBQTtBQUVkLGlCQUFTLEtBQUssVUFBVSxPQUFPLG1CQUFtQixLQUFLLFNBQVM7QUFFaEUsWUFBSSxLQUFLLElBQUksTUFBTSxVQUFVLG1CQUFtQjtBQUM5QyxlQUFLLFNBQVMsY0FBYztBQUM1QixlQUFLLFNBQVMsS0FBSztBQUNuQixrQkFBUSxJQUFJO0FBQUEsZUFDUDtBQUNMLGVBQUssU0FBUyxjQUFjO0FBQzVCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGtCQUFRLElBQUk7QUFBQTtBQUVkLGlCQUFTLEtBQUssVUFBVSxPQUFPLHFCQUFxQixLQUFLLFNBQVM7QUFFbEUsWUFBSSxLQUFLLElBQUksTUFBTSxVQUFVLHVCQUF1QjtBQUNsRCxlQUFLLFNBQVMscUJBQXFCO0FBQ25DLGVBQUssU0FBUyxLQUFLO0FBQ25CLGtCQUFRLElBQUk7QUFBQSxlQUNQO0FBQ0wsZUFBSyxTQUFTLHFCQUFxQjtBQUNuQyxlQUFLLFNBQVMsS0FBSztBQUNuQixrQkFBUSxJQUFJO0FBQUE7QUFHZCxpQkFBUyxLQUFLLFVBQVUsT0FBTyxvQkFBb0IsS0FBSyxTQUFTO0FBQ2pFLGlCQUFTLEtBQUssVUFBVSxPQUFPLHdCQUF3QixDQUFDLEtBQUssU0FBUztBQUFBO0FBSXhFLFVBQUksZ0JBQWdCLE1BQU07QUFDeEIsY0FBTSxZQUFZLFNBQVMsdUJBQXVCLGtCQUFrQjtBQUNwRSxjQUFNLFdBQVcsU0FBUyx1QkFBdUIsb0JBQW9CO0FBQ3JFLFlBQUksYUFBYSxZQUFZLFNBQVMsS0FBSyxVQUFVLFNBQVMsa0JBQWtCLEtBQUssU0FBUyxjQUFjLDBCQUEwQjtBQUNwSSxvQkFBVSxTQUFTO0FBQ25CLG1CQUFTLFNBQVM7QUFBQSxtQkFDVCxhQUFhLFVBQVU7QUFDaEMsb0JBQVUsWUFBWTtBQUN0QixtQkFBUyxZQUFZO0FBQUE7QUFBQTtBQUt6QixXQUFLLGNBQWMsSUFBSSxNQUFNLEdBQUcsa0JBQWtCO0FBRWxELFdBQUssY0FBYyxJQUFJLFVBQVUsR0FBRyxjQUFjO0FBRWxEO0FBRUEsVUFBSSxVQUFVLGNBQWMsTUFBTTtBQUNoQztBQUFBO0FBR0YsWUFBTSxjQUFjLENBQUMsaUJBQWlCLHVCQUF1QiwwQkFBMEI7QUFDdkYsWUFBTSxhQUFhLENBQUMsZ0JBQWdCLHNCQUFzQjtBQUMxRCxZQUFNLGdCQUFnQixDQUFDLFlBQVcsa0JBQWlCO0FBQ25ELFlBQU0sbUJBQW1CLENBQUMsYUFBWSx1QkFBc0IsY0FBYTtBQUN6RSxZQUFNLG9CQUFvQixDQUFDLGNBQWEsd0JBQXVCLGVBQWM7QUFDN0UsWUFBTSxpQkFBaUIsQ0FBQyxXQUFVLHFCQUFvQixZQUFXO0FBQ2pFLFlBQU0saUJBQWlCLENBQUMsV0FBVSxxQkFBb0IsWUFBVztBQUNqRSxZQUFNLG1CQUFtQixDQUFDLGFBQVksdUJBQXNCLGNBQWE7QUFFekUsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsYUFBYSxLQUFLLFNBQVMsYUFBYTtBQUN0RCxlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWEsS0FBSyxTQUFTLGFBQWE7QUFDdEQsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxZQUFZLFdBQVksWUFBVyxRQUFRLEtBQUssU0FBUyxhQUFhLEtBQUssV0FBVztBQUNwRyxlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWEsWUFBYSxhQUFZLFFBQVEsS0FBSyxTQUFTLGNBQWMsS0FBSyxZQUFZO0FBQ3pHLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsZ0JBQWdCLENBQUMsS0FBSyxTQUFTO0FBQzdDLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsbUJBQW1CLENBQUMsS0FBSyxTQUFTO0FBQ2hELGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsWUFBWSxDQUFDLEtBQUssU0FBUztBQUN6QyxlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGdCQUFnQixDQUFDLEtBQUssU0FBUztBQUM3QyxlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWEsaUJBQWtCLGtCQUFpQixRQUFRLEtBQUssU0FBUyxjQUFjLEtBQUssaUJBQWlCO0FBQ3hILGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsV0FBVyxlQUFnQixnQkFBZSxRQUFRLEtBQUssU0FBUyxZQUFZLEtBQUssZUFBZTtBQUM5RyxlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGNBQWMsa0JBQW1CLG1CQUFrQixRQUFRLEtBQUssU0FBUyxlQUFlLEtBQUssa0JBQWtCO0FBQzdILGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsYUFBYSxpQkFBa0Isa0JBQWlCLFFBQVEsS0FBSyxTQUFTLGNBQWMsS0FBSyxpQkFBaUI7QUFDeEgsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxXQUFXLGVBQWdCLGdCQUFlLFFBQVEsS0FBSyxTQUFTLFlBQVksS0FBSyxlQUFlO0FBQzlHLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsVUFBVSxDQUFDLEtBQUssU0FBUztBQUN2QyxlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxhQUFhO0FBQzNCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsYUFBYTtBQUMzQixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWE7QUFDM0IsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxhQUFhO0FBQzNCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsWUFBWTtBQUMxQixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLFlBQVk7QUFDMUIsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxZQUFZO0FBQzFCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsY0FBYztBQUM1QixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxjQUFjO0FBQzVCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGNBQWM7QUFDNUIsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsY0FBYztBQUM1QixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxjQUFjO0FBQzVCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGNBQWM7QUFDNUIsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsY0FBYztBQUM1QixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxjQUFjO0FBQzVCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGNBQWM7QUFDNUIsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsY0FBYztBQUM1QixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxjQUFjO0FBQzVCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGNBQWM7QUFDNUIsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsY0FBYztBQUM1QixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxjQUFjO0FBQzVCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWE7QUFDM0IsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsYUFBYTtBQUMzQixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxhQUFhO0FBQzNCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWE7QUFDM0IsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsYUFBYTtBQUMzQixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxhQUFhO0FBQzNCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWE7QUFDM0IsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsYUFBYTtBQUMzQixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxhQUFhO0FBQzNCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWE7QUFDM0IsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsYUFBYTtBQUMzQixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxhQUFhO0FBQzNCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGFBQWE7QUFDM0IsZUFBSyxTQUFTLEtBQUs7QUFDbkIsZUFBSztBQUNMLGVBQUs7QUFBQTtBQUFBO0FBSVQsV0FBSyxXQUFXO0FBQUEsUUFDZCxJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDTixVQUFVLE1BQU07QUFDZCxlQUFLLFNBQVMsYUFBYTtBQUMzQixlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQ0wsZUFBSztBQUFBO0FBQUE7QUFJVCxXQUFLLFdBQVc7QUFBQSxRQUNkLElBQUk7QUFBQSxRQUNKLE1BQU07QUFBQSxRQUNOLFVBQVUsTUFBTTtBQUNkLGVBQUssU0FBUyxhQUFhO0FBQzNCLGVBQUssU0FBUyxLQUFLO0FBQ25CLGVBQUs7QUFDTCxlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUssV0FBVztBQUFBLFFBQ2QsSUFBSTtBQUFBLFFBQ0osTUFBTTtBQUFBLFFBQ04sVUFBVSxNQUFNO0FBQ2QsZUFBSyxTQUFTLGdCQUFnQixDQUFDLEtBQUssU0FBUztBQUM3QyxlQUFLLFNBQVMsS0FBSztBQUNuQixlQUFLO0FBQUE7QUFBQTtBQUlULFdBQUs7QUFBQTtBQUFBO0FBQUEsRUFHUCxXQUFXO0FBQ1QsWUFBUSxJQUFJO0FBQUE7QUFBQSxFQUdSLGVBQWU7QUFBQTtBQUNuQixXQUFLLFdBQVcsT0FBTyxPQUFPLGtCQUFrQixNQUFNLEtBQUs7QUFBQTtBQUFBO0FBQUEsRUFHdkQsZUFBZTtBQUFBO0FBQ25CLFlBQU0sS0FBSyxTQUFTLEtBQUs7QUFBQTtBQUFBO0FBQUEsRUFJM0IsVUFBVTtBQUVSLFNBQUs7QUFBQTtBQUFBLEVBSVAsV0FBVztBQUVULFVBQU0sTUFBTSxTQUFTLGNBQWM7QUFDbkMsUUFBSSxLQUFLO0FBQ1QsYUFBUyxxQkFBcUIsUUFBUSxHQUFHLFlBQVk7QUFHckQsYUFBUyxLQUFLLFVBQVUsSUFBSTtBQUc1QixTQUFLO0FBQUE7QUFBQSxFQUdQLGNBQWM7QUFFWixTQUFLLElBQUksTUFBTSxVQUFVLGdCQUFnQixLQUFLLFNBQVM7QUFFdkQsU0FBSyxJQUFJO0FBQUE7QUFBQSxFQUlYLGNBQWM7QUFDWixTQUFLO0FBRUwsYUFBUyxLQUFLLFNBQVMsS0FBSyxTQUFTO0FBQ3JDLGFBQVMsS0FBSyxTQUFTLEtBQUssU0FBUztBQUVyQyxhQUFTLEtBQUssVUFBVSxPQUFPLGdCQUFnQixDQUFDLEtBQUssU0FBUztBQUM5RCxhQUFTLEtBQUssVUFBVSxPQUFPLHFCQUFxQixLQUFLLFNBQVM7QUFDbEUsYUFBUyxLQUFLLFVBQVUsT0FBTyxrQkFBa0IsS0FBSyxTQUFTO0FBQy9ELGFBQVMsS0FBSyxVQUFVLE9BQU8sbUJBQW1CLEtBQUssU0FBUztBQUNoRSxhQUFTLEtBQUssVUFBVSxPQUFPLHNCQUFzQixLQUFLLFNBQVM7QUFDbkUsYUFBUyxLQUFLLFVBQVUsT0FBTyxnQkFBZ0IsS0FBSyxTQUFTO0FBQzdELGFBQVMsS0FBSyxVQUFVLE9BQU8sZ0JBQWdCLEtBQUssU0FBUztBQUM3RCxhQUFTLEtBQUssVUFBVSxPQUFPLG9CQUFvQixLQUFLLFNBQVM7QUFDakUsYUFBUyxLQUFLLFVBQVUsT0FBTyxZQUFZLEtBQUssU0FBUztBQUN6RCxhQUFTLEtBQUssVUFBVSxPQUFPLDJCQUEyQixLQUFLLFNBQVM7QUFDeEUsYUFBUyxLQUFLLFVBQVUsT0FBTyxzQkFBc0IsQ0FBQyxLQUFLLFNBQVM7QUFDcEUsYUFBUyxLQUFLLFVBQVUsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLFNBQVM7QUFDakUsYUFBUyxLQUFLLFVBQVUsT0FBTyxlQUFlLEtBQUssU0FBUztBQUM1RCxhQUFTLEtBQUssVUFBVSxPQUFPLG1CQUFtQixLQUFLLFNBQVM7QUFFaEUsYUFBUyxLQUFLLFlBQVksY0FBYSxhQUFZLGFBQVksdUJBQzdELGVBQWMsY0FBYSxjQUFhLHdCQUN4QyxZQUFXLFdBQVUsV0FBVSxxQkFDL0IsY0FBYSxhQUFZLGFBQVksdUJBQ3JDLFlBQVcsV0FBVSxXQUFVO0FBQ2pDLGFBQVMsS0FBSyxTQUFTLEtBQUssU0FBUztBQUNyQyxhQUFTLEtBQUssU0FBUyxLQUFLLFNBQVM7QUFDckMsYUFBUyxLQUFLLFNBQVMsS0FBSyxTQUFTO0FBQ3JDLGFBQVMsS0FBSyxTQUFTLEtBQUssU0FBUztBQUNyQyxhQUFTLEtBQUssU0FBUyxLQUFLLFNBQVM7QUFHckMsVUFBTSxLQUFLLFNBQVMsZUFBZTtBQUNuQyxRQUFJLENBQUM7QUFBSSxZQUFNO0FBQUEsU0FDVjtBQUVILFNBQUcsWUFDRCx3Q0FDdUIsS0FBSyxTQUFTLFlBQVksc0JBQzVCLEtBQUssU0FBUyxhQUFhLG1CQUM1QixLQUFLLFNBQVMsWUFBWSwyQkFDckIsS0FBSyxTQUFTLGdCQUFnQixxQkFDcEMsS0FBSyxTQUFTLFdBQVcsOEJBQ2QsS0FBSyxTQUFTLGFBQWE7QUFBQTtBQUFBO0FBQUEsRUFLL0Qsa0JBQWtCO0FBQ2hCLGFBQVMsS0FBSyxZQUNaLGVBQ0EsZ0JBQ0Esc0JBQ0E7QUFFRixhQUFTLEtBQUssU0FDWixjQUNBLEtBQUssU0FBUztBQUVoQixRQUFJLEtBQUssSUFBSSxNQUFNLFVBQVUsYUFBYSxVQUFVO0FBRWxELFdBQUssSUFBSSxTQUFTO0FBRWxCLFdBQUssSUFBSSxNQUFNLFVBQVUsU0FBUztBQUFBO0FBRXBDLFNBQUssSUFBSSxVQUFVLFFBQVE7QUFBQTtBQUFBLEVBRzdCLG1CQUFtQjtBQUNqQixhQUFTLEtBQUssWUFDWixjQUNBLGlCQUNBLHVCQUNBLDBCQUNBO0FBRUYsYUFBUyxLQUFLLFNBQ1osZUFDQSxLQUFLLFNBQVM7QUFFaEIsUUFBSSxLQUFLLElBQUksTUFBTSxVQUFVLGFBQWEsVUFBVTtBQUVsRCxXQUFLLElBQUksU0FBUztBQUVsQixXQUFLLElBQUksTUFBTSxVQUFVLFNBQVM7QUFBQTtBQUVwQyxTQUFLLElBQUksVUFBVSxRQUFRO0FBQUE7QUFBQSxFQUc3QixtQkFBbUI7QUFDakIsYUFBUyxLQUFLLFlBQ1oscUJBQ0Esb0JBQ0EsMkJBQ0Esd0JBQ0Esd0JBQ0EscUJBQ0EsMkJBQ0Esd0JBQ0Esd0JBQ0Esc0JBQ0EscUJBQ0EsdUJBQ0EsMEJBQ0EsMEJBQ0E7QUFFRixhQUFTLEtBQUssU0FBUyxLQUFLLFNBQVM7QUFBQTtBQUFBLEVBR3ZDLG9CQUFvQjtBQUNsQixhQUFTLEtBQUssWUFDWixzQkFDQSxxQkFDQSw0QkFDQSx5QkFDQSxzQkFDQSw0QkFDQSx5QkFDQSx5QkFDQSx1QkFDQSxzQkFDQSx3QkFDQSwyQkFDQSwyQkFDQTtBQUVGLGFBQVMsS0FBSyxTQUFTLEtBQUssU0FBUztBQUFBO0FBQUEsRUFHdkMsY0FBYztBQUNaLFFBQUksS0FBSyxJQUFJLE1BQU0sVUFBVSxhQUFhLFVBQVU7QUFDaEQsVUFBSSxTQUFTLEtBQUssVUFBVSxTQUFTLGdCQUFnQjtBQUNuRCxpQkFBUyxLQUFLLFlBQVk7QUFDMUIsaUJBQVMsS0FBSyxTQUFTO0FBQUEsYUFDbEI7QUFDTCxpQkFBUyxLQUFLLFlBQVk7QUFDMUIsaUJBQVMsS0FBSyxTQUFTO0FBQUE7QUFBQSxXQUV0QjtBQUNILFVBQUksU0FBUyxLQUFLLFVBQVUsU0FBUyxnQkFBZ0I7QUFDbkQsaUJBQVMsS0FBSyxZQUFZO0FBQzFCLGlCQUFTLEtBQUssU0FBUztBQUFBLGFBQ2xCO0FBQ0wsaUJBQVMsS0FBSyxZQUFZO0FBQzFCLGlCQUFTLEtBQUssU0FBUztBQUFBO0FBRzNCLFlBQU0sZUFBZSxLQUFLLElBQUksTUFBTSxVQUFVO0FBQzlDLFlBQU0sV0FBVyxpQkFBaUIsY0FBYyxhQUFhO0FBRzdELFdBQUssSUFBSSxTQUFTO0FBRWxCLFdBQUssSUFBSSxNQUFNLFVBQVUsU0FBUztBQUFBO0FBRXBDLFNBQUssSUFBSSxVQUFVLFFBQVE7QUFBQTtBQUFBLEVBRzdCLGNBQWM7QUFDWixhQUFTLEtBQUssWUFBWSxpQkFBZ0IsdUJBQXNCLDBCQUF5Qix1QkFBc0IsZ0JBQWUsc0JBQXFCO0FBQ25KLGFBQVMsS0FBSyxTQUFTLEtBQUssU0FBUyxZQUFXLEtBQUssU0FBUztBQUFBO0FBQUE7QUF3Q2xFLElBQU0sbUJBQW9DO0FBQUEsRUFDeEMsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsYUFBYTtBQUFBLEVBQ2IsWUFBWTtBQUFBLEVBQ1osWUFBWTtBQUFBLEVBQ1osWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsZUFBZTtBQUFBLEVBQ2YsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osYUFBYTtBQUFBLEVBQ2IsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osa0JBQWtCO0FBQUEsRUFDbEIsZUFBZTtBQUFBLEVBQ2Ysc0JBQXNCO0FBQUEsRUFDdEIsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osZ0JBQWdCO0FBQUEsRUFDaEIsZUFBZTtBQUFBLEVBQ2YsZUFBZTtBQUFBLEVBQ2YsV0FBVztBQUFBLEVBQ1gsbUJBQW1CO0FBQUEsRUFDbkIsbUJBQW1CO0FBQUEsRUFDbkIsU0FBUztBQUFBLEVBQ1QsYUFBYTtBQUFBLEVBQ2Isb0JBQW9CO0FBQUEsRUFDcEIsZUFBZTtBQUFBO0FBR2pCLHNDQUFnQyxpQ0FBaUI7QUFBQSxFQUkvQyxZQUFZLE1BQVUsUUFBc0I7QUFDMUMsVUFBTSxNQUFLO0FBQ1gsU0FBSyxTQUFTO0FBQUE7QUFBQSxFQUdoQixVQUFnQjtBQUNkLFFBQUksRUFBQyxnQkFBZTtBQUVwQixnQkFBWTtBQUVaLFVBQU0sZUFBZSxZQUFZLFNBQVMsT0FBTyxFQUFDLEtBQUs7QUFFdkQsVUFBTSxtQkFBb0IsYUFBYSxTQUFTLE9BQU8sRUFBQyxLQUFLO0FBRTdELHFCQUFpQixTQUFTLE9BQU8sRUFBQyxNQUFNLGdCQUFnQixLQUFLO0FBRTdELFVBQU0sWUFBWSxpQkFBaUIsU0FBUyxPQUFPLEVBQUMsS0FBSztBQUV2RCxjQUFVLFlBQ1IsU0FBUyxRQUFRO0FBQUEsTUFDZixNQUFNO0FBQUE7QUFHVixjQUFVLFlBQ1IsU0FBUyxLQUFLO0FBQUEsTUFDWixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUE7QUFHVixjQUFVLFdBQVc7QUFFckIsY0FBVSxZQUNSLFNBQVMsS0FBSztBQUFBLE1BQ1osTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBO0FBR1YsY0FBVSxXQUFXO0FBRXJCLFFBQUksd0JBQVEsYUFDVCxRQUFRLDJCQUNSLFFBQVEsd0NBQ1IsWUFBWSxjQUFZLFNBQ3RCLFVBQVUseUJBQXdCLFdBQ2xDLFVBQVUsc0JBQXFCLFFBQy9CLFVBQVUscUJBQW9CLE9BQzlCLFVBQVUsNEJBQTJCLGNBQ3JDLFVBQVUsc0JBQXFCLGdCQUMvQixVQUFVLDRCQUEyQixjQUNyQyxVQUFVLHlCQUF3QixXQUNsQyxVQUFVLHlCQUF3QixXQUNsQyxVQUFVLHVCQUFzQixTQUNoQyxVQUFVLHNCQUFxQixRQUMvQixVQUFVLDJCQUEwQixnQkFDcEMsVUFBVSx3QkFBdUIsT0FDakMsVUFBVSwyQkFBMEIsYUFDcEMsVUFBVSx3QkFBdUIsVUFDakMsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUNoQyxTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxjQUFjO0FBQ25DLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUdoQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSxrQ0FDUixRQUFRLHVEQUNSLFlBQVksY0FBWSxTQUN0QixVQUFVLGlCQUFnQixXQUMxQixVQUFVLHVCQUFzQixhQUNoQyxVQUFVLHVCQUFzQixnQkFDaEMsVUFBVSwwQkFBeUIsaUJBQ25DLFNBQVMsS0FBSyxPQUFPLFNBQVMsWUFDaEMsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsYUFBYTtBQUNsQyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFHaEIsUUFBSSx3QkFBUSxhQUNULFFBQVEsMEJBQ1IsUUFBUSx3Q0FDUixZQUFZLGNBQVksU0FDdEIsVUFBVSx3QkFBdUIsV0FDakMsVUFBVSxxQkFBb0IsUUFDOUIsVUFBVSxvQkFBbUIsT0FDN0IsVUFBVSwyQkFBMEIsY0FDcEMsVUFBVSx3QkFBdUIsV0FDakMsVUFBVSxxQkFBb0IsZ0JBQzlCLFVBQVUsMkJBQTBCLGNBQ3BDLFVBQVUsd0JBQXVCLFdBQ2pDLFVBQVUsd0JBQXVCLFdBQ2pDLFVBQVUsc0JBQXFCLFNBQy9CLFVBQVUscUJBQW9CLFFBQzlCLFVBQVUsMEJBQXlCLGdCQUNuQyxVQUFVLHVCQUFzQixPQUNoQyxVQUFVLDBCQUF5QixhQUNuQyxVQUFVLHVCQUFzQixVQUNoQyxTQUFTLEtBQUssT0FBTyxTQUFTLFlBQzlCLFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLGFBQWE7QUFDbEMsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBR2xCLFFBQUksd0JBQVEsYUFDVCxRQUFRLGlDQUNSLFFBQVEsdURBQ1IsWUFBWSxjQUFZLFNBQ3RCLFVBQVUsZ0JBQWUsV0FDekIsVUFBVSxzQkFBcUIsZ0JBQy9CLFVBQVUsc0JBQXFCLGNBQy9CLFNBQVMsS0FBSyxPQUFPLFNBQVMsV0FDOUIsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsWUFBWTtBQUNqQyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFHcEIsZ0JBQVksU0FBUztBQUVyQixVQUFNLGtCQUFrQixZQUFZLFNBQVMsT0FBTyxFQUFDLEtBQUs7QUFFMUQsVUFBTSxzQkFBdUIsZ0JBQWdCLFNBQVMsT0FBTyxFQUFDLEtBQUs7QUFFbkUsd0JBQW9CLFNBQVMsT0FBTyxFQUFDLE1BQU0sWUFBWSxLQUFLO0FBRTVELFVBQU0sc0JBQXNCLG9CQUFvQixTQUFTLE9BQU8sRUFBQyxLQUFLO0FBRXBFLHdCQUFvQixZQUNsQixTQUFTLFFBQVE7QUFBQSxNQUNmLE1BQU07QUFBQTtBQUlWLHdCQUFvQixZQUNsQixTQUFTLEtBQUs7QUFBQSxNQUNaLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQTtBQUdWLHdCQUFvQixXQUFXO0FBRWpDLFFBQUksd0JBQVEsYUFDVCxRQUFRLHNDQUNSLFFBQVEsMERBQ1IsVUFBVSxZQUFVLE9BQU8sU0FBUyxLQUFLLE9BQU8sU0FBUyxZQUNyRCxTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxhQUFhO0FBQ2xDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUdwQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSx5QkFDUixRQUFRLG1EQUNSLFVBQVUsWUFBVSxPQUFPLFNBQVMsS0FBSyxPQUFPLFNBQVMsZUFDckQsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsZ0JBQWdCO0FBQ3JDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUlwQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSwwQkFDUixRQUFRLHFEQUNSLFVBQVUsWUFBVSxPQUFPLFNBQVMsS0FBSyxPQUFPLFNBQVMsc0JBQ3JELFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLHVCQUF1QjtBQUM1QyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFJcEIsUUFBSSx3QkFBUSxhQUNULFFBQVEscUJBQ1IsUUFBUSxpREFDUixVQUFVLFlBQVUsT0FBTyxTQUFTLEtBQUssT0FBTyxTQUFTLGtCQUNyRCxTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxtQkFBbUI7QUFDeEMsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBSXBCLFFBQUksd0JBQVEsYUFDVCxRQUFRLHNCQUNSLFFBQVEsMENBQ1IsVUFBVSxZQUFVLE9BQU8sU0FBUyxLQUFLLE9BQU8sU0FBUyxlQUNyRCxTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxnQkFBZ0I7QUFDckMsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBR3BCLFFBQUksd0JBQVEsYUFDVCxRQUFRLCtCQUNSLFFBQVEsb0RBQ1IsVUFBVSxZQUFVLE9BQU8sU0FBUyxLQUFLLE9BQU8sU0FBUyxXQUNyRCxTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxZQUFZO0FBQ2pDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUdsQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSxxQkFDUixRQUFRLHFEQUNSLFVBQVUsWUFBVSxPQUFPLFNBQVMsS0FBSyxPQUFPLFNBQVMsZUFDdkQsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsZ0JBQWdCO0FBQ3JDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUdwQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSxjQUNSLFFBQVEsNkVBQ1IsVUFBVSxZQUFVLE9BQU8sU0FBUyxLQUFLLE9BQU8sU0FBUyxXQUNyRCxTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxZQUFZO0FBQ2pDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUlwQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSw0QkFDUixRQUFRLHNDQUNSLFVBQVUsWUFBVSxPQUFPLFNBQVMsS0FBSyxPQUFPLFNBQVMsbUJBQ3JELFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLG9CQUFvQjtBQUN6QyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFJcEIsUUFBSSx3QkFBUSxhQUNULFFBQVEsNEJBQ1IsUUFBUSxzQ0FDUixVQUFVLFlBQVUsT0FBTyxTQUFTLEtBQUssT0FBTyxTQUFTLG1CQUNyRCxTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxvQkFBb0I7QUFDekMsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBSXBCLFFBQUksd0JBQVEsYUFDVCxRQUFRLGtCQUNSLFFBQVEsaURBQ1IsVUFBVSxZQUFVLE9BQU8sU0FBUyxLQUFLLE9BQU8sU0FBUyxnQkFDckQsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsaUJBQWlCO0FBQ3RDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUdwQixnQkFBWSxTQUFTO0FBRXJCLFVBQU0sZ0JBQWdCLFlBQVksU0FBUyxPQUFPLEVBQUMsS0FBSztBQUV4RCxVQUFNLG9CQUFxQixjQUFjLFNBQVMsT0FBTyxFQUFDLEtBQUs7QUFFL0Qsc0JBQWtCLFNBQVMsT0FBTyxFQUFDLE1BQU0sVUFBVSxLQUFLO0FBRXhELFVBQU0sb0JBQW9CLGtCQUFrQixTQUFTLE9BQU8sRUFBQyxLQUFLO0FBRWhFLHNCQUFrQixZQUNoQixTQUFTLFFBQVE7QUFBQSxNQUNmLE1BQU07QUFBQTtBQUdWLHNCQUFrQixZQUNoQixTQUFTLEtBQUs7QUFBQSxNQUNaLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQTtBQUdWLHNCQUFrQixXQUFXO0FBRS9CLFFBQUksd0JBQVEsYUFDVCxRQUFRLGVBQ1IsUUFBUSwwR0FDUixVQUFVLFlBQVUsT0FBTyxTQUFTLEtBQUssT0FBTyxTQUFTLFNBQ3JELFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLFVBQVU7QUFDL0IsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBR3BCLFFBQUksd0JBQVEsYUFDVCxRQUFRLGVBQ1IsUUFBUSxtQ0FDUixZQUFZLGNBQVksU0FDdEIsVUFBVSx1QkFBc0IsV0FDaEMsVUFBVSxjQUFhLG1CQUN2QixVQUFVLGFBQVksc0JBQ3RCLFVBQVUsYUFBWSxtQkFDdEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxZQUM1QixTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxhQUFhO0FBQ2xDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUlwQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSxnQkFDUixRQUFRLG9DQUNSLFlBQVksY0FBWSxTQUN0QixVQUFVLHdCQUF1QixXQUNqQyxVQUFVLGVBQWMsbUJBQ3hCLFVBQVUsY0FBYSxzQkFDdkIsVUFBVSxjQUFhLG1CQUN2QixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQzVCLFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLGNBQWM7QUFDbkMsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBSXBCLFFBQUksd0JBQVEsYUFDVCxRQUFRLGVBQ1IsUUFBUSxtQ0FDUixZQUFZLGNBQVksU0FDdEIsVUFBVSxxQkFBb0IsV0FDOUIsVUFBVSxZQUFXLG1CQUNyQixVQUFVLFdBQVUsc0JBQ3BCLFVBQVUsV0FBVSxtQkFDcEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxVQUM1QixTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxXQUFXO0FBQ2hDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUlwQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSxhQUNSLFFBQVEsaUNBQ1IsWUFBWSxjQUFZLFNBQ3RCLFVBQVUscUJBQW9CLFdBQzlCLFVBQVUsWUFBVyxtQkFDckIsVUFBVSxXQUFVLHNCQUNwQixVQUFVLFdBQVUsbUJBQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsVUFDNUIsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsV0FBVztBQUNoQyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFJcEIsUUFBSSx3QkFBUSxhQUNULFFBQVEsZUFDUixRQUFRLGdEQUNSLFlBQVksY0FBWSxTQUN0QixVQUFVLHVCQUFzQixXQUNoQyxVQUFVLGNBQWEsbUJBQ3ZCLFVBQVUsYUFBWSxzQkFDdEIsVUFBVSxhQUFZLG1CQUN0QixTQUFTLEtBQUssT0FBTyxTQUFTLFlBQzVCLFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLGFBQWE7QUFDbEMsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBSXBCLGdCQUFZLFNBQVM7QUFDckIsZ0JBQVksU0FBUyxPQUFPLEVBQUMsTUFBTSxjQUFjLEtBQUs7QUFFdEQsUUFBSSx3QkFBUSxhQUNULFFBQVEsa0JBQ1IsUUFBUSx3Q0FDUixRQUFRLFVBQVEsS0FBSyxlQUFlLE1BQ2xDLFNBQVUsTUFBSyxPQUFPLFNBQVMsY0FBYyxNQUFNLElBQ25ELFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLGFBQWEsV0FBVztBQUM3QyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFHbEIsUUFBSSx3QkFBUSxhQUNULFFBQVEsbUJBQ1IsUUFBUSx3REFDUixRQUFRLFVBQVEsS0FBSyxlQUFlLE1BQ2xDLFNBQVUsTUFBSyxPQUFPLFNBQVMsYUFBYSxNQUFNLElBQ2xELFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLFlBQVksV0FBVztBQUM1QyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFHbEIsUUFBSSx3QkFBUSxhQUNULFFBQVEsZUFDUixRQUFRLHNDQUNSLFFBQVEsVUFBUSxLQUFLLGVBQWUsT0FDbEMsU0FBVSxNQUFLLE9BQU8sU0FBUyxjQUFjLE1BQU0sSUFDbkQsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsYUFBYSxXQUFXO0FBQzdDLFdBQUssT0FBTyxTQUFTLEtBQUssT0FBTztBQUNqQyxXQUFLLE9BQU87QUFBQTtBQUdsQixRQUFJLHdCQUFRLGFBQ1QsUUFBUSxxQkFDUixRQUFRLCtDQUNSLFFBQVEsVUFBUSxLQUFLLGVBQWUsTUFDbEMsU0FBVSxNQUFLLE9BQU8sU0FBUyxhQUFhLE1BQU0sSUFDbEQsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsWUFBWSxTQUFTLE1BQU07QUFDaEQsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBR2xCLFFBQUksd0JBQVEsYUFDVCxRQUFRLG1CQUNSLFFBQVEsaUVBQ1IsUUFBUSxVQUFRLEtBQUssZUFBZSxNQUNsQyxTQUFVLE1BQUssT0FBTyxTQUFTLGlCQUFpQixNQUFNLElBQ3RELFNBQVMsQ0FBQyxVQUFVO0FBQ25CLFdBQUssT0FBTyxTQUFTLGdCQUFnQixTQUFTLE1BQU07QUFDcEQsV0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPO0FBQ2pDLFdBQUssT0FBTztBQUFBO0FBR2xCLFFBQUksd0JBQVEsYUFDVCxRQUFRLHdCQUNSLFFBQVEsd0VBQ1IsUUFBUSxVQUFRLEtBQUssZUFBZSxNQUNsQyxTQUFVLE1BQUssT0FBTyxTQUFTLFlBQVksTUFBTSxJQUNqRCxTQUFTLENBQUMsVUFBVTtBQUNuQixXQUFLLE9BQU8sU0FBUyxXQUFXLFNBQVMsTUFBTTtBQUMvQyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFFbEIsUUFBSSx3QkFBUSxhQUNULFFBQVEsZUFDUixRQUFRLHNGQUNSLFFBQVEsVUFBUSxLQUFLLGVBQWUsSUFDbEMsU0FBVSxNQUFLLE9BQU8sU0FBUyxjQUFjLE1BQU0sSUFDbkQsU0FBUyxDQUFDLFVBQVU7QUFDbkIsV0FBSyxPQUFPLFNBQVMsYUFBYTtBQUNsQyxXQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDakMsV0FBSyxPQUFPO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
diff --git a/content/.obsidian/plugins/obsidian-minimal-settings/manifest.json b/content/.obsidian/plugins/obsidian-minimal-settings/manifest.json
new file mode 100644
index 0000000..b049b66
--- /dev/null
+++ b/content/.obsidian/plugins/obsidian-minimal-settings/manifest.json
@@ -0,0 +1,11 @@
+{
+ "id": "obsidian-minimal-settings",
+ "name": "Minimal Theme Settings",
+ "version": "7.5.0",
+ "minAppVersion": "1.1.9",
+ "description": "Change the colors, fonts and features of Minimal Theme.",
+ "author": "@kepano",
+ "authorUrl": "https://www.twitter.com/kepano",
+ "fundingUrl": "https://www.buymeacoffee.com/kepano",
+ "isDesktopOnly": false
+}
\ No newline at end of file
diff --git a/content/.obsidian/plugins/obsidian-minimal-settings/styles.css b/content/.obsidian/plugins/obsidian-minimal-settings/styles.css
new file mode 100644
index 0000000..c94e373
--- /dev/null
+++ b/content/.obsidian/plugins/obsidian-minimal-settings/styles.css
@@ -0,0 +1 @@
+/* Empty */
\ No newline at end of file
diff --git a/content/.obsidian/plugins/vscode-editor/data.json b/content/.obsidian/plugins/vscode-editor/data.json
new file mode 100644
index 0000000..b3ae56d
--- /dev/null
+++ b/content/.obsidian/plugins/vscode-editor/data.json
@@ -0,0 +1,25 @@
+{
+ "extensions": [
+ "ts",
+ "js",
+ "py",
+ "css",
+ "c",
+ "cpp",
+ "go",
+ "rs",
+ "java",
+ "lua",
+ "php",
+ "xml",
+ "njk"
+ ],
+ "folding": true,
+ "lineNumbers": true,
+ "wordWrap": true,
+ "minimap": true,
+ "semanticValidation": true,
+ "syntaxValidation": true,
+ "themeColor": "AUTO",
+ "fontSize": 16
+}
\ No newline at end of file
diff --git a/content/.obsidian/plugins/vscode-editor/main.js b/content/.obsidian/plugins/vscode-editor/main.js
new file mode 100644
index 0000000..7c889ed
--- /dev/null
+++ b/content/.obsidian/plugins/vscode-editor/main.js
@@ -0,0 +1,1369 @@
+var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:true,configurable:true,writable:true,value:value}):obj[key]=value;var __esm=(fn,res)=>function __init(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function __require2(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from==="object"||typeof from==="function"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:true}),mod);var __publicField=(obj,key,value)=>{__defNormalProp(obj,typeof key!=="symbol"?key+"":key,value);return value};function tail(array2,n=0){return array2[array2.length-(1+n)]}function tail2(arr){if(arr.length===0){throw new Error("Invalid tail call")}return[arr.slice(0,arr.length-1),arr[arr.length-1]]}function equals(one,other,itemEquals=((a,b)=>a===b)){if(one===other){return true}if(!one||!other){return false}if(one.length!==other.length){return false}for(let i=0,len=one.length;icomparator(array2[i],key)))}function binarySearch2(length2,compareToKey){let low=0,high=length2-1;while(low<=high){const mid=(low+high)/2|0;const comp=compareToKey(mid);if(comp<0){low=mid+1}else if(comp>0){high=mid-1}else{return mid}}return-(low+1)}function findFirstInSorted(array2,p){let low=0,high=array2.length;if(high===0){return 0}while(low=data.length){throw new TypeError("invalid index")}const pivotValue=data[Math.floor(data.length*Math.random())];const lower=[];const higher=[];const pivots=[];for(const value of data){const val=compare2(value,pivotValue);if(val<0){lower.push(value)}else if(val>0){higher.push(value)}else{pivots.push(value)}}if(nth!!e))}function coalesceInPlace(array2){let to=0;for(let i=0;i0}function distinct(array2,keyFn=(value=>value)){const seen=new Set;return array2.filter((element=>{const key=keyFn(element);if(seen.has(key)){return false}seen.add(key);return true}))}function findLast(arr,predicate){const idx=findLastIndex(arr,predicate);if(idx===-1){return void 0}return arr[idx]}function findLastIndex(array2,fn){for(let i=array2.length-1;i>=0;i--){const element=array2[i];if(fn(element)){return i}}return-1}function firstOrDefault(array2,notFoundValue){return array2.length>0?array2[0]:notFoundValue}function range(arg,to){let from=typeof to==="number"?arg:0;if(typeof to==="number"){from=arg}else{from=0;to=arg}const result=[];if(from<=to){for(let i=from;ito;i--){result.push(i)}}return result}function arrayInsert(target,insertIndex,insertArr){const before=target.slice(0,insertIndex);const after=target.slice(insertIndex);return before.concat(insertArr,after)}function pushToStart(arr,value){const index=arr.indexOf(value);if(index>-1){arr.splice(index,1);arr.unshift(value)}}function pushToEnd(arr,value){const index=arr.indexOf(value);if(index>-1){arr.splice(index,1);arr.push(value)}}function pushMany(arr,items){for(const item of items){arr.push(item)}}function asArray(x){return Array.isArray(x)?x:[x]}function mapFind(array2,mapFn){for(const value of array2){const mapped=mapFn(value);if(mapped!==void 0){return mapped}}return void 0}function insertInto(array2,start,newItems){const startIdx=getActualStartIndex(array2,start);const originalLength=array2.length;const newItemsLength=newItems.length;array2.length=originalLength+newItemsLength;for(let i=originalLength-1;i>=startIdx;i--){array2[i+newItemsLength]=array2[i]}for(let i=0;icomparator(selector(a),selector(b))}function tieBreakComparators(...comparators){return(item1,item2)=>{for(const comparator of comparators){const result=comparator(item1,item2);if(!CompareResult.isNeitherLessOrGreaterThan(result)){return result}}return CompareResult.neitherLessOrGreaterThan}}function reverseOrder(comparator){return(a,b)=>-comparator(a,b)}function findMaxBy(items,comparator){if(items.length===0){return void 0}let max=items[0];for(let i=1;i0){max=item}}return max}function findLastMaxBy(items,comparator){if(items.length===0){return void 0}let max=items[0];for(let i=1;i=0){max=item}}return max}function findMinBy(items,comparator){return findMaxBy(items,((a,b)=>-comparator(a,b)))}function findMaxIdxBy(items,comparator){if(items.length===0){return-1}let maxIdx=0;for(let i=1;i0){maxIdx=i}}return maxIdx}var CompareResult,numberComparator,booleanComparator,ArrayQueue,CallbackIterable;var init_arrays=__esm({"node_modules/monaco-editor/esm/vs/base/common/arrays.js"(){(function(CompareResult2){function isLessThan(result){return result<0}CompareResult2.isLessThan=isLessThan;function isLessThanOrEqual(result){return result<=0}CompareResult2.isLessThanOrEqual=isLessThanOrEqual;function isGreaterThan(result){return result>0}CompareResult2.isGreaterThan=isGreaterThan;function isNeitherLessOrGreaterThan(result){return result===0}CompareResult2.isNeitherLessOrGreaterThan=isNeitherLessOrGreaterThan;CompareResult2.greaterThan=1;CompareResult2.lessThan=-1;CompareResult2.neitherLessOrGreaterThan=0})(CompareResult||(CompareResult={}));numberComparator=(a,b)=>a-b;booleanComparator=(a,b)=>numberComparator(a?1:0,b?1:0);ArrayQueue=class{constructor(items){this.items=items;this.firstIdx=0;this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(predicate){let startIdx=this.firstIdx;while(startIdx=0&&predicate(this.items[endIdx])){endIdx--}const result=endIdx===this.lastIdx?null:this.items.slice(endIdx+1,this.lastIdx+1);this.lastIdx=endIdx;return result}peek(){if(this.length===0){return void 0}return this.items[this.firstIdx]}dequeue(){const result=this.items[this.firstIdx];this.firstIdx++;return result}takeCount(count){const result=this.items.slice(this.firstIdx,this.firstIdx+count);this.firstIdx+=count;return result}};CallbackIterable=class{constructor(iterate){this.iterate=iterate}toArray(){const result=[];this.iterate((item=>{result.push(item);return true}));return result}filter(predicate){return new CallbackIterable((cb=>this.iterate((item=>predicate(item)?cb(item):true))))}map(mapFn){return new CallbackIterable((cb=>this.iterate((item=>cb(mapFn(item))))))}findLast(predicate){let result;this.iterate((item=>{if(predicate(item)){result=item}return true}));return result}findLastMaxBy(comparator){let result;let first2=true;this.iterate((item=>{if(first2||CompareResult.isGreaterThan(comparator(item,result))){first2=false;result=item}return true}));return result}};CallbackIterable.empty=new CallbackIterable((_callback=>{}))}});function isString(str){return typeof str==="string"}function isObject(obj){return typeof obj==="object"&&obj!==null&&!Array.isArray(obj)&&!(obj instanceof RegExp)&&!(obj instanceof Date)}function isTypedArray(obj){const TypedArray=Object.getPrototypeOf(Uint8Array);return typeof obj==="object"&&obj instanceof TypedArray}function isNumber(obj){return typeof obj==="number"&&!isNaN(obj)}function isIterable(obj){return!!obj&&typeof obj[Symbol.iterator]==="function"}function isBoolean(obj){return obj===true||obj===false}function isUndefined(obj){return typeof obj==="undefined"}function isDefined(arg){return!isUndefinedOrNull(arg)}function isUndefinedOrNull(obj){return isUndefined(obj)||obj===null}function assertType(condition,type){if(!condition){throw new Error(type?`Unexpected type, expected '${type}'`:"Unexpected type")}}function assertIsDefined(arg){if(isUndefinedOrNull(arg)){throw new Error("Assertion Failed: argument is undefined or null")}return arg}function isFunction(obj){return typeof obj==="function"}function validateConstraints(args,constraints){const len=Math.min(args.length,constraints.length);for(let i=0;i{result[key]=value&&typeof value==="object"?deepClone(value):value}));return result}function deepFreeze(obj){if(!obj||typeof obj!=="object"){return obj}const stack=[obj];while(stack.length>0){const obj2=stack.shift();Object.freeze(obj2);for(const key in obj2){if(_hasOwnProperty.call(obj2,key)){const prop=obj2[key];if(typeof prop==="object"&&!Object.isFrozen(prop)&&!isTypedArray(prop)){stack.push(prop)}}}}return obj}function cloneAndChange(obj,changer){return _cloneAndChange(obj,changer,new Set)}function _cloneAndChange(obj,changer,seen){if(isUndefinedOrNull(obj)){return obj}const changed=changer(obj);if(typeof changed!=="undefined"){return changed}if(Array.isArray(obj)){const r1=[];for(const e of obj){r1.push(_cloneAndChange(e,changer,seen))}return r1}if(isObject(obj)){if(seen.has(obj)){throw new Error("Cannot clone recursive data-structure")}seen.add(obj);const r2={};for(const i2 in obj){if(_hasOwnProperty.call(obj,i2)){r2[i2]=_cloneAndChange(obj[i2],changer,seen)}}seen.delete(obj);return r2}return obj}function mixin(destination,source,overwrite=true){if(!isObject(destination)){return source}if(isObject(source)){Object.keys(source).forEach((key=>{if(key in destination){if(overwrite){if(isObject(destination[key])&&isObject(source[key])){mixin(destination[key],source[key],overwrite)}else{destination[key]=source[key]}}}else{destination[key]=source[key]}}))}return destination}function equals2(one,other){if(one===other){return true}if(one===null||one===void 0||other===null||other===void 0){return false}if(typeof one!==typeof other){return false}if(typeof one!=="object"){return false}if(Array.isArray(one)!==Array.isArray(other)){return false}let i;let key;if(Array.isArray(one)){if(one.length!==other.length){return false}for(i=0;ifunction(){const args=Array.prototype.slice.call(arguments,0);return invoke(method,args)};const result={};for(const methodName of methodNames){result[methodName]=createProxyMethod(methodName)}return result}var _hasOwnProperty;var init_objects=__esm({"node_modules/monaco-editor/esm/vs/base/common/objects.js"(){init_types();_hasOwnProperty=Object.prototype.hasOwnProperty}});function _format(message,args){let result;if(args.length===0){result=message}else{result=message.replace(/\{(\d+)\}/g,((match2,rest)=>{const index=rest[0];const arg=args[index];let result2=match2;if(typeof arg==="string"){result2=arg}else if(typeof arg==="number"||typeof arg==="boolean"||arg===void 0||arg===null){result2=String(arg)}return result2}))}if(isPseudo){result="["+result.replace(/[aouei]/g,"$&$&")+"]"}return result}function localize(data,message,...args){return _format(message,args)}function getConfiguredDefaultLocale(_){return void 0}var isPseudo;var init_nls=__esm({"node_modules/monaco-editor/esm/vs/nls.js"(){isPseudo=typeof document!=="undefined"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0}});function isLittleEndian(){if(!_isLittleEndianComputed){_isLittleEndianComputed=true;const test=new Uint8Array(2);test[0]=1;test[1]=2;const view=new Uint16Array(test.buffer);_isLittleEndian=view[0]===(2<<8)+1}return _isLittleEndian}var _a,LANGUAGE_DEFAULT,_isWindows,_isMacintosh,_isLinux,_isLinuxSnap,_isNative,_isWeb,_isElectron,_isIOS,_isCI,_isMobile,_locale,_language,_platformLocale,_translationsConfigFile,_userAgent,globals,nodeProcess,isElectronProcess,isElectronRenderer,_platform,isWindows,isMacintosh,isLinux,isNative,isWeb,isWebWorker,isIOS,isMobile,userAgent,language,setTimeout0IsFaster,setTimeout0,OS,_isLittleEndian,_isLittleEndianComputed,isChrome,isFirefox,isSafari,isEdge,isAndroid;var init_platform=__esm({"node_modules/monaco-editor/esm/vs/base/common/platform.js"(){init_nls();LANGUAGE_DEFAULT="en";_isWindows=false;_isMacintosh=false;_isLinux=false;_isLinuxSnap=false;_isNative=false;_isWeb=false;_isElectron=false;_isIOS=false;_isCI=false;_isMobile=false;_locale=void 0;_language=LANGUAGE_DEFAULT;_platformLocale=LANGUAGE_DEFAULT;_translationsConfigFile=void 0;_userAgent=void 0;globals=typeof self==="object"?self:typeof global==="object"?global:{};nodeProcess=void 0;if(typeof globals.vscode!=="undefined"&&typeof globals.vscode.process!=="undefined"){nodeProcess=globals.vscode.process}else if(typeof process!=="undefined"){nodeProcess=process}isElectronProcess=typeof((_a=nodeProcess===null||nodeProcess===void 0?void 0:nodeProcess.versions)===null||_a===void 0?void 0:_a.electron)==="string";isElectronRenderer=isElectronProcess&&(nodeProcess===null||nodeProcess===void 0?void 0:nodeProcess.type)==="renderer";if(typeof navigator==="object"&&!isElectronRenderer){_userAgent=navigator.userAgent;_isWindows=_userAgent.indexOf("Windows")>=0;_isMacintosh=_userAgent.indexOf("Macintosh")>=0;_isIOS=(_userAgent.indexOf("Macintosh")>=0||_userAgent.indexOf("iPad")>=0||_userAgent.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0;_isLinux=_userAgent.indexOf("Linux")>=0;_isMobile=(_userAgent===null||_userAgent===void 0?void 0:_userAgent.indexOf("Mobi"))>=0;_isWeb=true;const configuredLocale=getConfiguredDefaultLocale(localize({key:"ensureLoaderPluginIsLoaded",comment:["{Locked}"]},"_"));_locale=configuredLocale||LANGUAGE_DEFAULT;_language=_locale;_platformLocale=navigator.language}else if(typeof nodeProcess==="object"){_isWindows=nodeProcess.platform==="win32";_isMacintosh=nodeProcess.platform==="darwin";_isLinux=nodeProcess.platform==="linux";_isLinuxSnap=_isLinux&&!!nodeProcess.env["SNAP"]&&!!nodeProcess.env["SNAP_REVISION"];_isElectron=isElectronProcess;_isCI=!!nodeProcess.env["CI"]||!!nodeProcess.env["BUILD_ARTIFACTSTAGINGDIRECTORY"];_locale=LANGUAGE_DEFAULT;_language=LANGUAGE_DEFAULT;const rawNlsConfig=nodeProcess.env["VSCODE_NLS_CONFIG"];if(rawNlsConfig){try{const nlsConfig=JSON.parse(rawNlsConfig);const resolved=nlsConfig.availableLanguages["*"];_locale=nlsConfig.locale;_platformLocale=nlsConfig.osLocale;_language=resolved?resolved:LANGUAGE_DEFAULT;_translationsConfigFile=nlsConfig._translationsConfigFile}catch(e){}}_isNative=true}else{console.error("Unable to resolve platform.")}_platform=0;if(_isMacintosh){_platform=1}else if(_isWindows){_platform=3}else if(_isLinux){_platform=2}isWindows=_isWindows;isMacintosh=_isMacintosh;isLinux=_isLinux;isNative=_isNative;isWeb=_isWeb;isWebWorker=_isWeb&&typeof globals.importScripts==="function";isIOS=_isIOS;isMobile=_isMobile;userAgent=_userAgent;language=_language;setTimeout0IsFaster=typeof globals.postMessage==="function"&&!globals.importScripts;setTimeout0=(()=>{if(setTimeout0IsFaster){const pending=[];globals.addEventListener("message",(e=>{if(e.data&&e.data.vscodeScheduleAsyncWork){for(let i=0,len=pending.length;i{const myId=++lastId;pending.push({id:myId,callback:callback});globals.postMessage({vscodeScheduleAsyncWork:myId},"*")}}return callback=>setTimeout(callback)})();OS=_isMacintosh||_isIOS?2:_isWindows?1:3;_isLittleEndian=true;_isLittleEndianComputed=false;isChrome=!!(userAgent&&userAgent.indexOf("Chrome")>=0);isFirefox=!!(userAgent&&userAgent.indexOf("Firefox")>=0);isSafari=!!(!isChrome&&(userAgent&&userAgent.indexOf("Safari")>=0));isEdge=!!(userAgent&&userAgent.indexOf("Edg/")>=0);isAndroid=!!(userAgent&&userAgent.indexOf("Android")>=0)}});var EDITOR_MODEL_DEFAULTS;var init_textModelDefaults=__esm({"node_modules/monaco-editor/esm/vs/editor/common/core/textModelDefaults.js"(){EDITOR_MODEL_DEFAULTS={tabSize:4,indentSize:4,insertSpaces:true,detectIndentation:true,trimAutoWhitespace:true,largeFileOptimizations:true,bracketPairColorizationOptions:{enabled:true,independentColorPoolPerBracketType:false}}}});var Iterable;var init_iterator=__esm({"node_modules/monaco-editor/esm/vs/base/common/iterator.js"(){(function(Iterable2){function is(thing){return thing&&typeof thing==="object"&&typeof thing[Symbol.iterator]==="function"}Iterable2.is=is;const _empty2=Object.freeze([]);function empty2(){return _empty2}Iterable2.empty=empty2;function*single(element){yield element}Iterable2.single=single;function wrap(iterableOrElement){if(is(iterableOrElement)){return iterableOrElement}else{return single(iterableOrElement)}}Iterable2.wrap=wrap;function from(iterable){return iterable||_empty2}Iterable2.from=from;function isEmpty(iterable){return!iterable||iterable[Symbol.iterator]().next().done===true}Iterable2.isEmpty=isEmpty;function first2(iterable){return iterable[Symbol.iterator]().next().value}Iterable2.first=first2;function some(iterable,predicate){for(const element of iterable){if(predicate(element)){return true}}return false}Iterable2.some=some;function find(iterable,predicate){for(const element of iterable){if(predicate(element)){return element}}return void 0}Iterable2.find=find;function*filter(iterable,predicate){for(const element of iterable){if(predicate(element)){yield element}}}Iterable2.filter=filter;function*map(iterable,fn){let index=0;for(const element of iterable){yield fn(element,index++)}}Iterable2.map=map;function*concat3(...iterables){for(const iterable of iterables){for(const element of iterable){yield element}}}Iterable2.concat=concat3;function reduce(iterable,reducer,initialValue){let value=initialValue;for(const element of iterable){value=reducer(value,element)}return value}Iterable2.reduce=reduce;function*slice(arr,from2,to=arr.length){if(from2<0){from2+=arr.length}if(to<0){to+=arr.length}else if(to>arr.length){to=arr.length}for(;from2{if(!didRemove){didRemove=true;this._remove(newNode)}}}shift(){if(this._first===Node2.Undefined){return void 0}else{const res=this._first.element;this._remove(this._first);return res}}pop(){if(this._last===Node2.Undefined){return void 0}else{const res=this._last.element;this._remove(this._last);return res}}_remove(node){if(node.prev!==Node2.Undefined&&node.next!==Node2.Undefined){const anchor=node.prev;anchor.next=node.next;node.next.prev=anchor}else if(node.prev===Node2.Undefined&&node.next===Node2.Undefined){this._first=Node2.Undefined;this._last=Node2.Undefined}else if(node.next===Node2.Undefined){this._last=this._last.prev;this._last.next=Node2.Undefined}else if(node.prev===Node2.Undefined){this._first=this._first.next;this._first.prev=Node2.Undefined}this._size-=1}*[Symbol.iterator](){let node=this._first;while(node!==Node2.Undefined){yield node.element;node=node.next}}}}});function createWordRegExp(allowInWords=""){let source="(-?\\d*\\.\\d\\w*)|([^";for(const sep2 of USUAL_WORD_SEPARATORS){if(allowInWords.indexOf(sep2)>=0){continue}source+="\\"+sep2}source+="\\s]+)";return new RegExp(source,"g")}function ensureValidWordDefinition(wordDefinition){let result=DEFAULT_WORD_REGEXP;if(wordDefinition&&wordDefinition instanceof RegExp){if(!wordDefinition.global){let flags="g";if(wordDefinition.ignoreCase){flags+="i"}if(wordDefinition.multiline){flags+="m"}if(wordDefinition.unicode){flags+="u"}result=new RegExp(wordDefinition.source,flags)}else{result=wordDefinition}}result.lastIndex=0;return result}function getWordAtText(column,wordDefinition,text2,textOffset,config){if(!config){config=Iterable.first(_defaultConfig)}if(text2.length>config.maxLen){let start=column-config.maxLen/2;if(start<0){start=0}else{textOffset+=start}text2=text2.substring(start,column+config.maxLen/2);return getWordAtText(column,wordDefinition,text2,textOffset,config)}const t1=Date.now();const pos=column-1-textOffset;let prevRegexIndex=-1;let match2=null;for(let i=1;;i++){if(Date.now()-t1>=config.timeBudget){break}const regexIndex=pos-config.windowSize*i;wordDefinition.lastIndex=Math.max(0,regexIndex);const thisMatch=_findRegexMatchEnclosingPosition(wordDefinition,text2,pos,prevRegexIndex);if(!thisMatch&&match2){break}match2=thisMatch;if(regexIndex<=0){break}prevRegexIndex=regexIndex}if(match2){const result={word:match2[0],startColumn:textOffset+1+match2.index,endColumn:textOffset+1+match2.index+match2[0].length};wordDefinition.lastIndex=0;return result}return null}function _findRegexMatchEnclosingPosition(wordDefinition,text2,pos,stopPos){let match2;while(match2=wordDefinition.exec(text2)){const matchIndex=match2.index||0;if(matchIndex<=pos&&wordDefinition.lastIndex>=pos){return match2}else if(stopPos>0&&matchIndex>stopPos){return null}}return null}var USUAL_WORD_SEPARATORS,DEFAULT_WORD_REGEXP,_defaultConfig;var init_wordHelper=__esm({"node_modules/monaco-editor/esm/vs/editor/common/core/wordHelper.js"(){init_iterator();init_linkedList();USUAL_WORD_SEPARATORS="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";DEFAULT_WORD_REGEXP=createWordRegExp();_defaultConfig=new LinkedList;_defaultConfig.unshift({maxLen:1e3,windowSize:15,timeBudget:150})}});function applyUpdate(value,update){if(typeof value!=="object"||typeof update!=="object"||!value||!update){return new ApplyUpdateResult(update,value!==update)}if(Array.isArray(value)||Array.isArray(update)){const arrayEquals=Array.isArray(value)&&Array.isArray(update)&&equals(value,update);return new ApplyUpdateResult(update,!arrayEquals)}let didChange=false;for(const key in update){if(update.hasOwnProperty(key)){const result=applyUpdate(value[key],update[key]);if(result.didChange){value[key]=result.newValue;didChange=true}}}return new ApplyUpdateResult(value,didChange)}function boolean(value,defaultValue){if(typeof value==="undefined"){return defaultValue}if(value==="false"){return false}return Boolean(value)}function clampedInt(value,defaultValue,minimum,maximum){if(typeof value==="undefined"){return defaultValue}let r=parseInt(value,10);if(isNaN(r)){return defaultValue}r=Math.max(minimum,r);r=Math.min(maximum,r);return r|0}function clampedFloat(value,defaultValue,minimum,maximum){if(typeof value==="undefined"){return defaultValue}const r=EditorFloatOption.float(value,defaultValue);return EditorFloatOption.clamp(r,minimum,maximum)}function stringSet(value,defaultValue,allowedValues,renamedValues){if(typeof value!=="string"){return defaultValue}if(renamedValues&&value in renamedValues){return renamedValues[value]}if(allowedValues.indexOf(value)===-1){return defaultValue}return value}function _autoIndentFromString(autoIndent){switch(autoIndent){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}function _cursorBlinkingStyleFromString(cursorBlinkingStyle){switch(cursorBlinkingStyle){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}function _cursorStyleFromString(cursorStyle){switch(cursorStyle){case"line":return TextEditorCursorStyle.Line;case"block":return TextEditorCursorStyle.Block;case"underline":return TextEditorCursorStyle.Underline;case"line-thin":return TextEditorCursorStyle.LineThin;case"block-outline":return TextEditorCursorStyle.BlockOutline;case"underline-thin":return TextEditorCursorStyle.UnderlineThin}}function _multiCursorModifierFromString(multiCursorModifier){if(multiCursorModifier==="ctrlCmd"){return isMacintosh?"metaKey":"ctrlKey"}return"altKey"}function filterValidationDecorations(options2){const renderValidationDecorations=options2.get(96);if(renderValidationDecorations==="editable"){return options2.get(89)}return renderValidationDecorations==="on"?false:true}function _scrollbarVisibilityFromString(visibility,defaultValue){if(typeof visibility!=="string"){return defaultValue}switch(visibility){case"hidden":return 2;case"visible":return 3;default:return 1}}function primitiveSet(value,defaultValue,allowedValues){const idx=allowedValues.indexOf(value);if(idx===-1){return defaultValue}return allowedValues[idx]}function register(option){editorOptionsRegistry[option.id]=option;return option}var MINIMAP_GUTTER_WIDTH,ConfigurationChangedEvent,ComputeOptionsMemory,BaseEditorOption,ApplyUpdateResult,ComputedEditorOption,SimpleEditorOption,EditorBooleanOption,EditorIntOption,EditorFloatOption,EditorStringOption,EditorStringEnumOption,EditorEnumOption,EditorAccessibilitySupport,EditorComments,TextEditorCursorStyle,EditorClassName,EditorEmptySelectionClipboard,EditorFind,EditorFontLigatures,EditorFontVariations,EditorFontInfo,EditorFontSize,EditorFontWeight,EditorGoToLocation,EditorHover,EditorLayoutInfoComputer,WrappingStrategy,EditorLightbulb,EditorStickyScroll,EditorInlayHints,EditorLineDecorationsWidth,EditorLineHeight,EditorMinimap,EditorPadding,EditorParameterHints,EditorPixelRatio,EditorQuickSuggestions,EditorRenderLineNumbersOption,EditorRulers,ReadonlyMessage,EditorScrollbar,inUntrustedWorkspace,unicodeHighlightConfigKeys,UnicodeHighlight,InlineEditorSuggest,BracketPairColorization,GuideOptions,EditorSuggest,SmartSelect,WrappingIndentOption,EditorWrappingInfoComputer,EditorDropIntoEditor,EditorPasteAs,DEFAULT_WINDOWS_FONT_FAMILY,DEFAULT_MAC_FONT_FAMILY,DEFAULT_LINUX_FONT_FAMILY,EDITOR_FONT_DEFAULTS,editorOptionsRegistry,EditorOptions;var init_editorOptions=__esm({"node_modules/monaco-editor/esm/vs/editor/common/config/editorOptions.js"(){init_arrays();init_objects();init_platform();init_textModelDefaults();init_wordHelper();init_nls();MINIMAP_GUTTER_WIDTH=8;ConfigurationChangedEvent=class{constructor(values){this._values=values}hasChanged(id){return this._values[id]}};ComputeOptionsMemory=class{constructor(){this.stableMinimapLayoutInput=null;this.stableFitMaxMinimapScale=0;this.stableFitRemainingWidth=0}};BaseEditorOption=class{constructor(id,name,defaultValue,schema){this.id=id;this.name=name;this.defaultValue=defaultValue;this.schema=schema}applyUpdate(value,update){return applyUpdate(value,update)}compute(env2,options2,value){return value}};ApplyUpdateResult=class{constructor(newValue,didChange){this.newValue=newValue;this.didChange=didChange}};ComputedEditorOption=class{constructor(id){this.schema=void 0;this.id=id;this.name="_never_";this.defaultValue=void 0}applyUpdate(value,update){return applyUpdate(value,update)}validate(input){return this.defaultValue}};SimpleEditorOption=class{constructor(id,name,defaultValue,schema){this.id=id;this.name=name;this.defaultValue=defaultValue;this.schema=schema}applyUpdate(value,update){return applyUpdate(value,update)}validate(input){if(typeof input==="undefined"){return this.defaultValue}return input}compute(env2,options2,value){return value}};EditorBooleanOption=class extends SimpleEditorOption{constructor(id,name,defaultValue,schema=void 0){if(typeof schema!=="undefined"){schema.type="boolean";schema.default=defaultValue}super(id,name,defaultValue,schema)}validate(input){return boolean(input,this.defaultValue)}};EditorIntOption=class extends SimpleEditorOption{static clampedInt(value,defaultValue,minimum,maximum){return clampedInt(value,defaultValue,minimum,maximum)}constructor(id,name,defaultValue,minimum,maximum,schema=void 0){if(typeof schema!=="undefined"){schema.type="integer";schema.default=defaultValue;schema.minimum=minimum;schema.maximum=maximum}super(id,name,defaultValue,schema);this.minimum=minimum;this.maximum=maximum}validate(input){return EditorIntOption.clampedInt(input,this.defaultValue,this.minimum,this.maximum)}};EditorFloatOption=class extends SimpleEditorOption{static clamp(n,min,max){if(nmax){return max}return n}static float(value,defaultValue){if(typeof value==="number"){return value}if(typeof value==="undefined"){return defaultValue}const r=parseFloat(value);return isNaN(r)?defaultValue:r}constructor(id,name,defaultValue,validationFn,schema){if(typeof schema!=="undefined"){schema.type="number";schema.default=defaultValue}super(id,name,defaultValue,schema);this.validationFn=validationFn}validate(input){return this.validationFn(EditorFloatOption.float(input,this.defaultValue))}};EditorStringOption=class extends SimpleEditorOption{static string(value,defaultValue){if(typeof value!=="string"){return defaultValue}return value}constructor(id,name,defaultValue,schema=void 0){if(typeof schema!=="undefined"){schema.type="string";schema.default=defaultValue}super(id,name,defaultValue,schema)}validate(input){return EditorStringOption.string(input,this.defaultValue)}};EditorStringEnumOption=class extends SimpleEditorOption{constructor(id,name,defaultValue,allowedValues,schema=void 0){if(typeof schema!=="undefined"){schema.type="string";schema.enum=allowedValues;schema.default=defaultValue}super(id,name,defaultValue,schema);this._allowedValues=allowedValues}validate(input){return stringSet(input,this.defaultValue,this._allowedValues)}};EditorEnumOption=class extends BaseEditorOption{constructor(id,name,defaultValue,defaultStringValue,allowedValues,convert,schema=void 0){if(typeof schema!=="undefined"){schema.type="string";schema.enum=allowedValues;schema.default=defaultStringValue}super(id,name,defaultValue,schema);this._allowedValues=allowedValues;this._convert=convert}validate(input){if(typeof input!=="string"){return this.defaultValue}if(this._allowedValues.indexOf(input)===-1){return this.defaultValue}return this._convert(input)}};EditorAccessibilitySupport=class extends BaseEditorOption{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[localize("accessibilitySupport.auto","Use platform APIs to detect when a Screen Reader is attached"),localize("accessibilitySupport.on","Optimize for usage with a Screen Reader"),localize("accessibilitySupport.off","Assume a screen reader is not attached")],default:"auto",tags:["accessibility"],description:localize("accessibilitySupport","Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(input){switch(input){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(env2,options2,value){if(value===0){return env2.accessibilitySupport}return value}};EditorComments=class extends BaseEditorOption{constructor(){const defaults={insertSpace:true,ignoreEmptyLines:true};super(22,"comments",defaults,{"editor.comments.insertSpace":{type:"boolean",default:defaults.insertSpace,description:localize("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:defaults.ignoreEmptyLines,description:localize("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{insertSpace:boolean(input.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:boolean(input.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}};(function(TextEditorCursorStyle3){TextEditorCursorStyle3[TextEditorCursorStyle3["Line"]=1]="Line";TextEditorCursorStyle3[TextEditorCursorStyle3["Block"]=2]="Block";TextEditorCursorStyle3[TextEditorCursorStyle3["Underline"]=3]="Underline";TextEditorCursorStyle3[TextEditorCursorStyle3["LineThin"]=4]="LineThin";TextEditorCursorStyle3[TextEditorCursorStyle3["BlockOutline"]=5]="BlockOutline";TextEditorCursorStyle3[TextEditorCursorStyle3["UnderlineThin"]=6]="UnderlineThin"})(TextEditorCursorStyle||(TextEditorCursorStyle={}));EditorClassName=class extends ComputedEditorOption{constructor(){super(139)}compute(env2,options2,_){const classNames=["monaco-editor"];if(options2.get(38)){classNames.push(options2.get(38))}if(env2.extraEditorClassName){classNames.push(env2.extraEditorClassName)}if(options2.get(72)==="default"){classNames.push("mouse-default")}else if(options2.get(72)==="copy"){classNames.push("mouse-copy")}if(options2.get(109)){classNames.push("showUnused")}if(options2.get(137)){classNames.push("showDeprecated")}return classNames.join(" ")}};EditorEmptySelectionClipboard=class extends EditorBooleanOption{constructor(){super(36,"emptySelectionClipboard",true,{description:localize("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}compute(env2,options2,value){return value&&env2.emptySelectionClipboard}};EditorFind=class extends BaseEditorOption{constructor(){const defaults={cursorMoveOnType:true,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:false,addExtraSpaceOnTop:true,loop:true};super(40,"find",defaults,{"editor.find.cursorMoveOnType":{type:"boolean",default:defaults.cursorMoveOnType,description:localize("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:defaults.seedSearchStringFromSelection,enumDescriptions:[localize("editor.find.seedSearchStringFromSelection.never","Never seed search string from the editor selection."),localize("editor.find.seedSearchStringFromSelection.always","Always seed search string from the editor selection, including word at cursor position."),localize("editor.find.seedSearchStringFromSelection.selection","Only seed search string from the editor selection.")],description:localize("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:defaults.autoFindInSelection,enumDescriptions:[localize("editor.find.autoFindInSelection.never","Never turn on Find in Selection automatically (default)."),localize("editor.find.autoFindInSelection.always","Always turn on Find in Selection automatically."),localize("editor.find.autoFindInSelection.multiline","Turn on Find in Selection automatically when multiple lines of content are selected.")],description:localize("find.autoFindInSelection","Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:defaults.globalFindClipboard,description:localize("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:isMacintosh},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:defaults.addExtraSpaceOnTop,description:localize("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:defaults.loop,description:localize("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{cursorMoveOnType:boolean(input.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof _input.seedSearchStringFromSelection==="boolean"?_input.seedSearchStringFromSelection?"always":"never":stringSet(input.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof _input.autoFindInSelection==="boolean"?_input.autoFindInSelection?"always":"never":stringSet(input.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:boolean(input.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:boolean(input.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:boolean(input.loop,this.defaultValue.loop)}}};EditorFontLigatures=class extends BaseEditorOption{constructor(){super(50,"fontLigatures",EditorFontLigatures.OFF,{anyOf:[{type:"boolean",description:localize("fontLigatures","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:localize("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:localize("fontLigaturesGeneral","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:false})}validate(input){if(typeof input==="undefined"){return this.defaultValue}if(typeof input==="string"){if(input==="false"){return EditorFontLigatures.OFF}if(input==="true"){return EditorFontLigatures.ON}return input}if(Boolean(input)){return EditorFontLigatures.ON}return EditorFontLigatures.OFF}};EditorFontLigatures.OFF='"liga" off, "calt" off';EditorFontLigatures.ON='"liga" on, "calt" on';EditorFontVariations=class extends BaseEditorOption{constructor(){super(53,"fontVariations",EditorFontVariations.OFF,{anyOf:[{type:"boolean",description:localize("fontVariations","Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:localize("fontVariationSettings","Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:localize("fontVariationsGeneral","Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:false})}validate(input){if(typeof input==="undefined"){return this.defaultValue}if(typeof input==="string"){if(input==="false"){return EditorFontVariations.OFF}if(input==="true"){return EditorFontVariations.TRANSLATE}return input}if(Boolean(input)){return EditorFontVariations.TRANSLATE}return EditorFontVariations.OFF}compute(env2,options2,value){return env2.fontInfo.fontVariationSettings}};EditorFontVariations.OFF="normal";EditorFontVariations.TRANSLATE="translate";EditorFontInfo=class extends ComputedEditorOption{constructor(){super(49)}compute(env2,options2,_){return env2.fontInfo}};EditorFontSize=class extends SimpleEditorOption{constructor(){super(51,"fontSize",EDITOR_FONT_DEFAULTS.fontSize,{type:"number",minimum:6,maximum:100,default:EDITOR_FONT_DEFAULTS.fontSize,description:localize("fontSize","Controls the font size in pixels.")})}validate(input){const r=EditorFloatOption.float(input,this.defaultValue);if(r===0){return EDITOR_FONT_DEFAULTS.fontSize}return EditorFloatOption.clamp(r,6,100)}compute(env2,options2,value){return env2.fontInfo.fontSize}};EditorFontWeight=class extends BaseEditorOption{constructor(){super(52,"fontWeight",EDITOR_FONT_DEFAULTS.fontWeight,{anyOf:[{type:"number",minimum:EditorFontWeight.MINIMUM_VALUE,maximum:EditorFontWeight.MAXIMUM_VALUE,errorMessage:localize("fontWeightErrorMessage",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:EditorFontWeight.SUGGESTION_VALUES}],default:EDITOR_FONT_DEFAULTS.fontWeight,description:localize("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(input){if(input==="normal"||input==="bold"){return input}return String(EditorIntOption.clampedInt(input,EDITOR_FONT_DEFAULTS.fontWeight,EditorFontWeight.MINIMUM_VALUE,EditorFontWeight.MAXIMUM_VALUE))}};EditorFontWeight.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"];EditorFontWeight.MINIMUM_VALUE=1;EditorFontWeight.MAXIMUM_VALUE=1e3;EditorGoToLocation=class extends BaseEditorOption{constructor(){const defaults={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""};const jsonSubset={type:"string",enum:["peek","gotoAndPeek","goto"],default:defaults.multiple,enumDescriptions:[localize("editor.gotoLocation.multiple.peek","Show Peek view of the results (default)"),localize("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a Peek view"),localize("editor.gotoLocation.multiple.goto","Go to the primary result and enable Peek-less navigation to others")]};const alternativeCommandOptions=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(57,"gotoLocation",defaults,{"editor.gotoLocation.multiple":{deprecationMessage:localize("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":Object.assign({description:localize("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.")},jsonSubset),"editor.gotoLocation.multipleTypeDefinitions":Object.assign({description:localize("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.")},jsonSubset),"editor.gotoLocation.multipleDeclarations":Object.assign({description:localize("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.")},jsonSubset),"editor.gotoLocation.multipleImplementations":Object.assign({description:localize("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.")},jsonSubset),"editor.gotoLocation.multipleReferences":Object.assign({description:localize("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist.")},jsonSubset),"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:defaults.alternativeDefinitionCommand,enum:alternativeCommandOptions,description:localize("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:defaults.alternativeTypeDefinitionCommand,enum:alternativeCommandOptions,description:localize("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:defaults.alternativeDeclarationCommand,enum:alternativeCommandOptions,description:localize("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:defaults.alternativeImplementationCommand,enum:alternativeCommandOptions,description:localize("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:defaults.alternativeReferenceCommand,enum:alternativeCommandOptions,description:localize("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(_input){var _a6,_b3,_c2,_d2,_e2;if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{multiple:stringSet(input.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:(_a6=input.multipleDefinitions)!==null&&_a6!==void 0?_a6:stringSet(input.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:(_b3=input.multipleTypeDefinitions)!==null&&_b3!==void 0?_b3:stringSet(input.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:(_c2=input.multipleDeclarations)!==null&&_c2!==void 0?_c2:stringSet(input.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:(_d2=input.multipleImplementations)!==null&&_d2!==void 0?_d2:stringSet(input.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:(_e2=input.multipleReferences)!==null&&_e2!==void 0?_e2:stringSet(input.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:EditorStringOption.string(input.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:EditorStringOption.string(input.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:EditorStringOption.string(input.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:EditorStringOption.string(input.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:EditorStringOption.string(input.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}};EditorHover=class extends BaseEditorOption{constructor(){const defaults={enabled:true,delay:300,sticky:true,above:true};super(59,"hover",defaults,{"editor.hover.enabled":{type:"boolean",default:defaults.enabled,description:localize("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:defaults.delay,minimum:0,maximum:1e4,description:localize("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:defaults.sticky,description:localize("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.above":{type:"boolean",default:defaults.above,description:localize("hover.above","Prefer showing hovers above the line, if there's space.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled),delay:EditorIntOption.clampedInt(input.delay,this.defaultValue.delay,0,1e4),sticky:boolean(input.sticky,this.defaultValue.sticky),above:boolean(input.above,this.defaultValue.above)}}};EditorLayoutInfoComputer=class extends ComputedEditorOption{constructor(){super(142)}compute(env2,options2,_){return EditorLayoutInfoComputer.computeLayout(options2,{memory:env2.memory,outerWidth:env2.outerWidth,outerHeight:env2.outerHeight,isDominatedByLongLines:env2.isDominatedByLongLines,lineHeight:env2.fontInfo.lineHeight,viewLineCount:env2.viewLineCount,lineNumbersDigitCount:env2.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:env2.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:env2.fontInfo.maxDigitWidth,pixelRatio:env2.pixelRatio,glyphMarginDecorationLaneCount:env2.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(input){const typicalViewportLineCount=input.height/input.lineHeight;const extraLinesBeforeFirstLine=Math.floor(input.paddingTop/input.lineHeight);let extraLinesBeyondLastLine=Math.floor(input.paddingBottom/input.lineHeight);if(input.scrollBeyondLastLine){extraLinesBeyondLastLine=Math.max(extraLinesBeyondLastLine,typicalViewportLineCount-1)}const desiredRatio=(extraLinesBeforeFirstLine+input.viewLineCount+extraLinesBeyondLastLine)/(input.pixelRatio*input.height);const minimapLineCount=Math.floor(input.viewLineCount/desiredRatio);return{typicalViewportLineCount:typicalViewportLineCount,extraLinesBeforeFirstLine:extraLinesBeforeFirstLine,extraLinesBeyondLastLine:extraLinesBeyondLastLine,desiredRatio:desiredRatio,minimapLineCount:minimapLineCount}}static _computeMinimapLayout(input,memory){const outerWidth=input.outerWidth;const outerHeight=input.outerHeight;const pixelRatio=input.pixelRatio;if(!input.minimap.enabled){return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:false,minimapIsSampling:false,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(pixelRatio*outerHeight),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:outerHeight}}const stableMinimapLayoutInput=memory.stableMinimapLayoutInput;const couldUseMemory=stableMinimapLayoutInput&&input.outerHeight===stableMinimapLayoutInput.outerHeight&&input.lineHeight===stableMinimapLayoutInput.lineHeight&&input.typicalHalfwidthCharacterWidth===stableMinimapLayoutInput.typicalHalfwidthCharacterWidth&&input.pixelRatio===stableMinimapLayoutInput.pixelRatio&&input.scrollBeyondLastLine===stableMinimapLayoutInput.scrollBeyondLastLine&&input.paddingTop===stableMinimapLayoutInput.paddingTop&&input.paddingBottom===stableMinimapLayoutInput.paddingBottom&&input.minimap.enabled===stableMinimapLayoutInput.minimap.enabled&&input.minimap.side===stableMinimapLayoutInput.minimap.side&&input.minimap.size===stableMinimapLayoutInput.minimap.size&&input.minimap.showSlider===stableMinimapLayoutInput.minimap.showSlider&&input.minimap.renderCharacters===stableMinimapLayoutInput.minimap.renderCharacters&&input.minimap.maxColumn===stableMinimapLayoutInput.minimap.maxColumn&&input.minimap.scale===stableMinimapLayoutInput.minimap.scale&&input.verticalScrollbarWidth===stableMinimapLayoutInput.verticalScrollbarWidth&&input.isViewportWrapping===stableMinimapLayoutInput.isViewportWrapping;const lineHeight=input.lineHeight;const typicalHalfwidthCharacterWidth=input.typicalHalfwidthCharacterWidth;const scrollBeyondLastLine=input.scrollBeyondLastLine;const minimapRenderCharacters=input.minimap.renderCharacters;let minimapScale=pixelRatio>=2?Math.round(input.minimap.scale*2):input.minimap.scale;const minimapMaxColumn=input.minimap.maxColumn;const minimapSize=input.minimap.size;const minimapSide=input.minimap.side;const verticalScrollbarWidth=input.verticalScrollbarWidth;const viewLineCount=input.viewLineCount;const remainingWidth=input.remainingWidth;const isViewportWrapping=input.isViewportWrapping;const baseCharHeight=minimapRenderCharacters?2:3;let minimapCanvasInnerHeight=Math.floor(pixelRatio*outerHeight);const minimapCanvasOuterHeight=minimapCanvasInnerHeight/pixelRatio;let minimapHeightIsEditorHeight=false;let minimapIsSampling=false;let minimapLineHeight=baseCharHeight*minimapScale;let minimapCharWidth=minimapScale/pixelRatio;let minimapWidthMultiplier=1;if(minimapSize==="fill"||minimapSize==="fit"){const{typicalViewportLineCount:typicalViewportLineCount,extraLinesBeforeFirstLine:extraLinesBeforeFirstLine,extraLinesBeyondLastLine:extraLinesBeyondLastLine,desiredRatio:desiredRatio,minimapLineCount:minimapLineCount}=EditorLayoutInfoComputer.computeContainedMinimapLineCount({viewLineCount:viewLineCount,scrollBeyondLastLine:scrollBeyondLastLine,paddingTop:input.paddingTop,paddingBottom:input.paddingBottom,height:outerHeight,lineHeight:lineHeight,pixelRatio:pixelRatio});const ratio=viewLineCount/minimapLineCount;if(ratio>1){minimapHeightIsEditorHeight=true;minimapIsSampling=true;minimapScale=1;minimapLineHeight=1;minimapCharWidth=minimapScale/pixelRatio}else{let fitBecomesFill=false;let maxMinimapScale=minimapScale+1;if(minimapSize==="fit"){const effectiveMinimapHeight=Math.ceil((extraLinesBeforeFirstLine+viewLineCount+extraLinesBeyondLastLine)*minimapLineHeight);if(isViewportWrapping&&couldUseMemory&&remainingWidth<=memory.stableFitRemainingWidth){fitBecomesFill=true;maxMinimapScale=memory.stableFitMaxMinimapScale}else{fitBecomesFill=effectiveMinimapHeight>minimapCanvasInnerHeight}}if(minimapSize==="fill"||fitBecomesFill){minimapHeightIsEditorHeight=true;const configuredMinimapScale=minimapScale;minimapLineHeight=Math.min(lineHeight*pixelRatio,Math.max(1,Math.floor(1/desiredRatio)));if(isViewportWrapping&&couldUseMemory&&remainingWidth<=memory.stableFitRemainingWidth){maxMinimapScale=memory.stableFitMaxMinimapScale}minimapScale=Math.min(maxMinimapScale,Math.max(1,Math.floor(minimapLineHeight/baseCharHeight)));if(minimapScale>configuredMinimapScale){minimapWidthMultiplier=Math.min(2,minimapScale/configuredMinimapScale)}minimapCharWidth=minimapScale/pixelRatio/minimapWidthMultiplier;minimapCanvasInnerHeight=Math.ceil(Math.max(typicalViewportLineCount,extraLinesBeforeFirstLine+viewLineCount+extraLinesBeyondLastLine)*minimapLineHeight);if(isViewportWrapping){memory.stableMinimapLayoutInput=input;memory.stableFitRemainingWidth=remainingWidth;memory.stableFitMaxMinimapScale=minimapScale}else{memory.stableMinimapLayoutInput=null;memory.stableFitRemainingWidth=0}}}}const minimapMaxWidth=Math.floor(minimapMaxColumn*minimapCharWidth);const minimapWidth=Math.min(minimapMaxWidth,Math.max(0,Math.floor((remainingWidth-verticalScrollbarWidth-2)*minimapCharWidth/(typicalHalfwidthCharacterWidth+minimapCharWidth)))+MINIMAP_GUTTER_WIDTH);let minimapCanvasInnerWidth=Math.floor(pixelRatio*minimapWidth);const minimapCanvasOuterWidth=minimapCanvasInnerWidth/pixelRatio;minimapCanvasInnerWidth=Math.floor(minimapCanvasInnerWidth*minimapWidthMultiplier);const renderMinimap=minimapRenderCharacters?1:2;const minimapLeft=minimapSide==="left"?0:outerWidth-minimapWidth-verticalScrollbarWidth;return{renderMinimap:renderMinimap,minimapLeft:minimapLeft,minimapWidth:minimapWidth,minimapHeightIsEditorHeight:minimapHeightIsEditorHeight,minimapIsSampling:minimapIsSampling,minimapScale:minimapScale,minimapLineHeight:minimapLineHeight,minimapCanvasInnerWidth:minimapCanvasInnerWidth,minimapCanvasInnerHeight:minimapCanvasInnerHeight,minimapCanvasOuterWidth:minimapCanvasOuterWidth,minimapCanvasOuterHeight:minimapCanvasOuterHeight}}static computeLayout(options2,env2){const outerWidth=env2.outerWidth|0;const outerHeight=env2.outerHeight|0;const lineHeight=env2.lineHeight|0;const lineNumbersDigitCount=env2.lineNumbersDigitCount|0;const typicalHalfwidthCharacterWidth=env2.typicalHalfwidthCharacterWidth;const maxDigitWidth=env2.maxDigitWidth;const pixelRatio=env2.pixelRatio;const viewLineCount=env2.viewLineCount;const wordWrapOverride2=options2.get(134);const wordWrapOverride1=wordWrapOverride2==="inherit"?options2.get(133):wordWrapOverride2;const wordWrap=wordWrapOverride1==="inherit"?options2.get(129):wordWrapOverride1;const wordWrapColumn=options2.get(132);const isDominatedByLongLines=env2.isDominatedByLongLines;const showGlyphMargin=options2.get(56);const showLineNumbers=options2.get(66).renderType!==0;const lineNumbersMinChars=options2.get(67);const scrollBeyondLastLine=options2.get(103);const padding=options2.get(82);const minimap=options2.get(71);const scrollbar=options2.get(101);const verticalScrollbarWidth=scrollbar.verticalScrollbarSize;const verticalScrollbarHasArrows=scrollbar.verticalHasArrows;const scrollbarArrowSize=scrollbar.arrowSize;const horizontalScrollbarHeight=scrollbar.horizontalScrollbarSize;const folding=options2.get(42);const showFoldingDecoration=options2.get(108)!=="never";let lineDecorationsWidth=options2.get(64);if(folding&&showFoldingDecoration){lineDecorationsWidth+=16}let lineNumbersWidth=0;if(showLineNumbers){const digitCount2=Math.max(lineNumbersDigitCount,lineNumbersMinChars);lineNumbersWidth=Math.round(digitCount2*maxDigitWidth)}let glyphMarginWidth=0;if(showGlyphMargin){glyphMarginWidth=lineHeight*env2.glyphMarginDecorationLaneCount}let glyphMarginLeft=0;let lineNumbersLeft=glyphMarginLeft+glyphMarginWidth;let decorationsLeft=lineNumbersLeft+lineNumbersWidth;let contentLeft=decorationsLeft+lineDecorationsWidth;const remainingWidth=outerWidth-glyphMarginWidth-lineNumbersWidth-lineDecorationsWidth;let isWordWrapMinified=false;let isViewportWrapping=false;let wrappingColumn=-1;if(wordWrapOverride1==="inherit"&&isDominatedByLongLines){isWordWrapMinified=true;isViewportWrapping=true}else if(wordWrap==="on"||wordWrap==="bounded"){isViewportWrapping=true}else if(wordWrap==="wordWrapColumn"){wrappingColumn=wordWrapColumn}const minimapLayout=EditorLayoutInfoComputer._computeMinimapLayout({outerWidth:outerWidth,outerHeight:outerHeight,lineHeight:lineHeight,typicalHalfwidthCharacterWidth:typicalHalfwidthCharacterWidth,pixelRatio:pixelRatio,scrollBeyondLastLine:scrollBeyondLastLine,paddingTop:padding.top,paddingBottom:padding.bottom,minimap:minimap,verticalScrollbarWidth:verticalScrollbarWidth,viewLineCount:viewLineCount,remainingWidth:remainingWidth,isViewportWrapping:isViewportWrapping},env2.memory||new ComputeOptionsMemory);if(minimapLayout.renderMinimap!==0&&minimapLayout.minimapLeft===0){glyphMarginLeft+=minimapLayout.minimapWidth;lineNumbersLeft+=minimapLayout.minimapWidth;decorationsLeft+=minimapLayout.minimapWidth;contentLeft+=minimapLayout.minimapWidth}const contentWidth=remainingWidth-minimapLayout.minimapWidth;const viewportColumn=Math.max(1,Math.floor((contentWidth-verticalScrollbarWidth-2)/typicalHalfwidthCharacterWidth));const verticalArrowSize=verticalScrollbarHasArrows?scrollbarArrowSize:0;if(isViewportWrapping){wrappingColumn=Math.max(1,viewportColumn);if(wordWrap==="bounded"){wrappingColumn=Math.min(wrappingColumn,wordWrapColumn)}}return{width:outerWidth,height:outerHeight,glyphMarginLeft:glyphMarginLeft,glyphMarginWidth:glyphMarginWidth,glyphMarginDecorationLaneCount:env2.glyphMarginDecorationLaneCount,lineNumbersLeft:lineNumbersLeft,lineNumbersWidth:lineNumbersWidth,decorationsLeft:decorationsLeft,decorationsWidth:lineDecorationsWidth,contentLeft:contentLeft,contentWidth:contentWidth,minimap:minimapLayout,viewportColumn:viewportColumn,isWordWrapMinified:isWordWrapMinified,isViewportWrapping:isViewportWrapping,wrappingColumn:wrappingColumn,verticalScrollbarWidth:verticalScrollbarWidth,horizontalScrollbarHeight:horizontalScrollbarHeight,overviewRuler:{top:verticalArrowSize,width:verticalScrollbarWidth,height:outerHeight-2*verticalArrowSize,right:0}}}};WrappingStrategy=class extends BaseEditorOption{constructor(){super(136,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[localize("wrappingStrategy.simple","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),localize("wrappingStrategy.advanced","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:localize("wrappingStrategy","Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(input){return stringSet(input,"simple",["simple","advanced"])}compute(env2,options2,value){const accessibilitySupport=options2.get(2);if(accessibilitySupport===2){return"advanced"}return value}};EditorLightbulb=class extends BaseEditorOption{constructor(){const defaults={enabled:true};super(63,"lightbulb",defaults,{"editor.lightbulb.enabled":{type:"boolean",default:defaults.enabled,description:localize("codeActions","Enables the Code Action lightbulb in the editor.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled)}}};EditorStickyScroll=class extends BaseEditorOption{constructor(){const defaults={enabled:false,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:true};super(113,"stickyScroll",defaults,{"editor.stickyScroll.enabled":{type:"boolean",default:defaults.enabled,description:localize("editor.stickyScroll.enabled","Shows the nested current scopes during the scroll at the top of the editor.")},"editor.stickyScroll.maxLineCount":{type:"number",default:defaults.maxLineCount,minimum:1,maximum:10,description:localize("editor.stickyScroll.maxLineCount","Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:defaults.defaultModel,description:localize("editor.stickyScroll.defaultModel","Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:defaults.scrollWithEditor,description:localize("editor.stickyScroll.scrollWithEditor","Enable scrolling of the sticky scroll widget with the editor's horizontal scrollbar.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled),maxLineCount:EditorIntOption.clampedInt(input.maxLineCount,this.defaultValue.maxLineCount,1,10),defaultModel:stringSet(input.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:boolean(input.scrollWithEditor,this.defaultValue.scrollWithEditor)}}};EditorInlayHints=class extends BaseEditorOption{constructor(){const defaults={enabled:"on",fontSize:0,fontFamily:"",padding:false};super(138,"inlayHints",defaults,{"editor.inlayHints.enabled":{type:"string",default:defaults.enabled,description:localize("inlayHints.enable","Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[localize("editor.inlayHints.on","Inlay hints are enabled"),localize("editor.inlayHints.onUnlessPressed","Inlay hints are showing by default and hide when holding {0}",isMacintosh?`Ctrl+Option`:`Ctrl+Alt`),localize("editor.inlayHints.offUnlessPressed","Inlay hints are hidden by default and show when holding {0}",isMacintosh?`Ctrl+Option`:`Ctrl+Alt`),localize("editor.inlayHints.off","Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:defaults.fontSize,markdownDescription:localize("inlayHints.fontSize","Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:defaults.fontFamily,markdownDescription:localize("inlayHints.fontFamily","Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:defaults.padding,description:localize("inlayHints.padding","Enables the padding around the inlay hints in the editor.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;if(typeof input.enabled==="boolean"){input.enabled=input.enabled?"on":"off"}return{enabled:stringSet(input.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:EditorIntOption.clampedInt(input.fontSize,this.defaultValue.fontSize,0,100),fontFamily:EditorStringOption.string(input.fontFamily,this.defaultValue.fontFamily),padding:boolean(input.padding,this.defaultValue.padding)}}};EditorLineDecorationsWidth=class extends BaseEditorOption{constructor(){super(64,"lineDecorationsWidth",10)}validate(input){if(typeof input==="string"&&/^\d+(\.\d+)?ch$/.test(input)){const multiple=parseFloat(input.substring(0,input.length-2));return-multiple}else{return EditorIntOption.clampedInt(input,this.defaultValue,0,1e3)}}compute(env2,options2,value){if(value<0){return EditorIntOption.clampedInt(-value*env2.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3)}else{return value}}};EditorLineHeight=class extends EditorFloatOption{constructor(){super(65,"lineHeight",EDITOR_FONT_DEFAULTS.lineHeight,(x=>EditorFloatOption.clamp(x,0,150)),{markdownDescription:localize("lineHeight","Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values.")})}compute(env2,options2,value){return env2.fontInfo.lineHeight}};EditorMinimap=class extends BaseEditorOption{constructor(){const defaults={enabled:true,size:"proportional",side:"right",showSlider:"mouseover",autohide:false,renderCharacters:true,maxColumn:120,scale:1};super(71,"minimap",defaults,{"editor.minimap.enabled":{type:"boolean",default:defaults.enabled,description:localize("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:defaults.autohide,description:localize("minimap.autohide","Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[localize("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),localize("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),localize("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:defaults.size,description:localize("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:defaults.side,description:localize("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:defaults.showSlider,description:localize("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:defaults.scale,minimum:1,maximum:3,enum:[1,2,3],description:localize("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:defaults.renderCharacters,description:localize("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:defaults.maxColumn,description:localize("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled),autohide:boolean(input.autohide,this.defaultValue.autohide),size:stringSet(input.size,this.defaultValue.size,["proportional","fill","fit"]),side:stringSet(input.side,this.defaultValue.side,["right","left"]),showSlider:stringSet(input.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:boolean(input.renderCharacters,this.defaultValue.renderCharacters),scale:EditorIntOption.clampedInt(input.scale,1,1,3),maxColumn:EditorIntOption.clampedInt(input.maxColumn,this.defaultValue.maxColumn,1,1e4)}}};EditorPadding=class extends BaseEditorOption{constructor(){super(82,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:localize("padding.top","Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:localize("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{top:EditorIntOption.clampedInt(input.top,0,0,1e3),bottom:EditorIntOption.clampedInt(input.bottom,0,0,1e3)}}};EditorParameterHints=class extends BaseEditorOption{constructor(){const defaults={enabled:true,cycle:true};super(84,"parameterHints",defaults,{"editor.parameterHints.enabled":{type:"boolean",default:defaults.enabled,description:localize("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:defaults.cycle,description:localize("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled),cycle:boolean(input.cycle,this.defaultValue.cycle)}}};EditorPixelRatio=class extends ComputedEditorOption{constructor(){super(140)}compute(env2,options2,_){return env2.pixelRatio}};EditorQuickSuggestions=class extends BaseEditorOption{constructor(){const defaults={other:"on",comments:"off",strings:"off"};const types=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[localize("on","Quick suggestions show inside the suggest widget"),localize("inline","Quick suggestions show as ghost text"),localize("off","Quick suggestions are disabled")]}];super(87,"quickSuggestions",defaults,{type:"object",additionalProperties:false,properties:{strings:{anyOf:types,default:defaults.strings,description:localize("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{anyOf:types,default:defaults.comments,description:localize("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{anyOf:types,default:defaults.other,description:localize("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}},default:defaults,markdownDescription:localize("quickSuggestions","Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.",`#editor.suggestOnTriggerCharacters#`)});this.defaultValue=defaults}validate(input){if(typeof input==="boolean"){const value=input?"on":"off";return{comments:value,strings:value,other:value}}if(!input||typeof input!=="object"){return this.defaultValue}const{other:other,comments:comments,strings:strings}=input;const allowedValues=["on","inline","off"];let validatedOther;let validatedComments;let validatedStrings;if(typeof other==="boolean"){validatedOther=other?"on":"off"}else{validatedOther=stringSet(other,this.defaultValue.other,allowedValues)}if(typeof comments==="boolean"){validatedComments=comments?"on":"off"}else{validatedComments=stringSet(comments,this.defaultValue.comments,allowedValues)}if(typeof strings==="boolean"){validatedStrings=strings?"on":"off"}else{validatedStrings=stringSet(strings,this.defaultValue.strings,allowedValues)}return{other:validatedOther,comments:validatedComments,strings:validatedStrings}}};EditorRenderLineNumbersOption=class extends BaseEditorOption{constructor(){super(66,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[localize("lineNumbers.off","Line numbers are not rendered."),localize("lineNumbers.on","Line numbers are rendered as absolute number."),localize("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),localize("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:localize("lineNumbers","Controls the display of line numbers.")})}validate(lineNumbers){let renderType=this.defaultValue.renderType;let renderFn=this.defaultValue.renderFn;if(typeof lineNumbers!=="undefined"){if(typeof lineNumbers==="function"){renderType=4;renderFn=lineNumbers}else if(lineNumbers==="interval"){renderType=3}else if(lineNumbers==="relative"){renderType=2}else if(lineNumbers==="on"){renderType=1}else{renderType=0}}return{renderType:renderType,renderFn:renderFn}}};EditorRulers=class extends BaseEditorOption{constructor(){const defaults=[];const columnSchema={type:"number",description:localize("rulers.size","Number of monospace characters at which this editor ruler will render.")};super(100,"rulers",defaults,{type:"array",items:{anyOf:[columnSchema,{type:["object"],properties:{column:columnSchema,color:{type:"string",description:localize("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:defaults,description:localize("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(input){if(Array.isArray(input)){const rulers=[];for(const _element of input){if(typeof _element==="number"){rulers.push({column:EditorIntOption.clampedInt(_element,0,0,1e4),color:null})}else if(_element&&typeof _element==="object"){const element=_element;rulers.push({column:EditorIntOption.clampedInt(element.column,0,0,1e4),color:element.color})}}rulers.sort(((a,b)=>a.column-b.column));return rulers}return this.defaultValue}};ReadonlyMessage=class extends BaseEditorOption{constructor(){const defaults=void 0;super(90,"readOnlyMessage",defaults)}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}return _input}};EditorScrollbar=class extends BaseEditorOption{constructor(){const defaults={vertical:1,horizontal:1,arrowSize:11,useShadows:true,verticalHasArrows:false,horizontalHasArrows:false,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:true,alwaysConsumeMouseWheel:true,scrollByPage:false};super(101,"scrollbar",defaults,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[localize("scrollbar.vertical.auto","The vertical scrollbar will be visible only when necessary."),localize("scrollbar.vertical.visible","The vertical scrollbar will always be visible."),localize("scrollbar.vertical.fit","The vertical scrollbar will always be hidden.")],default:"auto",description:localize("scrollbar.vertical","Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[localize("scrollbar.horizontal.auto","The horizontal scrollbar will be visible only when necessary."),localize("scrollbar.horizontal.visible","The horizontal scrollbar will always be visible."),localize("scrollbar.horizontal.fit","The horizontal scrollbar will always be hidden.")],default:"auto",description:localize("scrollbar.horizontal","Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:defaults.verticalScrollbarSize,description:localize("scrollbar.verticalScrollbarSize","The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:defaults.horizontalScrollbarSize,description:localize("scrollbar.horizontalScrollbarSize","The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:defaults.scrollByPage,description:localize("scrollbar.scrollByPage","Controls whether clicks scroll by page or jump to click position.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;const horizontalScrollbarSize=EditorIntOption.clampedInt(input.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3);const verticalScrollbarSize=EditorIntOption.clampedInt(input.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:EditorIntOption.clampedInt(input.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:_scrollbarVisibilityFromString(input.vertical,this.defaultValue.vertical),horizontal:_scrollbarVisibilityFromString(input.horizontal,this.defaultValue.horizontal),useShadows:boolean(input.useShadows,this.defaultValue.useShadows),verticalHasArrows:boolean(input.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:boolean(input.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:boolean(input.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:boolean(input.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:horizontalScrollbarSize,horizontalSliderSize:EditorIntOption.clampedInt(input.horizontalSliderSize,horizontalScrollbarSize,0,1e3),verticalScrollbarSize:verticalScrollbarSize,verticalSliderSize:EditorIntOption.clampedInt(input.verticalSliderSize,verticalScrollbarSize,0,1e3),scrollByPage:boolean(input.scrollByPage,this.defaultValue.scrollByPage)}}};inUntrustedWorkspace="inUntrustedWorkspace";unicodeHighlightConfigKeys={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};UnicodeHighlight=class extends BaseEditorOption{constructor(){const defaults={nonBasicASCII:inUntrustedWorkspace,invisibleCharacters:true,ambiguousCharacters:true,includeComments:inUntrustedWorkspace,includeStrings:true,allowedCharacters:{},allowedLocales:{_os:true,_vscode:true}};super(123,"unicodeHighlight",defaults,{[unicodeHighlightConfigKeys.nonBasicASCII]:{restricted:true,type:["boolean","string"],enum:[true,false,inUntrustedWorkspace],default:defaults.nonBasicASCII,description:localize("unicodeHighlight.nonBasicASCII","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[unicodeHighlightConfigKeys.invisibleCharacters]:{restricted:true,type:"boolean",default:defaults.invisibleCharacters,description:localize("unicodeHighlight.invisibleCharacters","Controls whether characters that just reserve space or have no width at all are highlighted.")},[unicodeHighlightConfigKeys.ambiguousCharacters]:{restricted:true,type:"boolean",default:defaults.ambiguousCharacters,description:localize("unicodeHighlight.ambiguousCharacters","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[unicodeHighlightConfigKeys.includeComments]:{restricted:true,type:["boolean","string"],enum:[true,false,inUntrustedWorkspace],default:defaults.includeComments,description:localize("unicodeHighlight.includeComments","Controls whether characters in comments should also be subject to Unicode highlighting.")},[unicodeHighlightConfigKeys.includeStrings]:{restricted:true,type:["boolean","string"],enum:[true,false,inUntrustedWorkspace],default:defaults.includeStrings,description:localize("unicodeHighlight.includeStrings","Controls whether characters in strings should also be subject to Unicode highlighting.")},[unicodeHighlightConfigKeys.allowedCharacters]:{restricted:true,type:"object",default:defaults.allowedCharacters,description:localize("unicodeHighlight.allowedCharacters","Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[unicodeHighlightConfigKeys.allowedLocales]:{restricted:true,type:"object",additionalProperties:{type:"boolean"},default:defaults.allowedLocales,description:localize("unicodeHighlight.allowedLocales","Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(value,update){let didChange=false;if(update.allowedCharacters&&value){if(!equals2(value.allowedCharacters,update.allowedCharacters)){value=Object.assign(Object.assign({},value),{allowedCharacters:update.allowedCharacters});didChange=true}}if(update.allowedLocales&&value){if(!equals2(value.allowedLocales,update.allowedLocales)){value=Object.assign(Object.assign({},value),{allowedLocales:update.allowedLocales});didChange=true}}const result=super.applyUpdate(value,update);if(didChange){return new ApplyUpdateResult(result.newValue,true)}return result}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{nonBasicASCII:primitiveSet(input.nonBasicASCII,inUntrustedWorkspace,[true,false,inUntrustedWorkspace]),invisibleCharacters:boolean(input.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:boolean(input.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:primitiveSet(input.includeComments,inUntrustedWorkspace,[true,false,inUntrustedWorkspace]),includeStrings:primitiveSet(input.includeStrings,inUntrustedWorkspace,[true,false,inUntrustedWorkspace]),allowedCharacters:this.validateBooleanMap(_input.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(_input.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(map,defaultValue){if(typeof map!=="object"||!map){return defaultValue}const result={};for(const[key,value]of Object.entries(map)){if(value===true){result[key]=true}}return result}};InlineEditorSuggest=class extends BaseEditorOption{constructor(){const defaults={enabled:true,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:false,keepOnBlur:false};super(61,"inlineSuggest",defaults,{"editor.inlineSuggest.enabled":{type:"boolean",default:defaults.enabled,description:localize("inlineSuggest.enabled","Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:defaults.showToolbar,enum:["always","onHover"],enumDescriptions:[localize("inlineSuggest.showToolbar.always","Show the inline suggestion toolbar whenever an inline suggestion is shown."),localize("inlineSuggest.showToolbar.onHover","Show the inline suggestion toolbar when hovering over an inline suggestion.")],description:localize("inlineSuggest.showToolbar","Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:defaults.suppressSuggestions,description:localize("inlineSuggest.suppressSuggestions","Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled),mode:stringSet(input.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:stringSet(input.showToolbar,this.defaultValue.showToolbar,["always","onHover"]),suppressSuggestions:boolean(input.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:boolean(input.keepOnBlur,this.defaultValue.keepOnBlur)}}};BracketPairColorization=class extends BaseEditorOption{constructor(){const defaults={enabled:EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(14,"bracketPairColorization",defaults,{"editor.bracketPairColorization.enabled":{type:"boolean",default:defaults.enabled,markdownDescription:localize("bracketPairColorization.enabled","Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:defaults.independentColorPoolPerBracketType,description:localize("bracketPairColorization.independentColorPoolPerBracketType","Controls whether each bracket type has its own independent color pool.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:boolean(input.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}};GuideOptions=class extends BaseEditorOption{constructor(){const defaults={bracketPairs:false,bracketPairsHorizontal:"active",highlightActiveBracketPair:true,indentation:true,highlightActiveIndentation:true};super(15,"guides",defaults,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[true,"active",false],enumDescriptions:[localize("editor.guides.bracketPairs.true","Enables bracket pair guides."),localize("editor.guides.bracketPairs.active","Enables bracket pair guides only for the active bracket pair."),localize("editor.guides.bracketPairs.false","Disables bracket pair guides.")],default:defaults.bracketPairs,description:localize("editor.guides.bracketPairs","Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[true,"active",false],enumDescriptions:[localize("editor.guides.bracketPairsHorizontal.true","Enables horizontal guides as addition to vertical bracket pair guides."),localize("editor.guides.bracketPairsHorizontal.active","Enables horizontal guides only for the active bracket pair."),localize("editor.guides.bracketPairsHorizontal.false","Disables horizontal bracket pair guides.")],default:defaults.bracketPairsHorizontal,description:localize("editor.guides.bracketPairsHorizontal","Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:defaults.highlightActiveBracketPair,description:localize("editor.guides.highlightActiveBracketPair","Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:defaults.indentation,description:localize("editor.guides.indentation","Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[true,"always",false],enumDescriptions:[localize("editor.guides.highlightActiveIndentation.true","Highlights the active indent guide."),localize("editor.guides.highlightActiveIndentation.always","Highlights the active indent guide even if bracket guides are highlighted."),localize("editor.guides.highlightActiveIndentation.false","Do not highlight the active indent guide.")],default:defaults.highlightActiveIndentation,description:localize("editor.guides.highlightActiveIndentation","Controls whether the editor should highlight the active indent guide.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{bracketPairs:primitiveSet(input.bracketPairs,this.defaultValue.bracketPairs,[true,false,"active"]),bracketPairsHorizontal:primitiveSet(input.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[true,false,"active"]),highlightActiveBracketPair:boolean(input.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:boolean(input.indentation,this.defaultValue.indentation),highlightActiveIndentation:primitiveSet(input.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[true,false,"always"])}}};EditorSuggest=class extends BaseEditorOption{constructor(){const defaults={insertMode:"insert",filterGraceful:true,snippetsPreventQuickSuggestions:false,localityBonus:false,shareSuggestSelections:false,selectionMode:"always",showIcons:true,showStatusBar:false,preview:false,previewMode:"subwordSmart",showInlineDetails:true,showMethods:true,showFunctions:true,showConstructors:true,showDeprecated:true,matchOnWordStartOnly:true,showFields:true,showVariables:true,showClasses:true,showStructs:true,showInterfaces:true,showModules:true,showProperties:true,showEvents:true,showOperators:true,showUnits:true,showValues:true,showConstants:true,showEnums:true,showEnumMembers:true,showKeywords:true,showWords:true,showColors:true,showFiles:true,showReferences:true,showFolders:true,showTypeParameters:true,showSnippets:true,showUsers:true,showIssues:true};super(116,"suggest",defaults,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[localize("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),localize("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:defaults.insertMode,description:localize("suggest.insertMode","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:defaults.filterGraceful,description:localize("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:defaults.localityBonus,description:localize("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:defaults.shareSuggestSelections,markdownDescription:localize("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[localize("suggest.insertMode.always","Always select a suggestion when automatically triggering IntelliSense."),localize("suggest.insertMode.never","Never select a suggestion when automatically triggering IntelliSense."),localize("suggest.insertMode.whenTriggerCharacter","Select a suggestion only when triggering IntelliSense from a trigger character."),localize("suggest.insertMode.whenQuickSuggestion","Select a suggestion only when triggering IntelliSense as you type.")],default:defaults.selectionMode,markdownDescription:localize("suggest.selectionMode","Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:defaults.snippetsPreventQuickSuggestions,description:localize("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:defaults.showIcons,description:localize("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:defaults.showStatusBar,description:localize("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:defaults.preview,description:localize("suggest.preview","Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:defaults.showInlineDetails,description:localize("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:localize("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:localize("deprecated","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showDeprecated","When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.matchOnWordStartOnly","When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:true,markdownDescription:localize("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{insertMode:stringSet(input.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:boolean(input.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:boolean(input.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:boolean(input.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:boolean(input.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:stringSet(input.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:boolean(input.showIcons,this.defaultValue.showIcons),showStatusBar:boolean(input.showStatusBar,this.defaultValue.showStatusBar),preview:boolean(input.preview,this.defaultValue.preview),previewMode:stringSet(input.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:boolean(input.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:boolean(input.showMethods,this.defaultValue.showMethods),showFunctions:boolean(input.showFunctions,this.defaultValue.showFunctions),showConstructors:boolean(input.showConstructors,this.defaultValue.showConstructors),showDeprecated:boolean(input.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:boolean(input.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:boolean(input.showFields,this.defaultValue.showFields),showVariables:boolean(input.showVariables,this.defaultValue.showVariables),showClasses:boolean(input.showClasses,this.defaultValue.showClasses),showStructs:boolean(input.showStructs,this.defaultValue.showStructs),showInterfaces:boolean(input.showInterfaces,this.defaultValue.showInterfaces),showModules:boolean(input.showModules,this.defaultValue.showModules),showProperties:boolean(input.showProperties,this.defaultValue.showProperties),showEvents:boolean(input.showEvents,this.defaultValue.showEvents),showOperators:boolean(input.showOperators,this.defaultValue.showOperators),showUnits:boolean(input.showUnits,this.defaultValue.showUnits),showValues:boolean(input.showValues,this.defaultValue.showValues),showConstants:boolean(input.showConstants,this.defaultValue.showConstants),showEnums:boolean(input.showEnums,this.defaultValue.showEnums),showEnumMembers:boolean(input.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:boolean(input.showKeywords,this.defaultValue.showKeywords),showWords:boolean(input.showWords,this.defaultValue.showWords),showColors:boolean(input.showColors,this.defaultValue.showColors),showFiles:boolean(input.showFiles,this.defaultValue.showFiles),showReferences:boolean(input.showReferences,this.defaultValue.showReferences),showFolders:boolean(input.showFolders,this.defaultValue.showFolders),showTypeParameters:boolean(input.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:boolean(input.showSnippets,this.defaultValue.showSnippets),showUsers:boolean(input.showUsers,this.defaultValue.showUsers),showIssues:boolean(input.showIssues,this.defaultValue.showIssues)}}};SmartSelect=class extends BaseEditorOption{constructor(){super(111,"smartSelect",{selectLeadingAndTrailingWhitespace:true,selectSubwords:true},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:localize("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:true,type:"boolean"},"editor.smartSelect.selectSubwords":{description:localize("selectSubwords","Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:true,type:"boolean"}})}validate(input){if(!input||typeof input!=="object"){return this.defaultValue}return{selectLeadingAndTrailingWhitespace:boolean(input.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:boolean(input.selectSubwords,this.defaultValue.selectSubwords)}}};WrappingIndentOption=class extends BaseEditorOption{constructor(){super(135,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[localize("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),localize("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),localize("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),localize("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:localize("wrappingIndent","Controls the indentation of wrapped lines."),default:"same"}})}validate(input){switch(input){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(env2,options2,value){const accessibilitySupport=options2.get(2);if(accessibilitySupport===2){return 0}return value}};EditorWrappingInfoComputer=class extends ComputedEditorOption{constructor(){super(143)}compute(env2,options2,_){const layoutInfo=options2.get(142);return{isDominatedByLongLines:env2.isDominatedByLongLines,isWordWrapMinified:layoutInfo.isWordWrapMinified,isViewportWrapping:layoutInfo.isViewportWrapping,wrappingColumn:layoutInfo.wrappingColumn}}};EditorDropIntoEditor=class extends BaseEditorOption{constructor(){const defaults={enabled:true,showDropSelector:"afterDrop"};super(35,"dropIntoEditor",defaults,{"editor.dropIntoEditor.enabled":{type:"boolean",default:defaults.enabled,markdownDescription:localize("dropIntoEditor.enabled","Controls whether you can drag and drop a file into a text editor by holding down `shift` (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:localize("dropIntoEditor.showDropSelector","Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[localize("dropIntoEditor.showDropSelector.afterDrop","Show the drop selector widget after a file is dropped into the editor."),localize("dropIntoEditor.showDropSelector.never","Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled),showDropSelector:stringSet(input.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}};EditorPasteAs=class extends BaseEditorOption{constructor(){const defaults={enabled:true,showPasteSelector:"afterPaste"};super(83,"pasteAs",defaults,{"editor.pasteAs.enabled":{type:"boolean",default:defaults.enabled,markdownDescription:localize("pasteAs.enabled","Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:localize("pasteAs.showPasteSelector","Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[localize("pasteAs.showPasteSelector.afterPaste","Show the paste selector widget after content is pasted into the editor."),localize("pasteAs.showPasteSelector.never","Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(_input){if(!_input||typeof _input!=="object"){return this.defaultValue}const input=_input;return{enabled:boolean(input.enabled,this.defaultValue.enabled),showPasteSelector:stringSet(input.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}};DEFAULT_WINDOWS_FONT_FAMILY="Consolas, 'Courier New', monospace";DEFAULT_MAC_FONT_FAMILY="Menlo, Monaco, 'Courier New', monospace";DEFAULT_LINUX_FONT_FAMILY="'Droid Sans Mono', 'monospace', monospace";EDITOR_FONT_DEFAULTS={fontFamily:isMacintosh?DEFAULT_MAC_FONT_FAMILY:isLinux?DEFAULT_LINUX_FONT_FAMILY:DEFAULT_WINDOWS_FONT_FAMILY,fontWeight:"normal",fontSize:isMacintosh?12:14,lineHeight:0,letterSpacing:0};editorOptionsRegistry=[];EditorOptions={acceptSuggestionOnCommitCharacter:register(new EditorBooleanOption(0,"acceptSuggestionOnCommitCharacter",true,{markdownDescription:localize("acceptSuggestionOnCommitCharacter","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:register(new EditorStringEnumOption(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",localize("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:localize("acceptSuggestionOnEnter","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:register(new EditorAccessibilitySupport),accessibilityPageSize:register(new EditorIntOption(3,"accessibilityPageSize",10,1,1073741824,{description:localize("accessibilityPageSize","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default."),tags:["accessibility"]})),ariaLabel:register(new EditorStringOption(4,"ariaLabel",localize("editorViewAccessibleLabel","Editor content"))),ariaRequired:register(new EditorBooleanOption(5,"ariaRequired",false,void 0)),screenReaderAnnounceInlineSuggestion:register(new EditorBooleanOption(7,"screenReaderAnnounceInlineSuggestion",true,{description:localize("screenReaderAnnounceInlineSuggestion","Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:register(new EditorStringEnumOption(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",localize("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),localize("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:localize("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingDelete:register(new EditorStringEnumOption(8,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",localize("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:localize("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:register(new EditorStringEnumOption(9,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",localize("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:localize("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:register(new EditorStringEnumOption(10,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",localize("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),localize("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:localize("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:register(new EditorEnumOption(11,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],_autoIndentFromString,{enumDescriptions:[localize("editor.autoIndent.none","The editor will not insert indentation automatically."),localize("editor.autoIndent.keep","The editor will keep the current line's indentation."),localize("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),localize("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),localize("editor.autoIndent.full","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:localize("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:register(new EditorBooleanOption(12,"automaticLayout",false)),autoSurround:register(new EditorStringEnumOption(13,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[localize("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),localize("editor.autoSurround.quotes","Surround with quotes but not brackets."),localize("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:localize("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:register(new BracketPairColorization),bracketPairGuides:register(new GuideOptions),stickyTabStops:register(new EditorBooleanOption(114,"stickyTabStops",false,{description:localize("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:register(new EditorBooleanOption(16,"codeLens",true,{description:localize("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:register(new EditorStringOption(17,"codeLensFontFamily","",{description:localize("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:register(new EditorIntOption(18,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:localize("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:register(new EditorBooleanOption(19,"colorDecorators",true,{description:localize("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:register(new EditorStringEnumOption(145,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[localize("editor.colorDecoratorActivatedOn.clickAndHover","Make the color picker appear both on click and hover of the color decorator"),localize("editor.colorDecoratorActivatedOn.hover","Make the color picker appear on hover of the color decorator"),localize("editor.colorDecoratorActivatedOn.click","Make the color picker appear on click of the color decorator")],description:localize("colorDecoratorActivatedOn","Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:register(new EditorIntOption(20,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:localize("colorDecoratorsLimit","Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:register(new EditorBooleanOption(21,"columnSelection",false,{description:localize("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:register(new EditorComments),contextmenu:register(new EditorBooleanOption(23,"contextmenu",true)),copyWithSyntaxHighlighting:register(new EditorBooleanOption(24,"copyWithSyntaxHighlighting",true,{description:localize("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:register(new EditorEnumOption(25,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],_cursorBlinkingStyleFromString,{description:localize("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:register(new EditorStringEnumOption(26,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[localize("cursorSmoothCaretAnimation.off","Smooth caret animation is disabled."),localize("cursorSmoothCaretAnimation.explicit","Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),localize("cursorSmoothCaretAnimation.on","Smooth caret animation is always enabled.")],description:localize("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:register(new EditorEnumOption(27,"cursorStyle",TextEditorCursorStyle.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],_cursorStyleFromString,{description:localize("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:register(new EditorIntOption(28,"cursorSurroundingLines",0,0,1073741824,{description:localize("cursorSurroundingLines","Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:register(new EditorStringEnumOption(29,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[localize("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),localize("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],description:localize("cursorSurroundingLinesStyle","Controls when `cursorSurroundingLines` should be enforced.")})),cursorWidth:register(new EditorIntOption(30,"cursorWidth",0,0,1073741824,{markdownDescription:localize("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:register(new EditorBooleanOption(31,"disableLayerHinting",false)),disableMonospaceOptimizations:register(new EditorBooleanOption(32,"disableMonospaceOptimizations",false)),domReadOnly:register(new EditorBooleanOption(33,"domReadOnly",false)),dragAndDrop:register(new EditorBooleanOption(34,"dragAndDrop",true,{description:localize("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:register(new EditorEmptySelectionClipboard),dropIntoEditor:register(new EditorDropIntoEditor),stickyScroll:register(new EditorStickyScroll),experimentalWhitespaceRendering:register(new EditorStringEnumOption(37,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[localize("experimentalWhitespaceRendering.svg","Use a new rendering method with svgs."),localize("experimentalWhitespaceRendering.font","Use a new rendering method with font characters."),localize("experimentalWhitespaceRendering.off","Use the stable rendering method.")],description:localize("experimentalWhitespaceRendering","Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:register(new EditorStringOption(38,"extraEditorClassName","")),fastScrollSensitivity:register(new EditorFloatOption(39,"fastScrollSensitivity",5,(x=>x<=0?5:x),{markdownDescription:localize("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:register(new EditorFind),fixedOverflowWidgets:register(new EditorBooleanOption(41,"fixedOverflowWidgets",false)),folding:register(new EditorBooleanOption(42,"folding",true,{description:localize("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:register(new EditorStringEnumOption(43,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[localize("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),localize("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:localize("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:register(new EditorBooleanOption(44,"foldingHighlight",true,{description:localize("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:register(new EditorBooleanOption(45,"foldingImportsByDefault",false,{description:localize("foldingImportsByDefault","Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:register(new EditorIntOption(46,"foldingMaximumRegions",5e3,10,65e3,{description:localize("foldingMaximumRegions","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:register(new EditorBooleanOption(47,"unfoldOnClickAfterEndOfLine",false,{description:localize("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:register(new EditorStringOption(48,"fontFamily",EDITOR_FONT_DEFAULTS.fontFamily,{description:localize("fontFamily","Controls the font family.")})),fontInfo:register(new EditorFontInfo),fontLigatures2:register(new EditorFontLigatures),fontSize:register(new EditorFontSize),fontWeight:register(new EditorFontWeight),fontVariations:register(new EditorFontVariations),formatOnPaste:register(new EditorBooleanOption(54,"formatOnPaste",false,{description:localize("formatOnPaste","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:register(new EditorBooleanOption(55,"formatOnType",false,{description:localize("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:register(new EditorBooleanOption(56,"glyphMargin",true,{description:localize("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:register(new EditorGoToLocation),hideCursorInOverviewRuler:register(new EditorBooleanOption(58,"hideCursorInOverviewRuler",false,{description:localize("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),hover:register(new EditorHover),inDiffEditor:register(new EditorBooleanOption(60,"inDiffEditor",false)),letterSpacing:register(new EditorFloatOption(62,"letterSpacing",EDITOR_FONT_DEFAULTS.letterSpacing,(x=>EditorFloatOption.clamp(x,-5,20)),{description:localize("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:register(new EditorLightbulb),lineDecorationsWidth:register(new EditorLineDecorationsWidth),lineHeight:register(new EditorLineHeight),lineNumbers:register(new EditorRenderLineNumbersOption),lineNumbersMinChars:register(new EditorIntOption(67,"lineNumbersMinChars",5,1,300)),linkedEditing:register(new EditorBooleanOption(68,"linkedEditing",false,{description:localize("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:register(new EditorBooleanOption(69,"links",true,{description:localize("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:register(new EditorStringEnumOption(70,"matchBrackets","always",["always","near","never"],{description:localize("matchBrackets","Highlight matching brackets.")})),minimap:register(new EditorMinimap),mouseStyle:register(new EditorStringEnumOption(72,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:register(new EditorFloatOption(73,"mouseWheelScrollSensitivity",1,(x=>x===0?1:x),{markdownDescription:localize("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:register(new EditorBooleanOption(74,"mouseWheelZoom",false,{markdownDescription:localize("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:register(new EditorBooleanOption(75,"multiCursorMergeOverlapping",true,{description:localize("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:register(new EditorEnumOption(76,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],_multiCursorModifierFromString,{markdownEnumDescriptions:[localize("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),localize("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:localize({key:"multiCursorModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:register(new EditorStringEnumOption(77,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[localize("multiCursorPaste.spread","Each cursor pastes a single line of the text."),localize("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:localize("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:register(new EditorIntOption(78,"multiCursorLimit",1e4,1,1e5,{markdownDescription:localize("multiCursorLimit","Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:register(new EditorBooleanOption(79,"occurrencesHighlight",true,{description:localize("occurrencesHighlight","Controls whether the editor should highlight semantic symbol occurrences.")})),overviewRulerBorder:register(new EditorBooleanOption(80,"overviewRulerBorder",true,{description:localize("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:register(new EditorIntOption(81,"overviewRulerLanes",3,0,3)),padding:register(new EditorPadding),pasteAs:register(new EditorPasteAs),parameterHints:register(new EditorParameterHints),peekWidgetDefaultFocus:register(new EditorStringEnumOption(85,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[localize("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),localize("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:localize("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:register(new EditorBooleanOption(86,"definitionLinkOpensInPeek",false,{description:localize("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:register(new EditorQuickSuggestions),quickSuggestionsDelay:register(new EditorIntOption(88,"quickSuggestionsDelay",10,0,1073741824,{description:localize("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:register(new EditorBooleanOption(89,"readOnly",false)),readOnlyMessage:register(new ReadonlyMessage),renameOnType:register(new EditorBooleanOption(91,"renameOnType",false,{description:localize("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:localize("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:register(new EditorBooleanOption(92,"renderControlCharacters",true,{description:localize("renderControlCharacters","Controls whether the editor should render control characters."),restricted:true})),renderFinalNewline:register(new EditorStringEnumOption(93,"renderFinalNewline",isLinux?"dimmed":"on",["off","on","dimmed"],{description:localize("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:register(new EditorStringEnumOption(94,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",localize("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:localize("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:register(new EditorBooleanOption(95,"renderLineHighlightOnlyWhenFocus",false,{description:localize("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:register(new EditorStringEnumOption(96,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:register(new EditorStringEnumOption(97,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",localize("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),localize("renderWhitespace.selection","Render whitespace characters only on selected text."),localize("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:localize("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:register(new EditorIntOption(98,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:register(new EditorBooleanOption(99,"roundedSelection",true,{description:localize("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:register(new EditorRulers),scrollbar:register(new EditorScrollbar),scrollBeyondLastColumn:register(new EditorIntOption(102,"scrollBeyondLastColumn",4,0,1073741824,{description:localize("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:register(new EditorBooleanOption(103,"scrollBeyondLastLine",true,{description:localize("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:register(new EditorBooleanOption(104,"scrollPredominantAxis",true,{description:localize("scrollPredominantAxis","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:register(new EditorBooleanOption(105,"selectionClipboard",true,{description:localize("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:isLinux})),selectionHighlight:register(new EditorBooleanOption(106,"selectionHighlight",true,{description:localize("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:register(new EditorBooleanOption(107,"selectOnLineNumbers",true)),showFoldingControls:register(new EditorStringEnumOption(108,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[localize("showFoldingControls.always","Always show the folding controls."),localize("showFoldingControls.never","Never show the folding controls and reduce the gutter size."),localize("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:localize("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:register(new EditorBooleanOption(109,"showUnused",true,{description:localize("showUnused","Controls fading out of unused code.")})),showDeprecated:register(new EditorBooleanOption(137,"showDeprecated",true,{description:localize("showDeprecated","Controls strikethrough deprecated variables.")})),inlayHints:register(new EditorInlayHints),snippetSuggestions:register(new EditorStringEnumOption(110,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[localize("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),localize("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),localize("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),localize("snippetSuggestions.none","Do not show snippet suggestions.")],description:localize("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:register(new SmartSelect),smoothScrolling:register(new EditorBooleanOption(112,"smoothScrolling",false,{description:localize("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:register(new EditorIntOption(115,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:register(new EditorSuggest),inlineSuggest:register(new InlineEditorSuggest),inlineCompletionsAccessibilityVerbose:register(new EditorBooleanOption(146,"inlineCompletionsAccessibilityVerbose",false,{description:localize("inlineCompletionsAccessibilityVerbose","Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:register(new EditorIntOption(117,"suggestFontSize",0,0,1e3,{markdownDescription:localize("suggestFontSize","Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:register(new EditorIntOption(118,"suggestLineHeight",0,0,1e3,{markdownDescription:localize("suggestLineHeight","Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:register(new EditorBooleanOption(119,"suggestOnTriggerCharacters",true,{description:localize("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:register(new EditorStringEnumOption(120,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[localize("suggestSelection.first","Always select the first suggestion."),localize("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),localize("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:localize("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:register(new EditorStringEnumOption(121,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[localize("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),localize("tabCompletion.off","Disable tab completions."),localize("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:localize("tabCompletion","Enables tab completions.")})),tabIndex:register(new EditorIntOption(122,"tabIndex",0,-1,1073741824)),unicodeHighlight:register(new UnicodeHighlight),unusualLineTerminators:register(new EditorStringEnumOption(124,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[localize("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),localize("unusualLineTerminators.off","Unusual line terminators are ignored."),localize("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:localize("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:register(new EditorBooleanOption(125,"useShadowDOM",true)),useTabStops:register(new EditorBooleanOption(126,"useTabStops",true,{description:localize("useTabStops","Inserting and deleting whitespace follows tab stops.")})),wordBreak:register(new EditorStringEnumOption(127,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[localize("wordBreak.normal","Use the default line break rule."),localize("wordBreak.keepAll","Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:localize("wordBreak","Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSeparators:register(new EditorStringOption(128,"wordSeparators",USUAL_WORD_SEPARATORS,{description:localize("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:register(new EditorStringEnumOption(129,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[localize("wordWrap.off","Lines will never wrap."),localize("wordWrap.on","Lines will wrap at the viewport width."),localize({key:"wordWrap.wordWrapColumn",comment:["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at `#editor.wordWrapColumn#`."),localize({key:"wordWrap.bounded",comment:["- viewport means the edge of the visible window size.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:localize({key:"wordWrap",comment:["- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:register(new EditorStringOption(130,"wordWrapBreakAfterCharacters"," \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:register(new EditorStringOption(131,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥++")),wordWrapColumn:register(new EditorIntOption(132,"wordWrapColumn",80,1,1073741824,{markdownDescription:localize({key:"wordWrapColumn",comment:["- `editor.wordWrap` refers to a different setting and should not be localized.","- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized."]},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:register(new EditorStringEnumOption(133,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:register(new EditorStringEnumOption(134,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:register(new EditorClassName),defaultColorDecorators:register(new EditorBooleanOption(144,"defaultColorDecorators",false,{markdownDescription:localize("defaultColorDecorators","Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:register(new EditorPixelRatio),tabFocusMode:register(new EditorBooleanOption(141,"tabFocusMode",false,{markdownDescription:localize("tabFocusMode","Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:register(new EditorLayoutInfoComputer),wrappingInfo:register(new EditorWrappingInfoComputer),wrappingIndent:register(new WrappingIndentOption),wrappingStrategy:register(new WrappingStrategy)}}});function onUnexpectedError(e){if(!isCancellationError(e)){errorHandler.onUnexpectedError(e)}return void 0}function onUnexpectedExternalError(e){if(!isCancellationError(e)){errorHandler.onUnexpectedExternalError(e)}return void 0}function transformErrorForSerialization(error){if(error instanceof Error){const{name:name,message:message}=error;const stack=error.stacktrace||error.stack;return{$isError:true,name:name,message:message,stack:stack,noTelemetry:ErrorNoTelemetry.isErrorNoTelemetry(error)}}return error}function isCancellationError(error){if(error instanceof CancellationError){return true}return error instanceof Error&&error.name===canceledName&&error.message===canceledName}function canceled(){const error=new Error(canceledName);error.name=error.message;return error}function illegalArgument(name){if(name){return new Error(`Illegal argument: ${name}`)}else{return new Error("Illegal argument")}}function illegalState(name){if(name){return new Error(`Illegal state: ${name}`)}else{return new Error("Illegal state")}}var ErrorHandler,errorHandler,canceledName,CancellationError,NotSupportedError,ErrorNoTelemetry,BugIndicatingError;var init_errors=__esm({"node_modules/monaco-editor/esm/vs/base/common/errors.js"(){ErrorHandler=class{constructor(){this.listeners=[];this.unexpectedErrorHandler=function(e){setTimeout((()=>{if(e.stack){if(ErrorNoTelemetry.isErrorNoTelemetry(e)){throw new ErrorNoTelemetry(e.message+"\n\n"+e.stack)}throw new Error(e.message+"\n\n"+e.stack)}throw e}),0)}}emit(e){this.listeners.forEach((listener=>{listener(e)}))}onUnexpectedError(e){this.unexpectedErrorHandler(e);this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}};errorHandler=new ErrorHandler;canceledName="Canceled";CancellationError=class extends Error{constructor(){super(canceledName);this.name=this.message}};NotSupportedError=class extends Error{constructor(message){super("NotSupported");if(message){this.message=message}}};ErrorNoTelemetry=class extends Error{constructor(msg){super(msg);this.name="CodeExpectedError"}static fromError(err){if(err instanceof ErrorNoTelemetry){return err}const result=new ErrorNoTelemetry;result.message=err.message;result.stack=err.stack;return result}static isErrorNoTelemetry(err){return err.name==="CodeExpectedError"}};BugIndicatingError=class extends Error{constructor(message){super(message||"An unexpected bug occurred.");Object.setPrototypeOf(this,BugIndicatingError.prototype)}}}});function once(fn){const _this=this;let didCall=false;let result;return function(){if(didCall){return result}didCall=true;result=fn.apply(_this,arguments);return result}}var init_functional=__esm({"node_modules/monaco-editor/esm/vs/base/common/functional.js"(){}});function setDisposableTracker(tracker){disposableTracker=tracker}function trackDisposable(x){disposableTracker===null||disposableTracker===void 0?void 0:disposableTracker.trackDisposable(x);return x}function markAsDisposed(disposable){disposableTracker===null||disposableTracker===void 0?void 0:disposableTracker.markAsDisposed(disposable)}function setParentOfDisposable(child,parent){disposableTracker===null||disposableTracker===void 0?void 0:disposableTracker.setParent(child,parent)}function setParentOfDisposables(children,parent){if(!disposableTracker){return}for(const child of children){disposableTracker.setParent(child,parent)}}function markAsSingleton(singleton){disposableTracker===null||disposableTracker===void 0?void 0:disposableTracker.markAsSingleton(singleton);return singleton}function isDisposable(thing){return typeof thing.dispose==="function"&&thing.dispose.length===0}function dispose(arg){if(Iterable.is(arg)){const errors=[];for(const d of arg){if(d){try{d.dispose()}catch(e){errors.push(e)}}}if(errors.length===1){throw errors[0]}else if(errors.length>1){throw new AggregateError(errors,"Encountered errors while disposing of store")}return Array.isArray(arg)?[]:arg}else if(arg){arg.dispose();return arg}}function combinedDisposable(...disposables){const parent=toDisposable((()=>dispose(disposables)));setParentOfDisposables(disposables,parent);return parent}function toDisposable(fn){const self2=trackDisposable({dispose:once((()=>{markAsDisposed(self2);fn()}))});return self2}var TRACK_DISPOSABLES,disposableTracker,DisposableStore,Disposable,MutableDisposable,RefCountedDisposable,ImmortalReference,DisposableMap;var init_lifecycle=__esm({"node_modules/monaco-editor/esm/vs/base/common/lifecycle.js"(){init_functional();init_iterator();TRACK_DISPOSABLES=false;disposableTracker=null;if(TRACK_DISPOSABLES){const __is_disposable_tracked__="__is_disposable_tracked__";setDisposableTracker(new class{trackDisposable(x){const stack=new Error("Potentially leaked disposable").stack;setTimeout((()=>{if(!x[__is_disposable_tracked__]){console.log(stack)}}),3e3)}setParent(child,parent){if(child&&child!==Disposable.None){try{child[__is_disposable_tracked__]=true}catch(_a6){}}}markAsDisposed(disposable){if(disposable&&disposable!==Disposable.None){try{disposable[__is_disposable_tracked__]=true}catch(_a6){}}}markAsSingleton(disposable){}})}DisposableStore=class{constructor(){this._toDispose=new Set;this._isDisposed=false;trackDisposable(this)}dispose(){if(this._isDisposed){return}markAsDisposed(this);this._isDisposed=true;this.clear()}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size===0){return}try{dispose(this._toDispose)}finally{this._toDispose.clear()}}add(o){if(!o){return o}if(o===this){throw new Error("Cannot register a disposable on itself!")}setParentOfDisposable(o,this);if(this._isDisposed){if(!DisposableStore.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)}}else{this._toDispose.add(o)}return o}};DisposableStore.DISABLE_DISPOSED_WARNING=false;Disposable=class{constructor(){this._store=new DisposableStore;trackDisposable(this);setParentOfDisposable(this._store,this)}dispose(){markAsDisposed(this);this._store.dispose()}_register(o){if(o===this){throw new Error("Cannot register a disposable on itself!")}return this._store.add(o)}};Disposable.None=Object.freeze({dispose(){}});MutableDisposable=class{constructor(){this._isDisposed=false;trackDisposable(this)}get value(){return this._isDisposed?void 0:this._value}set value(value){var _a6;if(this._isDisposed||value===this._value){return}(_a6=this._value)===null||_a6===void 0?void 0:_a6.dispose();if(value){setParentOfDisposable(value,this)}this._value=value}clear(){this.value=void 0}dispose(){var _a6;this._isDisposed=true;markAsDisposed(this);(_a6=this._value)===null||_a6===void 0?void 0:_a6.dispose();this._value=void 0}};RefCountedDisposable=class{constructor(_disposable){this._disposable=_disposable;this._counter=1}acquire(){this._counter++;return this}release(){if(--this._counter===0){this._disposable.dispose()}return this}};ImmortalReference=class{constructor(object){this.object=object}dispose(){}};DisposableMap=class{constructor(){this._store=new Map;this._isDisposed=false;trackDisposable(this)}dispose(){markAsDisposed(this);this._isDisposed=true;this.clearAndDisposeAll()}clearAndDisposeAll(){if(!this._store.size){return}try{dispose(this._store.values())}finally{this._store.clear()}}get(key){return this._store.get(key)}set(key,value,skipDisposeOnOverwrite=false){var _a6;if(this._isDisposed){console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack)}if(!skipDisposeOnOverwrite){(_a6=this._store.get(key))===null||_a6===void 0?void 0:_a6.dispose()}this._store.set(key,value)}deleteAndDispose(key){var _a6;(_a6=this._store.get(key))===null||_a6===void 0?void 0:_a6.dispose();this._store.delete(key)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}}});var hasPerformanceNow,StopWatch;var init_stopwatch=__esm({"node_modules/monaco-editor/esm/vs/base/common/stopwatch.js"(){hasPerformanceNow=globalThis.performance&&typeof globalThis.performance.now==="function";StopWatch=class{static create(highResolution){return new StopWatch(highResolution)}constructor(highResolution){this._now=hasPerformanceNow&&highResolution===false?Date.now:globalThis.performance.now.bind(globalThis.performance);this._startTime=this._now();this._stopTime=-1}stop(){this._stopTime=this._now()}elapsed(){if(this._stopTime!==-1){return this._stopTime-this._startTime}return this._now()-this._startTime}}}});var _enableDisposeWithListenerWarning,_enableSnapshotPotentialLeakWarning,Event,EventProfiling,_globalLeakWarningThreshold,LeakageMonitor,Stacktrace,UniqueContainer,compactionThreshold,forEachListener,Emitter,createEventDeliveryQueue,EventDeliveryQueuePrivate,PauseableEmitter,DebounceEmitter,MicrotaskEmitter,EventMultiplexer,EventBufferer,Relay;var init_event=__esm({"node_modules/monaco-editor/esm/vs/base/common/event.js"(){init_errors();init_functional();init_lifecycle();init_linkedList();init_stopwatch();_enableDisposeWithListenerWarning=false;_enableSnapshotPotentialLeakWarning=false;(function(Event2){Event2.None=()=>Disposable.None;function _addLeakageTraceLogic(options2){if(_enableSnapshotPotentialLeakWarning){const{onDidAddListener:origListenerDidAdd}=options2;const stack=Stacktrace.create();let count=0;options2.onDidAddListener=()=>{if(++count===2){console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here");stack.print()}origListenerDidAdd===null||origListenerDidAdd===void 0?void 0:origListenerDidAdd()}}}function defer(event,disposable){return debounce(event,(()=>void 0),0,void 0,true,void 0,disposable)}Event2.defer=defer;function once3(event){return(listener,thisArgs=null,disposables)=>{let didFire=false;let result=void 0;result=event((e=>{if(didFire){return}else if(result){result.dispose()}else{didFire=true}return listener.call(thisArgs,e)}),null,disposables);if(didFire){result.dispose()}return result}}Event2.once=once3;function map(event,map2,disposable){return snapshot(((listener,thisArgs=null,disposables)=>event((i=>listener.call(thisArgs,map2(i))),null,disposables)),disposable)}Event2.map=map;function forEach(event,each,disposable){return snapshot(((listener,thisArgs=null,disposables)=>event((i=>{each(i);listener.call(thisArgs,i)}),null,disposables)),disposable)}Event2.forEach=forEach;function filter(event,filter2,disposable){return snapshot(((listener,thisArgs=null,disposables)=>event((e=>filter2(e)&&listener.call(thisArgs,e)),null,disposables)),disposable)}Event2.filter=filter;function signal(event){return event}Event2.signal=signal;function any(...events){return(listener,thisArgs=null,disposables)=>combinedDisposable(...events.map((event=>event((e=>listener.call(thisArgs,e)),null,disposables))))}Event2.any=any;function reduce(event,merge,initial,disposable){let output=initial;return map(event,(e=>{output=merge(output,e);return output}),disposable)}Event2.reduce=reduce;function snapshot(event,disposable){let listener;const options2={onWillAddFirstListener(){listener=event(emitter.fire,emitter)},onDidRemoveLastListener(){listener===null||listener===void 0?void 0:listener.dispose()}};if(!disposable){_addLeakageTraceLogic(options2)}const emitter=new Emitter(options2);disposable===null||disposable===void 0?void 0:disposable.add(emitter);return emitter.event}function debounce(event,merge,delay=100,leading=false,flushOnListenerRemove=false,leakWarningThreshold,disposable){let subscription;let output=void 0;let handle=void 0;let numDebouncedCalls=0;let doFire;const options2={leakWarningThreshold:leakWarningThreshold,onWillAddFirstListener(){subscription=event((cur=>{numDebouncedCalls++;output=merge(output,cur);if(leading&&!handle){emitter.fire(output);output=void 0}doFire=()=>{const _output=output;output=void 0;handle=void 0;if(!leading||numDebouncedCalls>1){emitter.fire(_output)}numDebouncedCalls=0};if(typeof delay==="number"){clearTimeout(handle);handle=setTimeout(doFire,delay)}else{if(handle===void 0){handle=0;queueMicrotask(doFire)}}}))},onWillRemoveListener(){if(flushOnListenerRemove&&numDebouncedCalls>0){doFire===null||doFire===void 0?void 0:doFire()}},onDidRemoveLastListener(){doFire=void 0;subscription.dispose()}};if(!disposable){_addLeakageTraceLogic(options2)}const emitter=new Emitter(options2);disposable===null||disposable===void 0?void 0:disposable.add(emitter);return emitter.event}Event2.debounce=debounce;function accumulate(event,delay=0,disposable){return Event2.debounce(event,((last,e)=>{if(!last){return[e]}last.push(e);return last}),delay,void 0,true,void 0,disposable)}Event2.accumulate=accumulate;function latch(event,equals4=((a,b)=>a===b),disposable){let firstCall=true;let cache;return filter(event,(value=>{const shouldEmit=firstCall||!equals4(value,cache);firstCall=false;cache=value;return shouldEmit}),disposable)}Event2.latch=latch;function split(event,isT,disposable){return[Event2.filter(event,isT,disposable),Event2.filter(event,(e=>!isT(e)),disposable)]}Event2.split=split;function buffer(event,flushAfterTimeout=false,_buffer=[]){let buffer2=_buffer.slice();let listener=event((e=>{if(buffer2){buffer2.push(e)}else{emitter.fire(e)}}));const flush=()=>{buffer2===null||buffer2===void 0?void 0:buffer2.forEach((e=>emitter.fire(e)));buffer2=null};const emitter=new Emitter({onWillAddFirstListener(){if(!listener){listener=event((e=>emitter.fire(e)))}},onDidAddFirstListener(){if(buffer2){if(flushAfterTimeout){setTimeout(flush)}else{flush()}}},onDidRemoveLastListener(){if(listener){listener.dispose()}listener=null}});return emitter.event}Event2.buffer=buffer;class ChainableEvent{constructor(event){this.event=event;this.disposables=new DisposableStore}map(fn){return new ChainableEvent(map(this.event,fn,this.disposables))}forEach(fn){return new ChainableEvent(forEach(this.event,fn,this.disposables))}filter(fn){return new ChainableEvent(filter(this.event,fn,this.disposables))}reduce(merge,initial){return new ChainableEvent(reduce(this.event,merge,initial,this.disposables))}latch(){return new ChainableEvent(latch(this.event,void 0,this.disposables))}debounce(merge,delay=100,leading=false,flushOnListenerRemove=false,leakWarningThreshold){return new ChainableEvent(debounce(this.event,merge,delay,leading,flushOnListenerRemove,leakWarningThreshold,this.disposables))}on(listener,thisArgs,disposables){return this.event(listener,thisArgs,disposables)}once(listener,thisArgs,disposables){return once3(this.event)(listener,thisArgs,disposables)}dispose(){this.disposables.dispose()}}function chain(event){return new ChainableEvent(event)}Event2.chain=chain;function fromNodeEventEmitter(emitter,eventName,map2=(id=>id)){const fn=(...args)=>result.fire(map2(...args));const onFirstListenerAdd=()=>emitter.on(eventName,fn);const onLastListenerRemove=()=>emitter.removeListener(eventName,fn);const result=new Emitter({onWillAddFirstListener:onFirstListenerAdd,onDidRemoveLastListener:onLastListenerRemove});return result.event}Event2.fromNodeEventEmitter=fromNodeEventEmitter;function fromDOMEventEmitter(emitter,eventName,map2=(id=>id)){const fn=(...args)=>result.fire(map2(...args));const onFirstListenerAdd=()=>emitter.addEventListener(eventName,fn);const onLastListenerRemove=()=>emitter.removeEventListener(eventName,fn);const result=new Emitter({onWillAddFirstListener:onFirstListenerAdd,onDidRemoveLastListener:onLastListenerRemove});return result.event}Event2.fromDOMEventEmitter=fromDOMEventEmitter;function toPromise(event){return new Promise((resolve2=>once3(event)(resolve2)))}Event2.toPromise=toPromise;function fromPromise(promise){const result=new Emitter;promise.then((res=>{result.fire(res)}),(()=>{result.fire(void 0)})).finally((()=>{result.dispose()}));return result.event}Event2.fromPromise=fromPromise;function runAndSubscribe(event,handler){handler(void 0);return event((e=>handler(e)))}Event2.runAndSubscribe=runAndSubscribe;function runAndSubscribeWithStore(event,handler){let store=null;function run(e){store===null||store===void 0?void 0:store.dispose();store=new DisposableStore;handler(e,store)}run(void 0);const disposable=event((e=>run(e)));return toDisposable((()=>{disposable.dispose();store===null||store===void 0?void 0:store.dispose()}))}Event2.runAndSubscribeWithStore=runAndSubscribeWithStore;class EmitterObserver{constructor(_observable,store){this._observable=_observable;this._counter=0;this._hasChanged=false;const options2={onWillAddFirstListener:()=>{_observable.addObserver(this)},onDidRemoveLastListener:()=>{_observable.removeObserver(this)}};if(!store){_addLeakageTraceLogic(options2)}this.emitter=new Emitter(options2);if(store){store.add(this.emitter)}}beginUpdate(_observable){this._counter++}handlePossibleChange(_observable){}handleChange(_observable,_change){this._hasChanged=true}endUpdate(_observable){this._counter--;if(this._counter===0){this._observable.reportChanges();if(this._hasChanged){this._hasChanged=false;this.emitter.fire(this._observable.get())}}}}function fromObservable(obs,store){const observer=new EmitterObserver(obs,store);return observer.emitter.event}Event2.fromObservable=fromObservable;function fromObservableLight(observable){return listener=>{let count=0;let didChange=false;const observer={beginUpdate(){count++},endUpdate(){count--;if(count===0){observable.reportChanges();if(didChange){didChange=false;listener()}}},handlePossibleChange(){},handleChange(){didChange=true}};observable.addObserver(observer);observable.reportChanges();return{dispose(){observable.removeObserver(observer)}}}}Event2.fromObservableLight=fromObservableLight})(Event||(Event={}));EventProfiling=class{constructor(name){this.listenerCount=0;this.invocationCount=0;this.elapsedOverall=0;this.durations=[];this.name=`${name}_${EventProfiling._idPool++}`;EventProfiling.all.add(this)}start(listenerCount){this._stopWatch=new StopWatch;this.listenerCount=listenerCount}stop(){if(this._stopWatch){const elapsed=this._stopWatch.elapsed();this.durations.push(elapsed);this.elapsedOverall+=elapsed;this.invocationCount+=1;this._stopWatch=void 0}}};EventProfiling.all=new Set;EventProfiling._idPool=0;_globalLeakWarningThreshold=-1;LeakageMonitor=class{constructor(threshold,name=Math.random().toString(18).slice(2,5)){this.threshold=threshold;this.name=name;this._warnCountdown=0}dispose(){var _a6;(_a6=this._stacks)===null||_a6===void 0?void 0:_a6.clear()}check(stack,listenerCount){const threshold=this.threshold;if(threshold<=0||listenerCount{const count2=this._stacks.get(stack.value)||0;this._stacks.set(stack.value,count2-1)}}};Stacktrace=class{static create(){var _a6;return new Stacktrace((_a6=(new Error).stack)!==null&&_a6!==void 0?_a6:"")}constructor(value){this.value=value}print(){console.warn(this.value.split("\n").slice(2).join("\n"))}};UniqueContainer=class{constructor(value){this.value=value}};compactionThreshold=2;forEachListener=(listeners,fn)=>{if(listeners instanceof UniqueContainer){fn(listeners)}else{for(let i=0;i0||((_a6=this._options)===null||_a6===void 0?void 0:_a6.leakWarningThreshold)?new LeakageMonitor((_c2=(_b3=this._options)===null||_b3===void 0?void 0:_b3.leakWarningThreshold)!==null&&_c2!==void 0?_c2:_globalLeakWarningThreshold):void 0;this._perfMon=((_d2=this._options)===null||_d2===void 0?void 0:_d2._profName)?new EventProfiling(this._options._profName):void 0;this._deliveryQueue=(_e2=this._options)===null||_e2===void 0?void 0:_e2.deliveryQueue}dispose(){var _a6,_b3,_c2,_d2;if(!this._disposed){this._disposed=true;if(((_a6=this._deliveryQueue)===null||_a6===void 0?void 0:_a6.current)===this){this._deliveryQueue.reset()}if(this._listeners){if(_enableDisposeWithListenerWarning){const listeners=this._listeners;queueMicrotask((()=>{forEachListener(listeners,(l=>{var _a7;return(_a7=l.stack)===null||_a7===void 0?void 0:_a7.print()}))}))}this._listeners=void 0;this._size=0}(_c2=(_b3=this._options)===null||_b3===void 0?void 0:_b3.onDidRemoveLastListener)===null||_c2===void 0?void 0:_c2.call(_b3);(_d2=this._leakageMon)===null||_d2===void 0?void 0:_d2.dispose()}}get event(){var _a6;(_a6=this._event)!==null&&_a6!==void 0?_a6:this._event=(callback,thisArgs,disposables)=>{var _a7,_b3,_c2,_d2,_e2;if(this._leakageMon&&this._size>this._leakageMon.threshold*3){console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`);return Disposable.None}if(this._disposed){return Disposable.None}if(thisArgs){callback=callback.bind(thisArgs)}const contained=new UniqueContainer(callback);let removeMonitor;let stack;if(this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)){contained.stack=Stacktrace.create();removeMonitor=this._leakageMon.check(contained.stack,this._size+1)}if(_enableDisposeWithListenerWarning){contained.stack=stack!==null&&stack!==void 0?stack:Stacktrace.create()}if(!this._listeners){(_b3=(_a7=this._options)===null||_a7===void 0?void 0:_a7.onWillAddFirstListener)===null||_b3===void 0?void 0:_b3.call(_a7,this);this._listeners=contained;(_d2=(_c2=this._options)===null||_c2===void 0?void 0:_c2.onDidAddFirstListener)===null||_d2===void 0?void 0:_d2.call(_c2,this)}else if(this._listeners instanceof UniqueContainer){(_e2=this._deliveryQueue)!==null&&_e2!==void 0?_e2:this._deliveryQueue=new EventDeliveryQueuePrivate;this._listeners=[this._listeners,contained]}else{this._listeners.push(contained)}this._size++;const result=toDisposable((()=>{removeMonitor===null||removeMonitor===void 0?void 0:removeMonitor();this._removeListener(contained)}));if(disposables instanceof DisposableStore){disposables.add(result)}else if(Array.isArray(disposables)){disposables.push(result)}return result};return this._event}_removeListener(listener){var _a6,_b3,_c2,_d2;(_b3=(_a6=this._options)===null||_a6===void 0?void 0:_a6.onWillRemoveListener)===null||_b3===void 0?void 0:_b3.call(_a6,this);if(!this._listeners){return}if(this._size===1){this._listeners=void 0;(_d2=(_c2=this._options)===null||_c2===void 0?void 0:_c2.onDidRemoveLastListener)===null||_d2===void 0?void 0:_d2.call(_c2,this);this._size=0;return}const listeners=this._listeners;const index=listeners.indexOf(listener);if(index===-1){console.log("disposed?",this._disposed);console.log("size?",this._size);console.log("arr?",JSON.stringify(this._listeners));throw new Error("Attempted to dispose unknown listener")}this._size--;listeners[index]=void 0;const adjustDeliveryQueue=this._deliveryQueue.current===this;if(this._size*compactionThreshold<=listeners.length){let n=0;for(let i=0;i0}};createEventDeliveryQueue=()=>new EventDeliveryQueuePrivate;EventDeliveryQueuePrivate=class{constructor(){this.i=-1;this.end=0}enqueue(emitter,value,end){this.i=0;this.end=end;this.current=emitter;this.value=value}reset(){this.i=this.end;this.current=void 0;this.value=void 0}};PauseableEmitter=class extends Emitter{constructor(options2){super(options2);this._isPaused=0;this._eventQueue=new LinkedList;this._mergeFn=options2===null||options2===void 0?void 0:options2.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0){if(this._mergeFn){if(this._eventQueue.size>0){const events=Array.from(this._eventQueue);this._eventQueue.clear();super.fire(this._mergeFn(events))}}else{while(!this._isPaused&&this._eventQueue.size!==0){super.fire(this._eventQueue.shift())}}}}fire(event){if(this._size){if(this._isPaused!==0){this._eventQueue.push(event)}else{super.fire(event)}}}};DebounceEmitter=class extends PauseableEmitter{constructor(options2){var _a6;super(options2);this._delay=(_a6=options2.delay)!==null&&_a6!==void 0?_a6:100}fire(event){if(!this._handle){this.pause();this._handle=setTimeout((()=>{this._handle=void 0;this.resume()}),this._delay)}super.fire(event)}};MicrotaskEmitter=class extends Emitter{constructor(options2){super(options2);this._queuedEvents=[];this._mergeFn=options2===null||options2===void 0?void 0:options2.merge}fire(event){if(!this.hasListeners()){return}this._queuedEvents.push(event);if(this._queuedEvents.length===1){queueMicrotask((()=>{if(this._mergeFn){super.fire(this._mergeFn(this._queuedEvents))}else{this._queuedEvents.forEach((e=>super.fire(e)))}this._queuedEvents=[]}))}}};EventMultiplexer=class{constructor(){this.hasListeners=false;this.events=[];this.emitter=new Emitter({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(event){const e={event:event,listener:null};this.events.push(e);if(this.hasListeners){this.hook(e)}const dispose2=()=>{if(this.hasListeners){this.unhook(e)}const idx=this.events.indexOf(e);this.events.splice(idx,1)};return toDisposable(once(dispose2))}onFirstListenerAdd(){this.hasListeners=true;this.events.forEach((e=>this.hook(e)))}onLastListenerRemove(){this.hasListeners=false;this.events.forEach((e=>this.unhook(e)))}hook(e){e.listener=e.event((r=>this.emitter.fire(r)))}unhook(e){if(e.listener){e.listener.dispose()}e.listener=null}dispose(){this.emitter.dispose()}};EventBufferer=class{constructor(){this.buffers=[]}wrapEvent(event){return(listener,thisArgs,disposables)=>event((i=>{const buffer=this.buffers[this.buffers.length-1];if(buffer){buffer.push((()=>listener.call(thisArgs,i)))}else{listener.call(thisArgs,i)}}),void 0,disposables)}bufferEvents(fn){const buffer=[];this.buffers.push(buffer);const r=fn();this.buffers.pop();buffer.forEach((flush=>flush()));return r}};Relay=class{constructor(){this.listening=false;this.inputEvent=Event.None;this.inputEventListener=Disposable.None;this.emitter=new Emitter({onDidAddFirstListener:()=>{this.listening=true;this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=false;this.inputEventListener.dispose()}});this.event=this.emitter.event}set input(event){this.inputEvent=event;if(this.listening){this.inputEventListener.dispose();this.inputEventListener=event(this.emitter.fire,this.emitter)}}dispose(){this.inputEventListener.dispose();this.emitter.dispose()}}}});var shortcutEvent,CancellationToken,MutableToken,CancellationTokenSource;var init_cancellation=__esm({"node_modules/monaco-editor/esm/vs/base/common/cancellation.js"(){init_event();shortcutEvent=Object.freeze((function(callback,context){const handle=setTimeout(callback.bind(context),0);return{dispose(){clearTimeout(handle)}}}));(function(CancellationToken2){function isCancellationToken(thing){if(thing===CancellationToken2.None||thing===CancellationToken2.Cancelled){return true}if(thing instanceof MutableToken){return true}if(!thing||typeof thing!=="object"){return false}return typeof thing.isCancellationRequested==="boolean"&&typeof thing.onCancellationRequested==="function"}CancellationToken2.isCancellationToken=isCancellationToken;CancellationToken2.None=Object.freeze({isCancellationRequested:false,onCancellationRequested:Event.None});CancellationToken2.Cancelled=Object.freeze({isCancellationRequested:true,onCancellationRequested:shortcutEvent})})(CancellationToken||(CancellationToken={}));MutableToken=class{constructor(){this._isCancelled=false;this._emitter=null}cancel(){if(!this._isCancelled){this._isCancelled=true;if(this._emitter){this._emitter.fire(void 0);this.dispose()}}}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){if(this._isCancelled){return shortcutEvent}if(!this._emitter){this._emitter=new Emitter}return this._emitter.event}dispose(){if(this._emitter){this._emitter.dispose();this._emitter=null}}};CancellationTokenSource=class{constructor(parent){this._token=void 0;this._parentListener=void 0;this._parentListener=parent&&parent.onCancellationRequested(this.cancel,this)}get token(){if(!this._token){this._token=new MutableToken}return this._token}cancel(){if(!this._token){this._token=CancellationToken.Cancelled}else if(this._token instanceof MutableToken){this._token.cancel()}}dispose(cancel=false){var _a6;if(cancel){this.cancel()}(_a6=this._parentListener)===null||_a6===void 0?void 0:_a6.dispose();if(!this._token){this._token=CancellationToken.None}else if(this._token instanceof MutableToken){this._token.dispose()}}}}});function KeyChord(firstPart,secondPart){const chordPart=(secondPart&65535)<<16>>>0;return(firstPart|chordPart)>>>0}var KeyCodeStrMap,uiMap,userSettingsUSMap,userSettingsGeneralMap,EVENT_KEY_CODE_MAP,NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE,scanCodeIntToStr,scanCodeStrToInt,scanCodeLowerCaseStrToInt,IMMUTABLE_CODE_TO_KEY_CODE,IMMUTABLE_KEY_CODE_TO_CODE,KeyCodeUtils;var init_keyCodes=__esm({"node_modules/monaco-editor/esm/vs/base/common/keyCodes.js"(){KeyCodeStrMap=class{constructor(){this._keyCodeToStr=[];this._strToKeyCode=Object.create(null)}define(keyCode,str){this._keyCodeToStr[keyCode]=str;this._strToKeyCode[str.toLowerCase()]=keyCode}keyCodeToStr(keyCode){return this._keyCodeToStr[keyCode]}strToKeyCode(str){return this._strToKeyCode[str.toLowerCase()]||0}};uiMap=new KeyCodeStrMap;userSettingsUSMap=new KeyCodeStrMap;userSettingsGeneralMap=new KeyCodeStrMap;EVENT_KEY_CODE_MAP=new Array(230);NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE={};scanCodeIntToStr=[];scanCodeStrToInt=Object.create(null);scanCodeLowerCaseStrToInt=Object.create(null);IMMUTABLE_CODE_TO_KEY_CODE=[];IMMUTABLE_KEY_CODE_TO_CODE=[];for(let i=0;i<=193;i++){IMMUTABLE_CODE_TO_KEY_CODE[i]=-1}for(let i=0;i<=132;i++){IMMUTABLE_KEY_CODE_TO_CODE[i]=-1}(function(){const empty2="";const mappings=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",empty2,empty2],[1,1,"Hyper",0,empty2,0,empty2,empty2,empty2],[1,2,"Super",0,empty2,0,empty2,empty2,empty2],[1,3,"Fn",0,empty2,0,empty2,empty2,empty2],[1,4,"FnLock",0,empty2,0,empty2,empty2,empty2],[1,5,"Suspend",0,empty2,0,empty2,empty2,empty2],[1,6,"Resume",0,empty2,0,empty2,empty2,empty2],[1,7,"Turbo",0,empty2,0,empty2,empty2,empty2],[1,8,"Sleep",0,empty2,0,"VK_SLEEP",empty2,empty2],[1,9,"WakeUp",0,empty2,0,empty2,empty2,empty2],[0,10,"KeyA",31,"A",65,"VK_A",empty2,empty2],[0,11,"KeyB",32,"B",66,"VK_B",empty2,empty2],[0,12,"KeyC",33,"C",67,"VK_C",empty2,empty2],[0,13,"KeyD",34,"D",68,"VK_D",empty2,empty2],[0,14,"KeyE",35,"E",69,"VK_E",empty2,empty2],[0,15,"KeyF",36,"F",70,"VK_F",empty2,empty2],[0,16,"KeyG",37,"G",71,"VK_G",empty2,empty2],[0,17,"KeyH",38,"H",72,"VK_H",empty2,empty2],[0,18,"KeyI",39,"I",73,"VK_I",empty2,empty2],[0,19,"KeyJ",40,"J",74,"VK_J",empty2,empty2],[0,20,"KeyK",41,"K",75,"VK_K",empty2,empty2],[0,21,"KeyL",42,"L",76,"VK_L",empty2,empty2],[0,22,"KeyM",43,"M",77,"VK_M",empty2,empty2],[0,23,"KeyN",44,"N",78,"VK_N",empty2,empty2],[0,24,"KeyO",45,"O",79,"VK_O",empty2,empty2],[0,25,"KeyP",46,"P",80,"VK_P",empty2,empty2],[0,26,"KeyQ",47,"Q",81,"VK_Q",empty2,empty2],[0,27,"KeyR",48,"R",82,"VK_R",empty2,empty2],[0,28,"KeyS",49,"S",83,"VK_S",empty2,empty2],[0,29,"KeyT",50,"T",84,"VK_T",empty2,empty2],[0,30,"KeyU",51,"U",85,"VK_U",empty2,empty2],[0,31,"KeyV",52,"V",86,"VK_V",empty2,empty2],[0,32,"KeyW",53,"W",87,"VK_W",empty2,empty2],[0,33,"KeyX",54,"X",88,"VK_X",empty2,empty2],[0,34,"KeyY",55,"Y",89,"VK_Y",empty2,empty2],[0,35,"KeyZ",56,"Z",90,"VK_Z",empty2,empty2],[0,36,"Digit1",22,"1",49,"VK_1",empty2,empty2],[0,37,"Digit2",23,"2",50,"VK_2",empty2,empty2],[0,38,"Digit3",24,"3",51,"VK_3",empty2,empty2],[0,39,"Digit4",25,"4",52,"VK_4",empty2,empty2],[0,40,"Digit5",26,"5",53,"VK_5",empty2,empty2],[0,41,"Digit6",27,"6",54,"VK_6",empty2,empty2],[0,42,"Digit7",28,"7",55,"VK_7",empty2,empty2],[0,43,"Digit8",29,"8",56,"VK_8",empty2,empty2],[0,44,"Digit9",30,"9",57,"VK_9",empty2,empty2],[0,45,"Digit0",21,"0",48,"VK_0",empty2,empty2],[1,46,"Enter",3,"Enter",13,"VK_RETURN",empty2,empty2],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",empty2,empty2],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",empty2,empty2],[1,49,"Tab",2,"Tab",9,"VK_TAB",empty2,empty2],[1,50,"Space",10,"Space",32,"VK_SPACE",empty2,empty2],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,empty2,0,empty2,empty2,empty2],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",empty2,empty2],[1,64,"F1",59,"F1",112,"VK_F1",empty2,empty2],[1,65,"F2",60,"F2",113,"VK_F2",empty2,empty2],[1,66,"F3",61,"F3",114,"VK_F3",empty2,empty2],[1,67,"F4",62,"F4",115,"VK_F4",empty2,empty2],[1,68,"F5",63,"F5",116,"VK_F5",empty2,empty2],[1,69,"F6",64,"F6",117,"VK_F6",empty2,empty2],[1,70,"F7",65,"F7",118,"VK_F7",empty2,empty2],[1,71,"F8",66,"F8",119,"VK_F8",empty2,empty2],[1,72,"F9",67,"F9",120,"VK_F9",empty2,empty2],[1,73,"F10",68,"F10",121,"VK_F10",empty2,empty2],[1,74,"F11",69,"F11",122,"VK_F11",empty2,empty2],[1,75,"F12",70,"F12",123,"VK_F12",empty2,empty2],[1,76,"PrintScreen",0,empty2,0,empty2,empty2,empty2],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",empty2,empty2],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",empty2,empty2],[1,79,"Insert",19,"Insert",45,"VK_INSERT",empty2,empty2],[1,80,"Home",14,"Home",36,"VK_HOME",empty2,empty2],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",empty2,empty2],[1,82,"Delete",20,"Delete",46,"VK_DELETE",empty2,empty2],[1,83,"End",13,"End",35,"VK_END",empty2,empty2],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",empty2,empty2],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",empty2],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",empty2],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",empty2],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",empty2],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",empty2,empty2],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",empty2,empty2],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",empty2,empty2],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",empty2,empty2],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",empty2,empty2],[1,94,"NumpadEnter",3,empty2,0,empty2,empty2,empty2],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",empty2,empty2],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",empty2,empty2],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",empty2,empty2],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",empty2,empty2],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",empty2,empty2],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",empty2,empty2],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",empty2,empty2],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",empty2,empty2],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",empty2,empty2],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",empty2,empty2],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",empty2,empty2],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",empty2,empty2],[1,107,"ContextMenu",58,"ContextMenu",93,empty2,empty2,empty2],[1,108,"Power",0,empty2,0,empty2,empty2,empty2],[1,109,"NumpadEqual",0,empty2,0,empty2,empty2,empty2],[1,110,"F13",71,"F13",124,"VK_F13",empty2,empty2],[1,111,"F14",72,"F14",125,"VK_F14",empty2,empty2],[1,112,"F15",73,"F15",126,"VK_F15",empty2,empty2],[1,113,"F16",74,"F16",127,"VK_F16",empty2,empty2],[1,114,"F17",75,"F17",128,"VK_F17",empty2,empty2],[1,115,"F18",76,"F18",129,"VK_F18",empty2,empty2],[1,116,"F19",77,"F19",130,"VK_F19",empty2,empty2],[1,117,"F20",78,"F20",131,"VK_F20",empty2,empty2],[1,118,"F21",79,"F21",132,"VK_F21",empty2,empty2],[1,119,"F22",80,"F22",133,"VK_F22",empty2,empty2],[1,120,"F23",81,"F23",134,"VK_F23",empty2,empty2],[1,121,"F24",82,"F24",135,"VK_F24",empty2,empty2],[1,122,"Open",0,empty2,0,empty2,empty2,empty2],[1,123,"Help",0,empty2,0,empty2,empty2,empty2],[1,124,"Select",0,empty2,0,empty2,empty2,empty2],[1,125,"Again",0,empty2,0,empty2,empty2,empty2],[1,126,"Undo",0,empty2,0,empty2,empty2,empty2],[1,127,"Cut",0,empty2,0,empty2,empty2,empty2],[1,128,"Copy",0,empty2,0,empty2,empty2,empty2],[1,129,"Paste",0,empty2,0,empty2,empty2,empty2],[1,130,"Find",0,empty2,0,empty2,empty2,empty2],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",empty2,empty2],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",empty2,empty2],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",empty2,empty2],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",empty2,empty2],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",empty2,empty2],[1,136,"KanaMode",0,empty2,0,empty2,empty2,empty2],[0,137,"IntlYen",0,empty2,0,empty2,empty2,empty2],[1,138,"Convert",0,empty2,0,empty2,empty2,empty2],[1,139,"NonConvert",0,empty2,0,empty2,empty2,empty2],[1,140,"Lang1",0,empty2,0,empty2,empty2,empty2],[1,141,"Lang2",0,empty2,0,empty2,empty2,empty2],[1,142,"Lang3",0,empty2,0,empty2,empty2,empty2],[1,143,"Lang4",0,empty2,0,empty2,empty2,empty2],[1,144,"Lang5",0,empty2,0,empty2,empty2,empty2],[1,145,"Abort",0,empty2,0,empty2,empty2,empty2],[1,146,"Props",0,empty2,0,empty2,empty2,empty2],[1,147,"NumpadParenLeft",0,empty2,0,empty2,empty2,empty2],[1,148,"NumpadParenRight",0,empty2,0,empty2,empty2,empty2],[1,149,"NumpadBackspace",0,empty2,0,empty2,empty2,empty2],[1,150,"NumpadMemoryStore",0,empty2,0,empty2,empty2,empty2],[1,151,"NumpadMemoryRecall",0,empty2,0,empty2,empty2,empty2],[1,152,"NumpadMemoryClear",0,empty2,0,empty2,empty2,empty2],[1,153,"NumpadMemoryAdd",0,empty2,0,empty2,empty2,empty2],[1,154,"NumpadMemorySubtract",0,empty2,0,empty2,empty2,empty2],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",empty2,empty2],[1,156,"NumpadClearEntry",0,empty2,0,empty2,empty2,empty2],[1,0,empty2,5,"Ctrl",17,"VK_CONTROL",empty2,empty2],[1,0,empty2,4,"Shift",16,"VK_SHIFT",empty2,empty2],[1,0,empty2,6,"Alt",18,"VK_MENU",empty2,empty2],[1,0,empty2,57,"Meta",91,"VK_COMMAND",empty2,empty2],[1,157,"ControlLeft",5,empty2,0,"VK_LCONTROL",empty2,empty2],[1,158,"ShiftLeft",4,empty2,0,"VK_LSHIFT",empty2,empty2],[1,159,"AltLeft",6,empty2,0,"VK_LMENU",empty2,empty2],[1,160,"MetaLeft",57,empty2,0,"VK_LWIN",empty2,empty2],[1,161,"ControlRight",5,empty2,0,"VK_RCONTROL",empty2,empty2],[1,162,"ShiftRight",4,empty2,0,"VK_RSHIFT",empty2,empty2],[1,163,"AltRight",6,empty2,0,"VK_RMENU",empty2,empty2],[1,164,"MetaRight",57,empty2,0,"VK_RWIN",empty2,empty2],[1,165,"BrightnessUp",0,empty2,0,empty2,empty2,empty2],[1,166,"BrightnessDown",0,empty2,0,empty2,empty2,empty2],[1,167,"MediaPlay",0,empty2,0,empty2,empty2,empty2],[1,168,"MediaRecord",0,empty2,0,empty2,empty2,empty2],[1,169,"MediaFastForward",0,empty2,0,empty2,empty2,empty2],[1,170,"MediaRewind",0,empty2,0,empty2,empty2,empty2],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",empty2,empty2],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",empty2,empty2],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",empty2,empty2],[1,174,"Eject",0,empty2,0,empty2,empty2,empty2],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",empty2,empty2],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",empty2,empty2],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",empty2,empty2],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",empty2,empty2],[1,179,"LaunchApp1",0,empty2,0,"VK_MEDIA_LAUNCH_APP1",empty2,empty2],[1,180,"SelectTask",0,empty2,0,empty2,empty2,empty2],[1,181,"LaunchScreenSaver",0,empty2,0,empty2,empty2,empty2],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",empty2,empty2],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",empty2,empty2],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",empty2,empty2],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",empty2,empty2],[1,186,"BrowserStop",0,empty2,0,"VK_BROWSER_STOP",empty2,empty2],[1,187,"BrowserRefresh",0,empty2,0,"VK_BROWSER_REFRESH",empty2,empty2],[1,188,"BrowserFavorites",0,empty2,0,"VK_BROWSER_FAVORITES",empty2,empty2],[1,189,"ZoomToggle",0,empty2,0,empty2,empty2,empty2],[1,190,"MailReply",0,empty2,0,empty2,empty2,empty2],[1,191,"MailForward",0,empty2,0,empty2,empty2,empty2],[1,192,"MailSend",0,empty2,0,empty2,empty2,empty2],[1,0,empty2,114,"KeyInComposition",229,empty2,empty2,empty2],[1,0,empty2,116,"ABNT_C2",194,"VK_ABNT_C2",empty2,empty2],[1,0,empty2,96,"OEM_8",223,"VK_OEM_8",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_KANA",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_HANGUL",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_JUNJA",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_FINAL",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_HANJA",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_KANJI",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_CONVERT",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_NONCONVERT",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_ACCEPT",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_MODECHANGE",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_SELECT",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_PRINT",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_EXECUTE",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_SNAPSHOT",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_HELP",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_APPS",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_PROCESSKEY",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_PACKET",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_DBE_SBCSCHAR",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_DBE_DBCSCHAR",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_ATTN",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_CRSEL",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_EXSEL",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_EREOF",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_PLAY",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_ZOOM",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_NONAME",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_PA1",empty2,empty2],[1,0,empty2,0,empty2,0,"VK_OEM_CLEAR",empty2,empty2]];const seenKeyCode=[];const seenScanCode=[];for(const mapping of mappings){const[immutable,scanCode,scanCodeStr,keyCode,keyCodeStr,eventKeyCode,vkey,usUserSettingsLabel,generalUserSettingsLabel]=mapping;if(!seenScanCode[scanCode]){seenScanCode[scanCode]=true;scanCodeIntToStr[scanCode]=scanCodeStr;scanCodeStrToInt[scanCodeStr]=scanCode;scanCodeLowerCaseStrToInt[scanCodeStr.toLowerCase()]=scanCode;if(immutable){IMMUTABLE_CODE_TO_KEY_CODE[scanCode]=keyCode;if(keyCode!==0&&keyCode!==3&&keyCode!==5&&keyCode!==4&&keyCode!==6&&keyCode!==57){IMMUTABLE_KEY_CODE_TO_CODE[keyCode]=scanCode}}}if(!seenKeyCode[keyCode]){seenKeyCode[keyCode]=true;if(!keyCodeStr){throw new Error(`String representation missing for key code ${keyCode} around scan code ${scanCodeStr}`)}uiMap.define(keyCode,keyCodeStr);userSettingsUSMap.define(keyCode,usUserSettingsLabel||keyCodeStr);userSettingsGeneralMap.define(keyCode,generalUserSettingsLabel||usUserSettingsLabel||keyCodeStr)}if(eventKeyCode){EVENT_KEY_CODE_MAP[eventKeyCode]=keyCode}if(vkey){NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE[vkey]=keyCode}}IMMUTABLE_KEY_CODE_TO_CODE[3]=46})();(function(KeyCodeUtils2){function toString(keyCode){return uiMap.keyCodeToStr(keyCode)}KeyCodeUtils2.toString=toString;function fromString(key){return uiMap.strToKeyCode(key)}KeyCodeUtils2.fromString=fromString;function toUserSettingsUS(keyCode){return userSettingsUSMap.keyCodeToStr(keyCode)}KeyCodeUtils2.toUserSettingsUS=toUserSettingsUS;function toUserSettingsGeneral(keyCode){return userSettingsGeneralMap.keyCodeToStr(keyCode)}KeyCodeUtils2.toUserSettingsGeneral=toUserSettingsGeneral;function fromUserSettings(key){return userSettingsUSMap.strToKeyCode(key)||userSettingsGeneralMap.strToKeyCode(key)}KeyCodeUtils2.fromUserSettings=fromUserSettings;function toElectronAccelerator(keyCode){if(keyCode>=98&&keyCode<=113){return null}switch(keyCode){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return uiMap.keyCodeToStr(keyCode)}KeyCodeUtils2.toElectronAccelerator=toElectronAccelerator})(KeyCodeUtils||(KeyCodeUtils={}))}});var safeProcess,cwd,env,platform;var init_process=__esm({"node_modules/monaco-editor/esm/vs/base/common/process.js"(){init_platform();if(typeof globals.vscode!=="undefined"&&typeof globals.vscode.process!=="undefined"){const sandboxProcess=globals.vscode.process;safeProcess={get platform(){return sandboxProcess.platform},get arch(){return sandboxProcess.arch},get env(){return sandboxProcess.env},cwd(){return sandboxProcess.cwd()}}}else if(typeof process!=="undefined"){safeProcess={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env["VSCODE_CWD"]||process.cwd()}}}else{safeProcess={get platform(){return isWindows?"win32":isMacintosh?"darwin":"linux"},get arch(){return void 0},get env(){return{}},cwd(){return"/"}}}cwd=safeProcess.cwd;env=safeProcess.env;platform=safeProcess.platform}});function validateObject(pathObject,name){if(pathObject===null||typeof pathObject!=="object"){throw new ErrorInvalidArgType(name,"Object",pathObject)}}function validateString(value,name){if(typeof value!=="string"){throw new ErrorInvalidArgType(name,"string",value)}}function isPathSeparator(code){return code===CHAR_FORWARD_SLASH||code===CHAR_BACKWARD_SLASH}function isPosixPathSeparator(code){return code===CHAR_FORWARD_SLASH}function isWindowsDeviceRoot(code){return code>=CHAR_UPPERCASE_A&&code<=CHAR_UPPERCASE_Z||code>=CHAR_LOWERCASE_A&&code<=CHAR_LOWERCASE_Z}function normalizeString(path,allowAboveRoot,separator,isPathSeparator3){let res="";let lastSegmentLength=0;let lastSlash=-1;let dots=0;let code=0;for(let i=0;i<=path.length;++i){if(i2){const lastSlashIndex=res.lastIndexOf(separator);if(lastSlashIndex===-1){res="";lastSegmentLength=0}else{res=res.slice(0,lastSlashIndex);lastSegmentLength=res.length-1-res.lastIndexOf(separator)}lastSlash=i;dots=0;continue}else if(res.length!==0){res="";lastSegmentLength=0;lastSlash=i;dots=0;continue}}if(allowAboveRoot){res+=res.length>0?`${separator}..`:"..";lastSegmentLength=2}}else{if(res.length>0){res+=`${separator}${path.slice(lastSlash+1,i)}`}else{res=path.slice(lastSlash+1,i)}lastSegmentLength=i-lastSlash-1}lastSlash=i;dots=0}else if(code===CHAR_DOT&&dots!==-1){++dots}else{dots=-1}}return res}function _format2(sep2,pathObject){validateObject(pathObject,"pathObject");const dir=pathObject.dir||pathObject.root;const base=pathObject.base||`${pathObject.name||""}${pathObject.ext||""}`;if(!dir){return base}return dir===pathObject.root?`${dir}${base}`:`${dir}${sep2}${base}`}var CHAR_UPPERCASE_A,CHAR_LOWERCASE_A,CHAR_UPPERCASE_Z,CHAR_LOWERCASE_Z,CHAR_DOT,CHAR_FORWARD_SLASH,CHAR_BACKWARD_SLASH,CHAR_COLON,CHAR_QUESTION_MARK,ErrorInvalidArgType,platformIsWin32,win32,posixCwd,posix,normalize,resolve,relative,dirname,basename,extname,sep;var init_path=__esm({"node_modules/monaco-editor/esm/vs/base/common/path.js"(){init_process();CHAR_UPPERCASE_A=65;CHAR_LOWERCASE_A=97;CHAR_UPPERCASE_Z=90;CHAR_LOWERCASE_Z=122;CHAR_DOT=46;CHAR_FORWARD_SLASH=47;CHAR_BACKWARD_SLASH=92;CHAR_COLON=58;CHAR_QUESTION_MARK=63;ErrorInvalidArgType=class extends Error{constructor(name,expected,actual){let determiner;if(typeof expected==="string"&&expected.indexOf("not ")===0){determiner="must not be";expected=expected.replace(/^not /,"")}else{determiner="must be"}const type=name.indexOf(".")!==-1?"property":"argument";let msg=`The "${name}" ${type} ${determiner} of type ${expected}`;msg+=`. Received type ${typeof actual}`;super(msg);this.code="ERR_INVALID_ARG_TYPE"}};platformIsWin32=platform==="win32";win32={resolve(...pathSegments){let resolvedDevice="";let resolvedTail="";let resolvedAbsolute=false;for(let i=pathSegments.length-1;i>=-1;i--){let path;if(i>=0){path=pathSegments[i];validateString(path,"path");if(path.length===0){continue}}else if(resolvedDevice.length===0){path=cwd()}else{path=env[`=${resolvedDevice}`]||cwd();if(path===void 0||path.slice(0,2).toLowerCase()!==resolvedDevice.toLowerCase()&&path.charCodeAt(2)===CHAR_BACKWARD_SLASH){path=`${resolvedDevice}\\`}}const len=path.length;let rootEnd=0;let device="";let isAbsolute=false;const code=path.charCodeAt(0);if(len===1){if(isPathSeparator(code)){rootEnd=1;isAbsolute=true}}else if(isPathSeparator(code)){isAbsolute=true;if(isPathSeparator(path.charCodeAt(1))){let j=2;let last=j;while(j2&&isPathSeparator(path.charCodeAt(2))){isAbsolute=true;rootEnd=3}}if(device.length>0){if(resolvedDevice.length>0){if(device.toLowerCase()!==resolvedDevice.toLowerCase()){continue}}else{resolvedDevice=device}}if(resolvedAbsolute){if(resolvedDevice.length>0){break}}else{resolvedTail=`${path.slice(rootEnd)}\\${resolvedTail}`;resolvedAbsolute=isAbsolute;if(isAbsolute&&resolvedDevice.length>0){break}}}resolvedTail=normalizeString(resolvedTail,!resolvedAbsolute,"\\",isPathSeparator);return resolvedAbsolute?`${resolvedDevice}\\${resolvedTail}`:`${resolvedDevice}${resolvedTail}`||"."},normalize(path){validateString(path,"path");const len=path.length;if(len===0){return"."}let rootEnd=0;let device;let isAbsolute=false;const code=path.charCodeAt(0);if(len===1){return isPosixPathSeparator(code)?"\\":path}if(isPathSeparator(code)){isAbsolute=true;if(isPathSeparator(path.charCodeAt(1))){let j=2;let last=j;while(j2&&isPathSeparator(path.charCodeAt(2))){isAbsolute=true;rootEnd=3}}let tail3=rootEnd0&&isPathSeparator(path.charCodeAt(len-1))){tail3+="\\"}if(device===void 0){return isAbsolute?`\\${tail3}`:tail3}return isAbsolute?`${device}\\${tail3}`:`${device}${tail3}`},isAbsolute(path){validateString(path,"path");const len=path.length;if(len===0){return false}const code=path.charCodeAt(0);return isPathSeparator(code)||len>2&&isWindowsDeviceRoot(code)&&path.charCodeAt(1)===CHAR_COLON&&isPathSeparator(path.charCodeAt(2))},join(...paths){if(paths.length===0){return"."}let joined;let firstPart;for(let i=0;i0){if(joined===void 0){joined=firstPart=arg}else{joined+=`\\${arg}`}}}if(joined===void 0){return"."}let needsReplace=true;let slashCount=0;if(typeof firstPart==="string"&&isPathSeparator(firstPart.charCodeAt(0))){++slashCount;const firstLen=firstPart.length;if(firstLen>1&&isPathSeparator(firstPart.charCodeAt(1))){++slashCount;if(firstLen>2){if(isPathSeparator(firstPart.charCodeAt(2))){++slashCount}else{needsReplace=false}}}}if(needsReplace){while(slashCount=2){joined=`\\${joined.slice(slashCount)}`}}return win32.normalize(joined)},relative(from,to){validateString(from,"from");validateString(to,"to");if(from===to){return""}const fromOrig=win32.resolve(from);const toOrig=win32.resolve(to);if(fromOrig===toOrig){return""}from=fromOrig.toLowerCase();to=toOrig.toLowerCase();if(from===to){return""}let fromStart=0;while(fromStartfromStart&&from.charCodeAt(fromEnd-1)===CHAR_BACKWARD_SLASH){fromEnd--}const fromLen=fromEnd-fromStart;let toStart=0;while(toStarttoStart&&to.charCodeAt(toEnd-1)===CHAR_BACKWARD_SLASH){toEnd--}const toLen=toEnd-toStart;const length2=fromLenlength2){if(to.charCodeAt(toStart+i)===CHAR_BACKWARD_SLASH){return toOrig.slice(toStart+i+1)}if(i===2){return toOrig.slice(toStart+i)}}if(fromLen>length2){if(from.charCodeAt(fromStart+i)===CHAR_BACKWARD_SLASH){lastCommonSep=i}else if(i===2){lastCommonSep=3}}if(lastCommonSep===-1){lastCommonSep=0}}let out="";for(i=fromStart+lastCommonSep+1;i<=fromEnd;++i){if(i===fromEnd||from.charCodeAt(i)===CHAR_BACKWARD_SLASH){out+=out.length===0?"..":"\\.."}}toStart+=lastCommonSep;if(out.length>0){return`${out}${toOrig.slice(toStart,toEnd)}`}if(toOrig.charCodeAt(toStart)===CHAR_BACKWARD_SLASH){++toStart}return toOrig.slice(toStart,toEnd)},toNamespacedPath(path){if(typeof path!=="string"||path.length===0){return path}const resolvedPath=win32.resolve(path);if(resolvedPath.length<=2){return path}if(resolvedPath.charCodeAt(0)===CHAR_BACKWARD_SLASH){if(resolvedPath.charCodeAt(1)===CHAR_BACKWARD_SLASH){const code=resolvedPath.charCodeAt(2);if(code!==CHAR_QUESTION_MARK&&code!==CHAR_DOT){return`\\\\?\\UNC\\${resolvedPath.slice(2)}`}}}else if(isWindowsDeviceRoot(resolvedPath.charCodeAt(0))&&resolvedPath.charCodeAt(1)===CHAR_COLON&&resolvedPath.charCodeAt(2)===CHAR_BACKWARD_SLASH){return`\\\\?\\${resolvedPath}`}return path},dirname(path){validateString(path,"path");const len=path.length;if(len===0){return"."}let rootEnd=-1;let offset=0;const code=path.charCodeAt(0);if(len===1){return isPathSeparator(code)?path:"."}if(isPathSeparator(code)){rootEnd=offset=1;if(isPathSeparator(path.charCodeAt(1))){let j=2;let last=j;while(j2&&isPathSeparator(path.charCodeAt(2))?3:2;offset=rootEnd}let end=-1;let matchedSlash=true;for(let i=len-1;i>=offset;--i){if(isPathSeparator(path.charCodeAt(i))){if(!matchedSlash){end=i;break}}else{matchedSlash=false}}if(end===-1){if(rootEnd===-1){return"."}end=rootEnd}return path.slice(0,end)},basename(path,ext){if(ext!==void 0){validateString(ext,"ext")}validateString(path,"path");let start=0;let end=-1;let matchedSlash=true;let i;if(path.length>=2&&isWindowsDeviceRoot(path.charCodeAt(0))&&path.charCodeAt(1)===CHAR_COLON){start=2}if(ext!==void 0&&ext.length>0&&ext.length<=path.length){if(ext===path){return""}let extIdx=ext.length-1;let firstNonSlashEnd=-1;for(i=path.length-1;i>=start;--i){const code=path.charCodeAt(i);if(isPathSeparator(code)){if(!matchedSlash){start=i+1;break}}else{if(firstNonSlashEnd===-1){matchedSlash=false;firstNonSlashEnd=i+1}if(extIdx>=0){if(code===ext.charCodeAt(extIdx)){if(--extIdx===-1){end=i}}else{extIdx=-1;end=firstNonSlashEnd}}}}if(start===end){end=firstNonSlashEnd}else if(end===-1){end=path.length}return path.slice(start,end)}for(i=path.length-1;i>=start;--i){if(isPathSeparator(path.charCodeAt(i))){if(!matchedSlash){start=i+1;break}}else if(end===-1){matchedSlash=false;end=i+1}}if(end===-1){return""}return path.slice(start,end)},extname(path){validateString(path,"path");let start=0;let startDot=-1;let startPart=0;let end=-1;let matchedSlash=true;let preDotState=0;if(path.length>=2&&path.charCodeAt(1)===CHAR_COLON&&isWindowsDeviceRoot(path.charCodeAt(0))){start=startPart=2}for(let i=path.length-1;i>=start;--i){const code=path.charCodeAt(i);if(isPathSeparator(code)){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===CHAR_DOT){if(startDot===-1){startDot=i}else if(preDotState!==1){preDotState=1}}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){return""}return path.slice(startDot,end)},format:_format2.bind(null,"\\"),parse(path){validateString(path,"path");const ret={root:"",dir:"",base:"",ext:"",name:""};if(path.length===0){return ret}const len=path.length;let rootEnd=0;let code=path.charCodeAt(0);if(len===1){if(isPathSeparator(code)){ret.root=ret.dir=path;return ret}ret.base=ret.name=path;return ret}if(isPathSeparator(code)){rootEnd=1;if(isPathSeparator(path.charCodeAt(1))){let j=2;let last=j;while(j0){ret.root=path.slice(0,rootEnd)}let startDot=-1;let startPart=rootEnd;let end=-1;let matchedSlash=true;let i=path.length-1;let preDotState=0;for(;i>=rootEnd;--i){code=path.charCodeAt(i);if(isPathSeparator(code)){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===CHAR_DOT){if(startDot===-1){startDot=i}else if(preDotState!==1){preDotState=1}}else if(startDot!==-1){preDotState=-1}}if(end!==-1){if(startDot===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){ret.base=ret.name=path.slice(startPart,end)}else{ret.name=path.slice(startPart,startDot);ret.base=path.slice(startPart,end);ret.ext=path.slice(startDot,end)}}if(startPart>0&&startPart!==rootEnd){ret.dir=path.slice(0,startPart-1)}else{ret.dir=ret.root}return ret},sep:"\\",delimiter:";",win32:null,posix:null};posixCwd=(()=>{if(platformIsWin32){const regexp=/\\/g;return()=>{const cwd2=cwd().replace(regexp,"/");return cwd2.slice(cwd2.indexOf("/"))}}return()=>cwd()})();posix={resolve(...pathSegments){let resolvedPath="";let resolvedAbsolute=false;for(let i=pathSegments.length-1;i>=-1&&!resolvedAbsolute;i--){const path=i>=0?pathSegments[i]:posixCwd();validateString(path,"path");if(path.length===0){continue}resolvedPath=`${path}/${resolvedPath}`;resolvedAbsolute=path.charCodeAt(0)===CHAR_FORWARD_SLASH}resolvedPath=normalizeString(resolvedPath,!resolvedAbsolute,"/",isPosixPathSeparator);if(resolvedAbsolute){return`/${resolvedPath}`}return resolvedPath.length>0?resolvedPath:"."},normalize(path){validateString(path,"path");if(path.length===0){return"."}const isAbsolute=path.charCodeAt(0)===CHAR_FORWARD_SLASH;const trailingSeparator=path.charCodeAt(path.length-1)===CHAR_FORWARD_SLASH;path=normalizeString(path,!isAbsolute,"/",isPosixPathSeparator);if(path.length===0){if(isAbsolute){return"/"}return trailingSeparator?"./":"."}if(trailingSeparator){path+="/"}return isAbsolute?`/${path}`:path},isAbsolute(path){validateString(path,"path");return path.length>0&&path.charCodeAt(0)===CHAR_FORWARD_SLASH},join(...paths){if(paths.length===0){return"."}let joined;for(let i=0;i0){if(joined===void 0){joined=arg}else{joined+=`/${arg}`}}}if(joined===void 0){return"."}return posix.normalize(joined)},relative(from,to){validateString(from,"from");validateString(to,"to");if(from===to){return""}from=posix.resolve(from);to=posix.resolve(to);if(from===to){return""}const fromStart=1;const fromEnd=from.length;const fromLen=fromEnd-fromStart;const toStart=1;const toLen=to.length-toStart;const length2=fromLenlength2){if(to.charCodeAt(toStart+i)===CHAR_FORWARD_SLASH){return to.slice(toStart+i+1)}if(i===0){return to.slice(toStart+i)}}else if(fromLen>length2){if(from.charCodeAt(fromStart+i)===CHAR_FORWARD_SLASH){lastCommonSep=i}else if(i===0){lastCommonSep=0}}}let out="";for(i=fromStart+lastCommonSep+1;i<=fromEnd;++i){if(i===fromEnd||from.charCodeAt(i)===CHAR_FORWARD_SLASH){out+=out.length===0?"..":"/.."}}return`${out}${to.slice(toStart+lastCommonSep)}`},toNamespacedPath(path){return path},dirname(path){validateString(path,"path");if(path.length===0){return"."}const hasRoot=path.charCodeAt(0)===CHAR_FORWARD_SLASH;let end=-1;let matchedSlash=true;for(let i=path.length-1;i>=1;--i){if(path.charCodeAt(i)===CHAR_FORWARD_SLASH){if(!matchedSlash){end=i;break}}else{matchedSlash=false}}if(end===-1){return hasRoot?"/":"."}if(hasRoot&&end===1){return"//"}return path.slice(0,end)},basename(path,ext){if(ext!==void 0){validateString(ext,"ext")}validateString(path,"path");let start=0;let end=-1;let matchedSlash=true;let i;if(ext!==void 0&&ext.length>0&&ext.length<=path.length){if(ext===path){return""}let extIdx=ext.length-1;let firstNonSlashEnd=-1;for(i=path.length-1;i>=0;--i){const code=path.charCodeAt(i);if(code===CHAR_FORWARD_SLASH){if(!matchedSlash){start=i+1;break}}else{if(firstNonSlashEnd===-1){matchedSlash=false;firstNonSlashEnd=i+1}if(extIdx>=0){if(code===ext.charCodeAt(extIdx)){if(--extIdx===-1){end=i}}else{extIdx=-1;end=firstNonSlashEnd}}}}if(start===end){end=firstNonSlashEnd}else if(end===-1){end=path.length}return path.slice(start,end)}for(i=path.length-1;i>=0;--i){if(path.charCodeAt(i)===CHAR_FORWARD_SLASH){if(!matchedSlash){start=i+1;break}}else if(end===-1){matchedSlash=false;end=i+1}}if(end===-1){return""}return path.slice(start,end)},extname(path){validateString(path,"path");let startDot=-1;let startPart=0;let end=-1;let matchedSlash=true;let preDotState=0;for(let i=path.length-1;i>=0;--i){const code=path.charCodeAt(i);if(code===CHAR_FORWARD_SLASH){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===CHAR_DOT){if(startDot===-1){startDot=i}else if(preDotState!==1){preDotState=1}}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){return""}return path.slice(startDot,end)},format:_format2.bind(null,"/"),parse(path){validateString(path,"path");const ret={root:"",dir:"",base:"",ext:"",name:""};if(path.length===0){return ret}const isAbsolute=path.charCodeAt(0)===CHAR_FORWARD_SLASH;let start;if(isAbsolute){ret.root="/";start=1}else{start=0}let startDot=-1;let startPart=0;let end=-1;let matchedSlash=true;let i=path.length-1;let preDotState=0;for(;i>=start;--i){const code=path.charCodeAt(i);if(code===CHAR_FORWARD_SLASH){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===CHAR_DOT){if(startDot===-1){startDot=i}else if(preDotState!==1){preDotState=1}}else if(startDot!==-1){preDotState=-1}}if(end!==-1){const start2=startPart===0&&isAbsolute?1:startPart;if(startDot===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){ret.base=ret.name=path.slice(start2,end)}else{ret.name=path.slice(start2,startDot);ret.base=path.slice(start2,end);ret.ext=path.slice(startDot,end)}}if(startPart>0){ret.dir=path.slice(0,startPart-1)}else if(isAbsolute){ret.dir="/"}return ret},sep:"/",delimiter:":",win32:null,posix:null};posix.win32=win32.win32=win32;posix.posix=win32.posix=posix;normalize=platformIsWin32?win32.normalize:posix.normalize;resolve=platformIsWin32?win32.resolve:posix.resolve;relative=platformIsWin32?win32.relative:posix.relative;dirname=platformIsWin32?win32.dirname:posix.dirname;basename=platformIsWin32?win32.basename:posix.basename;extname=platformIsWin32?win32.extname:posix.extname;sep=platformIsWin32?win32.sep:posix.sep}});function _validateUri(ret,_strict){if(!ret.scheme&&_strict){throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${ret.authority}", path: "${ret.path}", query: "${ret.query}", fragment: "${ret.fragment}"}`)}if(ret.scheme&&!_schemePattern.test(ret.scheme)){throw new Error("[UriError]: Scheme contains illegal characters.")}if(ret.path){if(ret.authority){if(!_singleSlashStart.test(ret.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(_doubleSlashStart.test(ret.path)){throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}}}function _schemeFix(scheme,_strict){if(!scheme&&!_strict){return"file"}return scheme}function _referenceResolution(scheme,path){switch(scheme){case"https":case"http":case"file":if(!path){path=_slash}else if(path[0]!==_slash){path=_slash+path}break}return path}function encodeURIComponentFast(uriComponent,isPath,isAuthority){let res=void 0;let nativeEncodePos=-1;for(let pos=0;pos=97&&code<=122||code>=65&&code<=90||code>=48&&code<=57||code===45||code===46||code===95||code===126||isPath&&code===47||isAuthority&&code===91||isAuthority&&code===93||isAuthority&&code===58){if(nativeEncodePos!==-1){res+=encodeURIComponent(uriComponent.substring(nativeEncodePos,pos));nativeEncodePos=-1}if(res!==void 0){res+=uriComponent.charAt(pos)}}else{if(res===void 0){res=uriComponent.substr(0,pos)}const escaped=encodeTable[code];if(escaped!==void 0){if(nativeEncodePos!==-1){res+=encodeURIComponent(uriComponent.substring(nativeEncodePos,pos));nativeEncodePos=-1}res+=escaped}else if(nativeEncodePos===-1){nativeEncodePos=pos}}}if(nativeEncodePos!==-1){res+=encodeURIComponent(uriComponent.substring(nativeEncodePos))}return res!==void 0?res:uriComponent}function encodeURIComponentMinimal(path){let res=void 0;for(let pos=0;pos1&&uri.scheme==="file"){value=`//${uri.authority}${uri.path}`}else if(uri.path.charCodeAt(0)===47&&(uri.path.charCodeAt(1)>=65&&uri.path.charCodeAt(1)<=90||uri.path.charCodeAt(1)>=97&&uri.path.charCodeAt(1)<=122)&&uri.path.charCodeAt(2)===58){if(!keepDriveLetterCasing){value=uri.path[1].toLowerCase()+uri.path.substr(2)}else{value=uri.path.substr(1)}}else{value=uri.path}if(isWindows){value=value.replace(/\//g,"\\")}return value}function _asFormatted(uri,skipEncoding){const encoder=!skipEncoding?encodeURIComponentFast:encodeURIComponentMinimal;let res="";let{scheme:scheme,authority:authority,path:path,query:query,fragment:fragment}=uri;if(scheme){res+=scheme;res+=":"}if(authority||scheme==="file"){res+=_slash;res+=_slash}if(authority){let idx=authority.indexOf("@");if(idx!==-1){const userinfo=authority.substr(0,idx);authority=authority.substr(idx+1);idx=userinfo.lastIndexOf(":");if(idx===-1){res+=encoder(userinfo,false,false)}else{res+=encoder(userinfo.substr(0,idx),false,false);res+=":";res+=encoder(userinfo.substr(idx+1),false,true)}res+="@"}authority=authority.toLowerCase();idx=authority.lastIndexOf(":");if(idx===-1){res+=encoder(authority,false,true)}else{res+=encoder(authority.substr(0,idx),false,true);res+=authority.substr(idx)}}if(path){if(path.length>=3&&path.charCodeAt(0)===47&&path.charCodeAt(2)===58){const code=path.charCodeAt(1);if(code>=65&&code<=90){path=`/${String.fromCharCode(code+32)}:${path.substr(3)}`}}else if(path.length>=2&&path.charCodeAt(1)===58){const code=path.charCodeAt(0);if(code>=65&&code<=90){path=`${String.fromCharCode(code+32)}:${path.substr(2)}`}}res+=encoder(path,true,false)}if(query){res+="?";res+=encoder(query,false,false)}if(fragment){res+="#";res+=!skipEncoding?encodeURIComponentFast(fragment,false,false):fragment}return res}function decodeURIComponentGraceful(str){try{return decodeURIComponent(str)}catch(_a6){if(str.length>3){return str.substr(0,3)+decodeURIComponentGraceful(str.substr(3))}else{return str}}}function percentDecode(str){if(!str.match(_rEncodedAsHex)){return str}return str.replace(_rEncodedAsHex,(match2=>decodeURIComponentGraceful(match2)))}var _schemePattern,_singleSlashStart,_doubleSlashStart,_empty,_slash,_regexp,URI,_pathSepMarker,Uri,encodeTable,_rEncodedAsHex;var init_uri=__esm({"node_modules/monaco-editor/esm/vs/base/common/uri.js"(){init_path();init_platform();_schemePattern=/^\w[\w\d+.-]*$/;_singleSlashStart=/^\//;_doubleSlashStart=/^\/\//;_empty="";_slash="/";_regexp=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;URI=class{static isUri(thing){if(thing instanceof URI){return true}if(!thing){return false}return typeof thing.authority==="string"&&typeof thing.fragment==="string"&&typeof thing.path==="string"&&typeof thing.query==="string"&&typeof thing.scheme==="string"&&typeof thing.fsPath==="string"&&typeof thing.with==="function"&&typeof thing.toString==="function"}constructor(schemeOrData,authority,path,query,fragment,_strict=false){if(typeof schemeOrData==="object"){this.scheme=schemeOrData.scheme||_empty;this.authority=schemeOrData.authority||_empty;this.path=schemeOrData.path||_empty;this.query=schemeOrData.query||_empty;this.fragment=schemeOrData.fragment||_empty}else{this.scheme=_schemeFix(schemeOrData,_strict);this.authority=authority||_empty;this.path=_referenceResolution(this.scheme,path||_empty);this.query=query||_empty;this.fragment=fragment||_empty;_validateUri(this,_strict)}}get fsPath(){return uriToFsPath(this,false)}with(change){if(!change){return this}let{scheme:scheme,authority:authority,path:path,query:query,fragment:fragment}=change;if(scheme===void 0){scheme=this.scheme}else if(scheme===null){scheme=_empty}if(authority===void 0){authority=this.authority}else if(authority===null){authority=_empty}if(path===void 0){path=this.path}else if(path===null){path=_empty}if(query===void 0){query=this.query}else if(query===null){query=_empty}if(fragment===void 0){fragment=this.fragment}else if(fragment===null){fragment=_empty}if(scheme===this.scheme&&authority===this.authority&&path===this.path&&query===this.query&&fragment===this.fragment){return this}return new Uri(scheme,authority,path,query,fragment)}static parse(value,_strict=false){const match2=_regexp.exec(value);if(!match2){return new Uri(_empty,_empty,_empty,_empty,_empty)}return new Uri(match2[2]||_empty,percentDecode(match2[4]||_empty),percentDecode(match2[5]||_empty),percentDecode(match2[7]||_empty),percentDecode(match2[9]||_empty),_strict)}static file(path){let authority=_empty;if(isWindows){path=path.replace(/\\/g,_slash)}if(path[0]===_slash&&path[1]===_slash){const idx=path.indexOf(_slash,2);if(idx===-1){authority=path.substring(2);path=_slash}else{authority=path.substring(2,idx);path=path.substring(idx)||_slash}}return new Uri("file",authority,path,_empty,_empty)}static from(components,strict){const result=new Uri(components.scheme,components.authority,components.path,components.query,components.fragment,strict);return result}static joinPath(uri,...pathFragment){if(!uri.path){throw new Error(`[UriError]: cannot call joinPath on URI without path`)}let newPath;if(isWindows&&uri.scheme==="file"){newPath=URI.file(win32.join(uriToFsPath(uri,true),...pathFragment)).path}else{newPath=posix.join(uri.path,...pathFragment)}return uri.with({path:newPath})}toString(skipEncoding=false){return _asFormatted(this,skipEncoding)}toJSON(){return this}static revive(data){var _a6,_b3;if(!data){return data}else if(data instanceof URI){return data}else{const result=new Uri(data);result._formatted=(_a6=data.external)!==null&&_a6!==void 0?_a6:null;result._fsPath=data._sep===_pathSepMarker?(_b3=data.fsPath)!==null&&_b3!==void 0?_b3:null:null;return result}}};_pathSepMarker=isWindows?1:void 0;Uri=class extends URI{constructor(){super(...arguments);this._formatted=null;this._fsPath=null}get fsPath(){if(!this._fsPath){this._fsPath=uriToFsPath(this,false)}return this._fsPath}toString(skipEncoding=false){if(!skipEncoding){if(!this._formatted){this._formatted=_asFormatted(this,false)}return this._formatted}else{return _asFormatted(this,true)}}toJSON(){const res={$mid:1};if(this._fsPath){res.fsPath=this._fsPath;res._sep=_pathSepMarker}if(this._formatted){res.external=this._formatted}if(this.path){res.path=this.path}if(this.scheme){res.scheme=this.scheme}if(this.authority){res.authority=this.authority}if(this.query){res.query=this.query}if(this.fragment){res.fragment=this.fragment}return res}};encodeTable={[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"};_rEncodedAsHex=/(%[0-9A-Za-z][0-9A-Za-z])+/g}});var Position;var init_position=__esm({"node_modules/monaco-editor/esm/vs/editor/common/core/position.js"(){Position=class{constructor(lineNumber,column){this.lineNumber=lineNumber;this.column=column}with(newLineNumber=this.lineNumber,newColumn=this.column){if(newLineNumber===this.lineNumber&&newColumn===this.column){return this}else{return new Position(newLineNumber,newColumn)}}delta(deltaLineNumber=0,deltaColumn=0){return this.with(this.lineNumber+deltaLineNumber,this.column+deltaColumn)}equals(other){return Position.equals(this,other)}static equals(a,b){if(!a&&!b){return true}return!!a&&!!b&&a.lineNumber===b.lineNumber&&a.column===b.column}isBefore(other){return Position.isBefore(this,other)}static isBefore(a,b){if(a.lineNumberendLineNumber||startLineNumber===endLineNumber&&startColumn>endColumn){this.startLineNumber=endLineNumber;this.startColumn=endColumn;this.endLineNumber=startLineNumber;this.endColumn=startColumn}else{this.startLineNumber=startLineNumber;this.startColumn=startColumn;this.endLineNumber=endLineNumber;this.endColumn=endColumn}}isEmpty(){return Range.isEmpty(this)}static isEmpty(range2){return range2.startLineNumber===range2.endLineNumber&&range2.startColumn===range2.endColumn}containsPosition(position){return Range.containsPosition(this,position)}static containsPosition(range2,position){if(position.lineNumberrange2.endLineNumber){return false}if(position.lineNumber===range2.startLineNumber&&position.columnrange2.endColumn){return false}return true}static strictContainsPosition(range2,position){if(position.lineNumberrange2.endLineNumber){return false}if(position.lineNumber===range2.startLineNumber&&position.column<=range2.startColumn){return false}if(position.lineNumber===range2.endLineNumber&&position.column>=range2.endColumn){return false}return true}containsRange(range2){return Range.containsRange(this,range2)}static containsRange(range2,otherRange){if(otherRange.startLineNumberrange2.endLineNumber||otherRange.endLineNumber>range2.endLineNumber){return false}if(otherRange.startLineNumber===range2.startLineNumber&&otherRange.startColumnrange2.endColumn){return false}return true}strictContainsRange(range2){return Range.strictContainsRange(this,range2)}static strictContainsRange(range2,otherRange){if(otherRange.startLineNumberrange2.endLineNumber||otherRange.endLineNumber>range2.endLineNumber){return false}if(otherRange.startLineNumber===range2.startLineNumber&&otherRange.startColumn<=range2.startColumn){return false}if(otherRange.endLineNumber===range2.endLineNumber&&otherRange.endColumn>=range2.endColumn){return false}return true}plusRange(range2){return Range.plusRange(this,range2)}static plusRange(a,b){let startLineNumber;let startColumn;let endLineNumber;let endColumn;if(b.startLineNumbera.endLineNumber){endLineNumber=b.endLineNumber;endColumn=b.endColumn}else if(b.endLineNumber===a.endLineNumber){endLineNumber=b.endLineNumber;endColumn=Math.max(b.endColumn,a.endColumn)}else{endLineNumber=a.endLineNumber;endColumn=a.endColumn}return new Range(startLineNumber,startColumn,endLineNumber,endColumn)}intersectRanges(range2){return Range.intersectRanges(this,range2)}static intersectRanges(a,b){let resultStartLineNumber=a.startLineNumber;let resultStartColumn=a.startColumn;let resultEndLineNumber=a.endLineNumber;let resultEndColumn=a.endColumn;const otherStartLineNumber=b.startLineNumber;const otherStartColumn=b.startColumn;const otherEndLineNumber=b.endLineNumber;const otherEndColumn=b.endColumn;if(resultStartLineNumberotherEndLineNumber){resultEndLineNumber=otherEndLineNumber;resultEndColumn=otherEndColumn}else if(resultEndLineNumber===otherEndLineNumber){resultEndColumn=Math.min(resultEndColumn,otherEndColumn)}if(resultStartLineNumber>resultEndLineNumber){return null}if(resultStartLineNumber===resultEndLineNumber&&resultStartColumn>resultEndColumn){return null}return new Range(resultStartLineNumber,resultStartColumn,resultEndLineNumber,resultEndColumn)}equalsRange(other){return Range.equalsRange(this,other)}static equalsRange(a,b){if(!a&&!b){return true}return!!a&&!!b&&a.startLineNumber===b.startLineNumber&&a.startColumn===b.startColumn&&a.endLineNumber===b.endLineNumber&&a.endColumn===b.endColumn}getEndPosition(){return Range.getEndPosition(this)}static getEndPosition(range2){return new Position(range2.endLineNumber,range2.endColumn)}getStartPosition(){return Range.getStartPosition(this)}static getStartPosition(range2){return new Position(range2.startLineNumber,range2.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(endLineNumber,endColumn){return new Range(this.startLineNumber,this.startColumn,endLineNumber,endColumn)}setStartPosition(startLineNumber,startColumn){return new Range(startLineNumber,startColumn,this.endLineNumber,this.endColumn)}collapseToStart(){return Range.collapseToStart(this)}static collapseToStart(range2){return new Range(range2.startLineNumber,range2.startColumn,range2.startLineNumber,range2.startColumn)}collapseToEnd(){return Range.collapseToEnd(this)}static collapseToEnd(range2){return new Range(range2.endLineNumber,range2.endColumn,range2.endLineNumber,range2.endColumn)}delta(lineCount){return new Range(this.startLineNumber+lineCount,this.startColumn,this.endLineNumber+lineCount,this.endColumn)}static fromPositions(start,end=start){return new Range(start.lineNumber,start.column,end.lineNumber,end.column)}static lift(range2){if(!range2){return null}return new Range(range2.startLineNumber,range2.startColumn,range2.endLineNumber,range2.endColumn)}static isIRange(obj){return obj&&typeof obj.startLineNumber==="number"&&typeof obj.startColumn==="number"&&typeof obj.endLineNumber==="number"&&typeof obj.endColumn==="number"}static areIntersectingOrTouching(a,b){if(a.endLineNumberrange2.startLineNumber}toJSON(){return this}}}});var Selection;var init_selection=__esm({"node_modules/monaco-editor/esm/vs/editor/common/core/selection.js"(){init_position();init_range();Selection=class extends Range{constructor(selectionStartLineNumber,selectionStartColumn,positionLineNumber,positionColumn){super(selectionStartLineNumber,selectionStartColumn,positionLineNumber,positionColumn);this.selectionStartLineNumber=selectionStartLineNumber;this.selectionStartColumn=selectionStartColumn;this.positionLineNumber=positionLineNumber;this.positionColumn=positionColumn}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(other){return Selection.selectionsEqual(this,other)}static selectionsEqual(a,b){return a.selectionStartLineNumber===b.selectionStartLineNumber&&a.selectionStartColumn===b.selectionStartColumn&&a.positionLineNumber===b.positionLineNumber&&a.positionColumn===b.positionColumn}getDirection(){if(this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn){return 0}return 1}setEndPosition(endLineNumber,endColumn){if(this.getDirection()===0){return new Selection(this.startLineNumber,this.startColumn,endLineNumber,endColumn)}return new Selection(endLineNumber,endColumn,this.startLineNumber,this.startColumn)}getPosition(){return new Position(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new Position(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(startLineNumber,startColumn){if(this.getDirection()===0){return new Selection(startLineNumber,startColumn,this.endLineNumber,this.endColumn)}return new Selection(this.endLineNumber,this.endColumn,startLineNumber,startColumn)}static fromPositions(start,end=start){return new Selection(start.lineNumber,start.column,end.lineNumber,end.column)}static fromRange(range2,direction){if(direction===0){return new Selection(range2.startLineNumber,range2.startColumn,range2.endLineNumber,range2.endColumn)}else{return new Selection(range2.endLineNumber,range2.endColumn,range2.startLineNumber,range2.startColumn)}}static liftSelection(sel){return new Selection(sel.selectionStartLineNumber,sel.selectionStartColumn,sel.positionLineNumber,sel.positionColumn)}static selectionsArrEqual(a,b){if(a&&!b||!a&&b){return false}if(!a&&!b){return true}if(a.length!==b.length){return false}for(let i=0,len=a.length;i{if(this._tokenizationSupports.get(languageId)!==support){return}this._tokenizationSupports.delete(languageId);this.handleChange([languageId])}))}get(languageId){return this._tokenizationSupports.get(languageId)||null}registerFactory(languageId,factory){var _a6;(_a6=this._factories.get(languageId))===null||_a6===void 0?void 0:_a6.dispose();const myData=new TokenizationSupportFactoryData(this,languageId,factory);this._factories.set(languageId,myData);return toDisposable((()=>{const v=this._factories.get(languageId);if(!v||v!==myData){return}this._factories.delete(languageId);v.dispose()}))}getOrCreate(languageId){return __awaiter(this,void 0,void 0,(function*(){const tokenizationSupport=this.get(languageId);if(tokenizationSupport){return tokenizationSupport}const factory=this._factories.get(languageId);if(!factory||factory.isResolved){return null}yield factory.resolve();return this.get(languageId)}))}isResolved(languageId){const tokenizationSupport=this.get(languageId);if(tokenizationSupport){return true}const factory=this._factories.get(languageId);if(!factory||factory.isResolved){return true}return false}setColorMap(colorMap){this._colorMap=colorMap;this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:true})}getColorMap(){return this._colorMap}getDefaultBackground(){if(this._colorMap&&this._colorMap.length>2){return this._colorMap[2]}return null}};TokenizationSupportFactoryData=class extends Disposable{get isResolved(){return this._isResolved}constructor(_registry2,_languageId,_factory){super();this._registry=_registry2;this._languageId=_languageId;this._factory=_factory;this._isDisposed=false;this._resolvePromise=null;this._isResolved=false}dispose(){this._isDisposed=true;super.dispose()}resolve(){return __awaiter(this,void 0,void 0,(function*(){if(!this._resolvePromise){this._resolvePromise=this._create()}return this._resolvePromise}))}_create(){return __awaiter(this,void 0,void 0,(function*(){const value=yield this._factory.tokenizationSupport;this._isResolved=true;if(value&&!this._isDisposed){this._register(this._registry.register(this._languageId,value))}}))}}}});function isLocationLink(thing){return thing&&URI.isUri(thing.uri)&&Range.isIRange(thing.range)&&(Range.isIRange(thing.originSelectionRange)||Range.isIRange(thing.targetSelectionRange))}function getAriaLabelForSymbol(symbolName,kind){return localize("symbolAriaLabel","{0} ({1})",symbolName,symbolKindNames[kind])}var Token,TokenizationResult,EncodedTokenizationResult,CompletionItemKinds,InlineCompletionTriggerKind,SelectedSuggestionInfo,SignatureHelpTriggerKind,DocumentHighlightKind,symbolKindNames,SymbolKinds,FoldingRangeKind,Command,InlayHintKind,LazyTokenizationSupport,TokenizationRegistry2;var init_languages=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages.js"(){init_codicons();init_uri();init_range();init_tokenizationRegistry();init_nls();Token=class{constructor(offset,type,language81){this.offset=offset;this.type=type;this.language=language81;this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}};TokenizationResult=class{constructor(tokens,endState){this.tokens=tokens;this.endState=endState;this._tokenizationResultBrand=void 0}};EncodedTokenizationResult=class{constructor(tokens,endState){this.tokens=tokens;this.endState=endState;this._encodedTokenizationResultBrand=void 0}};(function(CompletionItemKinds2){const byKind=new Map;byKind.set(0,Codicon.symbolMethod);byKind.set(1,Codicon.symbolFunction);byKind.set(2,Codicon.symbolConstructor);byKind.set(3,Codicon.symbolField);byKind.set(4,Codicon.symbolVariable);byKind.set(5,Codicon.symbolClass);byKind.set(6,Codicon.symbolStruct);byKind.set(7,Codicon.symbolInterface);byKind.set(8,Codicon.symbolModule);byKind.set(9,Codicon.symbolProperty);byKind.set(10,Codicon.symbolEvent);byKind.set(11,Codicon.symbolOperator);byKind.set(12,Codicon.symbolUnit);byKind.set(13,Codicon.symbolValue);byKind.set(15,Codicon.symbolEnum);byKind.set(14,Codicon.symbolConstant);byKind.set(15,Codicon.symbolEnum);byKind.set(16,Codicon.symbolEnumMember);byKind.set(17,Codicon.symbolKeyword);byKind.set(27,Codicon.symbolSnippet);byKind.set(18,Codicon.symbolText);byKind.set(19,Codicon.symbolColor);byKind.set(20,Codicon.symbolFile);byKind.set(21,Codicon.symbolReference);byKind.set(22,Codicon.symbolCustomColor);byKind.set(23,Codicon.symbolFolder);byKind.set(24,Codicon.symbolTypeParameter);byKind.set(25,Codicon.account);byKind.set(26,Codicon.issues);function toIcon(kind){let codicon=byKind.get(kind);if(!codicon){console.info("No codicon found for CompletionItemKind "+kind);codicon=Codicon.symbolProperty}return codicon}CompletionItemKinds2.toIcon=toIcon;const data=new Map;data.set("method",0);data.set("function",1);data.set("constructor",2);data.set("field",3);data.set("variable",4);data.set("class",5);data.set("struct",6);data.set("interface",7);data.set("module",8);data.set("property",9);data.set("event",10);data.set("operator",11);data.set("unit",12);data.set("value",13);data.set("constant",14);data.set("enum",15);data.set("enum-member",16);data.set("enumMember",16);data.set("keyword",17);data.set("snippet",27);data.set("text",18);data.set("color",19);data.set("file",20);data.set("reference",21);data.set("customcolor",22);data.set("folder",23);data.set("type-parameter",24);data.set("typeParameter",24);data.set("account",25);data.set("issue",26);function fromString(value,strict){let res=data.get(value);if(typeof res==="undefined"&&!strict){res=9}return res}CompletionItemKinds2.fromString=fromString})(CompletionItemKinds||(CompletionItemKinds={}));(function(InlineCompletionTriggerKind3){InlineCompletionTriggerKind3[InlineCompletionTriggerKind3["Automatic"]=0]="Automatic";InlineCompletionTriggerKind3[InlineCompletionTriggerKind3["Explicit"]=1]="Explicit"})(InlineCompletionTriggerKind||(InlineCompletionTriggerKind={}));SelectedSuggestionInfo=class{constructor(range2,text2,completionKind,isSnippetText){this.range=range2;this.text=text2;this.completionKind=completionKind;this.isSnippetText=isSnippetText}equals(other){return Range.lift(this.range).equalsRange(other.range)&&this.text===other.text&&this.completionKind===other.completionKind&&this.isSnippetText===other.isSnippetText}};(function(SignatureHelpTriggerKind3){SignatureHelpTriggerKind3[SignatureHelpTriggerKind3["Invoke"]=1]="Invoke";SignatureHelpTriggerKind3[SignatureHelpTriggerKind3["TriggerCharacter"]=2]="TriggerCharacter";SignatureHelpTriggerKind3[SignatureHelpTriggerKind3["ContentChange"]=3]="ContentChange"})(SignatureHelpTriggerKind||(SignatureHelpTriggerKind={}));(function(DocumentHighlightKind6){DocumentHighlightKind6[DocumentHighlightKind6["Text"]=0]="Text";DocumentHighlightKind6[DocumentHighlightKind6["Read"]=1]="Read";DocumentHighlightKind6[DocumentHighlightKind6["Write"]=2]="Write"})(DocumentHighlightKind||(DocumentHighlightKind={}));symbolKindNames={[17]:localize("Array","array"),[16]:localize("Boolean","boolean"),[4]:localize("Class","class"),[13]:localize("Constant","constant"),[8]:localize("Constructor","constructor"),[9]:localize("Enum","enumeration"),[21]:localize("EnumMember","enumeration member"),[23]:localize("Event","event"),[7]:localize("Field","field"),[0]:localize("File","file"),[11]:localize("Function","function"),[10]:localize("Interface","interface"),[19]:localize("Key","key"),[5]:localize("Method","method"),[1]:localize("Module","module"),[2]:localize("Namespace","namespace"),[20]:localize("Null","null"),[15]:localize("Number","number"),[18]:localize("Object","object"),[24]:localize("Operator","operator"),[3]:localize("Package","package"),[6]:localize("Property","property"),[14]:localize("String","string"),[22]:localize("Struct","struct"),[25]:localize("TypeParameter","type parameter"),[12]:localize("Variable","variable")};(function(SymbolKinds2){const byKind=new Map;byKind.set(0,Codicon.symbolFile);byKind.set(1,Codicon.symbolModule);byKind.set(2,Codicon.symbolNamespace);byKind.set(3,Codicon.symbolPackage);byKind.set(4,Codicon.symbolClass);byKind.set(5,Codicon.symbolMethod);byKind.set(6,Codicon.symbolProperty);byKind.set(7,Codicon.symbolField);byKind.set(8,Codicon.symbolConstructor);byKind.set(9,Codicon.symbolEnum);byKind.set(10,Codicon.symbolInterface);byKind.set(11,Codicon.symbolFunction);byKind.set(12,Codicon.symbolVariable);byKind.set(13,Codicon.symbolConstant);byKind.set(14,Codicon.symbolString);byKind.set(15,Codicon.symbolNumber);byKind.set(16,Codicon.symbolBoolean);byKind.set(17,Codicon.symbolArray);byKind.set(18,Codicon.symbolObject);byKind.set(19,Codicon.symbolKey);byKind.set(20,Codicon.symbolNull);byKind.set(21,Codicon.symbolEnumMember);byKind.set(22,Codicon.symbolStruct);byKind.set(23,Codicon.symbolEvent);byKind.set(24,Codicon.symbolOperator);byKind.set(25,Codicon.symbolTypeParameter);function toIcon(kind){let icon=byKind.get(kind);if(!icon){console.info("No codicon found for SymbolKind "+kind);icon=Codicon.symbolProperty}return icon}SymbolKinds2.toIcon=toIcon})(SymbolKinds||(SymbolKinds={}));FoldingRangeKind=class{static fromValue(value){switch(value){case"comment":return FoldingRangeKind.Comment;case"imports":return FoldingRangeKind.Imports;case"region":return FoldingRangeKind.Region}return new FoldingRangeKind(value)}constructor(value){this.value=value}};FoldingRangeKind.Comment=new FoldingRangeKind("comment");FoldingRangeKind.Imports=new FoldingRangeKind("imports");FoldingRangeKind.Region=new FoldingRangeKind("region");(function(Command6){function is(obj){if(!obj||typeof obj!=="object"){return false}return typeof obj.id==="string"&&typeof obj.title==="string"}Command6.is=is})(Command||(Command={}));(function(InlayHintKind3){InlayHintKind3[InlayHintKind3["Type"]=1]="Type";InlayHintKind3[InlayHintKind3["Parameter"]=2]="Parameter"})(InlayHintKind||(InlayHintKind={}));LazyTokenizationSupport=class{constructor(createSupport){this.createSupport=createSupport;this._tokenizationSupport=null}dispose(){if(this._tokenizationSupport){this._tokenizationSupport.then((support=>{if(support){support.dispose()}}))}}get tokenizationSupport(){if(!this._tokenizationSupport){this._tokenizationSupport=this.createSupport()}return this._tokenizationSupport}};TokenizationRegistry2=new TokenizationRegistry}});var AccessibilitySupport,CodeActionTriggerType,CompletionItemInsertTextRule,CompletionItemKind,CompletionItemTag,CompletionTriggerKind,ContentWidgetPositionPreference,CursorChangeReason,DefaultEndOfLine,DocumentHighlightKind2,EditorAutoIndentStrategy,EditorOption,EndOfLinePreference,EndOfLineSequence,GlyphMarginLane,IndentAction,InjectedTextCursorStops,InlayHintKind2,InlineCompletionTriggerKind2,KeyCode,MarkerSeverity,MarkerTag,MinimapPosition,MouseTargetType,OverlayWidgetPositionPreference,OverviewRulerLane,PositionAffinity,RenderLineNumbersType,RenderMinimap,ScrollType,ScrollbarVisibility,SelectionDirection,SignatureHelpTriggerKind2,SymbolKind,SymbolTag,TextEditorCursorBlinkingStyle,TextEditorCursorStyle2,TrackedRangeStickiness,WrappingIndent;var init_standaloneEnums=__esm({"node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneEnums.js"(){(function(AccessibilitySupport2){AccessibilitySupport2[AccessibilitySupport2["Unknown"]=0]="Unknown";AccessibilitySupport2[AccessibilitySupport2["Disabled"]=1]="Disabled";AccessibilitySupport2[AccessibilitySupport2["Enabled"]=2]="Enabled"})(AccessibilitySupport||(AccessibilitySupport={}));(function(CodeActionTriggerType2){CodeActionTriggerType2[CodeActionTriggerType2["Invoke"]=1]="Invoke";CodeActionTriggerType2[CodeActionTriggerType2["Auto"]=2]="Auto"})(CodeActionTriggerType||(CodeActionTriggerType={}));(function(CompletionItemInsertTextRule2){CompletionItemInsertTextRule2[CompletionItemInsertTextRule2["None"]=0]="None";CompletionItemInsertTextRule2[CompletionItemInsertTextRule2["KeepWhitespace"]=1]="KeepWhitespace";CompletionItemInsertTextRule2[CompletionItemInsertTextRule2["InsertAsSnippet"]=4]="InsertAsSnippet"})(CompletionItemInsertTextRule||(CompletionItemInsertTextRule={}));(function(CompletionItemKind5){CompletionItemKind5[CompletionItemKind5["Method"]=0]="Method";CompletionItemKind5[CompletionItemKind5["Function"]=1]="Function";CompletionItemKind5[CompletionItemKind5["Constructor"]=2]="Constructor";CompletionItemKind5[CompletionItemKind5["Field"]=3]="Field";CompletionItemKind5[CompletionItemKind5["Variable"]=4]="Variable";CompletionItemKind5[CompletionItemKind5["Class"]=5]="Class";CompletionItemKind5[CompletionItemKind5["Struct"]=6]="Struct";CompletionItemKind5[CompletionItemKind5["Interface"]=7]="Interface";CompletionItemKind5[CompletionItemKind5["Module"]=8]="Module";CompletionItemKind5[CompletionItemKind5["Property"]=9]="Property";CompletionItemKind5[CompletionItemKind5["Event"]=10]="Event";CompletionItemKind5[CompletionItemKind5["Operator"]=11]="Operator";CompletionItemKind5[CompletionItemKind5["Unit"]=12]="Unit";CompletionItemKind5[CompletionItemKind5["Value"]=13]="Value";CompletionItemKind5[CompletionItemKind5["Constant"]=14]="Constant";CompletionItemKind5[CompletionItemKind5["Enum"]=15]="Enum";CompletionItemKind5[CompletionItemKind5["EnumMember"]=16]="EnumMember";CompletionItemKind5[CompletionItemKind5["Keyword"]=17]="Keyword";CompletionItemKind5[CompletionItemKind5["Text"]=18]="Text";CompletionItemKind5[CompletionItemKind5["Color"]=19]="Color";CompletionItemKind5[CompletionItemKind5["File"]=20]="File";CompletionItemKind5[CompletionItemKind5["Reference"]=21]="Reference";CompletionItemKind5[CompletionItemKind5["Customcolor"]=22]="Customcolor";CompletionItemKind5[CompletionItemKind5["Folder"]=23]="Folder";CompletionItemKind5[CompletionItemKind5["TypeParameter"]=24]="TypeParameter";CompletionItemKind5[CompletionItemKind5["User"]=25]="User";CompletionItemKind5[CompletionItemKind5["Issue"]=26]="Issue";CompletionItemKind5[CompletionItemKind5["Snippet"]=27]="Snippet"})(CompletionItemKind||(CompletionItemKind={}));(function(CompletionItemTag5){CompletionItemTag5[CompletionItemTag5["Deprecated"]=1]="Deprecated"})(CompletionItemTag||(CompletionItemTag={}));(function(CompletionTriggerKind2){CompletionTriggerKind2[CompletionTriggerKind2["Invoke"]=0]="Invoke";CompletionTriggerKind2[CompletionTriggerKind2["TriggerCharacter"]=1]="TriggerCharacter";CompletionTriggerKind2[CompletionTriggerKind2["TriggerForIncompleteCompletions"]=2]="TriggerForIncompleteCompletions"})(CompletionTriggerKind||(CompletionTriggerKind={}));(function(ContentWidgetPositionPreference2){ContentWidgetPositionPreference2[ContentWidgetPositionPreference2["EXACT"]=0]="EXACT";ContentWidgetPositionPreference2[ContentWidgetPositionPreference2["ABOVE"]=1]="ABOVE";ContentWidgetPositionPreference2[ContentWidgetPositionPreference2["BELOW"]=2]="BELOW"})(ContentWidgetPositionPreference||(ContentWidgetPositionPreference={}));(function(CursorChangeReason2){CursorChangeReason2[CursorChangeReason2["NotSet"]=0]="NotSet";CursorChangeReason2[CursorChangeReason2["ContentFlush"]=1]="ContentFlush";CursorChangeReason2[CursorChangeReason2["RecoverFromMarkers"]=2]="RecoverFromMarkers";CursorChangeReason2[CursorChangeReason2["Explicit"]=3]="Explicit";CursorChangeReason2[CursorChangeReason2["Paste"]=4]="Paste";CursorChangeReason2[CursorChangeReason2["Undo"]=5]="Undo";CursorChangeReason2[CursorChangeReason2["Redo"]=6]="Redo"})(CursorChangeReason||(CursorChangeReason={}));(function(DefaultEndOfLine2){DefaultEndOfLine2[DefaultEndOfLine2["LF"]=1]="LF";DefaultEndOfLine2[DefaultEndOfLine2["CRLF"]=2]="CRLF"})(DefaultEndOfLine||(DefaultEndOfLine={}));(function(DocumentHighlightKind6){DocumentHighlightKind6[DocumentHighlightKind6["Text"]=0]="Text";DocumentHighlightKind6[DocumentHighlightKind6["Read"]=1]="Read";DocumentHighlightKind6[DocumentHighlightKind6["Write"]=2]="Write"})(DocumentHighlightKind2||(DocumentHighlightKind2={}));(function(EditorAutoIndentStrategy2){EditorAutoIndentStrategy2[EditorAutoIndentStrategy2["None"]=0]="None";EditorAutoIndentStrategy2[EditorAutoIndentStrategy2["Keep"]=1]="Keep";EditorAutoIndentStrategy2[EditorAutoIndentStrategy2["Brackets"]=2]="Brackets";EditorAutoIndentStrategy2[EditorAutoIndentStrategy2["Advanced"]=3]="Advanced";EditorAutoIndentStrategy2[EditorAutoIndentStrategy2["Full"]=4]="Full"})(EditorAutoIndentStrategy||(EditorAutoIndentStrategy={}));(function(EditorOption2){EditorOption2[EditorOption2["acceptSuggestionOnCommitCharacter"]=0]="acceptSuggestionOnCommitCharacter";EditorOption2[EditorOption2["acceptSuggestionOnEnter"]=1]="acceptSuggestionOnEnter";EditorOption2[EditorOption2["accessibilitySupport"]=2]="accessibilitySupport";EditorOption2[EditorOption2["accessibilityPageSize"]=3]="accessibilityPageSize";EditorOption2[EditorOption2["ariaLabel"]=4]="ariaLabel";EditorOption2[EditorOption2["ariaRequired"]=5]="ariaRequired";EditorOption2[EditorOption2["autoClosingBrackets"]=6]="autoClosingBrackets";EditorOption2[EditorOption2["screenReaderAnnounceInlineSuggestion"]=7]="screenReaderAnnounceInlineSuggestion";EditorOption2[EditorOption2["autoClosingDelete"]=8]="autoClosingDelete";EditorOption2[EditorOption2["autoClosingOvertype"]=9]="autoClosingOvertype";EditorOption2[EditorOption2["autoClosingQuotes"]=10]="autoClosingQuotes";EditorOption2[EditorOption2["autoIndent"]=11]="autoIndent";EditorOption2[EditorOption2["automaticLayout"]=12]="automaticLayout";EditorOption2[EditorOption2["autoSurround"]=13]="autoSurround";EditorOption2[EditorOption2["bracketPairColorization"]=14]="bracketPairColorization";EditorOption2[EditorOption2["guides"]=15]="guides";EditorOption2[EditorOption2["codeLens"]=16]="codeLens";EditorOption2[EditorOption2["codeLensFontFamily"]=17]="codeLensFontFamily";EditorOption2[EditorOption2["codeLensFontSize"]=18]="codeLensFontSize";EditorOption2[EditorOption2["colorDecorators"]=19]="colorDecorators";EditorOption2[EditorOption2["colorDecoratorsLimit"]=20]="colorDecoratorsLimit";EditorOption2[EditorOption2["columnSelection"]=21]="columnSelection";EditorOption2[EditorOption2["comments"]=22]="comments";EditorOption2[EditorOption2["contextmenu"]=23]="contextmenu";EditorOption2[EditorOption2["copyWithSyntaxHighlighting"]=24]="copyWithSyntaxHighlighting";EditorOption2[EditorOption2["cursorBlinking"]=25]="cursorBlinking";EditorOption2[EditorOption2["cursorSmoothCaretAnimation"]=26]="cursorSmoothCaretAnimation";EditorOption2[EditorOption2["cursorStyle"]=27]="cursorStyle";EditorOption2[EditorOption2["cursorSurroundingLines"]=28]="cursorSurroundingLines";EditorOption2[EditorOption2["cursorSurroundingLinesStyle"]=29]="cursorSurroundingLinesStyle";EditorOption2[EditorOption2["cursorWidth"]=30]="cursorWidth";EditorOption2[EditorOption2["disableLayerHinting"]=31]="disableLayerHinting";EditorOption2[EditorOption2["disableMonospaceOptimizations"]=32]="disableMonospaceOptimizations";EditorOption2[EditorOption2["domReadOnly"]=33]="domReadOnly";EditorOption2[EditorOption2["dragAndDrop"]=34]="dragAndDrop";EditorOption2[EditorOption2["dropIntoEditor"]=35]="dropIntoEditor";EditorOption2[EditorOption2["emptySelectionClipboard"]=36]="emptySelectionClipboard";EditorOption2[EditorOption2["experimentalWhitespaceRendering"]=37]="experimentalWhitespaceRendering";EditorOption2[EditorOption2["extraEditorClassName"]=38]="extraEditorClassName";EditorOption2[EditorOption2["fastScrollSensitivity"]=39]="fastScrollSensitivity";EditorOption2[EditorOption2["find"]=40]="find";EditorOption2[EditorOption2["fixedOverflowWidgets"]=41]="fixedOverflowWidgets";EditorOption2[EditorOption2["folding"]=42]="folding";EditorOption2[EditorOption2["foldingStrategy"]=43]="foldingStrategy";EditorOption2[EditorOption2["foldingHighlight"]=44]="foldingHighlight";EditorOption2[EditorOption2["foldingImportsByDefault"]=45]="foldingImportsByDefault";EditorOption2[EditorOption2["foldingMaximumRegions"]=46]="foldingMaximumRegions";EditorOption2[EditorOption2["unfoldOnClickAfterEndOfLine"]=47]="unfoldOnClickAfterEndOfLine";EditorOption2[EditorOption2["fontFamily"]=48]="fontFamily";EditorOption2[EditorOption2["fontInfo"]=49]="fontInfo";EditorOption2[EditorOption2["fontLigatures"]=50]="fontLigatures";EditorOption2[EditorOption2["fontSize"]=51]="fontSize";EditorOption2[EditorOption2["fontWeight"]=52]="fontWeight";EditorOption2[EditorOption2["fontVariations"]=53]="fontVariations";EditorOption2[EditorOption2["formatOnPaste"]=54]="formatOnPaste";EditorOption2[EditorOption2["formatOnType"]=55]="formatOnType";EditorOption2[EditorOption2["glyphMargin"]=56]="glyphMargin";EditorOption2[EditorOption2["gotoLocation"]=57]="gotoLocation";EditorOption2[EditorOption2["hideCursorInOverviewRuler"]=58]="hideCursorInOverviewRuler";EditorOption2[EditorOption2["hover"]=59]="hover";EditorOption2[EditorOption2["inDiffEditor"]=60]="inDiffEditor";EditorOption2[EditorOption2["inlineSuggest"]=61]="inlineSuggest";EditorOption2[EditorOption2["letterSpacing"]=62]="letterSpacing";EditorOption2[EditorOption2["lightbulb"]=63]="lightbulb";EditorOption2[EditorOption2["lineDecorationsWidth"]=64]="lineDecorationsWidth";EditorOption2[EditorOption2["lineHeight"]=65]="lineHeight";EditorOption2[EditorOption2["lineNumbers"]=66]="lineNumbers";EditorOption2[EditorOption2["lineNumbersMinChars"]=67]="lineNumbersMinChars";EditorOption2[EditorOption2["linkedEditing"]=68]="linkedEditing";EditorOption2[EditorOption2["links"]=69]="links";EditorOption2[EditorOption2["matchBrackets"]=70]="matchBrackets";EditorOption2[EditorOption2["minimap"]=71]="minimap";EditorOption2[EditorOption2["mouseStyle"]=72]="mouseStyle";EditorOption2[EditorOption2["mouseWheelScrollSensitivity"]=73]="mouseWheelScrollSensitivity";EditorOption2[EditorOption2["mouseWheelZoom"]=74]="mouseWheelZoom";EditorOption2[EditorOption2["multiCursorMergeOverlapping"]=75]="multiCursorMergeOverlapping";EditorOption2[EditorOption2["multiCursorModifier"]=76]="multiCursorModifier";EditorOption2[EditorOption2["multiCursorPaste"]=77]="multiCursorPaste";EditorOption2[EditorOption2["multiCursorLimit"]=78]="multiCursorLimit";EditorOption2[EditorOption2["occurrencesHighlight"]=79]="occurrencesHighlight";EditorOption2[EditorOption2["overviewRulerBorder"]=80]="overviewRulerBorder";EditorOption2[EditorOption2["overviewRulerLanes"]=81]="overviewRulerLanes";EditorOption2[EditorOption2["padding"]=82]="padding";EditorOption2[EditorOption2["pasteAs"]=83]="pasteAs";EditorOption2[EditorOption2["parameterHints"]=84]="parameterHints";EditorOption2[EditorOption2["peekWidgetDefaultFocus"]=85]="peekWidgetDefaultFocus";EditorOption2[EditorOption2["definitionLinkOpensInPeek"]=86]="definitionLinkOpensInPeek";EditorOption2[EditorOption2["quickSuggestions"]=87]="quickSuggestions";EditorOption2[EditorOption2["quickSuggestionsDelay"]=88]="quickSuggestionsDelay";EditorOption2[EditorOption2["readOnly"]=89]="readOnly";EditorOption2[EditorOption2["readOnlyMessage"]=90]="readOnlyMessage";EditorOption2[EditorOption2["renameOnType"]=91]="renameOnType";EditorOption2[EditorOption2["renderControlCharacters"]=92]="renderControlCharacters";EditorOption2[EditorOption2["renderFinalNewline"]=93]="renderFinalNewline";EditorOption2[EditorOption2["renderLineHighlight"]=94]="renderLineHighlight";EditorOption2[EditorOption2["renderLineHighlightOnlyWhenFocus"]=95]="renderLineHighlightOnlyWhenFocus";EditorOption2[EditorOption2["renderValidationDecorations"]=96]="renderValidationDecorations";EditorOption2[EditorOption2["renderWhitespace"]=97]="renderWhitespace";EditorOption2[EditorOption2["revealHorizontalRightPadding"]=98]="revealHorizontalRightPadding";EditorOption2[EditorOption2["roundedSelection"]=99]="roundedSelection";EditorOption2[EditorOption2["rulers"]=100]="rulers";EditorOption2[EditorOption2["scrollbar"]=101]="scrollbar";EditorOption2[EditorOption2["scrollBeyondLastColumn"]=102]="scrollBeyondLastColumn";EditorOption2[EditorOption2["scrollBeyondLastLine"]=103]="scrollBeyondLastLine";EditorOption2[EditorOption2["scrollPredominantAxis"]=104]="scrollPredominantAxis";EditorOption2[EditorOption2["selectionClipboard"]=105]="selectionClipboard";EditorOption2[EditorOption2["selectionHighlight"]=106]="selectionHighlight";EditorOption2[EditorOption2["selectOnLineNumbers"]=107]="selectOnLineNumbers";EditorOption2[EditorOption2["showFoldingControls"]=108]="showFoldingControls";EditorOption2[EditorOption2["showUnused"]=109]="showUnused";EditorOption2[EditorOption2["snippetSuggestions"]=110]="snippetSuggestions";EditorOption2[EditorOption2["smartSelect"]=111]="smartSelect";EditorOption2[EditorOption2["smoothScrolling"]=112]="smoothScrolling";EditorOption2[EditorOption2["stickyScroll"]=113]="stickyScroll";EditorOption2[EditorOption2["stickyTabStops"]=114]="stickyTabStops";EditorOption2[EditorOption2["stopRenderingLineAfter"]=115]="stopRenderingLineAfter";EditorOption2[EditorOption2["suggest"]=116]="suggest";EditorOption2[EditorOption2["suggestFontSize"]=117]="suggestFontSize";EditorOption2[EditorOption2["suggestLineHeight"]=118]="suggestLineHeight";EditorOption2[EditorOption2["suggestOnTriggerCharacters"]=119]="suggestOnTriggerCharacters";EditorOption2[EditorOption2["suggestSelection"]=120]="suggestSelection";EditorOption2[EditorOption2["tabCompletion"]=121]="tabCompletion";EditorOption2[EditorOption2["tabIndex"]=122]="tabIndex";EditorOption2[EditorOption2["unicodeHighlighting"]=123]="unicodeHighlighting";EditorOption2[EditorOption2["unusualLineTerminators"]=124]="unusualLineTerminators";EditorOption2[EditorOption2["useShadowDOM"]=125]="useShadowDOM";EditorOption2[EditorOption2["useTabStops"]=126]="useTabStops";EditorOption2[EditorOption2["wordBreak"]=127]="wordBreak";EditorOption2[EditorOption2["wordSeparators"]=128]="wordSeparators";EditorOption2[EditorOption2["wordWrap"]=129]="wordWrap";EditorOption2[EditorOption2["wordWrapBreakAfterCharacters"]=130]="wordWrapBreakAfterCharacters";EditorOption2[EditorOption2["wordWrapBreakBeforeCharacters"]=131]="wordWrapBreakBeforeCharacters";EditorOption2[EditorOption2["wordWrapColumn"]=132]="wordWrapColumn";EditorOption2[EditorOption2["wordWrapOverride1"]=133]="wordWrapOverride1";EditorOption2[EditorOption2["wordWrapOverride2"]=134]="wordWrapOverride2";EditorOption2[EditorOption2["wrappingIndent"]=135]="wrappingIndent";EditorOption2[EditorOption2["wrappingStrategy"]=136]="wrappingStrategy";EditorOption2[EditorOption2["showDeprecated"]=137]="showDeprecated";EditorOption2[EditorOption2["inlayHints"]=138]="inlayHints";EditorOption2[EditorOption2["editorClassName"]=139]="editorClassName";EditorOption2[EditorOption2["pixelRatio"]=140]="pixelRatio";EditorOption2[EditorOption2["tabFocusMode"]=141]="tabFocusMode";EditorOption2[EditorOption2["layoutInfo"]=142]="layoutInfo";EditorOption2[EditorOption2["wrappingInfo"]=143]="wrappingInfo";EditorOption2[EditorOption2["defaultColorDecorators"]=144]="defaultColorDecorators";EditorOption2[EditorOption2["colorDecoratorsActivatedOn"]=145]="colorDecoratorsActivatedOn";EditorOption2[EditorOption2["inlineCompletionsAccessibilityVerbose"]=146]="inlineCompletionsAccessibilityVerbose"})(EditorOption||(EditorOption={}));(function(EndOfLinePreference2){EndOfLinePreference2[EndOfLinePreference2["TextDefined"]=0]="TextDefined";EndOfLinePreference2[EndOfLinePreference2["LF"]=1]="LF";EndOfLinePreference2[EndOfLinePreference2["CRLF"]=2]="CRLF"})(EndOfLinePreference||(EndOfLinePreference={}));(function(EndOfLineSequence2){EndOfLineSequence2[EndOfLineSequence2["LF"]=0]="LF";EndOfLineSequence2[EndOfLineSequence2["CRLF"]=1]="CRLF"})(EndOfLineSequence||(EndOfLineSequence={}));(function(GlyphMarginLane3){GlyphMarginLane3[GlyphMarginLane3["Left"]=1]="Left";GlyphMarginLane3[GlyphMarginLane3["Right"]=2]="Right"})(GlyphMarginLane||(GlyphMarginLane={}));(function(IndentAction3){IndentAction3[IndentAction3["None"]=0]="None";IndentAction3[IndentAction3["Indent"]=1]="Indent";IndentAction3[IndentAction3["IndentOutdent"]=2]="IndentOutdent";IndentAction3[IndentAction3["Outdent"]=3]="Outdent"})(IndentAction||(IndentAction={}));(function(InjectedTextCursorStops3){InjectedTextCursorStops3[InjectedTextCursorStops3["Both"]=0]="Both";InjectedTextCursorStops3[InjectedTextCursorStops3["Right"]=1]="Right";InjectedTextCursorStops3[InjectedTextCursorStops3["Left"]=2]="Left";InjectedTextCursorStops3[InjectedTextCursorStops3["None"]=3]="None"})(InjectedTextCursorStops||(InjectedTextCursorStops={}));(function(InlayHintKind3){InlayHintKind3[InlayHintKind3["Type"]=1]="Type";InlayHintKind3[InlayHintKind3["Parameter"]=2]="Parameter"})(InlayHintKind2||(InlayHintKind2={}));(function(InlineCompletionTriggerKind3){InlineCompletionTriggerKind3[InlineCompletionTriggerKind3["Automatic"]=0]="Automatic";InlineCompletionTriggerKind3[InlineCompletionTriggerKind3["Explicit"]=1]="Explicit"})(InlineCompletionTriggerKind2||(InlineCompletionTriggerKind2={}));(function(KeyCode3){KeyCode3[KeyCode3["DependsOnKbLayout"]=-1]="DependsOnKbLayout";KeyCode3[KeyCode3["Unknown"]=0]="Unknown";KeyCode3[KeyCode3["Backspace"]=1]="Backspace";KeyCode3[KeyCode3["Tab"]=2]="Tab";KeyCode3[KeyCode3["Enter"]=3]="Enter";KeyCode3[KeyCode3["Shift"]=4]="Shift";KeyCode3[KeyCode3["Ctrl"]=5]="Ctrl";KeyCode3[KeyCode3["Alt"]=6]="Alt";KeyCode3[KeyCode3["PauseBreak"]=7]="PauseBreak";KeyCode3[KeyCode3["CapsLock"]=8]="CapsLock";KeyCode3[KeyCode3["Escape"]=9]="Escape";KeyCode3[KeyCode3["Space"]=10]="Space";KeyCode3[KeyCode3["PageUp"]=11]="PageUp";KeyCode3[KeyCode3["PageDown"]=12]="PageDown";KeyCode3[KeyCode3["End"]=13]="End";KeyCode3[KeyCode3["Home"]=14]="Home";KeyCode3[KeyCode3["LeftArrow"]=15]="LeftArrow";KeyCode3[KeyCode3["UpArrow"]=16]="UpArrow";KeyCode3[KeyCode3["RightArrow"]=17]="RightArrow";KeyCode3[KeyCode3["DownArrow"]=18]="DownArrow";KeyCode3[KeyCode3["Insert"]=19]="Insert";KeyCode3[KeyCode3["Delete"]=20]="Delete";KeyCode3[KeyCode3["Digit0"]=21]="Digit0";KeyCode3[KeyCode3["Digit1"]=22]="Digit1";KeyCode3[KeyCode3["Digit2"]=23]="Digit2";KeyCode3[KeyCode3["Digit3"]=24]="Digit3";KeyCode3[KeyCode3["Digit4"]=25]="Digit4";KeyCode3[KeyCode3["Digit5"]=26]="Digit5";KeyCode3[KeyCode3["Digit6"]=27]="Digit6";KeyCode3[KeyCode3["Digit7"]=28]="Digit7";KeyCode3[KeyCode3["Digit8"]=29]="Digit8";KeyCode3[KeyCode3["Digit9"]=30]="Digit9";KeyCode3[KeyCode3["KeyA"]=31]="KeyA";KeyCode3[KeyCode3["KeyB"]=32]="KeyB";KeyCode3[KeyCode3["KeyC"]=33]="KeyC";KeyCode3[KeyCode3["KeyD"]=34]="KeyD";KeyCode3[KeyCode3["KeyE"]=35]="KeyE";KeyCode3[KeyCode3["KeyF"]=36]="KeyF";KeyCode3[KeyCode3["KeyG"]=37]="KeyG";KeyCode3[KeyCode3["KeyH"]=38]="KeyH";KeyCode3[KeyCode3["KeyI"]=39]="KeyI";KeyCode3[KeyCode3["KeyJ"]=40]="KeyJ";KeyCode3[KeyCode3["KeyK"]=41]="KeyK";KeyCode3[KeyCode3["KeyL"]=42]="KeyL";KeyCode3[KeyCode3["KeyM"]=43]="KeyM";KeyCode3[KeyCode3["KeyN"]=44]="KeyN";KeyCode3[KeyCode3["KeyO"]=45]="KeyO";KeyCode3[KeyCode3["KeyP"]=46]="KeyP";KeyCode3[KeyCode3["KeyQ"]=47]="KeyQ";KeyCode3[KeyCode3["KeyR"]=48]="KeyR";KeyCode3[KeyCode3["KeyS"]=49]="KeyS";KeyCode3[KeyCode3["KeyT"]=50]="KeyT";KeyCode3[KeyCode3["KeyU"]=51]="KeyU";KeyCode3[KeyCode3["KeyV"]=52]="KeyV";KeyCode3[KeyCode3["KeyW"]=53]="KeyW";KeyCode3[KeyCode3["KeyX"]=54]="KeyX";KeyCode3[KeyCode3["KeyY"]=55]="KeyY";KeyCode3[KeyCode3["KeyZ"]=56]="KeyZ";KeyCode3[KeyCode3["Meta"]=57]="Meta";KeyCode3[KeyCode3["ContextMenu"]=58]="ContextMenu";KeyCode3[KeyCode3["F1"]=59]="F1";KeyCode3[KeyCode3["F2"]=60]="F2";KeyCode3[KeyCode3["F3"]=61]="F3";KeyCode3[KeyCode3["F4"]=62]="F4";KeyCode3[KeyCode3["F5"]=63]="F5";KeyCode3[KeyCode3["F6"]=64]="F6";KeyCode3[KeyCode3["F7"]=65]="F7";KeyCode3[KeyCode3["F8"]=66]="F8";KeyCode3[KeyCode3["F9"]=67]="F9";KeyCode3[KeyCode3["F10"]=68]="F10";KeyCode3[KeyCode3["F11"]=69]="F11";KeyCode3[KeyCode3["F12"]=70]="F12";KeyCode3[KeyCode3["F13"]=71]="F13";KeyCode3[KeyCode3["F14"]=72]="F14";KeyCode3[KeyCode3["F15"]=73]="F15";KeyCode3[KeyCode3["F16"]=74]="F16";KeyCode3[KeyCode3["F17"]=75]="F17";KeyCode3[KeyCode3["F18"]=76]="F18";KeyCode3[KeyCode3["F19"]=77]="F19";KeyCode3[KeyCode3["F20"]=78]="F20";KeyCode3[KeyCode3["F21"]=79]="F21";KeyCode3[KeyCode3["F22"]=80]="F22";KeyCode3[KeyCode3["F23"]=81]="F23";KeyCode3[KeyCode3["F24"]=82]="F24";KeyCode3[KeyCode3["NumLock"]=83]="NumLock";KeyCode3[KeyCode3["ScrollLock"]=84]="ScrollLock";KeyCode3[KeyCode3["Semicolon"]=85]="Semicolon";KeyCode3[KeyCode3["Equal"]=86]="Equal";KeyCode3[KeyCode3["Comma"]=87]="Comma";KeyCode3[KeyCode3["Minus"]=88]="Minus";KeyCode3[KeyCode3["Period"]=89]="Period";KeyCode3[KeyCode3["Slash"]=90]="Slash";KeyCode3[KeyCode3["Backquote"]=91]="Backquote";KeyCode3[KeyCode3["BracketLeft"]=92]="BracketLeft";KeyCode3[KeyCode3["Backslash"]=93]="Backslash";KeyCode3[KeyCode3["BracketRight"]=94]="BracketRight";KeyCode3[KeyCode3["Quote"]=95]="Quote";KeyCode3[KeyCode3["OEM_8"]=96]="OEM_8";KeyCode3[KeyCode3["IntlBackslash"]=97]="IntlBackslash";KeyCode3[KeyCode3["Numpad0"]=98]="Numpad0";KeyCode3[KeyCode3["Numpad1"]=99]="Numpad1";KeyCode3[KeyCode3["Numpad2"]=100]="Numpad2";KeyCode3[KeyCode3["Numpad3"]=101]="Numpad3";KeyCode3[KeyCode3["Numpad4"]=102]="Numpad4";KeyCode3[KeyCode3["Numpad5"]=103]="Numpad5";KeyCode3[KeyCode3["Numpad6"]=104]="Numpad6";KeyCode3[KeyCode3["Numpad7"]=105]="Numpad7";KeyCode3[KeyCode3["Numpad8"]=106]="Numpad8";KeyCode3[KeyCode3["Numpad9"]=107]="Numpad9";KeyCode3[KeyCode3["NumpadMultiply"]=108]="NumpadMultiply";KeyCode3[KeyCode3["NumpadAdd"]=109]="NumpadAdd";KeyCode3[KeyCode3["NUMPAD_SEPARATOR"]=110]="NUMPAD_SEPARATOR";KeyCode3[KeyCode3["NumpadSubtract"]=111]="NumpadSubtract";KeyCode3[KeyCode3["NumpadDecimal"]=112]="NumpadDecimal";KeyCode3[KeyCode3["NumpadDivide"]=113]="NumpadDivide";KeyCode3[KeyCode3["KEY_IN_COMPOSITION"]=114]="KEY_IN_COMPOSITION";KeyCode3[KeyCode3["ABNT_C1"]=115]="ABNT_C1";KeyCode3[KeyCode3["ABNT_C2"]=116]="ABNT_C2";KeyCode3[KeyCode3["AudioVolumeMute"]=117]="AudioVolumeMute";KeyCode3[KeyCode3["AudioVolumeUp"]=118]="AudioVolumeUp";KeyCode3[KeyCode3["AudioVolumeDown"]=119]="AudioVolumeDown";KeyCode3[KeyCode3["BrowserSearch"]=120]="BrowserSearch";KeyCode3[KeyCode3["BrowserHome"]=121]="BrowserHome";KeyCode3[KeyCode3["BrowserBack"]=122]="BrowserBack";KeyCode3[KeyCode3["BrowserForward"]=123]="BrowserForward";KeyCode3[KeyCode3["MediaTrackNext"]=124]="MediaTrackNext";KeyCode3[KeyCode3["MediaTrackPrevious"]=125]="MediaTrackPrevious";KeyCode3[KeyCode3["MediaStop"]=126]="MediaStop";KeyCode3[KeyCode3["MediaPlayPause"]=127]="MediaPlayPause";KeyCode3[KeyCode3["LaunchMediaPlayer"]=128]="LaunchMediaPlayer";KeyCode3[KeyCode3["LaunchMail"]=129]="LaunchMail";KeyCode3[KeyCode3["LaunchApp2"]=130]="LaunchApp2";KeyCode3[KeyCode3["Clear"]=131]="Clear";KeyCode3[KeyCode3["MAX_VALUE"]=132]="MAX_VALUE"})(KeyCode||(KeyCode={}));(function(MarkerSeverity4){MarkerSeverity4[MarkerSeverity4["Hint"]=1]="Hint";MarkerSeverity4[MarkerSeverity4["Info"]=2]="Info";MarkerSeverity4[MarkerSeverity4["Warning"]=4]="Warning";MarkerSeverity4[MarkerSeverity4["Error"]=8]="Error"})(MarkerSeverity||(MarkerSeverity={}));(function(MarkerTag3){MarkerTag3[MarkerTag3["Unnecessary"]=1]="Unnecessary";MarkerTag3[MarkerTag3["Deprecated"]=2]="Deprecated"})(MarkerTag||(MarkerTag={}));(function(MinimapPosition3){MinimapPosition3[MinimapPosition3["Inline"]=1]="Inline";MinimapPosition3[MinimapPosition3["Gutter"]=2]="Gutter"})(MinimapPosition||(MinimapPosition={}));(function(MouseTargetType2){MouseTargetType2[MouseTargetType2["UNKNOWN"]=0]="UNKNOWN";MouseTargetType2[MouseTargetType2["TEXTAREA"]=1]="TEXTAREA";MouseTargetType2[MouseTargetType2["GUTTER_GLYPH_MARGIN"]=2]="GUTTER_GLYPH_MARGIN";MouseTargetType2[MouseTargetType2["GUTTER_LINE_NUMBERS"]=3]="GUTTER_LINE_NUMBERS";MouseTargetType2[MouseTargetType2["GUTTER_LINE_DECORATIONS"]=4]="GUTTER_LINE_DECORATIONS";MouseTargetType2[MouseTargetType2["GUTTER_VIEW_ZONE"]=5]="GUTTER_VIEW_ZONE";MouseTargetType2[MouseTargetType2["CONTENT_TEXT"]=6]="CONTENT_TEXT";MouseTargetType2[MouseTargetType2["CONTENT_EMPTY"]=7]="CONTENT_EMPTY";MouseTargetType2[MouseTargetType2["CONTENT_VIEW_ZONE"]=8]="CONTENT_VIEW_ZONE";MouseTargetType2[MouseTargetType2["CONTENT_WIDGET"]=9]="CONTENT_WIDGET";MouseTargetType2[MouseTargetType2["OVERVIEW_RULER"]=10]="OVERVIEW_RULER";MouseTargetType2[MouseTargetType2["SCROLLBAR"]=11]="SCROLLBAR";MouseTargetType2[MouseTargetType2["OVERLAY_WIDGET"]=12]="OVERLAY_WIDGET";MouseTargetType2[MouseTargetType2["OUTSIDE_EDITOR"]=13]="OUTSIDE_EDITOR"})(MouseTargetType||(MouseTargetType={}));(function(OverlayWidgetPositionPreference2){OverlayWidgetPositionPreference2[OverlayWidgetPositionPreference2["TOP_RIGHT_CORNER"]=0]="TOP_RIGHT_CORNER";OverlayWidgetPositionPreference2[OverlayWidgetPositionPreference2["BOTTOM_RIGHT_CORNER"]=1]="BOTTOM_RIGHT_CORNER";OverlayWidgetPositionPreference2[OverlayWidgetPositionPreference2["TOP_CENTER"]=2]="TOP_CENTER"})(OverlayWidgetPositionPreference||(OverlayWidgetPositionPreference={}));(function(OverviewRulerLane3){OverviewRulerLane3[OverviewRulerLane3["Left"]=1]="Left";OverviewRulerLane3[OverviewRulerLane3["Center"]=2]="Center";OverviewRulerLane3[OverviewRulerLane3["Right"]=4]="Right";OverviewRulerLane3[OverviewRulerLane3["Full"]=7]="Full"})(OverviewRulerLane||(OverviewRulerLane={}));(function(PositionAffinity2){PositionAffinity2[PositionAffinity2["Left"]=0]="Left";PositionAffinity2[PositionAffinity2["Right"]=1]="Right";PositionAffinity2[PositionAffinity2["None"]=2]="None";PositionAffinity2[PositionAffinity2["LeftOfInjectedText"]=3]="LeftOfInjectedText";PositionAffinity2[PositionAffinity2["RightOfInjectedText"]=4]="RightOfInjectedText"})(PositionAffinity||(PositionAffinity={}));(function(RenderLineNumbersType2){RenderLineNumbersType2[RenderLineNumbersType2["Off"]=0]="Off";RenderLineNumbersType2[RenderLineNumbersType2["On"]=1]="On";RenderLineNumbersType2[RenderLineNumbersType2["Relative"]=2]="Relative";RenderLineNumbersType2[RenderLineNumbersType2["Interval"]=3]="Interval";RenderLineNumbersType2[RenderLineNumbersType2["Custom"]=4]="Custom"})(RenderLineNumbersType||(RenderLineNumbersType={}));(function(RenderMinimap2){RenderMinimap2[RenderMinimap2["None"]=0]="None";RenderMinimap2[RenderMinimap2["Text"]=1]="Text";RenderMinimap2[RenderMinimap2["Blocks"]=2]="Blocks"})(RenderMinimap||(RenderMinimap={}));(function(ScrollType2){ScrollType2[ScrollType2["Smooth"]=0]="Smooth";ScrollType2[ScrollType2["Immediate"]=1]="Immediate"})(ScrollType||(ScrollType={}));(function(ScrollbarVisibility2){ScrollbarVisibility2[ScrollbarVisibility2["Auto"]=1]="Auto";ScrollbarVisibility2[ScrollbarVisibility2["Hidden"]=2]="Hidden";ScrollbarVisibility2[ScrollbarVisibility2["Visible"]=3]="Visible"})(ScrollbarVisibility||(ScrollbarVisibility={}));(function(SelectionDirection3){SelectionDirection3[SelectionDirection3["LTR"]=0]="LTR";SelectionDirection3[SelectionDirection3["RTL"]=1]="RTL"})(SelectionDirection||(SelectionDirection={}));(function(SignatureHelpTriggerKind3){SignatureHelpTriggerKind3[SignatureHelpTriggerKind3["Invoke"]=1]="Invoke";SignatureHelpTriggerKind3[SignatureHelpTriggerKind3["TriggerCharacter"]=2]="TriggerCharacter";SignatureHelpTriggerKind3[SignatureHelpTriggerKind3["ContentChange"]=3]="ContentChange"})(SignatureHelpTriggerKind2||(SignatureHelpTriggerKind2={}));(function(SymbolKind5){SymbolKind5[SymbolKind5["File"]=0]="File";SymbolKind5[SymbolKind5["Module"]=1]="Module";SymbolKind5[SymbolKind5["Namespace"]=2]="Namespace";SymbolKind5[SymbolKind5["Package"]=3]="Package";SymbolKind5[SymbolKind5["Class"]=4]="Class";SymbolKind5[SymbolKind5["Method"]=5]="Method";SymbolKind5[SymbolKind5["Property"]=6]="Property";SymbolKind5[SymbolKind5["Field"]=7]="Field";SymbolKind5[SymbolKind5["Constructor"]=8]="Constructor";SymbolKind5[SymbolKind5["Enum"]=9]="Enum";SymbolKind5[SymbolKind5["Interface"]=10]="Interface";SymbolKind5[SymbolKind5["Function"]=11]="Function";SymbolKind5[SymbolKind5["Variable"]=12]="Variable";SymbolKind5[SymbolKind5["Constant"]=13]="Constant";SymbolKind5[SymbolKind5["String"]=14]="String";SymbolKind5[SymbolKind5["Number"]=15]="Number";SymbolKind5[SymbolKind5["Boolean"]=16]="Boolean";SymbolKind5[SymbolKind5["Array"]=17]="Array";SymbolKind5[SymbolKind5["Object"]=18]="Object";SymbolKind5[SymbolKind5["Key"]=19]="Key";SymbolKind5[SymbolKind5["Null"]=20]="Null";SymbolKind5[SymbolKind5["EnumMember"]=21]="EnumMember";SymbolKind5[SymbolKind5["Struct"]=22]="Struct";SymbolKind5[SymbolKind5["Event"]=23]="Event";SymbolKind5[SymbolKind5["Operator"]=24]="Operator";SymbolKind5[SymbolKind5["TypeParameter"]=25]="TypeParameter"})(SymbolKind||(SymbolKind={}));(function(SymbolTag5){SymbolTag5[SymbolTag5["Deprecated"]=1]="Deprecated"})(SymbolTag||(SymbolTag={}));(function(TextEditorCursorBlinkingStyle2){TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2["Hidden"]=0]="Hidden";TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2["Blink"]=1]="Blink";TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2["Smooth"]=2]="Smooth";TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2["Phase"]=3]="Phase";TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2["Expand"]=4]="Expand";TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2["Solid"]=5]="Solid"})(TextEditorCursorBlinkingStyle||(TextEditorCursorBlinkingStyle={}));(function(TextEditorCursorStyle3){TextEditorCursorStyle3[TextEditorCursorStyle3["Line"]=1]="Line";TextEditorCursorStyle3[TextEditorCursorStyle3["Block"]=2]="Block";TextEditorCursorStyle3[TextEditorCursorStyle3["Underline"]=3]="Underline";TextEditorCursorStyle3[TextEditorCursorStyle3["LineThin"]=4]="LineThin";TextEditorCursorStyle3[TextEditorCursorStyle3["BlockOutline"]=5]="BlockOutline";TextEditorCursorStyle3[TextEditorCursorStyle3["UnderlineThin"]=6]="UnderlineThin"})(TextEditorCursorStyle2||(TextEditorCursorStyle2={}));(function(TrackedRangeStickiness2){TrackedRangeStickiness2[TrackedRangeStickiness2["AlwaysGrowsWhenTypingAtEdges"]=0]="AlwaysGrowsWhenTypingAtEdges";TrackedRangeStickiness2[TrackedRangeStickiness2["NeverGrowsWhenTypingAtEdges"]=1]="NeverGrowsWhenTypingAtEdges";TrackedRangeStickiness2[TrackedRangeStickiness2["GrowsOnlyWhenTypingBefore"]=2]="GrowsOnlyWhenTypingBefore";TrackedRangeStickiness2[TrackedRangeStickiness2["GrowsOnlyWhenTypingAfter"]=3]="GrowsOnlyWhenTypingAfter"})(TrackedRangeStickiness||(TrackedRangeStickiness={}));(function(WrappingIndent2){WrappingIndent2[WrappingIndent2["None"]=0]="None";WrappingIndent2[WrappingIndent2["Same"]=1]="Same";WrappingIndent2[WrappingIndent2["Indent"]=2]="Indent";WrappingIndent2[WrappingIndent2["DeepIndent"]=3]="DeepIndent"})(WrappingIndent||(WrappingIndent={}))}});function createMonacoBaseAPI(){return{editor:void 0,languages:void 0,CancellationTokenSource:CancellationTokenSource,Emitter:Emitter,KeyCode:KeyCode,KeyMod:KeyMod,Position:Position,Range:Range,Selection:Selection,SelectionDirection:SelectionDirection,MarkerSeverity:MarkerSeverity,MarkerTag:MarkerTag,Uri:URI,Token:Token}}var KeyMod;var init_editorBaseApi=__esm({"node_modules/monaco-editor/esm/vs/editor/common/services/editorBaseApi.js"(){init_cancellation();init_event();init_keyCodes();init_uri();init_position();init_range();init_selection();init_languages();init_standaloneEnums();KeyMod=class{static chord(firstPart,secondPart){return KeyChord(firstPart,secondPart)}};KeyMod.CtrlCmd=2048;KeyMod.Shift=1024;KeyMod.Alt=512;KeyMod.WinCtrl=256}});var init_=__esm({"node_modules/monaco-editor/esm/vs/editor/standalone/browser/standalone-tokens.css"(){}});var LRUCachedFunction,CachedFunction;var init_cache=__esm({"node_modules/monaco-editor/esm/vs/base/common/cache.js"(){LRUCachedFunction=class{constructor(fn){this.fn=fn;this.lastCache=void 0;this.lastArgKey=void 0}get(arg){const key=JSON.stringify(arg);if(this.lastArgKey!==key){this.lastArgKey=key;this.lastCache=this.fn(arg)}return this.lastCache}};CachedFunction=class{get cachedValues(){return this._map}constructor(fn){this.fn=fn;this._map=new Map}get(arg){if(this._map.has(arg)){return this._map.get(arg)}const value=this.fn(arg);this._map.set(arg,value);return value}}}});var Lazy;var init_lazy=__esm({"node_modules/monaco-editor/esm/vs/base/common/lazy.js"(){Lazy=class{constructor(executor){this.executor=executor;this._didRun=false}get value(){if(!this._didRun){try{this._value=this.executor()}catch(err){this._error=err}finally{this._didRun=true}}if(this._error){throw this._error}return this._value}get rawValue(){return this._value}}}});function isFalsyOrWhitespace(str){if(!str||typeof str!=="string"){return true}return str.trim().length===0}function format(value,...args){if(args.length===0){return value}return value.replace(_formatRegexp,(function(match2,group3){const idx=parseInt(group3,10);return isNaN(idx)||idx<0||idx>=args.length?match2:args[idx]}))}function escape(html2){return html2.replace(/[<>&]/g,(function(match2){switch(match2){case"<":return"<";case">":return">";case"&":return"&";default:return match2}}))}function escapeRegExpCharacters(value){return value.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function trim(haystack,needle=" "){const trimmed=ltrim(haystack,needle);return rtrim(trimmed,needle)}function ltrim(haystack,needle){if(!haystack||!needle){return haystack}const needleLen=needle.length;if(needleLen===0||haystack.length===0){return haystack}let offset=0;while(haystack.indexOf(needle,offset)===offset){offset=offset+needleLen}return haystack.substring(offset)}function rtrim(haystack,needle){if(!haystack||!needle){return haystack}const needleLen=needle.length,haystackLen=haystack.length;if(needleLen===0||haystackLen===0){return haystack}let offset=haystackLen,idx=-1;while(true){idx=haystack.lastIndexOf(needle,offset-1);if(idx===-1||idx+needleLen!==offset){break}if(idx===0){return""}offset=idx}return haystack.substring(0,offset)}function convertSimple2RegExpPattern(pattern){return pattern.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function stripWildcards(pattern){return pattern.replace(/\*/g,"")}function createRegExp(searchString,isRegex,options2={}){if(!searchString){throw new Error("Cannot create regex from empty string")}if(!isRegex){searchString=escapeRegExpCharacters(searchString)}if(options2.wholeWord){if(!/\B/.test(searchString.charAt(0))){searchString="\\b"+searchString}if(!/\B/.test(searchString.charAt(searchString.length-1))){searchString=searchString+"\\b"}}let modifiers="";if(options2.global){modifiers+="g"}if(!options2.matchCase){modifiers+="i"}if(options2.multiline){modifiers+="m"}if(options2.unicode){modifiers+="u"}return new RegExp(searchString,modifiers)}function regExpLeadsToEndlessLoop(regexp){if(regexp.source==="^"||regexp.source==="^$"||regexp.source==="$"||regexp.source==="^\\s*$"){return false}const match2=regexp.exec("");return!!(match2&®exp.lastIndex===0)}function splitLines(str){return str.split(/\r\n|\r|\n/)}function firstNonWhitespaceIndex(str){for(let i=0,len=str.length;i=0;i--){const chCode=str.charCodeAt(i);if(chCode!==32&&chCode!==9){return i}}return-1}function compare(a,b){if(ab){return 1}else{return 0}}function compareSubstring(a,b,aStart=0,aEnd=a.length,bStart=0,bEnd=b.length){for(;aStartcodeB){return 1}}const aLen=aEnd-aStart;const bLen=bEnd-bStart;if(aLenbLen){return 1}return 0}function compareIgnoreCase(a,b){return compareSubstringIgnoreCase(a,b,0,a.length,0,b.length)}function compareSubstringIgnoreCase(a,b,aStart=0,aEnd=a.length,bStart=0,bEnd=b.length){for(;aStart=128||codeB>=128){return compareSubstring(a.toLowerCase(),b.toLowerCase(),aStart,aEnd,bStart,bEnd)}if(isLowerAsciiLetter(codeA)){codeA-=32}if(isLowerAsciiLetter(codeB)){codeB-=32}const diff=codeA-codeB;if(diff===0){continue}return diff}const aLen=aEnd-aStart;const bLen=bEnd-bStart;if(aLenbLen){return 1}return 0}function isAsciiDigit(code){return code>=48&&code<=57}function isLowerAsciiLetter(code){return code>=97&&code<=122}function isUpperAsciiLetter(code){return code>=65&&code<=90}function equalsIgnoreCase(a,b){return a.length===b.length&&compareSubstringIgnoreCase(a,b)===0}function startsWithIgnoreCase(str,candidate){const candidateLength=candidate.length;if(candidate.length>str.length){return false}return compareSubstringIgnoreCase(str,candidate,0,candidateLength)===0}function commonPrefixLength(a,b){const len=Math.min(a.length,b.length);let i;for(i=0;i1){const prevCharCode=str.charCodeAt(offset-2);if(isHighSurrogate(prevCharCode)){return computeCodePoint(prevCharCode,charCode)}}return charCode}function nextCharLength(str,initialOffset){const iterator=new GraphemeIterator(str,initialOffset);return iterator.nextGraphemeLength()}function prevCharLength(str,initialOffset){const iterator=new GraphemeIterator(str,initialOffset);return iterator.prevGraphemeLength()}function getCharContainingOffset(str,offset){if(offset>0&&isLowSurrogate(str.charCodeAt(offset))){offset--}const endOffset=offset+nextCharLength(str,offset);const startOffset=endOffset-prevCharLength(str,endOffset);return[startOffset,endOffset]}function makeContainsRtl(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function containsRTL(str){if(!CONTAINS_RTL){CONTAINS_RTL=makeContainsRtl()}return CONTAINS_RTL.test(str)}function isBasicASCII(str){return IS_BASIC_ASCII.test(str)}function containsUnusualLineTerminators(str){return UNUSUAL_LINE_TERMINATORS.test(str)}function isFullWidthCharacter(charCode){return charCode>=11904&&charCode<=55215||charCode>=63744&&charCode<=64255||charCode>=65281&&charCode<=65374}function isEmojiImprecise(x){return x>=127462&&x<=127487||x===8986||x===8987||x===9200||x===9203||x>=9728&&x<=10175||x===11088||x===11093||x>=127744&&x<=128591||x>=128640&&x<=128764||x>=128992&&x<=129008||x>=129280&&x<=129535||x>=129648&&x<=129782}function startsWithUTF8BOM(str){return!!(str&&str.length>0&&str.charCodeAt(0)===65279)}function containsUppercaseCharacter(target,ignoreEscapedChars=false){if(!target){return false}if(ignoreEscapedChars){target=target.replace(/\\./g,"")}return target.toLowerCase()!==target}function singleLetterHash(n){const LETTERS_CNT=90-65+1;n=n%(2*LETTERS_CNT);if(n0){const optionalZwjCodePoint=iterator.prevCodePoint();if(optionalZwjCodePoint===8205){resultOffset=iterator.offset}}return resultOffset}function isEmojiModifier(codePoint){return 127995<=codePoint&&codePoint<=127999}var _a2,_formatRegexp,CodePointIterator,GraphemeIterator,CONTAINS_RTL,IS_BASIC_ASCII,UNUSUAL_LINE_TERMINATORS,UTF8_BOM_CHARACTER,GraphemeBreakTree,noBreakWhitespace,AmbiguousCharacters,InvisibleCharacters;var init_strings=__esm({"node_modules/monaco-editor/esm/vs/base/common/strings.js"(){init_cache();init_lazy();_formatRegexp=/{(\d+)}/g;CodePointIterator=class{get offset(){return this._offset}constructor(str,offset=0){this._str=str;this._len=str.length;this._offset=offset}setOffset(offset){this._offset=offset}prevCodePoint(){const codePoint=getPrevCodePoint(this._str,this._offset);this._offset-=codePoint>=65536?2:1;return codePoint}nextCodePoint(){const codePoint=getNextCodePoint(this._str,this._len,this._offset);this._offset+=codePoint>=65536?2:1;return codePoint}eol(){return this._offset>=this._len}};GraphemeIterator=class{get offset(){return this._iterator.offset}constructor(str,offset=0){this._iterator=new CodePointIterator(str,offset)}nextGraphemeLength(){const graphemeBreakTree=GraphemeBreakTree.getInstance();const iterator=this._iterator;const initialOffset=iterator.offset;let graphemeBreakType=graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());while(!iterator.eol()){const offset=iterator.offset;const nextGraphemeBreakType=graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());if(breakBetweenGraphemeBreakType(graphemeBreakType,nextGraphemeBreakType)){iterator.setOffset(offset);break}graphemeBreakType=nextGraphemeBreakType}return iterator.offset-initialOffset}prevGraphemeLength(){const graphemeBreakTree=GraphemeBreakTree.getInstance();const iterator=this._iterator;const initialOffset=iterator.offset;let graphemeBreakType=graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());while(iterator.offset>0){const offset=iterator.offset;const prevGraphemeBreakType=graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());if(breakBetweenGraphemeBreakType(prevGraphemeBreakType,graphemeBreakType)){iterator.setOffset(offset);break}graphemeBreakType=prevGraphemeBreakType}return initialOffset-iterator.offset}eol(){return this._iterator.eol()}};CONTAINS_RTL=void 0;IS_BASIC_ASCII=/^[\t\n\r\x20-\x7E]*$/;UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/;UTF8_BOM_CHARACTER=String.fromCharCode(65279);GraphemeBreakTree=class{static getInstance(){if(!GraphemeBreakTree._INSTANCE){GraphemeBreakTree._INSTANCE=new GraphemeBreakTree}return GraphemeBreakTree._INSTANCE}constructor(){this._data=getGraphemeBreakRawData()}getGraphemeBreakType(codePoint){if(codePoint<32){if(codePoint===10){return 3}if(codePoint===13){return 2}return 4}if(codePoint<127){return 0}const data=this._data;const nodeCount=data.length/3;let nodeIndex=1;while(nodeIndex<=nodeCount){if(codePointdata[3*nodeIndex+1]){nodeIndex=2*nodeIndex+1}else{return data[3*nodeIndex+2]}}return 0}};GraphemeBreakTree._INSTANCE=null;noBreakWhitespace=" ";AmbiguousCharacters=class{static getInstance(locales){return _a2.cache.get(Array.from(locales))}static getLocales(){return _a2._locales.value}constructor(confusableDictionary){this.confusableDictionary=confusableDictionary}isAmbiguous(codePoint){return this.confusableDictionary.has(codePoint)}getPrimaryConfusable(codePoint){return this.confusableDictionary.get(codePoint)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}};_a2=AmbiguousCharacters;AmbiguousCharacters.ambiguousCharacterData=new Lazy((()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}')));AmbiguousCharacters.cache=new LRUCachedFunction((locales=>{function arrayToMap(arr){const result=new Map;for(let i=0;i!l.startsWith("_")&&l in data));if(filteredLocales.length===0){filteredLocales=["_default"]}let languageSpecificMap=void 0;for(const locale2 of filteredLocales){const map2=arrayToMap(data[locale2]);languageSpecificMap=intersectMaps(languageSpecificMap,map2)}const commonMap=arrayToMap(data["_common"]);const map=mergeMaps(commonMap,languageSpecificMap);return new _a2(map)}));AmbiguousCharacters._locales=new Lazy((()=>Object.keys(_a2.ambiguousCharacterData.value).filter((k=>!k.startsWith("_")))));InvisibleCharacters=class{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){if(!this._data){this._data=new Set(InvisibleCharacters.getRawData())}return this._data}static isInvisibleCharacter(codePoint){return InvisibleCharacters.getData().has(codePoint)}static get codePoints(){return InvisibleCharacters.getData()}};InvisibleCharacters._data=void 0}});function addMatchMediaChangeListener(query,callback){if(typeof query==="string"){query=window.matchMedia(query)}query.addEventListener("change",callback)}function getZoomFactor(){return WindowManager.INSTANCE.getZoomFactor()}function isStandalone(){return standalone}var WindowManager,DevicePixelRatioMonitor,PixelRatioImpl,PixelRatioFacade,PixelRatio,userAgent2,isFirefox2,isWebKit,isChrome2,isSafari2,isWebkitWebView,isElectron,isAndroid2,standalone;var init_browser=__esm({"node_modules/monaco-editor/esm/vs/base/browser/browser.js"(){init_event();init_lifecycle();WindowManager=class{constructor(){this._zoomFactor=1}getZoomFactor(){return this._zoomFactor}};WindowManager.INSTANCE=new WindowManager;DevicePixelRatioMonitor=class extends Disposable{constructor(){super();this._onDidChange=this._register(new Emitter);this.onDidChange=this._onDidChange.event;this._listener=()=>this._handleChange(true);this._mediaQueryList=null;this._handleChange(false)}_handleChange(fireEvent){var _a6;(_a6=this._mediaQueryList)===null||_a6===void 0?void 0:_a6.removeEventListener("change",this._listener);this._mediaQueryList=window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);this._mediaQueryList.addEventListener("change",this._listener);if(fireEvent){this._onDidChange.fire()}}};PixelRatioImpl=class extends Disposable{get value(){return this._value}constructor(){super();this._onDidChange=this._register(new Emitter);this.onDidChange=this._onDidChange.event;this._value=this._getPixelRatio();const dprMonitor=this._register(new DevicePixelRatioMonitor);this._register(dprMonitor.onDidChange((()=>{this._value=this._getPixelRatio();this._onDidChange.fire(this._value)})))}_getPixelRatio(){const ctx=document.createElement("canvas").getContext("2d");const dpr=window.devicePixelRatio||1;const bsr=ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1;return dpr/bsr}};PixelRatioFacade=class{constructor(){this._pixelRatioMonitor=null}_getOrCreatePixelRatioMonitor(){if(!this._pixelRatioMonitor){this._pixelRatioMonitor=markAsSingleton(new PixelRatioImpl)}return this._pixelRatioMonitor}get value(){return this._getOrCreatePixelRatioMonitor().value}get onDidChange(){return this._getOrCreatePixelRatioMonitor().onDidChange}};PixelRatio=new PixelRatioFacade;userAgent2=navigator.userAgent;isFirefox2=userAgent2.indexOf("Firefox")>=0;isWebKit=userAgent2.indexOf("AppleWebKit")>=0;isChrome2=userAgent2.indexOf("Chrome")>=0;isSafari2=!isChrome2&&userAgent2.indexOf("Safari")>=0;isWebkitWebView=!isChrome2&&!isSafari2&&isWebKit;isElectron=userAgent2.indexOf("Electron/")>=0;isAndroid2=userAgent2.indexOf("Android")>=0;standalone=false;if(window.matchMedia){const standaloneMatchMedia=window.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)");const fullScreenMatchMedia=window.matchMedia("(display-mode: fullscreen)");standalone=standaloneMatchMedia.matches;addMatchMediaChangeListener(standaloneMatchMedia,(({matches:matches})=>{if(standalone&&fullScreenMatchMedia.matches){return}standalone=matches}))}}});function numberAsPixels(value){return typeof value==="number"?`${value}px`:value}function createFastDomNode(domNode){return new FastDomNode(domNode)}var FastDomNode;var init_fastDomNode=__esm({"node_modules/monaco-editor/esm/vs/base/browser/fastDomNode.js"(){FastDomNode=class{constructor(domNode){this.domNode=domNode;this._maxWidth="";this._width="";this._height="";this._top="";this._left="";this._bottom="";this._right="";this._paddingLeft="";this._fontFamily="";this._fontWeight="";this._fontSize="";this._fontStyle="";this._fontFeatureSettings="";this._fontVariationSettings="";this._textDecoration="";this._lineHeight="";this._letterSpacing="";this._className="";this._display="";this._position="";this._visibility="";this._color="";this._backgroundColor="";this._layerHint=false;this._contain="none";this._boxShadow=""}setMaxWidth(_maxWidth){const maxWidth=numberAsPixels(_maxWidth);if(this._maxWidth===maxWidth){return}this._maxWidth=maxWidth;this.domNode.style.maxWidth=this._maxWidth}setWidth(_width){const width=numberAsPixels(_width);if(this._width===width){return}this._width=width;this.domNode.style.width=this._width}setHeight(_height){const height=numberAsPixels(_height);if(this._height===height){return}this._height=height;this.domNode.style.height=this._height}setTop(_top){const top=numberAsPixels(_top);if(this._top===top){return}this._top=top;this.domNode.style.top=this._top}setLeft(_left){const left=numberAsPixels(_left);if(this._left===left){return}this._left=left;this.domNode.style.left=this._left}setBottom(_bottom){const bottom=numberAsPixels(_bottom);if(this._bottom===bottom){return}this._bottom=bottom;this.domNode.style.bottom=this._bottom}setRight(_right){const right=numberAsPixels(_right);if(this._right===right){return}this._right=right;this.domNode.style.right=this._right}setPaddingLeft(_paddingLeft){const paddingLeft=numberAsPixels(_paddingLeft);if(this._paddingLeft===paddingLeft){return}this._paddingLeft=paddingLeft;this.domNode.style.paddingLeft=this._paddingLeft}setFontFamily(fontFamily){if(this._fontFamily===fontFamily){return}this._fontFamily=fontFamily;this.domNode.style.fontFamily=this._fontFamily}setFontWeight(fontWeight){if(this._fontWeight===fontWeight){return}this._fontWeight=fontWeight;this.domNode.style.fontWeight=this._fontWeight}setFontSize(_fontSize){const fontSize=numberAsPixels(_fontSize);if(this._fontSize===fontSize){return}this._fontSize=fontSize;this.domNode.style.fontSize=this._fontSize}setFontStyle(fontStyle){if(this._fontStyle===fontStyle){return}this._fontStyle=fontStyle;this.domNode.style.fontStyle=this._fontStyle}setFontFeatureSettings(fontFeatureSettings){if(this._fontFeatureSettings===fontFeatureSettings){return}this._fontFeatureSettings=fontFeatureSettings;this.domNode.style.fontFeatureSettings=this._fontFeatureSettings}setFontVariationSettings(fontVariationSettings){if(this._fontVariationSettings===fontVariationSettings){return}this._fontVariationSettings=fontVariationSettings;this.domNode.style.fontVariationSettings=this._fontVariationSettings}setTextDecoration(textDecoration){if(this._textDecoration===textDecoration){return}this._textDecoration=textDecoration;this.domNode.style.textDecoration=this._textDecoration}setLineHeight(_lineHeight){const lineHeight=numberAsPixels(_lineHeight);if(this._lineHeight===lineHeight){return}this._lineHeight=lineHeight;this.domNode.style.lineHeight=this._lineHeight}setLetterSpacing(_letterSpacing){const letterSpacing=numberAsPixels(_letterSpacing);if(this._letterSpacing===letterSpacing){return}this._letterSpacing=letterSpacing;this.domNode.style.letterSpacing=this._letterSpacing}setClassName(className){if(this._className===className){return}this._className=className;this.domNode.className=this._className}toggleClassName(className,shouldHaveIt){this.domNode.classList.toggle(className,shouldHaveIt);this._className=this.domNode.className}setDisplay(display){if(this._display===display){return}this._display=display;this.domNode.style.display=this._display}setPosition(position){if(this._position===position){return}this._position=position;this.domNode.style.position=this._position}setVisibility(visibility){if(this._visibility===visibility){return}this._visibility=visibility;this.domNode.style.visibility=this._visibility}setColor(color){if(this._color===color){return}this._color=color;this.domNode.style.color=this._color}setBackgroundColor(backgroundColor){if(this._backgroundColor===backgroundColor){return}this._backgroundColor=backgroundColor;this.domNode.style.backgroundColor=this._backgroundColor}setLayerHinting(layerHint){if(this._layerHint===layerHint){return}this._layerHint=layerHint;this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":""}setBoxShadow(boxShadow){if(this._boxShadow===boxShadow){return}this._boxShadow=boxShadow;this.domNode.style.boxShadow=boxShadow}setContain(contain){if(this._contain===contain){return}this._contain=contain;this.domNode.style.contain=this._contain}setAttribute(name,value){this.domNode.setAttribute(name,value)}removeAttribute(name){this.domNode.removeAttribute(name)}appendChild(child){this.domNode.appendChild(child.domNode)}removeChild(child){this.domNode.removeChild(child.domNode)}}}});function applyFontInfo(domNode,fontInfo){if(domNode instanceof FastDomNode){domNode.setFontFamily(fontInfo.getMassagedFontFamily());domNode.setFontWeight(fontInfo.fontWeight);domNode.setFontSize(fontInfo.fontSize);domNode.setFontFeatureSettings(fontInfo.fontFeatureSettings);domNode.setFontVariationSettings(fontInfo.fontVariationSettings);domNode.setLineHeight(fontInfo.lineHeight);domNode.setLetterSpacing(fontInfo.letterSpacing)}else{domNode.style.fontFamily=fontInfo.getMassagedFontFamily();domNode.style.fontWeight=fontInfo.fontWeight;domNode.style.fontSize=fontInfo.fontSize+"px";domNode.style.fontFeatureSettings=fontInfo.fontFeatureSettings;domNode.style.fontVariationSettings=fontInfo.fontVariationSettings;domNode.style.lineHeight=fontInfo.lineHeight+"px";domNode.style.letterSpacing=fontInfo.letterSpacing+"px"}}var init_domFontInfo=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/config/domFontInfo.js"(){init_fastDomNode()}});function readCharWidths(bareFontInfo,requests){const reader=new DomCharWidthReader(bareFontInfo,requests);reader.read()}var CharWidthRequest,DomCharWidthReader;var init_charWidthReader=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/config/charWidthReader.js"(){init_domFontInfo();CharWidthRequest=class{constructor(chr,type){this.chr=chr;this.type=type;this.width=0}fulfill(width){this.width=width}};DomCharWidthReader=class{constructor(bareFontInfo,requests){this._bareFontInfo=bareFontInfo;this._requests=requests;this._container=null;this._testElements=null}read(){this._createDomElements();document.body.appendChild(this._container);this._readFromDomElements();document.body.removeChild(this._container);this._container=null;this._testElements=null}_createDomElements(){const container=document.createElement("div");container.style.position="absolute";container.style.top="-50000px";container.style.width="50000px";const regularDomNode=document.createElement("div");applyFontInfo(regularDomNode,this._bareFontInfo);container.appendChild(regularDomNode);const boldDomNode=document.createElement("div");applyFontInfo(boldDomNode,this._bareFontInfo);boldDomNode.style.fontWeight="bold";container.appendChild(boldDomNode);const italicDomNode=document.createElement("div");applyFontInfo(italicDomNode,this._bareFontInfo);italicDomNode.style.fontStyle="italic";container.appendChild(italicDomNode);const testElements=[];for(const request of this._requests){let parent;if(request.type===0){parent=regularDomNode}if(request.type===2){parent=boldDomNode}if(request.type===1){parent=italicDomNode}parent.appendChild(document.createElement("br"));const testElement=document.createElement("span");DomCharWidthReader._render(testElement,request);parent.appendChild(testElement);testElements.push(testElement)}this._container=container;this._testElements=testElements}static _render(testElement,request){if(request.chr===" "){let htmlString=" ";for(let i=0;i<8;i++){htmlString+=htmlString}testElement.innerText=htmlString}else{let testString=request.chr;for(let i=0;i<8;i++){testString+=testString}testElement.textContent=testString}}_readFromDomElements(){for(let i=0,len=this._requests.length;i{this._evictUntrustedReadingsTimeout=-1;this._evictUntrustedReadings()}),5e3)}}_evictUntrustedReadings(){const values=this._cache.getValues();let somethingRemoved=false;for(const item of values){if(!item.isTrusted){somethingRemoved=true;this._cache.remove(item)}}if(somethingRemoved){this._onDidChange.fire()}}readFontInfo(bareFontInfo){if(!this._cache.has(bareFontInfo)){let readConfig=this._actualReadFontInfo(bareFontInfo);if(readConfig.typicalHalfwidthCharacterWidth<=2||readConfig.typicalFullwidthCharacterWidth<=2||readConfig.spaceWidth<=2||readConfig.maxDigitWidth<=2){readConfig=new FontInfo({pixelRatio:PixelRatio.value,fontFamily:readConfig.fontFamily,fontWeight:readConfig.fontWeight,fontSize:readConfig.fontSize,fontFeatureSettings:readConfig.fontFeatureSettings,fontVariationSettings:readConfig.fontVariationSettings,lineHeight:readConfig.lineHeight,letterSpacing:readConfig.letterSpacing,isMonospace:readConfig.isMonospace,typicalHalfwidthCharacterWidth:Math.max(readConfig.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(readConfig.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:readConfig.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(readConfig.spaceWidth,5),middotWidth:Math.max(readConfig.middotWidth,5),wsmiddotWidth:Math.max(readConfig.wsmiddotWidth,5),maxDigitWidth:Math.max(readConfig.maxDigitWidth,5)},false)}this._writeToCache(bareFontInfo,readConfig)}return this._cache.get(bareFontInfo)}_createRequest(chr,type,all,monospace){const result=new CharWidthRequest(chr,type);all.push(result);monospace===null||monospace===void 0?void 0:monospace.push(result);return result}_actualReadFontInfo(bareFontInfo){const all=[];const monospace=[];const typicalHalfwidthCharacter=this._createRequest("n",0,all,monospace);const typicalFullwidthCharacter=this._createRequest("m",0,all,null);const space=this._createRequest(" ",0,all,monospace);const digit0=this._createRequest("0",0,all,monospace);const digit1=this._createRequest("1",0,all,monospace);const digit2=this._createRequest("2",0,all,monospace);const digit3=this._createRequest("3",0,all,monospace);const digit4=this._createRequest("4",0,all,monospace);const digit5=this._createRequest("5",0,all,monospace);const digit6=this._createRequest("6",0,all,monospace);const digit7=this._createRequest("7",0,all,monospace);const digit8=this._createRequest("8",0,all,monospace);const digit9=this._createRequest("9",0,all,monospace);const rightwardsArrow=this._createRequest("→",0,all,monospace);const halfwidthRightwardsArrow=this._createRequest("→",0,all,null);const middot=this._createRequest("·",0,all,monospace);const wsmiddotWidth=this._createRequest(String.fromCharCode(11825),0,all,null);const monospaceTestChars="|/-_ilm%";for(let i=0,len=monospaceTestChars.length;i.001){isMonospace=false;break}}let canUseHalfwidthRightwardsArrow=true;if(isMonospace&&halfwidthRightwardsArrow.width!==referenceWidth){canUseHalfwidthRightwardsArrow=false}if(halfwidthRightwardsArrow.width>rightwardsArrow.width){canUseHalfwidthRightwardsArrow=false}return new FontInfo({pixelRatio:PixelRatio.value,fontFamily:bareFontInfo.fontFamily,fontWeight:bareFontInfo.fontWeight,fontSize:bareFontInfo.fontSize,fontFeatureSettings:bareFontInfo.fontFeatureSettings,fontVariationSettings:bareFontInfo.fontVariationSettings,lineHeight:bareFontInfo.lineHeight,letterSpacing:bareFontInfo.letterSpacing,isMonospace:isMonospace,typicalHalfwidthCharacterWidth:typicalHalfwidthCharacter.width,typicalFullwidthCharacterWidth:typicalFullwidthCharacter.width,canUseHalfwidthRightwardsArrow:canUseHalfwidthRightwardsArrow,spaceWidth:space.width,middotWidth:middot.width,wsmiddotWidth:wsmiddotWidth.width,maxDigitWidth:maxDigitWidth},true)}};FontMeasurementsCache=class{constructor(){this._keys=Object.create(null);this._values=Object.create(null)}has(item){const itemId=item.getId();return!!this._values[itemId]}get(item){const itemId=item.getId();return this._values[itemId]}put(item,value){const itemId=item.getId();this._keys[itemId]=item;this._values[itemId]=value}remove(item){const itemId=item.getId();delete this._keys[itemId];delete this._values[itemId]}getValues(){return Object.keys(this._keys).map((id=>this._values[id]))}};FontMeasurements=new FontMeasurementsImpl}});function storeServiceDependency(id,target,index){if(target[_util.DI_TARGET]===target){target[_util.DI_DEPENDENCIES].push({id:id,index:index})}else{target[_util.DI_DEPENDENCIES]=[{id:id,index:index}];target[_util.DI_TARGET]=target}}function createDecorator(serviceId){if(_util.serviceIds.has(serviceId)){return _util.serviceIds.get(serviceId)}const id=function(target,key,index){if(arguments.length!==3){throw new Error("@IServiceName-decorator can only be used to decorate a parameter")}storeServiceDependency(id,target,index)};id.toString=()=>serviceId;_util.serviceIds.set(serviceId,id);return id}var _util,IInstantiationService;var init_instantiation=__esm({"node_modules/monaco-editor/esm/vs/platform/instantiation/common/instantiation.js"(){(function(_util2){_util2.serviceIds=new Map;_util2.DI_TARGET="$di$target";_util2.DI_DEPENDENCIES="$di$dependencies";function getServiceDependencies(ctor){return ctor[_util2.DI_DEPENDENCIES]||[]}_util2.getServiceDependencies=getServiceDependencies})(_util||(_util={}));IInstantiationService=createDecorator("instantiationService")}});var ICodeEditorService;var init_codeEditorService=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/services/codeEditorService.js"(){init_instantiation();ICodeEditorService=createDecorator("codeEditorService")}});function ok(value,message){if(!value){throw new Error(message?`Assertion failed (${message})`:"Assertion Failed")}}function assertNever(value,message="Unreachable"){throw new Error(message)}function assertFn(condition){if(!condition()){debugger;condition();onUnexpectedError(new BugIndicatingError("Assertion Failed"))}}function checkAdjacentItems(items,predicate){let i=0;while(i\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(token){switch(token.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return token.isTripleEq?"===":"==";case 4:return token.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return token.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return token.lexeme;case 18:return token.lexeme;case 19:return token.lexeme;case 20:return"EOF";default:throw illegalState(`unhandled token type: ${JSON.stringify(token)}; have you forgotten to add a case?`)}}reset(value){this._input=value;this._start=0;this._current=0;this._tokens=[];this._errors=[];return this}scan(){while(!this._isAtEnd()){this._start=this._current;const ch=this._advance();switch(ch){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const isTripleEq=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:isTripleEq})}else{this._addToken(2)}break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const isTripleEq=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:isTripleEq})}else if(this._match(126)){this._addToken(9)}else{this._error(hintDidYouMean("==","=~"))}break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:if(this._match(38)){this._addToken(15)}else{this._error(hintDidYouMean("&&"))}break;case 124:if(this._match(124)){this._addToken(16)}else{this._error(hintDidYouMean("||"))}break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}}this._start=this._current;this._addToken(20);return Array.from(this._tokens)}_match(expected){if(this._isAtEnd()){return false}if(this._input.charCodeAt(this._current)!==expected){return false}this._current++;return true}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(type){this._tokens.push({type:type,offset:this._start})}_error(additional){const offset=this._start;const lexeme=this._input.substring(this._start,this._current);const errToken={type:19,offset:this._start,lexeme:lexeme};this._errors.push({offset:offset,lexeme:lexeme,additionalInfo:additional});this._tokens.push(errToken)}_string(){this.stringRe.lastIndex=this._start;const match2=this.stringRe.exec(this._input);if(match2){this._current=this._start+match2[0].length;const lexeme=this._input.substring(this._start,this._current);const keyword=Scanner._keywords.get(lexeme);if(keyword){this._addToken(keyword)}else{this._tokens.push({type:17,lexeme:lexeme,offset:this._start})}}}_quotedString(){while(this._peek()!==39&&!this._isAtEnd()){this._advance()}if(this._isAtEnd()){this._error(hintDidYouForgetToOpenOrCloseQuote);return}this._advance();this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let p=this._current;let inEscape=false;let inCharacterClass=false;while(true){if(p>=this._input.length){this._current=p;this._error(hintDidYouForgetToEscapeSlash);return}const ch=this._input.charCodeAt(p);if(inEscape){inEscape=false}else if(ch===47&&!inCharacterClass){p++;break}else if(ch===91){inCharacterClass=true}else if(ch===92){inEscape=true}else if(ch===93){inCharacterClass=false}p++}while(p=this._input.length}};Scanner._regexFlags=new Set(["i","g","s","m","y","u"].map((ch=>ch.charCodeAt(0))));Scanner._keywords=new Map([["not",14],["in",13],["false",12],["true",11]])}});function expressionsAreEqualWithConstantSubstitution(a,b){const aExpr=a?a.substituteConstants():void 0;const bExpr=b?b.substituteConstants():void 0;if(!aExpr&&!bExpr){return true}if(!aExpr||!bExpr){return false}return aExpr.equals(bExpr)}function cmp(a,b){return a.cmp(b)}function withFloatOrStr(value,callback){if(typeof value==="string"){const n=parseFloat(value);if(!isNaN(n)){value=n}}if(typeof value==="string"||typeof value==="number"){return callback(value)}return ContextKeyFalseExpr.INSTANCE}function eliminateConstantsInArray(arr){let newArr=null;for(let i=0,len=arr.length;ikey2){return 1}return 0}function cmp2(key1,value1,key2,value2){if(key1key2){return 1}if(value1value2){return 1}return 0}function implies(p,q){if(p.type===0||q.type===1){return true}if(p.type===9){if(q.type===9){return allElementsIncluded(p.expr,q.expr)}return false}if(q.type===9){for(const element of q.expr){if(implies(p,element)){return true}}return false}if(p.type===6){if(q.type===6){return allElementsIncluded(q.expr,p.expr)}for(const element of p.expr){if(implies(element,q)){return true}}return false}return p.equals(q)}function allElementsIncluded(p,q){let pIndex=0;let qIndex=0;while(pIndex=0){const value=serializedValue.slice(start+1,end);const caseIgnoreFlag=serializedValue[end+1]==="i"?"i":"";try{regex=new RegExp(value,caseIgnoreFlag)}catch(_e2){throw this._errExpectedButGot(`REGEX`,expr)}}}if(regex===null){throw this._errExpectedButGot("REGEX",expr)}return ContextKeyRegexExpr.create(key,regex)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,errorNoInAfterNot);const right=this._value();return ContextKeyExpr.notIn(key,right)}const maybeOp=this._peek().type;switch(maybeOp){case 3:{this._advance();const right=this._value();if(this._previous().type===18){return ContextKeyExpr.equals(key,right)}switch(right){case"true":return ContextKeyExpr.has(key);case"false":return ContextKeyExpr.not(key);default:return ContextKeyExpr.equals(key,right)}}case 4:{this._advance();const right=this._value();if(this._previous().type===18){return ContextKeyExpr.notEquals(key,right)}switch(right){case"true":return ContextKeyExpr.not(key);case"false":return ContextKeyExpr.has(key);default:return ContextKeyExpr.notEquals(key,right)}}case 5:this._advance();return ContextKeySmallerExpr.create(key,this._value());case 6:this._advance();return ContextKeySmallerEqualsExpr.create(key,this._value());case 7:this._advance();return ContextKeyGreaterExpr.create(key,this._value());case 8:this._advance();return ContextKeyGreaterEqualsExpr.create(key,this._value());case 13:this._advance();return ContextKeyExpr.in(key,this._value());default:return ContextKeyExpr.has(key)}}case 20:this._parsingErrors.push({message:errorUnexpectedEOF,offset:peek.offset,lexeme:"",additionalInfo:hintUnexpectedEOF});throw Parser._parseError;default:throw this._errExpectedButGot(`true | false | KEY \n\t| KEY '=~' REGEX \n\t| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const token=this._peek();switch(token.type){case 17:case 18:this._advance();return token.lexeme;case 11:this._advance();return"true";case 12:this._advance();return"false";case 13:this._advance();return"in";default:return""}}_removeFlagsGY(flags){return flags.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(token){if(this._check(token)){this._advance();return true}return false}_advance(){if(!this._isAtEnd()){this._current++}return this._previous()}_consume(type,message){if(this._check(type)){return this._advance()}throw this._errExpectedButGot(message,this._peek())}_errExpectedButGot(expected,got,additionalInfo){const message=localize("contextkey.parser.error.expectedButGot","Expected: {0}\nReceived: '{1}'.",expected,Scanner.getLexeme(got));const offset=got.offset;const lexeme=Scanner.getLexeme(got);this._parsingErrors.push({message:message,offset:offset,lexeme:lexeme,additionalInfo:additionalInfo});return Parser._parseError}_check(type){return this._peek().type===type}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}};Parser._parseError=new Error;ContextKeyExpr=class{static false(){return ContextKeyFalseExpr.INSTANCE}static true(){return ContextKeyTrueExpr.INSTANCE}static has(key){return ContextKeyDefinedExpr.create(key)}static equals(key,value){return ContextKeyEqualsExpr.create(key,value)}static notEquals(key,value){return ContextKeyNotEqualsExpr.create(key,value)}static regex(key,value){return ContextKeyRegexExpr.create(key,value)}static in(key,value){return ContextKeyInExpr.create(key,value)}static notIn(key,value){return ContextKeyNotInExpr.create(key,value)}static not(key){return ContextKeyNotExpr.create(key)}static and(...expr){return ContextKeyAndExpr.create(expr,null,true)}static or(...expr){return ContextKeyOrExpr.create(expr,null,true)}static deserialize(serialized){if(serialized===void 0||serialized===null){return void 0}const expr=this._parser.parse(serialized);return expr}};ContextKeyExpr._parser=new Parser({regexParsingWithErrorRecovery:false});ContextKeyFalseExpr=class{constructor(){this.type=0}cmp(other){return this.type-other.type}equals(other){return other.type===this.type}substituteConstants(){return this}evaluate(context){return false}serialize(){return"false"}keys(){return[]}negate(){return ContextKeyTrueExpr.INSTANCE}};ContextKeyFalseExpr.INSTANCE=new ContextKeyFalseExpr;ContextKeyTrueExpr=class{constructor(){this.type=1}cmp(other){return this.type-other.type}equals(other){return other.type===this.type}substituteConstants(){return this}evaluate(context){return true}serialize(){return"true"}keys(){return[]}negate(){return ContextKeyFalseExpr.INSTANCE}};ContextKeyTrueExpr.INSTANCE=new ContextKeyTrueExpr;ContextKeyDefinedExpr=class{static create(key,negated=null){const constantValue=CONSTANT_VALUES.get(key);if(typeof constantValue==="boolean"){return constantValue?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE}return new ContextKeyDefinedExpr(key,negated)}constructor(key,negated){this.key=key;this.negated=negated;this.type=2}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp1(this.key,other.key)}equals(other){if(other.type===this.type){return this.key===other.key}return false}substituteConstants(){const constantValue=CONSTANT_VALUES.get(this.key);if(typeof constantValue==="boolean"){return constantValue?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE}return this}evaluate(context){return!!context.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){if(!this.negated){this.negated=ContextKeyNotExpr.create(this.key,this)}return this.negated}};ContextKeyEqualsExpr=class{static create(key,value,negated=null){if(typeof value==="boolean"){return value?ContextKeyDefinedExpr.create(key,negated):ContextKeyNotExpr.create(key,negated)}const constantValue=CONSTANT_VALUES.get(key);if(typeof constantValue==="boolean"){const trueValue=constantValue?"true":"false";return value===trueValue?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE}return new ContextKeyEqualsExpr(key,value,negated)}constructor(key,value,negated){this.key=key;this.value=value;this.negated=negated;this.type=4}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp2(this.key,this.value,other.key,other.value)}equals(other){if(other.type===this.type){return this.key===other.key&&this.value===other.value}return false}substituteConstants(){const constantValue=CONSTANT_VALUES.get(this.key);if(typeof constantValue==="boolean"){const trueValue=constantValue?"true":"false";return this.value===trueValue?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE}return this}evaluate(context){return context.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){if(!this.negated){this.negated=ContextKeyNotEqualsExpr.create(this.key,this.value,this)}return this.negated}};ContextKeyInExpr=class{static create(key,valueKey){return new ContextKeyInExpr(key,valueKey)}constructor(key,valueKey){this.key=key;this.valueKey=valueKey;this.type=10;this.negated=null}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp2(this.key,this.valueKey,other.key,other.valueKey)}equals(other){if(other.type===this.type){return this.key===other.key&&this.valueKey===other.valueKey}return false}substituteConstants(){return this}evaluate(context){const source=context.getValue(this.valueKey);const item=context.getValue(this.key);if(Array.isArray(source)){return source.includes(item)}if(typeof item==="string"&&typeof source==="object"&&source!==null){return hasOwnProperty.call(source,item)}return false}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){if(!this.negated){this.negated=ContextKeyNotInExpr.create(this.key,this.valueKey)}return this.negated}};ContextKeyNotInExpr=class{static create(key,valueKey){return new ContextKeyNotInExpr(key,valueKey)}constructor(key,valueKey){this.key=key;this.valueKey=valueKey;this.type=11;this._negated=ContextKeyInExpr.create(key,valueKey)}cmp(other){if(other.type!==this.type){return this.type-other.type}return this._negated.cmp(other._negated)}equals(other){if(other.type===this.type){return this._negated.equals(other._negated)}return false}substituteConstants(){return this}evaluate(context){return!this._negated.evaluate(context)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}};ContextKeyNotEqualsExpr=class{static create(key,value,negated=null){if(typeof value==="boolean"){if(value){return ContextKeyNotExpr.create(key,negated)}return ContextKeyDefinedExpr.create(key,negated)}const constantValue=CONSTANT_VALUES.get(key);if(typeof constantValue==="boolean"){const falseValue=constantValue?"true":"false";return value===falseValue?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE}return new ContextKeyNotEqualsExpr(key,value,negated)}constructor(key,value,negated){this.key=key;this.value=value;this.negated=negated;this.type=5}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp2(this.key,this.value,other.key,other.value)}equals(other){if(other.type===this.type){return this.key===other.key&&this.value===other.value}return false}substituteConstants(){const constantValue=CONSTANT_VALUES.get(this.key);if(typeof constantValue==="boolean"){const falseValue=constantValue?"true":"false";return this.value===falseValue?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE}return this}evaluate(context){return context.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){if(!this.negated){this.negated=ContextKeyEqualsExpr.create(this.key,this.value,this)}return this.negated}};ContextKeyNotExpr=class{static create(key,negated=null){const constantValue=CONSTANT_VALUES.get(key);if(typeof constantValue==="boolean"){return constantValue?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE}return new ContextKeyNotExpr(key,negated)}constructor(key,negated){this.key=key;this.negated=negated;this.type=3}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp1(this.key,other.key)}equals(other){if(other.type===this.type){return this.key===other.key}return false}substituteConstants(){const constantValue=CONSTANT_VALUES.get(this.key);if(typeof constantValue==="boolean"){return constantValue?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE}return this}evaluate(context){return!context.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){if(!this.negated){this.negated=ContextKeyDefinedExpr.create(this.key,this)}return this.negated}};ContextKeyGreaterExpr=class{static create(key,_value,negated=null){return withFloatOrStr(_value,(value=>new ContextKeyGreaterExpr(key,value,negated)))}constructor(key,value,negated){this.key=key;this.value=value;this.negated=negated;this.type=12}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp2(this.key,this.value,other.key,other.value)}equals(other){if(other.type===this.type){return this.key===other.key&&this.value===other.value}return false}substituteConstants(){return this}evaluate(context){if(typeof this.value==="string"){return false}return parseFloat(context.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){if(!this.negated){this.negated=ContextKeySmallerEqualsExpr.create(this.key,this.value,this)}return this.negated}};ContextKeyGreaterEqualsExpr=class{static create(key,_value,negated=null){return withFloatOrStr(_value,(value=>new ContextKeyGreaterEqualsExpr(key,value,negated)))}constructor(key,value,negated){this.key=key;this.value=value;this.negated=negated;this.type=13}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp2(this.key,this.value,other.key,other.value)}equals(other){if(other.type===this.type){return this.key===other.key&&this.value===other.value}return false}substituteConstants(){return this}evaluate(context){if(typeof this.value==="string"){return false}return parseFloat(context.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){if(!this.negated){this.negated=ContextKeySmallerExpr.create(this.key,this.value,this)}return this.negated}};ContextKeySmallerExpr=class{static create(key,_value,negated=null){return withFloatOrStr(_value,(value=>new ContextKeySmallerExpr(key,value,negated)))}constructor(key,value,negated){this.key=key;this.value=value;this.negated=negated;this.type=14}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp2(this.key,this.value,other.key,other.value)}equals(other){if(other.type===this.type){return this.key===other.key&&this.value===other.value}return false}substituteConstants(){return this}evaluate(context){if(typeof this.value==="string"){return false}return parseFloat(context.getValue(this.key))new ContextKeySmallerEqualsExpr(key,value,negated)))}constructor(key,value,negated){this.key=key;this.value=value;this.negated=negated;this.type=15}cmp(other){if(other.type!==this.type){return this.type-other.type}return cmp2(this.key,this.value,other.key,other.value)}equals(other){if(other.type===this.type){return this.key===other.key&&this.value===other.value}return false}substituteConstants(){return this}evaluate(context){if(typeof this.value==="string"){return false}return parseFloat(context.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){if(!this.negated){this.negated=ContextKeyGreaterExpr.create(this.key,this.value,this)}return this.negated}};ContextKeyRegexExpr=class{static create(key,regexp){return new ContextKeyRegexExpr(key,regexp)}constructor(key,regexp){this.key=key;this.regexp=regexp;this.type=7;this.negated=null}cmp(other){if(other.type!==this.type){return this.type-other.type}if(this.keyother.key){return 1}const thisSource=this.regexp?this.regexp.source:"";const otherSource=other.regexp?other.regexp.source:"";if(thisSourceotherSource){return 1}return 0}equals(other){if(other.type===this.type){const thisSource=this.regexp?this.regexp.source:"";const otherSource=other.regexp?other.regexp.source:"";return this.key===other.key&&thisSource===otherSource}return false}substituteConstants(){return this}evaluate(context){const value=context.getValue(this.key);return this.regexp?this.regexp.test(value):false}serialize(){const value=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${value}`}keys(){return[this.key]}negate(){if(!this.negated){this.negated=ContextKeyNotRegexExpr.create(this)}return this.negated}};ContextKeyNotRegexExpr=class{static create(actual){return new ContextKeyNotRegexExpr(actual)}constructor(_actual){this._actual=_actual;this.type=8}cmp(other){if(other.type!==this.type){return this.type-other.type}return this._actual.cmp(other._actual)}equals(other){if(other.type===this.type){return this._actual.equals(other._actual)}return false}substituteConstants(){return this}evaluate(context){return!this._actual.evaluate(context)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}};ContextKeyAndExpr=class{static create(_expr,negated,extraRedundantCheck){return ContextKeyAndExpr._normalizeArr(_expr,negated,extraRedundantCheck)}constructor(expr,negated){this.expr=expr;this.negated=negated;this.type=6}cmp(other){if(other.type!==this.type){return this.type-other.type}if(this.expr.lengthother.expr.length){return 1}for(let i=0,len=this.expr.length;i1){const lastElement=expr[expr.length-1];if(lastElement.type!==9){break}expr.pop();const secondToLastElement=expr.pop();const isFinished=expr.length===0;const resultElement=ContextKeyOrExpr.create(lastElement.expr.map((el=>ContextKeyAndExpr.create([el,secondToLastElement],null,extraRedundantCheck))),null,isFinished);if(resultElement){expr.push(resultElement);expr.sort(cmp)}}if(expr.length===1){return expr[0]}if(extraRedundantCheck){for(let i=0;ie.serialize())).join(" && ")}keys(){const result=[];for(const expr of this.expr){result.push(...expr.keys())}return result}negate(){if(!this.negated){const result=[];for(const expr of this.expr){result.push(expr.negate())}this.negated=ContextKeyOrExpr.create(result,this,true)}return this.negated}};ContextKeyOrExpr=class{static create(_expr,negated,extraRedundantCheck){return ContextKeyOrExpr._normalizeArr(_expr,negated,extraRedundantCheck)}constructor(expr,negated){this.expr=expr;this.negated=negated;this.type=9}cmp(other){if(other.type!==this.type){return this.type-other.type}if(this.expr.lengthother.expr.length){return 1}for(let i=0,len=this.expr.length;ie.serialize())).join(" || ")}keys(){const result=[];for(const expr of this.expr){result.push(...expr.keys())}return result}negate(){if(!this.negated){const result=[];for(const expr of this.expr){result.push(expr.negate())}while(result.length>1){const LEFT=result.shift();const RIGHT=result.shift();const all=[];for(const left of getTerminals(LEFT)){for(const right of getTerminals(RIGHT)){all.push(ContextKeyAndExpr.create([left,right],null,false))}}result.unshift(ContextKeyOrExpr.create(all,null,false))}this.negated=ContextKeyOrExpr.create(result,this,true)}return this.negated}};RawContextKey=class extends ContextKeyDefinedExpr{static all(){return RawContextKey._info.values()}constructor(key,defaultValue,metaOrHide){super(key,null);this._defaultValue=defaultValue;if(typeof metaOrHide==="object"){RawContextKey._info.push(Object.assign(Object.assign({},metaOrHide),{key:key}))}else if(metaOrHide!==true){RawContextKey._info.push({key:key,description:metaOrHide,type:defaultValue!==null&&defaultValue!==void 0?typeof defaultValue:void 0})}}bindTo(target){return target.createKey(this.key,this._defaultValue)}getValue(target){return target.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(value){return ContextKeyEqualsExpr.create(this.key,value)}};RawContextKey._info=[];IContextKeyService=createDecorator("contextKeyService")}});var IAccessibilityService,CONTEXT_ACCESSIBILITY_MODE_ENABLED;var init_accessibility=__esm({"node_modules/monaco-editor/esm/vs/platform/accessibility/common/accessibility.js"(){init_contextkey();init_instantiation();IAccessibilityService=createDecorator("accessibilityService");CONTEXT_ACCESSIBILITY_MODE_ENABLED=new RawContextKey("accessibilityModeEnabled",false)}});var __decorate,__param,defaultOptions,DiffNavigator;var init_diffNavigator=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/widget/diffNavigator.js"(){init_assert();init_event();init_lifecycle();init_objects();init_range();init_audioCueService();init_codeEditorService();init_accessibility();__decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r};__param=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};defaultOptions={followsCaret:true,ignoreCharChanges:true,alwaysRevealFirst:true,findResultLoop:true};DiffNavigator=class DiffNavigator2 extends Disposable{constructor(editor2,options2={},_audioCueService,_codeEditorService,_accessibilityService){super();this._audioCueService=_audioCueService;this._codeEditorService=_codeEditorService;this._accessibilityService=_accessibilityService;this._onDidUpdate=this._register(new Emitter);this._editor=editor2;this._options=mixin(options2,defaultOptions,false);this.disposed=false;this.nextIdx=-1;this.ranges=[];this.ignoreSelectionChange=false;this.revealFirst=Boolean(this._options.alwaysRevealFirst);this._register(this._editor.onDidUpdateDiff((()=>this._onDiffUpdated())));if(this._options.followsCaret){this._register(this._editor.getModifiedEditor().onDidChangeCursorPosition((e=>{if(this.ignoreSelectionChange){return}this._updateAccessibilityState(e.position.lineNumber);this.nextIdx=-1})))}this._init()}_init(){const changes=this._editor.getLineChanges();if(!changes){return}}_onDiffUpdated(){this._init();this._compute(this._editor.getLineChanges());if(this.revealFirst){if(this._editor.getLineChanges()!==null){this.revealFirst=false;this.nextIdx=-1;this.next(1)}}}_compute(lineChanges){this.ranges=[];if(lineChanges){lineChanges.forEach((lineChange=>{if(!this._options.ignoreCharChanges&&lineChange.charChanges){lineChange.charChanges.forEach((charChange=>{this.ranges.push({rhs:true,range:new Range(charChange.modifiedStartLineNumber,charChange.modifiedStartColumn,charChange.modifiedEndLineNumber,charChange.modifiedEndColumn)})}))}else{if(lineChange.modifiedEndLineNumber===0){this.ranges.push({rhs:true,range:new Range(lineChange.modifiedStartLineNumber,1,lineChange.modifiedStartLineNumber+1,1)})}else{this.ranges.push({rhs:true,range:new Range(lineChange.modifiedStartLineNumber,1,lineChange.modifiedEndLineNumber+1,1)})}}}))}this.ranges.sort(((left,right)=>Range.compareRangesUsingStarts(left.range,right.range)));this._onDidUpdate.fire(this)}_initIdx(fwd){let found=false;const position=this._editor.getPosition();if(!position){this.nextIdx=0;return}for(let i=0,len=this.ranges.length;i=this.ranges.length){this.nextIdx=0}}else{this.nextIdx-=1;if(this.nextIdx<0){this.nextIdx=this.ranges.length-1}}const info=this.ranges[this.nextIdx];this.ignoreSelectionChange=true;try{const pos=info.range.getStartPosition();this._editor.setPosition(pos);this._editor.revealRangeInCenter(info.range,scrollType);this._updateAccessibilityState(pos.lineNumber,true)}finally{this.ignoreSelectionChange=false}}_updateAccessibilityState(lineNumber,jumpToChange){var _a6;const modifiedEditor=(_a6=this._editor.getModel())===null||_a6===void 0?void 0:_a6.modified;if(!modifiedEditor){return}const insertedOrModified=modifiedEditor.getLineDecorations(lineNumber).find((l=>l.options.className==="line-insert"));if(insertedOrModified){this._audioCueService.playAudioCue(AudioCue.diffLineModified,{allowManyInParallel:true})}else if(jumpToChange){this._audioCueService.playAudioCue(AudioCue.diffLineDeleted,{allowManyInParallel:true})}else{return}const codeEditor=this._codeEditorService.getActiveCodeEditor();if(jumpToChange&&codeEditor&&insertedOrModified&&this._accessibilityService.isScreenReaderOptimized()){codeEditor.setSelection({startLineNumber:lineNumber,startColumn:0,endLineNumber:lineNumber,endColumn:Number.MAX_VALUE});codeEditor.writeScreenReaderContent("diff-navigation")}}canNavigate(){return this.ranges&&this.ranges.length>0}next(scrollType=0){if(!this.canNavigateNext()){return}this._move(true,scrollType)}previous(scrollType=0){if(!this.canNavigatePrevious()){return}this._move(false,scrollType)}canNavigateNext(){return this.canNavigateLoop()||this.nextIdx0&&context.getLanguageId(firstTokenIndex-1)===desiredLanguageId){firstTokenIndex--}return new ScopedLineTokens(context,desiredLanguageId,firstTokenIndex,lastTokenIndex+1,context.getStartOffset(firstTokenIndex),context.getEndOffset(lastTokenIndex))}function ignoreBracketsInToken(standardTokenType){return(standardTokenType&3)!==0}var ScopedLineTokens;var init_supports=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/supports.js"(){ScopedLineTokens=class{constructor(actual,languageId,firstTokenIndex,lastTokenIndex,firstCharOffset,lastCharOffset){this._scopedLineTokensBrand=void 0;this._actual=actual;this.languageId=languageId;this._firstTokenIndex=firstTokenIndex;this._lastTokenIndex=lastTokenIndex;this.firstCharOffset=firstCharOffset;this._lastCharOffset=lastCharOffset}getLineContent(){const actualLineContent=this._actual.getLineContent();return actualLineContent.substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(offset){const actualLineContent=this._actual.getLineContent();return actualLineContent.substring(0,this.firstCharOffset+offset)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(offset){return this._actual.findTokenIndexAtOffset(offset+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(tokenIndex){return this._actual.getStandardTokenType(tokenIndex+this._firstTokenIndex)}}}});var CharacterPairSupport;var init_characterPair=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/supports/characterPair.js"(){init_languageConfiguration();CharacterPairSupport=class{constructor(config){if(config.autoClosingPairs){this._autoClosingPairs=config.autoClosingPairs.map((el=>new StandardAutoClosingPairConditional(el)))}else if(config.brackets){this._autoClosingPairs=config.brackets.map((b=>new StandardAutoClosingPairConditional({open:b[0],close:b[1]})))}else{this._autoClosingPairs=[]}if(config.__electricCharacterSupport&&config.__electricCharacterSupport.docComment){const docComment=config.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new StandardAutoClosingPairConditional({open:docComment.open,close:docComment.close||""}))}this._autoCloseBeforeForQuotes=typeof config.autoCloseBefore==="string"?config.autoCloseBefore:CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES;this._autoCloseBeforeForBrackets=typeof config.autoCloseBefore==="string"?config.autoCloseBefore:CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS;this._surroundingPairs=config.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(forQuotes){return forQuotes?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}};CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=";:.,=}])> \n\t";CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS="'\"`;:.,=}])> \n\t"}});function readUInt16LE(source,offset){return source[offset+0]<<0>>>0|source[offset+1]<<8>>>0}function writeUInt16LE(destination,value,offset){destination[offset+0]=value&255;value=value>>>8;destination[offset+1]=value&255}function readUInt32BE(source,offset){return source[offset]*Math.pow(2,24)+source[offset+1]*Math.pow(2,16)+source[offset+2]*Math.pow(2,8)+source[offset+3]}function writeUInt32BE(destination,value,offset){destination[offset+3]=value;value=value>>>8;destination[offset+2]=value;value=value>>>8;destination[offset+1]=value;value=value>>>8;destination[offset]=value}function readUInt8(source,offset){return source[offset]}function writeUInt8(destination,value,offset){destination[offset]=value}var hasBuffer,indexOfTable,textDecoder,VSBuffer;var init_buffer=__esm({"node_modules/monaco-editor/esm/vs/base/common/buffer.js"(){init_lazy();hasBuffer=typeof Buffer!=="undefined";indexOfTable=new Lazy((()=>new Uint8Array(256)));VSBuffer=class{static wrap(actual){if(hasBuffer&&!Buffer.isBuffer(actual)){actual=Buffer.from(actual.buffer,actual.byteOffset,actual.byteLength)}return new VSBuffer(actual)}constructor(buffer){this.buffer=buffer;this.byteLength=this.buffer.byteLength}toString(){if(hasBuffer){return this.buffer.toString()}else{if(!textDecoder){textDecoder=new TextDecoder}return textDecoder.decode(this.buffer)}}}}});function getUTF16LE_TextDecoder(){if(!_utf16LE_TextDecoder){_utf16LE_TextDecoder=new TextDecoder("UTF-16LE")}return _utf16LE_TextDecoder}function getUTF16BE_TextDecoder(){if(!_utf16BE_TextDecoder){_utf16BE_TextDecoder=new TextDecoder("UTF-16BE")}return _utf16BE_TextDecoder}function getPlatformTextDecoder(){if(!_platformTextDecoder){_platformTextDecoder=isLittleEndian()?getUTF16LE_TextDecoder():getUTF16BE_TextDecoder()}return _platformTextDecoder}function decodeUTF16LE(source,offset,len){const view=new Uint16Array(source.buffer,offset,len);if(len>0&&(view[0]===65279||view[0]===65534)){return compatDecodeUTF16LE(source,offset,len)}return getUTF16LE_TextDecoder().decode(view)}function compatDecodeUTF16LE(source,offset,len){const result=[];let resultLen=0;for(let i=0;i=this._capacity){this._flushBuffer();this._completedStrings[this._completedStrings.length]=str;return}for(let i=0;i[b[0].toLowerCase(),b[1].toLowerCase()]));const group3=[];for(let i=0;i{const[aOpen,aClose]=a;const[bOpen,bClose]=b;return aOpen===bOpen||aOpen===bClose||aClose===bOpen||aClose===bClose};const mergeGroups=(g1,g2)=>{const newG=Math.min(g1,g2);const oldG=Math.max(g1,g2);for(let i=0;i0){result.push({open:currentOpen,close:currentClose})}}return result}function collectSuperstrings(str,brackets,currentIndex,dest){for(let i=0,len=brackets.length;i=0){dest.push(open)}}for(const close of bracket.close){if(close.indexOf(str)>=0){dest.push(close)}}}}function lengthcmp(a,b){return a.length-b.length}function unique(arr){if(arr.length<=1){return arr}const result=[];const seen=new Set;for(const element of arr){if(seen.has(element)){continue}result.push(element);seen.add(element)}return result}function getRegexForBracketPair(open,close,brackets,currentIndex){let pieces=[];pieces=pieces.concat(open);pieces=pieces.concat(close);for(let i=0,len=pieces.length;inew RichEditBracket(languageId,index,b.open,b.close,getRegexForBracketPair(b.open,b.close,brackets,index),getReversedRegexForBracketPair(b.open,b.close,brackets,index))));this.forwardRegex=getRegexForBrackets(this.brackets);this.reversedRegex=getReversedRegexForBrackets(this.brackets);this.textIsBracket={};this.textIsOpenBracket={};this.maxBracketLength=0;for(const bracket of this.brackets){for(const open of bracket.open){this.textIsBracket[open]=bracket;this.textIsOpenBracket[open]=true;this.maxBracketLength=Math.max(this.maxBracketLength,open.length)}for(const close of bracket.close){this.textIsBracket[close]=bracket;this.textIsOpenBracket[close]=false;this.maxBracketLength=Math.max(this.maxBracketLength,close.length)}}}};toReversedString=function(){function reverse(str){const arr=new Uint16Array(str.length);let offset=0;for(let i=str.length-1;i>=0;i--){arr[offset++]=str.charCodeAt(i)}return getPlatformTextDecoder().decode(arr)}let lastInput=null;let lastOutput=null;return function toReversedString2(str){if(lastInput!==str){lastInput=str;lastOutput=reverse(lastInput)}return lastOutput}}();BracketsUtils=class{static _findPrevBracketInText(reversedBracketRegex,lineNumber,reversedText,offset){const m=reversedText.match(reversedBracketRegex);if(!m){return null}const matchOffset=reversedText.length-(m.index||0);const matchLength=m[0].length;const absoluteMatchOffset=offset+matchOffset;return new Range(lineNumber,absoluteMatchOffset-matchLength+1,lineNumber,absoluteMatchOffset+1)}static findPrevBracketInRange(reversedBracketRegex,lineNumber,lineText,startOffset,endOffset){const reversedLineText=toReversedString(lineText);const reversedSubstr=reversedLineText.substring(lineText.length-endOffset,lineText.length-startOffset);return this._findPrevBracketInText(reversedBracketRegex,lineNumber,reversedSubstr,startOffset)}static findNextBracketInText(bracketRegex,lineNumber,text2,offset){const m=text2.match(bracketRegex);if(!m){return null}const matchOffset=m.index||0;const matchLength=m[0].length;if(matchLength===0){return null}const absoluteMatchOffset=offset+matchOffset;return new Range(lineNumber,absoluteMatchOffset+1,lineNumber,absoluteMatchOffset+1+matchLength)}static findNextBracketInRange(bracketRegex,lineNumber,lineText,startOffset,endOffset){const substr=lineText.substring(startOffset,endOffset);return this.findNextBracketInText(bracketRegex,lineNumber,substr,startOffset)}}}});var BracketElectricCharacterSupport;var init_electricCharacter=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/supports/electricCharacter.js"(){init_arrays();init_supports();init_richEditBrackets();BracketElectricCharacterSupport=class{constructor(richEditBrackets){this._richEditBrackets=richEditBrackets}getElectricCharacters(){const result=[];if(this._richEditBrackets){for(const bracket of this._richEditBrackets.brackets){for(const close of bracket.close){const lastChar=close.charAt(close.length-1);result.push(lastChar)}}}return distinct(result)}onElectricCharacter(character,context,column){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0){return null}const tokenIndex=context.findTokenIndexAtOffset(column-1);if(ignoreBracketsInToken(context.getStandardTokenType(tokenIndex))){return null}const reversedBracketRegex=this._richEditBrackets.reversedRegex;const text2=context.getLineContent().substring(0,column-1)+character;const r=BracketsUtils.findPrevBracketInRange(reversedBracketRegex,1,text2,0,text2.length);if(!r){return null}const bracketText=text2.substring(r.startColumn-1,r.endColumn-1).toLowerCase();const isOpen=this._richEditBrackets.textIsOpenBracket[bracketText];if(isOpen){return null}const textBeforeBracket=context.getActualLineContentBefore(r.startColumn-1);if(!/^\s*$/.test(textBeforeBracket)){return null}return{matchOpenBracket:bracketText}}}}});function resetGlobalRegex(reg){if(reg.global){reg.lastIndex=0}return true}var IndentRulesSupport;var init_indentRules=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/supports/indentRules.js"(){IndentRulesSupport=class{constructor(indentationRules){this._indentationRules=indentationRules}shouldIncrease(text2){if(this._indentationRules){if(this._indentationRules.increaseIndentPattern&&resetGlobalRegex(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(text2)){return true}}return false}shouldDecrease(text2){if(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&resetGlobalRegex(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(text2)){return true}return false}shouldIndentNextLine(text2){if(this._indentationRules&&this._indentationRules.indentNextLinePattern&&resetGlobalRegex(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(text2)){return true}return false}shouldIgnore(text2){if(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&resetGlobalRegex(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(text2)){return true}return false}getIndentMetadata(text2){let ret=0;if(this.shouldIncrease(text2)){ret+=1}if(this.shouldDecrease(text2)){ret+=2}if(this.shouldIndentNextLine(text2)){ret+=4}if(this.shouldIgnore(text2)){ret+=8}return ret}}}});var OnEnterSupport;var init_onEnter=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/supports/onEnter.js"(){init_errors();init_strings();init_languageConfiguration();OnEnterSupport=class{constructor(opts){opts=opts||{};opts.brackets=opts.brackets||[["(",")"],["{","}"],["[","]"]];this._brackets=[];opts.brackets.forEach((bracket=>{const openRegExp=OnEnterSupport._createOpenBracketRegExp(bracket[0]);const closeRegExp=OnEnterSupport._createCloseBracketRegExp(bracket[1]);if(openRegExp&&closeRegExp){this._brackets.push({open:bracket[0],openRegExp:openRegExp,close:bracket[1],closeRegExp:closeRegExp})}}));this._regExpRules=opts.onEnterRules||[]}onEnter(autoIndent,previousLineText,beforeEnterText,afterEnterText){if(autoIndent>=3){for(let i=0,len=this._regExpRules.length;i{if(!obj.reg){return true}obj.reg.lastIndex=0;return obj.reg.test(obj.text)}));if(regResult){return rule.action}}}if(autoIndent>=2){if(beforeEnterText.length>0&&afterEnterText.length>0){for(let i=0,len=this._brackets.length;i=2){if(beforeEnterText.length>0){for(let i=0,len=this._brackets.length;i0&&id.charAt(id.length-1)==="#"){return id.substring(0,id.length-1)}return id}var Extensions,JSONContributionRegistry,jsonContributionRegistry;var init_jsonContributionRegistry=__esm({"node_modules/monaco-editor/esm/vs/platform/jsonschemas/common/jsonContributionRegistry.js"(){init_event();init_platform2();Extensions={JSONContribution:"base.contributions.json"};JSONContributionRegistry=class{constructor(){this._onDidChangeSchema=new Emitter;this.schemasById={}}registerSchema(uri,unresolvedSchemaContent){this.schemasById[normalizeId(uri)]=unresolvedSchemaContent;this._onDidChangeSchema.fire(uri)}notifySchemaChanged(uri){this._onDidChangeSchema.fire(uri)}};jsonContributionRegistry=new JSONContributionRegistry;Registry.add(Extensions.JSONContribution,jsonContributionRegistry)}});function overrideIdentifiersFromKey(key){const identifiers=[];if(OVERRIDE_PROPERTY_REGEX.test(key)){let matches=OVERRIDE_IDENTIFIER_REGEX.exec(key);while(matches===null||matches===void 0?void 0:matches.length){const identifier2=matches[1].trim();if(identifier2){identifiers.push(identifier2)}matches=OVERRIDE_IDENTIFIER_REGEX.exec(key)}}return distinct(identifiers)}function getDefaultValue(type){const t2=Array.isArray(type)?type[0]:type;switch(t2){case"boolean":return false;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}function validateProperty(property,schema){var _a6,_b3,_c2,_d2;if(!property.trim()){return localize("config.property.empty","Cannot register an empty property")}if(OVERRIDE_PROPERTY_REGEX.test(property)){return localize("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",property)}if(configurationRegistry.getConfigurationProperties()[property]!==void 0){return localize("config.property.duplicate","Cannot register '{0}'. This property is already registered.",property)}if(((_a6=schema.policy)===null||_a6===void 0?void 0:_a6.name)&&configurationRegistry.getPolicyConfigurations().get((_b3=schema.policy)===null||_b3===void 0?void 0:_b3.name)!==void 0){return localize("config.policy.duplicate","Cannot register '{0}'. The associated policy {1} is already registered with {2}.",property,(_c2=schema.policy)===null||_c2===void 0?void 0:_c2.name,configurationRegistry.getPolicyConfigurations().get((_d2=schema.policy)===null||_d2===void 0?void 0:_d2.name))}return null}var Extensions2,allSettings,applicationSettings,machineSettings,machineOverridableSettings,windowSettings,resourceSettings,resourceLanguageSettingsSchemaId,contributionRegistry,ConfigurationRegistry,OVERRIDE_IDENTIFIER_PATTERN,OVERRIDE_IDENTIFIER_REGEX,OVERRIDE_PROPERTY_PATTERN,OVERRIDE_PROPERTY_REGEX,configurationRegistry;var init_configurationRegistry=__esm({"node_modules/monaco-editor/esm/vs/platform/configuration/common/configurationRegistry.js"(){init_arrays();init_event();init_types();init_nls();init_configuration();init_jsonContributionRegistry();init_platform2();Extensions2={Configuration:"base.contributions.configuration"};allSettings={properties:{},patternProperties:{}};applicationSettings={properties:{},patternProperties:{}};machineSettings={properties:{},patternProperties:{}};machineOverridableSettings={properties:{},patternProperties:{}};windowSettings={properties:{},patternProperties:{}};resourceSettings={properties:{},patternProperties:{}};resourceLanguageSettingsSchemaId="vscode://schemas/settings/resourceLanguage";contributionRegistry=Registry.as(Extensions.JSONContribution);ConfigurationRegistry=class{constructor(){this.overrideIdentifiers=new Set;this._onDidSchemaChange=new Emitter;this._onDidUpdateConfiguration=new Emitter;this.configurationDefaultsOverrides=new Map;this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:localize("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}};this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode];this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:true,allowTrailingCommas:true,allowComments:true};this.configurationProperties={};this.policyConfigurations=new Map;this.excludedConfigurationProperties={};contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema);this.registerOverridePropertyPatternKey()}registerConfiguration(configuration,validate=true){this.registerConfigurations([configuration],validate)}registerConfigurations(configurations,validate=true){const properties=new Set;this.doRegisterConfigurations(configurations,validate,properties);contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema);this._onDidSchemaChange.fire();this._onDidUpdateConfiguration.fire({properties:properties})}registerDefaultConfigurations(configurationDefaults){const properties=new Set;this.doRegisterDefaultConfigurations(configurationDefaults,properties);this._onDidSchemaChange.fire();this._onDidUpdateConfiguration.fire({properties:properties,defaultsOverrides:true})}doRegisterDefaultConfigurations(configurationDefaults,bucket){var _a6;const overrideIdentifiers=[];for(const{overrides:overrides,source:source}of configurationDefaults){for(const key in overrides){bucket.add(key);if(OVERRIDE_PROPERTY_REGEX.test(key)){const configurationDefaultOverride=this.configurationDefaultsOverrides.get(key);const valuesSources=(_a6=configurationDefaultOverride===null||configurationDefaultOverride===void 0?void 0:configurationDefaultOverride.valuesSources)!==null&&_a6!==void 0?_a6:new Map;if(source){for(const configuration of Object.keys(overrides[key])){valuesSources.set(configuration,source)}}const defaultValue=Object.assign(Object.assign({},(configurationDefaultOverride===null||configurationDefaultOverride===void 0?void 0:configurationDefaultOverride.value)||{}),overrides[key]);this.configurationDefaultsOverrides.set(key,{source:source,value:defaultValue,valuesSources:valuesSources});const plainKey=getLanguageTagSettingPlainKey(key);const property={type:"object",default:defaultValue,description:localize("defaultLanguageConfiguration.description","Configure settings to be overridden for the {0} language.",plainKey),$ref:resourceLanguageSettingsSchemaId,defaultDefaultValue:defaultValue,source:isString(source)?void 0:source,defaultValueSource:source};overrideIdentifiers.push(...overrideIdentifiersFromKey(key));this.configurationProperties[key]=property;this.defaultLanguageConfigurationOverridesNode.properties[key]=property}else{this.configurationDefaultsOverrides.set(key,{value:overrides[key],source:source});const property=this.configurationProperties[key];if(property){this.updatePropertyDefaultValue(key,property);this.updateSchema(key,property)}}}}this.doRegisterOverrideIdentifiers(overrideIdentifiers)}registerOverrideIdentifiers(overrideIdentifiers){this.doRegisterOverrideIdentifiers(overrideIdentifiers);this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(overrideIdentifiers){for(const overrideIdentifier of overrideIdentifiers){this.overrideIdentifiers.add(overrideIdentifier)}this.updateOverridePropertyPatternKey()}doRegisterConfigurations(configurations,validate,bucket){configurations.forEach((configuration=>{this.validateAndRegisterProperties(configuration,validate,configuration.extensionInfo,configuration.restrictedProperties,void 0,bucket);this.configurationContributors.push(configuration);this.registerJSONConfiguration(configuration)}))}validateAndRegisterProperties(configuration,validate=true,extensionInfo,restrictedProperties,scope=3,bucket){var _a6;scope=isUndefinedOrNull(configuration.scope)?scope:configuration.scope;const properties=configuration.properties;if(properties){for(const key in properties){const property=properties[key];if(validate&&validateProperty(key,property)){delete properties[key];continue}property.source=extensionInfo;property.defaultDefaultValue=properties[key].default;this.updatePropertyDefaultValue(key,property);if(OVERRIDE_PROPERTY_REGEX.test(key)){property.scope=void 0}else{property.scope=isUndefinedOrNull(property.scope)?scope:property.scope;property.restricted=isUndefinedOrNull(property.restricted)?!!(restrictedProperties===null||restrictedProperties===void 0?void 0:restrictedProperties.includes(key)):property.restricted}if(properties[key].hasOwnProperty("included")&&!properties[key].included){this.excludedConfigurationProperties[key]=properties[key];delete properties[key];continue}else{this.configurationProperties[key]=properties[key];if((_a6=properties[key].policy)===null||_a6===void 0?void 0:_a6.name){this.policyConfigurations.set(properties[key].policy.name,key)}}if(!properties[key].deprecationMessage&&properties[key].markdownDeprecationMessage){properties[key].deprecationMessage=properties[key].markdownDeprecationMessage}bucket.add(key)}}const subNodes=configuration.allOf;if(subNodes){for(const node of subNodes){this.validateAndRegisterProperties(node,validate,extensionInfo,restrictedProperties,scope,bucket)}}}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(configuration){const register4=configuration2=>{const properties=configuration2.properties;if(properties){for(const key in properties){this.updateSchema(key,properties[key])}}const subNodes=configuration2.allOf;subNodes===null||subNodes===void 0?void 0:subNodes.forEach(register4)};register4(configuration)}updateSchema(key,property){allSettings.properties[key]=property;switch(property.scope){case 1:applicationSettings.properties[key]=property;break;case 2:machineSettings.properties[key]=property;break;case 6:machineOverridableSettings.properties[key]=property;break;case 3:windowSettings.properties[key]=property;break;case 4:resourceSettings.properties[key]=property;break;case 5:resourceSettings.properties[key]=property;this.resourceLanguageSettingsSchema.properties[key]=property;break}}updateOverridePropertyPatternKey(){for(const overrideIdentifier of this.overrideIdentifiers.values()){const overrideIdentifierProperty=`[${overrideIdentifier}]`;const resourceLanguagePropertiesSchema={type:"object",description:localize("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:localize("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:resourceLanguageSettingsSchemaId};this.updatePropertyDefaultValue(overrideIdentifierProperty,resourceLanguagePropertiesSchema);allSettings.properties[overrideIdentifierProperty]=resourceLanguagePropertiesSchema;applicationSettings.properties[overrideIdentifierProperty]=resourceLanguagePropertiesSchema;machineSettings.properties[overrideIdentifierProperty]=resourceLanguagePropertiesSchema;machineOverridableSettings.properties[overrideIdentifierProperty]=resourceLanguagePropertiesSchema;windowSettings.properties[overrideIdentifierProperty]=resourceLanguagePropertiesSchema;resourceSettings.properties[overrideIdentifierProperty]=resourceLanguagePropertiesSchema}}registerOverridePropertyPatternKey(){const resourceLanguagePropertiesSchema={type:"object",description:localize("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:localize("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:resourceLanguageSettingsSchemaId};allSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN]=resourceLanguagePropertiesSchema;applicationSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN]=resourceLanguagePropertiesSchema;machineSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN]=resourceLanguagePropertiesSchema;machineOverridableSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN]=resourceLanguagePropertiesSchema;windowSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN]=resourceLanguagePropertiesSchema;resourceSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN]=resourceLanguagePropertiesSchema;this._onDidSchemaChange.fire()}updatePropertyDefaultValue(key,property){const configurationdefaultOverride=this.configurationDefaultsOverrides.get(key);let defaultValue=configurationdefaultOverride===null||configurationdefaultOverride===void 0?void 0:configurationdefaultOverride.value;let defaultSource=configurationdefaultOverride===null||configurationdefaultOverride===void 0?void 0:configurationdefaultOverride.source;if(isUndefined(defaultValue)){defaultValue=property.defaultDefaultValue;defaultSource=void 0}if(isUndefined(defaultValue)){defaultValue=getDefaultValue(property.type)}property.default=defaultValue;property.defaultValueSource=defaultSource}};OVERRIDE_IDENTIFIER_PATTERN=`\\[([^\\]]+)\\]`;OVERRIDE_IDENTIFIER_REGEX=new RegExp(OVERRIDE_IDENTIFIER_PATTERN,"g");OVERRIDE_PROPERTY_PATTERN=`^(${OVERRIDE_IDENTIFIER_PATTERN})+$`;OVERRIDE_PROPERTY_REGEX=new RegExp(OVERRIDE_PROPERTY_PATTERN);configurationRegistry=new ConfigurationRegistry;Registry.add(Extensions2.Configuration,configurationRegistry)}});var Extensions3,EditorModesRegistry,ModesRegistry,PLAINTEXT_LANGUAGE_ID,PLAINTEXT_EXTENSION;var init_modesRegistry=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/modesRegistry.js"(){init_nls();init_event();init_platform2();init_mime();init_configurationRegistry();Extensions3={ModesRegistry:"editor.modesRegistry"};EditorModesRegistry=class{constructor(){this._onDidChangeLanguages=new Emitter;this.onDidChangeLanguages=this._onDidChangeLanguages.event;this._languages=[]}registerLanguage(def){this._languages.push(def);this._onDidChangeLanguages.fire(void 0);return{dispose:()=>{for(let i=0,len=this._languages.length;iopen!==""&&close!==""))}var LanguageBracketsConfiguration,BracketKindBase,OpeningBracketKind,ClosingBracketKind;var init_languageBracketsConfiguration=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/supports/languageBracketsConfiguration.js"(){init_cache();LanguageBracketsConfiguration=class{constructor(languageId,config){this.languageId=languageId;const bracketPairs=config.brackets?filterValidBrackets(config.brackets):[];const openingBracketInfos=new CachedFunction((bracket=>{const closing=new Set;return{info:new OpeningBracketKind(this,bracket,closing),closing:closing}}));const closingBracketInfos=new CachedFunction((bracket=>{const opening=new Set;const openingColorized=new Set;return{info:new ClosingBracketKind(this,bracket,opening,openingColorized),opening:opening,openingColorized:openingColorized}}));for(const[open,close]of bracketPairs){const opening=openingBracketInfos.get(open);const closing=closingBracketInfos.get(close);opening.closing.add(closing.info);closing.opening.add(opening.info)}const colorizedBracketPairs=config.colorizedBracketPairs?filterValidBrackets(config.colorizedBracketPairs):bracketPairs.filter((p=>!(p[0]==="<"&&p[1]===">")));for(const[open,close]of colorizedBracketPairs){const opening=openingBracketInfos.get(open);const closing=closingBracketInfos.get(close);opening.closing.add(closing.info);closing.openingColorized.add(opening.info);closing.opening.add(opening.info)}this._openingBrackets=new Map([...openingBracketInfos.cachedValues].map((([k,v])=>[k,v.info])));this._closingBrackets=new Map([...closingBracketInfos.cachedValues].map((([k,v])=>[k,v.info])))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(bracketText){return this._openingBrackets.get(bracketText)}getClosingBracketInfo(bracketText){return this._closingBrackets.get(bracketText)}getBracketInfo(bracketText){return this.getOpeningBracketInfo(bracketText)||this.getClosingBracketInfo(bracketText)}};BracketKindBase=class{constructor(config,bracketText){this.config=config;this.bracketText=bracketText}get languageId(){return this.config.languageId}};OpeningBracketKind=class extends BracketKindBase{constructor(config,bracketText,openedBrackets){super(config,bracketText);this.openedBrackets=openedBrackets;this.isOpeningBracket=true}};ClosingBracketKind=class extends BracketKindBase{constructor(config,bracketText,openingBrackets,openingColorizedBrackets){super(config,bracketText);this.openingBrackets=openingBrackets;this.openingColorizedBrackets=openingColorizedBrackets;this.isOpeningBracket=false}closes(other){if(other["config"]!==this.config){return false}return this.openingBrackets.has(other)}closesColorized(other){if(other["config"]!==this.config){return false}return this.openingColorizedBrackets.has(other)}getOpeningBrackets(){return[...this.openingBrackets]}}}});function computeConfig(languageId,registry,configurationService,languageService){let languageConfig=registry.getLanguageConfiguration(languageId);if(!languageConfig){if(!languageService.isRegisteredLanguageId(languageId)){return new ResolvedLanguageConfiguration(languageId,{})}languageConfig=new ResolvedLanguageConfiguration(languageId,{})}const customizedConfig=getCustomizedLanguageConfig(languageConfig.languageId,configurationService);const data=combineLanguageConfigurations([languageConfig.underlyingConfig,customizedConfig]);const config=new ResolvedLanguageConfiguration(languageConfig.languageId,data);return config}function getCustomizedLanguageConfig(languageId,configurationService){const brackets=configurationService.getValue(customizedLanguageConfigKeys.brackets,{overrideIdentifier:languageId});const colorizedBracketPairs=configurationService.getValue(customizedLanguageConfigKeys.colorizedBracketPairs,{overrideIdentifier:languageId});return{brackets:validateBracketPairs(brackets),colorizedBracketPairs:validateBracketPairs(colorizedBracketPairs)}}function validateBracketPairs(data){if(!Array.isArray(data)){return void 0}return data.map((pair=>{if(!Array.isArray(pair)||pair.length!==2){return void 0}return[pair[0],pair[1]]})).filter((p=>!!p))}function getIndentationAtPosition(model,lineNumber,column){const lineText=model.getLineContent(lineNumber);let indentation=getLeadingWhitespace(lineText);if(indentation.length>column-1){indentation=indentation.substring(0,column-1)}return indentation}function getScopedLineTokens(model,lineNumber,columnNumber){model.tokenization.forceTokenization(lineNumber);const lineTokens=model.tokenization.getLineTokens(lineNumber);const column=typeof columnNumber==="undefined"?model.getLineMaxColumn(lineNumber)-1:columnNumber-1;return createScopedLineTokens(lineTokens,column)}function combineLanguageConfigurations(configs){let result={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const entry of configs){result={comments:entry.comments||result.comments,brackets:entry.brackets||result.brackets,wordPattern:entry.wordPattern||result.wordPattern,indentationRules:entry.indentationRules||result.indentationRules,onEnterRules:entry.onEnterRules||result.onEnterRules,autoClosingPairs:entry.autoClosingPairs||result.autoClosingPairs,surroundingPairs:entry.surroundingPairs||result.surroundingPairs,autoCloseBefore:entry.autoCloseBefore||result.autoCloseBefore,folding:entry.folding||result.folding,colorizedBracketPairs:entry.colorizedBracketPairs||result.colorizedBracketPairs,__electricCharacterSupport:entry.__electricCharacterSupport||result.__electricCharacterSupport}}return result}var __decorate2,__param2,LanguageConfigurationServiceChangeEvent,ILanguageConfigurationService,LanguageConfigurationService,customizedLanguageConfigKeys,ComposedLanguageConfiguration,LanguageConfigurationContribution,LanguageConfigurationChangeEvent,LanguageConfigurationRegistry,ResolvedLanguageConfiguration;var init_languageConfigurationRegistry=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/languageConfigurationRegistry.js"(){init_event();init_lifecycle();init_strings();init_wordHelper();init_languageConfiguration();init_supports();init_characterPair();init_electricCharacter();init_indentRules();init_onEnter();init_richEditBrackets();init_instantiation();init_configuration();init_language();init_extensions();init_modesRegistry();init_languageBracketsConfiguration();__decorate2=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r};__param2=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};LanguageConfigurationServiceChangeEvent=class{constructor(languageId){this.languageId=languageId}affects(languageId){return!this.languageId?true:this.languageId===languageId}};ILanguageConfigurationService=createDecorator("languageConfigurationService");LanguageConfigurationService=class LanguageConfigurationService2 extends Disposable{constructor(configurationService,languageService){super();this.configurationService=configurationService;this.languageService=languageService;this._registry=this._register(new LanguageConfigurationRegistry);this.onDidChangeEmitter=this._register(new Emitter);this.onDidChange=this.onDidChangeEmitter.event;this.configurations=new Map;const languageConfigKeys=new Set(Object.values(customizedLanguageConfigKeys));this._register(this.configurationService.onDidChangeConfiguration((e=>{const globalConfigChanged=e.change.keys.some((k=>languageConfigKeys.has(k)));const localConfigChanged=e.change.overrides.filter((([overrideLangName,keys])=>keys.some((k=>languageConfigKeys.has(k))))).map((([overrideLangName])=>overrideLangName));if(globalConfigChanged){this.configurations.clear();this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(void 0))}else{for(const languageId of localConfigChanged){if(this.languageService.isRegisteredLanguageId(languageId)){this.configurations.delete(languageId);this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(languageId))}}}})));this._register(this._registry.onDidChange((e=>{this.configurations.delete(e.languageId);this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(e.languageId))})))}register(languageId,configuration,priority){return this._registry.register(languageId,configuration,priority)}getLanguageConfiguration(languageId){let result=this.configurations.get(languageId);if(!result){result=computeConfig(languageId,this._registry,this.configurationService,this.languageService);this.configurations.set(languageId,result)}return result}};LanguageConfigurationService=__decorate2([__param2(0,IConfigurationService),__param2(1,ILanguageService)],LanguageConfigurationService);customizedLanguageConfigKeys={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};ComposedLanguageConfiguration=class{constructor(languageId){this.languageId=languageId;this._resolved=null;this._entries=[];this._order=0;this._resolved=null}register(configuration,priority){const entry=new LanguageConfigurationContribution(configuration,priority,++this._order);this._entries.push(entry);this._resolved=null;return toDisposable((()=>{for(let i=0;ie.configuration)))}};LanguageConfigurationContribution=class{constructor(configuration,priority,order){this.configuration=configuration;this.priority=priority;this.order=order}static cmp(a,b){if(a.priority===b.priority){return a.order-b.order}return a.priority-b.priority}};LanguageConfigurationChangeEvent=class{constructor(languageId){this.languageId=languageId}};LanguageConfigurationRegistry=class extends Disposable{constructor(){super();this._entries=new Map;this._onDidChange=this._register(new Emitter);this.onDidChange=this._onDidChange.event;this._register(this.register(PLAINTEXT_LANGUAGE_ID,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:true}},0))}register(languageId,configuration,priority=0){let entries2=this._entries.get(languageId);if(!entries2){entries2=new ComposedLanguageConfiguration(languageId);this._entries.set(languageId,entries2)}const disposable=entries2.register(configuration,priority);this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));return toDisposable((()=>{disposable.dispose();this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId))}))}getLanguageConfiguration(languageId){const entries2=this._entries.get(languageId);return(entries2===null||entries2===void 0?void 0:entries2.getResolvedConfiguration())||null}};ResolvedLanguageConfiguration=class{constructor(languageId,underlyingConfig){this.languageId=languageId;this.underlyingConfig=underlyingConfig;this._brackets=null;this._electricCharacter=null;this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new OnEnterSupport(this.underlyingConfig):null;this.comments=ResolvedLanguageConfiguration._handleComments(this.underlyingConfig);this.characterPair=new CharacterPairSupport(this.underlyingConfig);this.wordDefinition=this.underlyingConfig.wordPattern||DEFAULT_WORD_REGEXP;this.indentationRules=this.underlyingConfig.indentationRules;if(this.underlyingConfig.indentationRules){this.indentRulesSupport=new IndentRulesSupport(this.underlyingConfig.indentationRules)}else{this.indentRulesSupport=null}this.foldingRules=this.underlyingConfig.folding||{};this.bracketsNew=new LanguageBracketsConfiguration(languageId,this.underlyingConfig)}getWordDefinition(){return ensureValidWordDefinition(this.wordDefinition)}get brackets(){if(!this._brackets&&this.underlyingConfig.brackets){this._brackets=new RichEditBrackets(this.languageId,this.underlyingConfig.brackets)}return this._brackets}get electricCharacter(){if(!this._electricCharacter){this._electricCharacter=new BracketElectricCharacterSupport(this.brackets)}return this._electricCharacter}onEnter(autoIndent,previousLineText,beforeEnterText,afterEnterText){if(!this._onEnterSupport){return null}return this._onEnterSupport.onEnter(autoIndent,previousLineText,beforeEnterText,afterEnterText)}getAutoClosingPairs(){return new AutoClosingPairs(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(forQuotes){return this.characterPair.getAutoCloseBeforeSet(forQuotes)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(conf80){const commentRule=conf80.comments;if(!commentRule){return null}const comments={};if(commentRule.lineComment){comments.lineCommentToken=commentRule.lineComment}if(commentRule.blockComment){const[blockStart,blockEnd]=commentRule.blockComment;comments.blockCommentStartToken=blockStart;comments.blockCommentEndToken=blockEnd}return comments}};registerSingleton(ILanguageConfigurationService,LanguageConfigurationService,1)}});function nullTokenize(languageId,state){return new TokenizationResult([new Token(0,"",languageId)],state)}function nullTokenizeEncoded(languageId,state){const tokens=new Uint32Array(2);tokens[0]=0;tokens[1]=(languageId<<0|0<<8|0<<11|1<<15|2<<24)>>>0;return new EncodedTokenizationResult(tokens,state===null?NullState:state)}var NullState;var init_nullTokenize=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/nullTokenize.js"(){init_languages();NullState=new class{clone(){return this}equals(other){return this===other}}}});var IModelService;var init_model2=__esm({"node_modules/monaco-editor/esm/vs/editor/common/services/model.js"(){init_instantiation();IModelService=createDecorator("modelService")}});var MicrotaskDelay;var init_symbols=__esm({"node_modules/monaco-editor/esm/vs/base/common/symbols.js"(){MicrotaskDelay=Symbol("MicrotaskDelay")}});function isThenable(obj){return!!obj&&typeof obj.then==="function"}function createCancelablePromise(callback){const source=new CancellationTokenSource;const thenable=callback(source.token);const promise=new Promise(((resolve2,reject)=>{const subscription=source.token.onCancellationRequested((()=>{subscription.dispose();source.dispose();reject(new CancellationError)}));Promise.resolve(thenable).then((value=>{subscription.dispose();source.dispose();resolve2(value)}),(err=>{subscription.dispose();source.dispose();reject(err)}))}));return new class{cancel(){source.cancel()}then(resolve2,reject){return promise.then(resolve2,reject)}catch(reject){return this.then(void 0,reject)}finally(onfinally){return promise.finally(onfinally)}}}function raceCancellation(promise,token,defaultValue){return new Promise(((resolve2,reject)=>{const ref=token.onCancellationRequested((()=>{ref.dispose();resolve2(defaultValue)}));promise.then(resolve2,reject).finally((()=>ref.dispose()))}))}function timeout(millis,token){if(!token){return createCancelablePromise((token2=>timeout(millis,token2)))}return new Promise(((resolve2,reject)=>{const handle=setTimeout((()=>{disposable.dispose();resolve2()}),millis);const disposable=token.onCancellationRequested((()=>{clearTimeout(handle);disposable.dispose();reject(new CancellationError)}))}))}function disposableTimeout(handler,timeout2=0){const timer=setTimeout(handler,timeout2);return toDisposable((()=>clearTimeout(timer)))}function first(promiseFactories,shouldStop=(t2=>!!t2),defaultValue=null){let index=0;const len=promiseFactories.length;const loop=()=>{if(index>=len){return Promise.resolve(defaultValue)}const factory=promiseFactories[index++];const promise=Promise.resolve(factory());return promise.then((result=>{if(shouldStop(result)){return Promise.resolve(result)}return loop()}))};return loop()}function createCancelableAsyncIterable(callback){const source=new CancellationTokenSource;const innerIterable=callback(source.token);return new CancelableAsyncIterableObject(source,(emitter=>__awaiter2(this,void 0,void 0,(function*(){var _a6,e_5,_b3,_c2;const subscription=source.token.onCancellationRequested((()=>{subscription.dispose();source.dispose();emitter.reject(new CancellationError)}));try{try{for(var _d2=true,innerIterable_1=__asyncValues(innerIterable),innerIterable_1_1;innerIterable_1_1=yield innerIterable_1.next(),_a6=innerIterable_1_1.done,!_a6;_d2=true){_c2=innerIterable_1_1.value;_d2=false;const item=_c2;if(source.token.isCancellationRequested){return}emitter.emitOne(item)}}catch(e_5_1){e_5={error:e_5_1}}finally{try{if(!_d2&&!_a6&&(_b3=innerIterable_1.return))yield _b3.call(innerIterable_1)}finally{if(e_5)throw e_5.error}}subscription.dispose();source.dispose()}catch(err){subscription.dispose();source.dispose();emitter.reject(err)}}))))}var __awaiter2,__asyncValues,Throttler,timeoutDeferred,microtaskDeferred,Delayer,ThrottledDelayer,TimeoutTimer,IntervalTimer,RunOnceScheduler,runWhenIdle,IdleValue,DeferredPromise,Promises,AsyncIterableObject,CancelableAsyncIterableObject;var init_async=__esm({"node_modules/monaco-editor/esm/vs/base/common/async.js"(){init_cancellation();init_errors();init_event();init_lifecycle();init_platform();init_symbols();__awaiter2=function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P((function(resolve2){resolve2(value)}))}return new(P||(P=Promise))((function(resolve2,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve2(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))};__asyncValues=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var m=o[Symbol.asyncIterator],i;return m?m.call(o):(o=typeof __values==="function"?__values(o):o[Symbol.iterator](),i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i);function verb(n){i[n]=o[n]&&function(v){return new Promise((function(resolve2,reject){v=o[n](v),settle(resolve2,reject,v.done,v.value)}))}}function settle(resolve2,reject,d,v){Promise.resolve(v).then((function(v2){resolve2({value:v2,done:d})}),reject)}};Throttler=class{constructor(){this.isDisposed=false;this.activePromise=null;this.queuedPromise=null;this.queuedPromiseFactory=null}queue(promiseFactory){if(this.isDisposed){throw new Error("Throttler is disposed")}if(this.activePromise){this.queuedPromiseFactory=promiseFactory;if(!this.queuedPromise){const onComplete=()=>{this.queuedPromise=null;if(this.isDisposed){return}const result=this.queue(this.queuedPromiseFactory);this.queuedPromiseFactory=null;return result};this.queuedPromise=new Promise((resolve2=>{this.activePromise.then(onComplete,onComplete).then(resolve2)}))}return new Promise(((resolve2,reject)=>{this.queuedPromise.then(resolve2,reject)}))}this.activePromise=promiseFactory();return new Promise(((resolve2,reject)=>{this.activePromise.then((result=>{this.activePromise=null;resolve2(result)}),(err=>{this.activePromise=null;reject(err)}))}))}dispose(){this.isDisposed=true}};timeoutDeferred=(timeout2,fn)=>{let scheduled=true;const handle=setTimeout((()=>{scheduled=false;fn()}),timeout2);return{isTriggered:()=>scheduled,dispose:()=>{clearTimeout(handle);scheduled=false}}};microtaskDeferred=fn=>{let scheduled=true;queueMicrotask((()=>{if(scheduled){scheduled=false;fn()}}));return{isTriggered:()=>scheduled,dispose:()=>{scheduled=false}}};Delayer=class{constructor(defaultDelay){this.defaultDelay=defaultDelay;this.deferred=null;this.completionPromise=null;this.doResolve=null;this.doReject=null;this.task=null}trigger(task,delay=this.defaultDelay){this.task=task;this.cancelTimeout();if(!this.completionPromise){this.completionPromise=new Promise(((resolve2,reject)=>{this.doResolve=resolve2;this.doReject=reject})).then((()=>{this.completionPromise=null;this.doResolve=null;if(this.task){const task2=this.task;this.task=null;return task2()}return void 0}))}const fn=()=>{var _a6;this.deferred=null;(_a6=this.doResolve)===null||_a6===void 0?void 0:_a6.call(this,null)};this.deferred=delay===MicrotaskDelay?microtaskDeferred(fn):timeoutDeferred(delay,fn);return this.completionPromise}isTriggered(){var _a6;return!!((_a6=this.deferred)===null||_a6===void 0?void 0:_a6.isTriggered())}cancel(){var _a6;this.cancelTimeout();if(this.completionPromise){(_a6=this.doReject)===null||_a6===void 0?void 0:_a6.call(this,new CancellationError);this.completionPromise=null}}cancelTimeout(){var _a6;(_a6=this.deferred)===null||_a6===void 0?void 0:_a6.dispose();this.deferred=null}dispose(){this.cancel()}};ThrottledDelayer=class{constructor(defaultDelay){this.delayer=new Delayer(defaultDelay);this.throttler=new Throttler}trigger(promiseFactory,delay){return this.delayer.trigger((()=>this.throttler.queue(promiseFactory)),delay)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose();this.throttler.dispose()}};TimeoutTimer=class{constructor(runner,timeout2){this._token=-1;if(typeof runner==="function"&&typeof timeout2==="number"){this.setIfNotSet(runner,timeout2)}}dispose(){this.cancel()}cancel(){if(this._token!==-1){clearTimeout(this._token);this._token=-1}}cancelAndSet(runner,timeout2){this.cancel();this._token=setTimeout((()=>{this._token=-1;runner()}),timeout2)}setIfNotSet(runner,timeout2){if(this._token!==-1){return}this._token=setTimeout((()=>{this._token=-1;runner()}),timeout2)}};IntervalTimer=class{constructor(){this._token=-1}dispose(){this.cancel()}cancel(){if(this._token!==-1){clearInterval(this._token);this._token=-1}}cancelAndSet(runner,interval){this.cancel();this._token=setInterval((()=>{runner()}),interval)}};RunOnceScheduler=class{constructor(runner,delay){this.timeoutToken=-1;this.runner=runner;this.timeout=delay;this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel();this.runner=null}cancel(){if(this.isScheduled()){clearTimeout(this.timeoutToken);this.timeoutToken=-1}}schedule(delay=this.timeout){this.cancel();this.timeoutToken=setTimeout(this.timeoutHandler,delay)}get delay(){return this.timeout}set delay(value){this.timeout=value}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1;if(this.runner){this.doRun()}}doRun(){var _a6;(_a6=this.runner)===null||_a6===void 0?void 0:_a6.call(this)}};(function(){if(typeof requestIdleCallback!=="function"||typeof cancelIdleCallback!=="function"){runWhenIdle=runner=>{setTimeout0((()=>{if(disposed){return}const end=Date.now()+15;runner(Object.freeze({didTimeout:true,timeRemaining(){return Math.max(0,end-Date.now())}}))}));let disposed=false;return{dispose(){if(disposed){return}disposed=true}}}}else{runWhenIdle=(runner,timeout2)=>{const handle=requestIdleCallback(runner,typeof timeout2==="number"?{timeout:timeout2}:void 0);let disposed=false;return{dispose(){if(disposed){return}disposed=true;cancelIdleCallback(handle)}}}}})();IdleValue=class{constructor(executor){this._didRun=false;this._executor=()=>{try{this._value=executor()}catch(err){this._error=err}finally{this._didRun=true}};this._handle=runWhenIdle((()=>this._executor()))}dispose(){this._handle.dispose()}get value(){if(!this._didRun){this._handle.dispose();this._executor()}if(this._error){throw this._error}return this._value}get isInitialized(){return this._didRun}};DeferredPromise=class{get isRejected(){var _a6;return((_a6=this.outcome)===null||_a6===void 0?void 0:_a6.outcome)===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise(((c,e)=>{this.completeCallback=c;this.errorCallback=e}))}complete(value){return new Promise((resolve2=>{this.completeCallback(value);this.outcome={outcome:0,value:value};resolve2()}))}error(err){return new Promise((resolve2=>{this.errorCallback(err);this.outcome={outcome:1,value:err};resolve2()}))}cancel(){return this.error(new CancellationError)}};(function(Promises2){function settled(promises){return __awaiter2(this,void 0,void 0,(function*(){let firstError=void 0;const result=yield Promise.all(promises.map((promise=>promise.then((value=>value),(error=>{if(!firstError){firstError=error}return void 0})))));if(typeof firstError!=="undefined"){throw firstError}return result}))}Promises2.settled=settled;function withAsyncBody(bodyFn){return new Promise(((resolve2,reject)=>__awaiter2(this,void 0,void 0,(function*(){try{yield bodyFn(resolve2,reject)}catch(error){reject(error)}}))))}Promises2.withAsyncBody=withAsyncBody})(Promises||(Promises={}));AsyncIterableObject=class{static fromArray(items){return new AsyncIterableObject((writer=>{writer.emitMany(items)}))}static fromPromise(promise){return new AsyncIterableObject((emitter=>__awaiter2(this,void 0,void 0,(function*(){emitter.emitMany(yield promise)}))))}static fromPromises(promises){return new AsyncIterableObject((emitter=>__awaiter2(this,void 0,void 0,(function*(){yield Promise.all(promises.map((p=>__awaiter2(this,void 0,void 0,(function*(){return emitter.emitOne(yield p)})))))}))))}static merge(iterables){return new AsyncIterableObject((emitter=>__awaiter2(this,void 0,void 0,(function*(){yield Promise.all(iterables.map((iterable=>{var _a6,iterable_1,iterable_1_1;return __awaiter2(this,void 0,void 0,(function*(){var _b3,e_1,_c2,_d2;try{for(_a6=true,iterable_1=__asyncValues(iterable);iterable_1_1=yield iterable_1.next(),_b3=iterable_1_1.done,!_b3;_a6=true){_d2=iterable_1_1.value;_a6=false;const item=_d2;emitter.emitOne(item)}}catch(e_1_1){e_1={error:e_1_1}}finally{try{if(!_a6&&!_b3&&(_c2=iterable_1.return))yield _c2.call(iterable_1)}finally{if(e_1)throw e_1.error}}}))})))}))))}constructor(executor){this._state=0;this._results=[];this._error=null;this._onStateChanged=new Emitter;queueMicrotask((()=>__awaiter2(this,void 0,void 0,(function*(){const writer={emitOne:item=>this.emitOne(item),emitMany:items=>this.emitMany(items),reject:error=>this.reject(error)};try{yield Promise.resolve(executor(writer));this.resolve()}catch(err){this.reject(err)}finally{writer.emitOne=void 0;writer.emitMany=void 0;writer.reject=void 0}}))))}[Symbol.asyncIterator](){let i=0;return{next:()=>__awaiter2(this,void 0,void 0,(function*(){do{if(this._state===2){throw this._error}if(i__awaiter2(this,void 0,void 0,(function*(){var _a6,e_2,_b3,_c2;try{for(var _d2=true,iterable_2=__asyncValues(iterable),iterable_2_1;iterable_2_1=yield iterable_2.next(),_a6=iterable_2_1.done,!_a6;_d2=true){_c2=iterable_2_1.value;_d2=false;const item=_c2;emitter.emitOne(mapFn(item))}}catch(e_2_1){e_2={error:e_2_1}}finally{try{if(!_d2&&!_a6&&(_b3=iterable_2.return))yield _b3.call(iterable_2)}finally{if(e_2)throw e_2.error}}}))))}map(mapFn){return AsyncIterableObject.map(this,mapFn)}static filter(iterable,filterFn){return new AsyncIterableObject((emitter=>__awaiter2(this,void 0,void 0,(function*(){var _a6,e_3,_b3,_c2;try{for(var _d2=true,iterable_3=__asyncValues(iterable),iterable_3_1;iterable_3_1=yield iterable_3.next(),_a6=iterable_3_1.done,!_a6;_d2=true){_c2=iterable_3_1.value;_d2=false;const item=_c2;if(filterFn(item)){emitter.emitOne(item)}}}catch(e_3_1){e_3={error:e_3_1}}finally{try{if(!_d2&&!_a6&&(_b3=iterable_3.return))yield _b3.call(iterable_3)}finally{if(e_3)throw e_3.error}}}))))}filter(filterFn){return AsyncIterableObject.filter(this,filterFn)}static coalesce(iterable){return AsyncIterableObject.filter(iterable,(item=>!!item))}coalesce(){return AsyncIterableObject.coalesce(this)}static toPromise(iterable){var _a6,iterable_4,iterable_4_1;var _b3,e_4,_c2,_d2;return __awaiter2(this,void 0,void 0,(function*(){const result=[];try{for(_a6=true,iterable_4=__asyncValues(iterable);iterable_4_1=yield iterable_4.next(),_b3=iterable_4_1.done,!_b3;_a6=true){_d2=iterable_4_1.value;_a6=false;const item=_d2;result.push(item)}}catch(e_4_1){e_4={error:e_4_1}}finally{try{if(!_a6&&!_b3&&(_c2=iterable_4.return))yield _c2.call(iterable_4)}finally{if(e_4)throw e_4.error}}return result}))}toPromise(){return AsyncIterableObject.toPromise(this)}emitOne(value){if(this._state!==0){return}this._results.push(value);this._onStateChanged.fire()}emitMany(values){if(this._state!==0){return}this._results=this._results.concat(values);this._onStateChanged.fire()}resolve(){if(this._state!==0){return}this._state=1;this._onStateChanged.fire()}reject(error){if(this._state!==0){return}this._state=2;this._error=error;this._onStateChanged.fire()}};AsyncIterableObject.EMPTY=AsyncIterableObject.fromArray([]);CancelableAsyncIterableObject=class extends AsyncIterableObject{constructor(_source,executor){super(executor);this._source=_source}cancel(){this._source.cancel()}}}});function logOnceWebWorkerWarning(err){if(!isWeb){return}if(!webWorkerWarningLogged){webWorkerWarningLogged=true;console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")}console.warn(err.message)}function propertyIsEvent(name){return name[0]==="o"&&name[1]==="n"&&isUpperAsciiLetter(name.charCodeAt(2))}function propertyIsDynamicEvent(name){return/^onDynamic/.test(name)&&isUpperAsciiLetter(name.charCodeAt(9))}function createProxyObject2(methodNames,invoke,proxyListen){const createProxyMethod=method=>function(){const args=Array.prototype.slice.call(arguments,0);return invoke(method,args)};const createProxyDynamicEvent=eventName=>function(arg){return proxyListen(eventName,arg)};const result={};for(const methodName of methodNames){if(propertyIsDynamicEvent(methodName)){result[methodName]=createProxyDynamicEvent(methodName);continue}if(propertyIsEvent(methodName)){result[methodName]=proxyListen(methodName,void 0);continue}result[methodName]=createProxyMethod(methodName)}return result}var INITIALIZE,webWorkerWarningLogged,RequestMessage,ReplyMessage,SubscribeEventMessage,EventMessage,UnsubscribeEventMessage,SimpleWorkerProtocol,SimpleWorkerClient;var init_simpleWorker=__esm({"node_modules/monaco-editor/esm/vs/base/common/worker/simpleWorker.js"(){init_errors();init_event();init_lifecycle();init_objects();init_platform();init_strings();INITIALIZE="$initialize";webWorkerWarningLogged=false;RequestMessage=class{constructor(vsWorker,req,method,args){this.vsWorker=vsWorker;this.req=req;this.method=method;this.args=args;this.type=0}};ReplyMessage=class{constructor(vsWorker,seq,res,err){this.vsWorker=vsWorker;this.seq=seq;this.res=res;this.err=err;this.type=1}};SubscribeEventMessage=class{constructor(vsWorker,req,eventName,arg){this.vsWorker=vsWorker;this.req=req;this.eventName=eventName;this.arg=arg;this.type=2}};EventMessage=class{constructor(vsWorker,req,event){this.vsWorker=vsWorker;this.req=req;this.event=event;this.type=3}};UnsubscribeEventMessage=class{constructor(vsWorker,req){this.vsWorker=vsWorker;this.req=req;this.type=4}};SimpleWorkerProtocol=class{constructor(handler){this._workerId=-1;this._handler=handler;this._lastSentReq=0;this._pendingReplies=Object.create(null);this._pendingEmitters=new Map;this._pendingEvents=new Map}setWorkerId(workerId){this._workerId=workerId}sendMessage(method,args){const req=String(++this._lastSentReq);return new Promise(((resolve2,reject)=>{this._pendingReplies[req]={resolve:resolve2,reject:reject};this._send(new RequestMessage(this._workerId,req,method,args))}))}listen(eventName,arg){let req=null;const emitter=new Emitter({onWillAddFirstListener:()=>{req=String(++this._lastSentReq);this._pendingEmitters.set(req,emitter);this._send(new SubscribeEventMessage(this._workerId,req,eventName,arg))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(req);this._send(new UnsubscribeEventMessage(this._workerId,req));req=null}});return emitter.event}handleMessage(message){if(!message||!message.vsWorker){return}if(this._workerId!==-1&&message.vsWorker!==this._workerId){return}this._handleMessage(message)}_handleMessage(msg){switch(msg.type){case 1:return this._handleReplyMessage(msg);case 0:return this._handleRequestMessage(msg);case 2:return this._handleSubscribeEventMessage(msg);case 3:return this._handleEventMessage(msg);case 4:return this._handleUnsubscribeEventMessage(msg)}}_handleReplyMessage(replyMessage){if(!this._pendingReplies[replyMessage.seq]){console.warn("Got reply to unknown seq");return}const reply=this._pendingReplies[replyMessage.seq];delete this._pendingReplies[replyMessage.seq];if(replyMessage.err){let err=replyMessage.err;if(replyMessage.err.$isError){err=new Error;err.name=replyMessage.err.name;err.message=replyMessage.err.message;err.stack=replyMessage.err.stack}reply.reject(err);return}reply.resolve(replyMessage.res)}_handleRequestMessage(requestMessage){const req=requestMessage.req;const result=this._handler.handleMessage(requestMessage.method,requestMessage.args);result.then((r=>{this._send(new ReplyMessage(this._workerId,req,r,void 0))}),(e=>{if(e.detail instanceof Error){e.detail=transformErrorForSerialization(e.detail)}this._send(new ReplyMessage(this._workerId,req,void 0,transformErrorForSerialization(e)))}))}_handleSubscribeEventMessage(msg){const req=msg.req;const disposable=this._handler.handleEvent(msg.eventName,msg.arg)((event=>{this._send(new EventMessage(this._workerId,req,event))}));this._pendingEvents.set(req,disposable)}_handleEventMessage(msg){if(!this._pendingEmitters.has(msg.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(msg.req).fire(msg.event)}_handleUnsubscribeEventMessage(msg){if(!this._pendingEvents.has(msg.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(msg.req).dispose();this._pendingEvents.delete(msg.req)}_send(msg){const transfer=[];if(msg.type===0){for(let i=0;i{this._protocol.handleMessage(msg)}),(err=>{lazyProxyReject===null||lazyProxyReject===void 0?void 0:lazyProxyReject(err)})));this._protocol=new SimpleWorkerProtocol({sendMessage:(msg,transfer)=>{this._worker.postMessage(msg,transfer)},handleMessage:(method,args)=>{if(typeof host[method]!=="function"){return Promise.reject(new Error("Missing method "+method+" on main thread host."))}try{return Promise.resolve(host[method].apply(host,args))}catch(e){return Promise.reject(e)}},handleEvent:(eventName,arg)=>{if(propertyIsDynamicEvent(eventName)){const event=host[eventName].call(host,arg);if(typeof event!=="function"){throw new Error(`Missing dynamic event ${eventName} on main thread host.`)}return event}if(propertyIsEvent(eventName)){const event=host[eventName];if(typeof event!=="function"){throw new Error(`Missing event ${eventName} on main thread host.`)}return event}throw new Error(`Malformed event name ${eventName}`)}});this._protocol.setWorkerId(this._worker.getId());let loaderConfiguration=null;const globalRequire=globalThis.require;if(typeof globalRequire!=="undefined"&&typeof globalRequire.getConfig==="function"){loaderConfiguration=globalRequire.getConfig()}else if(typeof globalThis.requirejs!=="undefined"){loaderConfiguration=globalThis.requirejs.s.contexts._.config}const hostMethods=getAllMethodNames(host);this._onModuleLoaded=this._protocol.sendMessage(INITIALIZE,[this._worker.getId(),JSON.parse(JSON.stringify(loaderConfiguration)),moduleId,hostMethods]);const proxyMethodRequest=(method,args)=>this._request(method,args);const proxyListen=(eventName,arg)=>this._protocol.listen(eventName,arg);this._lazyProxy=new Promise(((resolve2,reject)=>{lazyProxyReject=reject;this._onModuleLoaded.then((availableMethods=>{resolve2(createProxyObject2(availableMethods,proxyMethodRequest,proxyListen))}),(e=>{reject(e);this._onError("Worker failed to load "+moduleId,e)}))}))}getProxyObject(){return this._lazyProxy}_request(method,args){return new Promise(((resolve2,reject)=>{this._onModuleLoaded.then((()=>{this._protocol.sendMessage(method,args).then(resolve2,reject)}),reject)}))}_onError(message,error){console.error(message);console.info(error)}}}});function createTrustedTypesPolicy(policyName,policyOptions){var _a6;const monacoEnvironment2=globalThis.MonacoEnvironment;if(monacoEnvironment2===null||monacoEnvironment2===void 0?void 0:monacoEnvironment2.createTrustedTypesPolicy){try{return monacoEnvironment2.createTrustedTypesPolicy(policyName,policyOptions)}catch(err){onUnexpectedError(err);return void 0}}try{return(_a6=window.trustedTypes)===null||_a6===void 0?void 0:_a6.createPolicy(policyName,policyOptions)}catch(err){onUnexpectedError(err);return void 0}}var init_trustedTypes=__esm({"node_modules/monaco-editor/esm/vs/base/browser/trustedTypes.js"(){init_errors()}});function getWorker(label){const monacoEnvironment2=globalThis.MonacoEnvironment;if(monacoEnvironment2){if(typeof monacoEnvironment2.getWorker==="function"){return monacoEnvironment2.getWorker("workerMain.js",label)}if(typeof monacoEnvironment2.getWorkerUrl==="function"){const workerUrl=monacoEnvironment2.getWorkerUrl("workerMain.js",label);return new Worker(ttPolicy?ttPolicy.createScriptURL(workerUrl):workerUrl,{name:label})}}throw new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`)}function isPromiseLike(obj){if(typeof obj.then==="function"){return true}return false}var ttPolicy,WebWorker,DefaultWorkerFactory;var init_defaultWorkerFactory=__esm({"node_modules/monaco-editor/esm/vs/base/browser/defaultWorkerFactory.js"(){init_trustedTypes();init_errors();init_simpleWorker();ttPolicy=createTrustedTypesPolicy("defaultWorkerFactory",{createScriptURL:value=>value});WebWorker=class{constructor(moduleId,id,label,onMessageCallback,onErrorCallback){this.id=id;this.label=label;const workerOrPromise=getWorker(label);if(isPromiseLike(workerOrPromise)){this.worker=workerOrPromise}else{this.worker=Promise.resolve(workerOrPromise)}this.postMessage(moduleId,[]);this.worker.then((w=>{w.onmessage=function(ev){onMessageCallback(ev.data)};w.onmessageerror=onErrorCallback;if(typeof w.addEventListener==="function"){w.addEventListener("error",onErrorCallback)}}))}getId(){return this.id}postMessage(message,transfer){var _a6;(_a6=this.worker)===null||_a6===void 0?void 0:_a6.then((w=>{try{w.postMessage(message,transfer)}catch(err){onUnexpectedError(err);onUnexpectedError(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:err}))}}))}dispose(){var _a6;(_a6=this.worker)===null||_a6===void 0?void 0:_a6.then((w=>w.terminate()));this.worker=null}};DefaultWorkerFactory=class{constructor(label){this._label=label;this._webWorkerFailedBeforeError=false}create(moduleId,onMessageCallback,onErrorCallback){const workerId=++DefaultWorkerFactory.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError){throw this._webWorkerFailedBeforeError}return new WebWorker(moduleId,workerId,this._label||"anonymous"+workerId,onMessageCallback,(err=>{logOnceWebWorkerWarning(err);this._webWorkerFailedBeforeError=err;onErrorCallback(err)}))}};DefaultWorkerFactory.LAST_WORKER_ID=0}});var DiffChange;var init_diffChange=__esm({"node_modules/monaco-editor/esm/vs/base/common/diff/diffChange.js"(){DiffChange=class{constructor(originalStart,originalLength,modifiedStart,modifiedLength){this.originalStart=originalStart;this.originalLength=originalLength;this.modifiedStart=modifiedStart;this.modifiedLength=modifiedLength}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}}});function hash(obj){return doHash(obj,0)}function doHash(obj,hashVal){switch(typeof obj){case"object":if(obj===null){return numberHash(349,hashVal)}else if(Array.isArray(obj)){return arrayHash(obj,hashVal)}return objectHash(obj,hashVal);case"string":return stringHash(obj,hashVal);case"boolean":return booleanHash(obj,hashVal);case"number":return numberHash(obj,hashVal);case"undefined":return numberHash(937,hashVal);default:return numberHash(617,hashVal)}}function numberHash(val,initialHashVal){return(initialHashVal<<5)-initialHashVal+val|0}function booleanHash(b,initialHashVal){return numberHash(b?433:863,initialHashVal)}function stringHash(s,hashVal){hashVal=numberHash(149417,hashVal);for(let i=0,length2=s.length;idoHash(item,hashVal)),initialHashVal)}function objectHash(obj,initialHashVal){initialHashVal=numberHash(181387,initialHashVal);return Object.keys(obj).sort().reduce(((hashVal,key)=>{hashVal=stringHash(key,hashVal);return doHash(obj[key],hashVal)}),initialHashVal)}function leftRotate(value,bits,totalBits=32){const delta=totalBits-bits;const mask=~((1<>>delta)>>>0}function fill(dest,index=0,count=dest.byteLength,value=0){for(let i=0;ib.toString(16).padStart(2,"0"))).join("")}return leftPad((bufferOrValue>>>0).toString(16),bitsize/4)}var StringSHA1;var init_hash=__esm({"node_modules/monaco-editor/esm/vs/base/common/hash.js"(){init_strings();StringSHA1=class{constructor(){this._h0=1732584193;this._h1=4023233417;this._h2=2562383102;this._h3=271733878;this._h4=3285377520;this._buff=new Uint8Array(64+3);this._buffDV=new DataView(this._buff.buffer);this._buffLen=0;this._totalLen=0;this._leftoverHighSurrogate=0;this._finished=false}update(str){const strLen=str.length;if(strLen===0){return}const buff=this._buff;let buffLen=this._buffLen;let leftoverHighSurrogate=this._leftoverHighSurrogate;let charCode;let offset;if(leftoverHighSurrogate!==0){charCode=leftoverHighSurrogate;offset=-1;leftoverHighSurrogate=0}else{charCode=str.charCodeAt(0);offset=0}while(true){let codePoint=charCode;if(isHighSurrogate(charCode)){if(offset+1>>6;buff[buffLen++]=128|(codePoint&63)>>>0}else if(codePoint<65536){buff[buffLen++]=224|(codePoint&61440)>>>12;buff[buffLen++]=128|(codePoint&4032)>>>6;buff[buffLen++]=128|(codePoint&63)>>>0}else{buff[buffLen++]=240|(codePoint&1835008)>>>18;buff[buffLen++]=128|(codePoint&258048)>>>12;buff[buffLen++]=128|(codePoint&4032)>>>6;buff[buffLen++]=128|(codePoint&63)>>>0}if(buffLen>=64){this._step();buffLen-=64;this._totalLen+=64;buff[0]=buff[64+0];buff[1]=buff[64+1];buff[2]=buff[64+2]}return buffLen}digest(){if(!this._finished){this._finished=true;if(this._leftoverHighSurrogate){this._leftoverHighSurrogate=0;this._buffLen=this._push(this._buff,this._buffLen,65533)}this._totalLen+=this._buffLen;this._wrapUp()}return toHexString(this._h0)+toHexString(this._h1)+toHexString(this._h2)+toHexString(this._h3)+toHexString(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128;fill(this._buff,this._buffLen);if(this._buffLen>56){this._step();fill(this._buff)}const ml=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(ml/4294967296),false);this._buffDV.setUint32(60,ml%4294967296,false);this._step()}_step(){const bigBlock32=StringSHA1._bigBlock32;const data=this._buffDV;for(let j=0;j<64;j+=4){bigBlock32.setUint32(j,data.getUint32(j,false),false)}for(let j=64;j<320;j+=4){bigBlock32.setUint32(j,leftRotate(bigBlock32.getUint32(j-12,false)^bigBlock32.getUint32(j-32,false)^bigBlock32.getUint32(j-56,false)^bigBlock32.getUint32(j-64,false),1),false)}let a=this._h0;let b=this._h1;let c=this._h2;let d=this._h3;let e=this._h4;let f,k;let temp;for(let j=0;j<80;j++){if(j<20){f=b&c|~b&d;k=1518500249}else if(j<40){f=b^c^d;k=1859775393}else if(j<60){f=b&c|b&d|c&d;k=2400959708}else{f=b^c^d;k=3395469782}temp=leftRotate(a,5)+f+e+k+bigBlock32.getUint32(j*4,false)&4294967295;e=d;d=c;c=leftRotate(b,30);b=a;a=temp}this._h0=this._h0+a&4294967295;this._h1=this._h1+b&4294967295;this._h2=this._h2+c&4294967295;this._h3=this._h3+d&4294967295;this._h4=this._h4+e&4294967295}};StringSHA1._bigBlock32=new DataView(new ArrayBuffer(320))}});function stringDiff(original,modified,pretty){return new LcsDiff(new StringDiffSequence(original),new StringDiffSequence(modified)).ComputeDiff(pretty).changes}var StringDiffSequence,Debug,MyArray,DiffChangeHelper,LcsDiff;var init_diff=__esm({"node_modules/monaco-editor/esm/vs/base/common/diff/diff.js"(){init_diffChange();init_hash();StringDiffSequence=class{constructor(source){this.source=source}getElements(){const source=this.source;const characters=new Int32Array(source.length);for(let i=0,len=source.length;i0||this.m_modifiedCount>0){this.m_changes.push(new DiffChange(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(originalIndex,modifiedIndex){this.m_originalStart=Math.min(this.m_originalStart,originalIndex);this.m_modifiedStart=Math.min(this.m_modifiedStart,modifiedIndex);this.m_originalCount++}AddModifiedElement(originalIndex,modifiedIndex){this.m_originalStart=Math.min(this.m_originalStart,originalIndex);this.m_modifiedStart=Math.min(this.m_modifiedStart,modifiedIndex);this.m_modifiedCount++}getChanges(){if(this.m_originalCount>0||this.m_modifiedCount>0){this.MarkNextChange()}return this.m_changes}getReverseChanges(){if(this.m_originalCount>0||this.m_modifiedCount>0){this.MarkNextChange()}this.m_changes.reverse();return this.m_changes}};LcsDiff=class{constructor(originalSequence,modifiedSequence,continueProcessingPredicate=null){this.ContinueProcessingPredicate=continueProcessingPredicate;this._originalSequence=originalSequence;this._modifiedSequence=modifiedSequence;const[originalStringElements,originalElementsOrHash,originalHasStrings]=LcsDiff._getElements(originalSequence);const[modifiedStringElements,modifiedElementsOrHash,modifiedHasStrings]=LcsDiff._getElements(modifiedSequence);this._hasStrings=originalHasStrings&&modifiedHasStrings;this._originalStringElements=originalStringElements;this._originalElementsOrHash=originalElementsOrHash;this._modifiedStringElements=modifiedStringElements;this._modifiedElementsOrHash=modifiedElementsOrHash;this.m_forwardHistory=[];this.m_reverseHistory=[]}static _isStringArray(arr){return arr.length>0&&typeof arr[0]==="string"}static _getElements(sequence){const elements=sequence.getElements();if(LcsDiff._isStringArray(elements)){const hashes=new Int32Array(elements.length);for(let i=0,len=elements.length;i=originalStart&&modifiedEnd>=modifiedStart&&this.ElementsAreEqual(originalEnd,modifiedEnd)){originalEnd--;modifiedEnd--}if(originalStart>originalEnd||modifiedStart>modifiedEnd){let changes;if(modifiedStart<=modifiedEnd){Debug.Assert(originalStart===originalEnd+1,"originalStart should only be one more than originalEnd");changes=[new DiffChange(originalStart,0,modifiedStart,modifiedEnd-modifiedStart+1)]}else if(originalStart<=originalEnd){Debug.Assert(modifiedStart===modifiedEnd+1,"modifiedStart should only be one more than modifiedEnd");changes=[new DiffChange(originalStart,originalEnd-originalStart+1,modifiedStart,0)]}else{Debug.Assert(originalStart===originalEnd+1,"originalStart should only be one more than originalEnd");Debug.Assert(modifiedStart===modifiedEnd+1,"modifiedStart should only be one more than modifiedEnd");changes=[]}return changes}const midOriginalArr=[0];const midModifiedArr=[0];const result=this.ComputeRecursionPoint(originalStart,originalEnd,modifiedStart,modifiedEnd,midOriginalArr,midModifiedArr,quitEarlyArr);const midOriginal=midOriginalArr[0];const midModified=midModifiedArr[0];if(result!==null){return result}else if(!quitEarlyArr[0]){const leftChanges=this.ComputeDiffRecursive(originalStart,midOriginal,modifiedStart,midModified,quitEarlyArr);let rightChanges=[];if(!quitEarlyArr[0]){rightChanges=this.ComputeDiffRecursive(midOriginal+1,originalEnd,midModified+1,modifiedEnd,quitEarlyArr)}else{rightChanges=[new DiffChange(midOriginal+1,originalEnd-(midOriginal+1)+1,midModified+1,modifiedEnd-(midModified+1)+1)]}return this.ConcatenateChanges(leftChanges,rightChanges)}return[new DiffChange(originalStart,originalEnd-originalStart+1,modifiedStart,modifiedEnd-modifiedStart+1)]}WALKTRACE(diagonalForwardBase,diagonalForwardStart,diagonalForwardEnd,diagonalForwardOffset,diagonalReverseBase,diagonalReverseStart,diagonalReverseEnd,diagonalReverseOffset,forwardPoints,reversePoints,originalIndex,originalEnd,midOriginalArr,modifiedIndex,modifiedEnd,midModifiedArr,deltaIsEven,quitEarlyArr){let forwardChanges=null;let reverseChanges=null;let changeHelper=new DiffChangeHelper;let diagonalMin=diagonalForwardStart;let diagonalMax=diagonalForwardEnd;let diagonalRelative=midOriginalArr[0]-midModifiedArr[0]-diagonalForwardOffset;let lastOriginalIndex=-1073741824;let historyIndex=this.m_forwardHistory.length-1;do{const diagonal=diagonalRelative+diagonalForwardBase;if(diagonal===diagonalMin||diagonal=0){forwardPoints=this.m_forwardHistory[historyIndex];diagonalForwardBase=forwardPoints[0];diagonalMin=1;diagonalMax=forwardPoints.length-1}}while(--historyIndex>=-1);forwardChanges=changeHelper.getReverseChanges();if(quitEarlyArr[0]){let originalStartPoint=midOriginalArr[0]+1;let modifiedStartPoint=midModifiedArr[0]+1;if(forwardChanges!==null&&forwardChanges.length>0){const lastForwardChange=forwardChanges[forwardChanges.length-1];originalStartPoint=Math.max(originalStartPoint,lastForwardChange.getOriginalEnd());modifiedStartPoint=Math.max(modifiedStartPoint,lastForwardChange.getModifiedEnd())}reverseChanges=[new DiffChange(originalStartPoint,originalEnd-originalStartPoint+1,modifiedStartPoint,modifiedEnd-modifiedStartPoint+1)]}else{changeHelper=new DiffChangeHelper;diagonalMin=diagonalReverseStart;diagonalMax=diagonalReverseEnd;diagonalRelative=midOriginalArr[0]-midModifiedArr[0]-diagonalReverseOffset;lastOriginalIndex=1073741824;historyIndex=deltaIsEven?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const diagonal=diagonalRelative+diagonalReverseBase;if(diagonal===diagonalMin||diagonal=reversePoints[diagonal+1]){originalIndex=reversePoints[diagonal+1]-1;modifiedIndex=originalIndex-diagonalRelative-diagonalReverseOffset;if(originalIndex>lastOriginalIndex){changeHelper.MarkNextChange()}lastOriginalIndex=originalIndex+1;changeHelper.AddOriginalElement(originalIndex+1,modifiedIndex+1);diagonalRelative=diagonal+1-diagonalReverseBase}else{originalIndex=reversePoints[diagonal-1];modifiedIndex=originalIndex-diagonalRelative-diagonalReverseOffset;if(originalIndex>lastOriginalIndex){changeHelper.MarkNextChange()}lastOriginalIndex=originalIndex;changeHelper.AddModifiedElement(originalIndex+1,modifiedIndex+1);diagonalRelative=diagonal-1-diagonalReverseBase}if(historyIndex>=0){reversePoints=this.m_reverseHistory[historyIndex];diagonalReverseBase=reversePoints[0];diagonalMin=1;diagonalMax=reversePoints.length-1}}while(--historyIndex>=-1);reverseChanges=changeHelper.getChanges()}return this.ConcatenateChanges(forwardChanges,reverseChanges)}ComputeRecursionPoint(originalStart,originalEnd,modifiedStart,modifiedEnd,midOriginalArr,midModifiedArr,quitEarlyArr){let originalIndex=0,modifiedIndex=0;let diagonalForwardStart=0,diagonalForwardEnd=0;let diagonalReverseStart=0,diagonalReverseEnd=0;originalStart--;modifiedStart--;midOriginalArr[0]=0;midModifiedArr[0]=0;this.m_forwardHistory=[];this.m_reverseHistory=[];const maxDifferences=originalEnd-originalStart+(modifiedEnd-modifiedStart);const numDiagonals=maxDifferences+1;const forwardPoints=new Int32Array(numDiagonals);const reversePoints=new Int32Array(numDiagonals);const diagonalForwardBase=modifiedEnd-modifiedStart;const diagonalReverseBase=originalEnd-originalStart;const diagonalForwardOffset=originalStart-modifiedStart;const diagonalReverseOffset=originalEnd-modifiedEnd;const delta=diagonalReverseBase-diagonalForwardBase;const deltaIsEven=delta%2===0;forwardPoints[diagonalForwardBase]=originalStart;reversePoints[diagonalReverseBase]=originalEnd;quitEarlyArr[0]=false;for(let numDifferences=1;numDifferences<=maxDifferences/2+1;numDifferences++){let furthestOriginalIndex=0;let furthestModifiedIndex=0;diagonalForwardStart=this.ClipDiagonalBound(diagonalForwardBase-numDifferences,numDifferences,diagonalForwardBase,numDiagonals);diagonalForwardEnd=this.ClipDiagonalBound(diagonalForwardBase+numDifferences,numDifferences,diagonalForwardBase,numDiagonals);for(let diagonal=diagonalForwardStart;diagonal<=diagonalForwardEnd;diagonal+=2){if(diagonal===diagonalForwardStart||diagonalfurthestOriginalIndex+furthestModifiedIndex){furthestOriginalIndex=originalIndex;furthestModifiedIndex=modifiedIndex}if(!deltaIsEven&&Math.abs(diagonal-diagonalReverseBase)<=numDifferences-1){if(originalIndex>=reversePoints[diagonal]){midOriginalArr[0]=originalIndex;midModifiedArr[0]=modifiedIndex;if(tempOriginalIndex<=reversePoints[diagonal]&&1447>0&&numDifferences<=1447+1){return this.WALKTRACE(diagonalForwardBase,diagonalForwardStart,diagonalForwardEnd,diagonalForwardOffset,diagonalReverseBase,diagonalReverseStart,diagonalReverseEnd,diagonalReverseOffset,forwardPoints,reversePoints,originalIndex,originalEnd,midOriginalArr,modifiedIndex,modifiedEnd,midModifiedArr,deltaIsEven,quitEarlyArr)}else{return null}}}}const matchLengthOfLongest=(furthestOriginalIndex-originalStart+(furthestModifiedIndex-modifiedStart)-numDifferences)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(furthestOriginalIndex,matchLengthOfLongest)){quitEarlyArr[0]=true;midOriginalArr[0]=furthestOriginalIndex;midModifiedArr[0]=furthestModifiedIndex;if(matchLengthOfLongest>0&&1447>0&&numDifferences<=1447+1){return this.WALKTRACE(diagonalForwardBase,diagonalForwardStart,diagonalForwardEnd,diagonalForwardOffset,diagonalReverseBase,diagonalReverseStart,diagonalReverseEnd,diagonalReverseOffset,forwardPoints,reversePoints,originalIndex,originalEnd,midOriginalArr,modifiedIndex,modifiedEnd,midModifiedArr,deltaIsEven,quitEarlyArr)}else{originalStart++;modifiedStart++;return[new DiffChange(originalStart,originalEnd-originalStart+1,modifiedStart,modifiedEnd-modifiedStart+1)]}}diagonalReverseStart=this.ClipDiagonalBound(diagonalReverseBase-numDifferences,numDifferences,diagonalReverseBase,numDiagonals);diagonalReverseEnd=this.ClipDiagonalBound(diagonalReverseBase+numDifferences,numDifferences,diagonalReverseBase,numDiagonals);for(let diagonal=diagonalReverseStart;diagonal<=diagonalReverseEnd;diagonal+=2){if(diagonal===diagonalReverseStart||diagonal=reversePoints[diagonal+1]){originalIndex=reversePoints[diagonal+1]-1}else{originalIndex=reversePoints[diagonal-1]}modifiedIndex=originalIndex-(diagonal-diagonalReverseBase)-diagonalReverseOffset;const tempOriginalIndex=originalIndex;while(originalIndex>originalStart&&modifiedIndex>modifiedStart&&this.ElementsAreEqual(originalIndex,modifiedIndex)){originalIndex--;modifiedIndex--}reversePoints[diagonal]=originalIndex;if(deltaIsEven&&Math.abs(diagonal-diagonalForwardBase)<=numDifferences){if(originalIndex<=forwardPoints[diagonal]){midOriginalArr[0]=originalIndex;midModifiedArr[0]=modifiedIndex;if(tempOriginalIndex>=forwardPoints[diagonal]&&1447>0&&numDifferences<=1447+1){return this.WALKTRACE(diagonalForwardBase,diagonalForwardStart,diagonalForwardEnd,diagonalForwardOffset,diagonalReverseBase,diagonalReverseStart,diagonalReverseEnd,diagonalReverseOffset,forwardPoints,reversePoints,originalIndex,originalEnd,midOriginalArr,modifiedIndex,modifiedEnd,midModifiedArr,deltaIsEven,quitEarlyArr)}else{return null}}}}if(numDifferences<=1447){let temp=new Int32Array(diagonalForwardEnd-diagonalForwardStart+2);temp[0]=diagonalForwardBase-diagonalForwardStart+1;MyArray.Copy2(forwardPoints,diagonalForwardStart,temp,1,diagonalForwardEnd-diagonalForwardStart+1);this.m_forwardHistory.push(temp);temp=new Int32Array(diagonalReverseEnd-diagonalReverseStart+2);temp[0]=diagonalReverseBase-diagonalReverseStart+1;MyArray.Copy2(reversePoints,diagonalReverseStart,temp,1,diagonalReverseEnd-diagonalReverseStart+1);this.m_reverseHistory.push(temp)}}return this.WALKTRACE(diagonalForwardBase,diagonalForwardStart,diagonalForwardEnd,diagonalForwardOffset,diagonalReverseBase,diagonalReverseStart,diagonalReverseEnd,diagonalReverseOffset,forwardPoints,reversePoints,originalIndex,originalEnd,midOriginalArr,modifiedIndex,modifiedEnd,midModifiedArr,deltaIsEven,quitEarlyArr)}PrettifyChanges(changes){for(let i=0;i0;const checkModified=change.modifiedLength>0;while(change.originalStart+change.originalLength=0;i--){const change=changes[i];let originalStop=0;let modifiedStop=0;if(i>0){const prevChange=changes[i-1];originalStop=prevChange.originalStart+prevChange.originalLength;modifiedStop=prevChange.modifiedStart+prevChange.modifiedLength}const checkOriginal=change.originalLength>0;const checkModified=change.modifiedLength>0;let bestDelta=0;let bestScore=this._boundaryScore(change.originalStart,change.originalLength,change.modifiedStart,change.modifiedLength);for(let delta=1;;delta++){const originalStart=change.originalStart-delta;const modifiedStart=change.modifiedStart-delta;if(originalStartbestScore){bestScore=score3;bestDelta=delta}}change.originalStart-=bestDelta;change.modifiedStart-=bestDelta;const mergedChangeArr=[null];if(i>0&&this.ChangesOverlap(changes[i-1],changes[i],mergedChangeArr)){changes[i-1]=mergedChangeArr[0];changes.splice(i,1);i++;continue}}if(this._hasStrings){for(let i=1,len=changes.length;i0&&score3>bestScore){bestScore=score3;bestOriginalStart=i;bestModifiedStart=j}}}if(bestScore>0){return[bestOriginalStart,bestModifiedStart]}return null}_contiguousSequenceScore(originalStart,modifiedStart,length2){let score3=0;for(let l=0;l=this._originalElementsOrHash.length-1){return true}return this._hasStrings&&/^\s*$/.test(this._originalStringElements[index])}_OriginalRegionIsBoundary(originalStart,originalLength){if(this._OriginalIsBoundary(originalStart)||this._OriginalIsBoundary(originalStart-1)){return true}if(originalLength>0){const originalEnd=originalStart+originalLength;if(this._OriginalIsBoundary(originalEnd-1)||this._OriginalIsBoundary(originalEnd)){return true}}return false}_ModifiedIsBoundary(index){if(index<=0||index>=this._modifiedElementsOrHash.length-1){return true}return this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[index])}_ModifiedRegionIsBoundary(modifiedStart,modifiedLength){if(this._ModifiedIsBoundary(modifiedStart)||this._ModifiedIsBoundary(modifiedStart-1)){return true}if(modifiedLength>0){const modifiedEnd=modifiedStart+modifiedLength;if(this._ModifiedIsBoundary(modifiedEnd-1)||this._ModifiedIsBoundary(modifiedEnd)){return true}}return false}_boundaryScore(originalStart,originalLength,modifiedStart,modifiedLength){const originalScore=this._OriginalRegionIsBoundary(originalStart,originalLength)?1:0;const modifiedScore=this._ModifiedRegionIsBoundary(modifiedStart,modifiedLength)?1:0;return originalScore+modifiedScore}ConcatenateChanges(left,right){const mergedChangeArr=[];if(left.length===0||right.length===0){return right.length>0?right:left}else if(this.ChangesOverlap(left[left.length-1],right[0],mergedChangeArr)){const result=new Array(left.length+right.length-1);MyArray.Copy(left,0,result,0,left.length-1);result[left.length-1]=mergedChangeArr[0];MyArray.Copy(right,1,result,left.length,right.length-1);return result}else{const result=new Array(left.length+right.length);MyArray.Copy(left,0,result,0,left.length);MyArray.Copy(right,0,result,left.length,right.length);return result}}ChangesOverlap(left,right,mergedChangeArr){Debug.Assert(left.originalStart<=right.originalStart,"Left change is not less than or equal to right change");Debug.Assert(left.modifiedStart<=right.modifiedStart,"Left change is not less than or equal to right change");if(left.originalStart+left.originalLength>=right.originalStart||left.modifiedStart+left.modifiedLength>=right.modifiedStart){const originalStart=left.originalStart;let originalLength=left.originalLength;const modifiedStart=left.modifiedStart;let modifiedLength=left.modifiedLength;if(left.originalStart+left.originalLength>=right.originalStart){originalLength=right.originalStart+right.originalLength-left.originalStart}if(left.modifiedStart+left.modifiedLength>=right.modifiedStart){modifiedLength=right.modifiedStart+right.modifiedLength-left.modifiedStart}mergedChangeArr[0]=new DiffChange(originalStart,originalLength,modifiedStart,modifiedLength);return true}else{mergedChangeArr[0]=null;return false}}ClipDiagonalBound(diagonal,numDifferences,diagonalBaseIndex,numDiagonals){if(diagonal>=0&&diagonal255){return 255}return v|0}function toUint32(v){if(v<0){return 0}if(v>4294967295){return 4294967295}return v|0}var init_uint=__esm({"node_modules/monaco-editor/esm/vs/base/common/uint.js"(){}});var PrefixSumComputer,ConstantTimePrefixSumComputer,PrefixSumIndexOfResult;var init_prefixSumComputer=__esm({"node_modules/monaco-editor/esm/vs/editor/common/model/prefixSumComputer.js"(){init_arrays();init_uint();PrefixSumComputer=class{constructor(values){this.values=values;this.prefixSum=new Uint32Array(values.length);this.prefixSumValidIndex=new Int32Array(1);this.prefixSumValidIndex[0]=-1}insertValues(insertIndex,insertValues){insertIndex=toUint32(insertIndex);const oldValues=this.values;const oldPrefixSum=this.prefixSum;const insertValuesLen=insertValues.length;if(insertValuesLen===0){return false}this.values=new Uint32Array(oldValues.length+insertValuesLen);this.values.set(oldValues.subarray(0,insertIndex),0);this.values.set(oldValues.subarray(insertIndex),insertIndex+insertValuesLen);this.values.set(insertValues,insertIndex);if(insertIndex-1=0){this.prefixSum.set(oldPrefixSum.subarray(0,this.prefixSumValidIndex[0]+1))}return true}setValue(index,value){index=toUint32(index);value=toUint32(value);if(this.values[index]===value){return false}this.values[index]=value;if(index-1=oldValues.length){return false}const maxCount=oldValues.length-startIndex;if(count>=maxCount){count=maxCount}if(count===0){return false}this.values=new Uint32Array(oldValues.length-count);this.values.set(oldValues.subarray(0,startIndex),0);this.values.set(oldValues.subarray(startIndex+count),startIndex);this.prefixSum=new Uint32Array(this.values.length);if(startIndex-1=0){this.prefixSum.set(oldPrefixSum.subarray(0,this.prefixSumValidIndex[0]+1))}return true}getTotalSum(){if(this.values.length===0){return 0}return this._getPrefixSum(this.values.length-1)}getPrefixSum(index){if(index<0){return 0}index=toUint32(index);return this._getPrefixSum(index)}_getPrefixSum(index){if(index<=this.prefixSumValidIndex[0]){return this.prefixSum[index]}let startIndex=this.prefixSumValidIndex[0]+1;if(startIndex===0){this.prefixSum[0]=this.values[0];startIndex++}if(index>=this.values.length){index=this.values.length-1}for(let i=startIndex;i<=index;i++){this.prefixSum[i]=this.prefixSum[i-1]+this.values[i]}this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],index);return this.prefixSum[index]}getIndexOf(sum){sum=Math.floor(sum);this.getTotalSum();let low=0;let high=this.values.length-1;let mid=0;let midStop=0;let midStart=0;while(low<=high){mid=low+(high-low)/2|0;midStop=this.prefixSum[mid];midStart=midStop-this.values[mid];if(sum=midStop){low=mid+1}else{break}}return new PrefixSumIndexOfResult(mid,sum-midStart)}};ConstantTimePrefixSumComputer=class{constructor(values){this._values=values;this._isValid=false;this._validEndIndex=-1;this._prefixSum=[];this._indexBySum=[]}getTotalSum(){this._ensureValid();return this._indexBySum.length}getPrefixSum(count){this._ensureValid();if(count===0){return 0}return this._prefixSum[count-1]}getIndexOf(sum){this._ensureValid();const idx=this._indexBySum[sum];const viewLinesAbove=idx>0?this._prefixSum[idx-1]:0;return new PrefixSumIndexOfResult(idx,sum-viewLinesAbove)}removeValues(start,deleteCount){this._values.splice(start,deleteCount);this._invalidate(start)}insertValues(insertIndex,insertArr){this._values=arrayInsert(this._values,insertIndex,insertArr);this._invalidate(insertIndex)}_invalidate(index){this._isValid=false;this._validEndIndex=Math.min(this._validEndIndex,index-1)}_ensureValid(){if(this._isValid){return}for(let i=this._validEndIndex+1,len=this._values.length;i0?this._prefixSum[i-1]:0;this._prefixSum[i]=sumAbove+value;for(let j=0;j=0&&charCode<256){this._asciiMap[charCode]=value}else{this._map.set(charCode,value)}}get(charCode){if(charCode>=0&&charCode<256){return this._asciiMap[charCode]}else{return this._map.get(charCode)||this._defaultValue}}clear(){this._asciiMap.fill(this._defaultValue);this._map.clear()}};CharacterSet=class{constructor(){this._actual=new CharacterClassifier(0)}add(charCode){this._actual.set(charCode,1)}has(charCode){return this._actual.get(charCode)===1}clear(){return this._actual.clear()}}}});function getStateMachine(){if(_stateMachine===null){_stateMachine=new StateMachine([[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]])}return _stateMachine}function getClassifier(){if(_classifier===null){_classifier=new CharacterClassifier(0);const FORCE_TERMINATION_CHARACTERS=` \t<>'"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…`;for(let i=0;imaxCharCode){maxCharCode=chCode}if(from>maxState){maxState=from}if(to>maxState){maxState=to}}maxCharCode++;maxState++;const states=new Uint8Matrix(maxState,maxCharCode,0);for(let i=0,len=edges.length;i=this._maxCharCode){return 0}return this._states.get(currentState,chCode)}};_stateMachine=null;_classifier=null;LinkComputer=class{static _createLink(classifier,line,lineNumber,linkBeginIndex,linkEndIndex){let lastIncludedCharIndex=linkEndIndex-1;do{const chCode=line.charCodeAt(lastIncludedCharIndex);const chClass=classifier.get(chCode);if(chClass!==2){break}lastIncludedCharIndex--}while(lastIncludedCharIndex>linkBeginIndex);if(linkBeginIndex>0){const charCodeBeforeLink=line.charCodeAt(linkBeginIndex-1);const lastCharCodeInLink=line.charCodeAt(lastIncludedCharIndex);if(charCodeBeforeLink===40&&lastCharCodeInLink===41||charCodeBeforeLink===91&&lastCharCodeInLink===93||charCodeBeforeLink===123&&lastCharCodeInLink===125){lastIncludedCharIndex--}}return{range:{startLineNumber:lineNumber,startColumn:linkBeginIndex+1,endLineNumber:lineNumber,endColumn:lastIncludedCharIndex+2},url:line.substring(linkBeginIndex,lastIncludedCharIndex+1)}}static computeLinks(model,stateMachine=getStateMachine()){const classifier=getClassifier();const result=[];for(let i=1,lineCount=model.getLineCount();i<=lineCount;i++){const line=model.getLineContent(i);const len=line.length;let j=0;let linkBeginIndex=0;let linkBeginChCode=0;let state=1;let hasOpenParens=false;let hasOpenSquareBracket=false;let inSquareBrackets=false;let hasOpenCurlyBracket=false;while(j=0){idx+=up?1:-1;if(idx<0){idx=valueSet.length-1}else{idx%=valueSet.length}return valueSet[idx]}return null}};BasicInplaceReplace.INSTANCE=new BasicInplaceReplace}});function once2(computeFn){const cache={};return input=>{if(!cache.hasOwnProperty(input)){cache[input]=computeFn(input)}return cache[input]}}var WordCharacterClassifier,getMapForWordSeparators;var init_wordCharacterClassifier=__esm({"node_modules/monaco-editor/esm/vs/editor/common/core/wordCharacterClassifier.js"(){init_characterClassifier();WordCharacterClassifier=class extends CharacterClassifier{constructor(wordSeparators2){super(0);for(let i=0,len=wordSeparators2.length;inew WordCharacterClassifier(input)))}});function isMultilineRegexSource(searchString){if(!searchString||searchString.length===0){return false}for(let i=0,len=searchString.length;i=len){break}const nextChCode=searchString.charCodeAt(i);if(nextChCode===110||nextChCode===114||nextChCode===87){return true}}}return false}function createFindMatch(range2,rawMatches,captureMatches){if(!captureMatches){return new FindMatch(range2,null)}const matches=[];for(let i=0,len=rawMatches.length;i0){const firstCharInMatch=text2.charCodeAt(matchStartIndex);if(wordSeparators2.get(firstCharInMatch)!==0){return true}}return false}function rightIsWordBounday(wordSeparators2,text2,textLength,matchStartIndex,matchLength){if(matchStartIndex+matchLength===textLength){return true}const charAfter=text2.charCodeAt(matchStartIndex+matchLength);if(wordSeparators2.get(charAfter)!==0){return true}if(charAfter===13||charAfter===10){return true}if(matchLength>0){const lastCharInMatch=text2.charCodeAt(matchStartIndex+matchLength-1);if(wordSeparators2.get(lastCharInMatch)!==0){return true}}return false}function isValidMatch(wordSeparators2,text2,textLength,matchStartIndex,matchLength){return leftIsWordBounday(wordSeparators2,text2,textLength,matchStartIndex,matchLength)&&rightIsWordBounday(wordSeparators2,text2,textLength,matchStartIndex,matchLength)}var LIMIT_FIND_COUNT,SearchParams,LineFeedCounter,TextModelSearch,Searcher;var init_textModelSearch=__esm({"node_modules/monaco-editor/esm/vs/editor/common/model/textModelSearch.js"(){init_strings();init_wordCharacterClassifier();init_position();init_range();init_model();LIMIT_FIND_COUNT=999;SearchParams=class{constructor(searchString,isRegex,matchCase,wordSeparators2){this.searchString=searchString;this.isRegex=isRegex;this.matchCase=matchCase;this.wordSeparators=wordSeparators2}parseSearchRequest(){if(this.searchString===""){return null}let multiline;if(this.isRegex){multiline=isMultilineRegexSource(this.searchString)}else{multiline=this.searchString.indexOf("\n")>=0}let regex=null;try{regex=createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:false,multiline:multiline,global:true,unicode:true})}catch(err){return null}if(!regex){return null}let canUseSimpleSearch=!this.isRegex&&!multiline;if(canUseSimpleSearch&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()){canUseSimpleSearch=this.matchCase}return new SearchData(regex,this.wordSeparators?getMapForWordSeparators(this.wordSeparators):null,canUseSimpleSearch?this.searchString:null)}};LineFeedCounter=class{constructor(text2){const lineFeedsOffsets=[];let lineFeedsOffsetsLen=0;for(let i=0,textLen=text2.length;i>0);if(lineFeedsOffsets[mid]>=offset){max=mid-1}else{if(lineFeedsOffsets[mid+1]>=offset){min=mid;max=mid}else{min=mid+1}}}return min+1}};TextModelSearch=class{static findMatches(model,searchParams,searchRange,captureMatches,limitResultCount){const searchData=searchParams.parseSearchRequest();if(!searchData){return[]}if(searchData.regex.multiline){return this._doFindMatchesMultiline(model,searchRange,new Searcher(searchData.wordSeparators,searchData.regex),captureMatches,limitResultCount)}return this._doFindMatchesLineByLine(model,searchRange,searchData,captureMatches,limitResultCount)}static _getMultilineMatchRange(model,deltaOffset,text2,lfCounter,matchIndex,match0){let startOffset;let lineFeedCountBeforeMatch=0;if(lfCounter){lineFeedCountBeforeMatch=lfCounter.findLineFeedCountBeforeOffset(matchIndex);startOffset=deltaOffset+matchIndex+lineFeedCountBeforeMatch}else{startOffset=deltaOffset+matchIndex}let endOffset;if(lfCounter){const lineFeedCountBeforeEndOfMatch=lfCounter.findLineFeedCountBeforeOffset(matchIndex+match0.length);const lineFeedCountInMatch=lineFeedCountBeforeEndOfMatch-lineFeedCountBeforeMatch;endOffset=startOffset+match0.length+lineFeedCountInMatch}else{endOffset=startOffset+match0.length}const startPosition=model.getPositionAt(startOffset);const endPosition=model.getPositionAt(endOffset);return new Range(startPosition.lineNumber,startPosition.column,endPosition.lineNumber,endPosition.column)}static _doFindMatchesMultiline(model,searchRange,searcher,captureMatches,limitResultCount){const deltaOffset=model.getOffsetAt(searchRange.getStartPosition());const text2=model.getValueInRange(searchRange,1);const lfCounter=model.getEOL()==="\r\n"?new LineFeedCounter(text2):null;const result=[];let counter=0;let m;searcher.reset(0);while(m=searcher.next(text2)){result[counter++]=createFindMatch(this._getMultilineMatchRange(model,deltaOffset,text2,lfCounter,m.index,m[0]),m,captureMatches);if(counter>=limitResultCount){return result}}return result}static _doFindMatchesLineByLine(model,searchRange,searchData,captureMatches,limitResultCount){const result=[];let resultLen=0;if(searchRange.startLineNumber===searchRange.endLineNumber){const text3=model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn-1,searchRange.endColumn-1);resultLen=this._findMatchesInLine(searchData,text3,searchRange.startLineNumber,searchRange.startColumn-1,resultLen,result,captureMatches,limitResultCount);return result}const text2=model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn-1);resultLen=this._findMatchesInLine(searchData,text2,searchRange.startLineNumber,searchRange.startColumn-1,resultLen,result,captureMatches,limitResultCount);for(let lineNumber=searchRange.startLineNumber+1;lineNumber=limitResultCount){return resultLen}}}return resultLen}const searcher=new Searcher(searchData.wordSeparators,searchData.regex);let m;searcher.reset(0);do{m=searcher.next(text2);if(m){result[resultLen++]=createFindMatch(new Range(lineNumber,m.index+1+deltaOffset,lineNumber,m.index+1+m[0].length+deltaOffset),m,captureMatches);if(resultLen>=limitResultCount){return resultLen}}}while(m);return resultLen}static findNextMatch(model,searchParams,searchStart,captureMatches){const searchData=searchParams.parseSearchRequest();if(!searchData){return null}const searcher=new Searcher(searchData.wordSeparators,searchData.regex);if(searchData.regex.multiline){return this._doFindNextMatchMultiline(model,searchStart,searcher,captureMatches)}return this._doFindNextMatchLineByLine(model,searchStart,searcher,captureMatches)}static _doFindNextMatchMultiline(model,searchStart,searcher,captureMatches){const searchTextStart=new Position(searchStart.lineNumber,1);const deltaOffset=model.getOffsetAt(searchTextStart);const lineCount=model.getLineCount();const text2=model.getValueInRange(new Range(searchTextStart.lineNumber,searchTextStart.column,lineCount,model.getLineMaxColumn(lineCount)),1);const lfCounter=model.getEOL()==="\r\n"?new LineFeedCounter(text2):null;searcher.reset(searchStart.column-1);const m=searcher.next(text2);if(m){return createFindMatch(this._getMultilineMatchRange(model,deltaOffset,text2,lfCounter,m.index,m[0]),m,captureMatches)}if(searchStart.lineNumber!==1||searchStart.column!==1){return this._doFindNextMatchMultiline(model,new Position(1,1),searcher,captureMatches)}return null}static _doFindNextMatchLineByLine(model,searchStart,searcher,captureMatches){const lineCount=model.getLineCount();const startLineNumber=searchStart.lineNumber;const text2=model.getLineContent(startLineNumber);const r=this._findFirstMatchInLine(searcher,text2,startLineNumber,searchStart.column,captureMatches);if(r){return r}for(let i=1;i<=lineCount;i++){const lineIndex=(startLineNumber+i-1)%lineCount;const text3=model.getLineContent(lineIndex+1);const r2=this._findFirstMatchInLine(searcher,text3,lineIndex+1,1,captureMatches);if(r2){return r2}}return null}static _findFirstMatchInLine(searcher,text2,lineNumber,fromColumn,captureMatches){searcher.reset(fromColumn-1);const m=searcher.next(text2);if(m){return createFindMatch(new Range(lineNumber,m.index+1,lineNumber,m.index+1+m[0].length),m,captureMatches)}return null}static findPreviousMatch(model,searchParams,searchStart,captureMatches){const searchData=searchParams.parseSearchRequest();if(!searchData){return null}const searcher=new Searcher(searchData.wordSeparators,searchData.regex);if(searchData.regex.multiline){return this._doFindPreviousMatchMultiline(model,searchStart,searcher,captureMatches)}return this._doFindPreviousMatchLineByLine(model,searchStart,searcher,captureMatches)}static _doFindPreviousMatchMultiline(model,searchStart,searcher,captureMatches){const matches=this._doFindMatchesMultiline(model,new Range(1,1,searchStart.lineNumber,searchStart.column),searcher,captureMatches,10*LIMIT_FIND_COUNT);if(matches.length>0){return matches[matches.length-1]}const lineCount=model.getLineCount();if(searchStart.lineNumber!==lineCount||searchStart.column!==model.getLineMaxColumn(lineCount)){return this._doFindPreviousMatchMultiline(model,new Position(lineCount,model.getLineMaxColumn(lineCount)),searcher,captureMatches)}return null}static _doFindPreviousMatchLineByLine(model,searchStart,searcher,captureMatches){const lineCount=model.getLineCount();const startLineNumber=searchStart.lineNumber;const text2=model.getLineContent(startLineNumber).substring(0,searchStart.column-1);const r=this._findLastMatchInLine(searcher,text2,startLineNumber,captureMatches);if(r){return r}for(let i=1;i<=lineCount;i++){const lineIndex=(lineCount+startLineNumber-i-1)%lineCount;const text3=model.getLineContent(lineIndex+1);const r2=this._findLastMatchInLine(searcher,text3,lineIndex+1,captureMatches);if(r2){return r2}}return null}static _findLastMatchInLine(searcher,text2,lineNumber,captureMatches){let bestResult=null;let m;searcher.reset(0);while(m=searcher.next(text2)){bestResult=createFindMatch(new Range(lineNumber,m.index+1,lineNumber,m.index+1+m[0].length),m,captureMatches)}return bestResult}};Searcher=class{constructor(wordSeparators2,searchRegex){this._wordSeparators=wordSeparators2;this._searchRegex=searchRegex;this._prevMatchStartIndex=-1;this._prevMatchLength=0}reset(lastIndex){this._searchRegex.lastIndex=lastIndex;this._prevMatchStartIndex=-1;this._prevMatchLength=0}next(text2){const textLength=text2.length;let m;do{if(this._prevMatchStartIndex+this._prevMatchLength===textLength){return null}m=this._searchRegex.exec(text2);if(!m){return null}const matchStartIndex=m.index;const matchLength=m[0].length;if(matchStartIndex===this._prevMatchStartIndex&&matchLength===this._prevMatchLength){if(matchLength===0){if(getNextCodePoint(text2,textLength,this._searchRegex.lastIndex)>65535){this._searchRegex.lastIndex+=2}else{this._searchRegex.lastIndex+=1}continue}return null}this._prevMatchStartIndex=matchStartIndex;this._prevMatchLength=matchLength;if(!this._wordSeparators||isValidMatch(this._wordSeparators,text2,textLength,matchStartIndex,matchLength)){return m}}while(m);return null}}}});function buildRegExpCharClassExpr(codePoints,flags){const src=`[${escapeRegExpCharacters(codePoints.map((i=>String.fromCodePoint(i))).join(""))}]`;return src}function isAllowedInvisibleCharacter(character){return character===" "||character==="\n"||character==="\t"}var UnicodeTextModelHighlighter,CodePointHighlighter;var init_unicodeTextModelHighlighter=__esm({"node_modules/monaco-editor/esm/vs/editor/common/services/unicodeTextModelHighlighter.js"(){init_range();init_textModelSearch();init_strings();init_assert();init_wordHelper();UnicodeTextModelHighlighter=class{static computeUnicodeHighlights(model,options2,range2){const startLine=range2?range2.startLineNumber:1;const endLine=range2?range2.endLineNumber:model.getLineCount();const codePointHighlighter=new CodePointHighlighter(options2);const candidates=codePointHighlighter.getCandidateCodePoints();let regex;if(candidates==="allNonBasicAscii"){regex=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g")}else{regex=new RegExp(`${buildRegExpCharClassExpr(Array.from(candidates))}`,"g")}const searcher=new Searcher(null,regex);const ranges=[];let hasMore=false;let m;let ambiguousCharacterCount=0;let invisibleCharacterCount=0;let nonBasicAsciiCharacterCount=0;forLoop:for(let lineNumber=startLine,lineCount=endLine;lineNumber<=lineCount;lineNumber++){const lineContent=model.getLineContent(lineNumber);const lineLength=lineContent.length;searcher.reset(0);do{m=searcher.next(lineContent);if(m){let startIndex=m.index;let endIndex=m.index+m[0].length;if(startIndex>0){const charCodeBefore=lineContent.charCodeAt(startIndex-1);if(isHighSurrogate(charCodeBefore)){startIndex--}}if(endIndex+1=MAX_RESULT_LENGTH){hasMore=true;break forLoop}ranges.push(new Range(lineNumber,startIndex+1,lineNumber,endIndex+1))}}}while(m)}return{ranges:ranges,hasMore:hasMore,ambiguousCharacterCount:ambiguousCharacterCount,invisibleCharacterCount:invisibleCharacterCount,nonBasicAsciiCharacterCount:nonBasicAsciiCharacterCount}}static computeUnicodeHighlightReason(char,options2){const codePointHighlighter=new CodePointHighlighter(options2);const reason=codePointHighlighter.shouldHighlightNonBasicASCII(char,null);switch(reason){case 0:return null;case 2:return{kind:1};case 3:{const codePoint=char.codePointAt(0);const primaryConfusable=codePointHighlighter.ambiguousCharacters.getPrimaryConfusable(codePoint);const notAmbiguousInLocales=AmbiguousCharacters.getLocales().filter((l=>!AmbiguousCharacters.getInstance(new Set([...options2.allowedLocales,l])).isAmbiguous(codePoint)));return{kind:0,confusableWith:String.fromCodePoint(primaryConfusable),notAmbiguousInLocales:notAmbiguousInLocales}}case 1:return{kind:2}}}};CodePointHighlighter=class{constructor(options2){this.options=options2;this.allowedCodePoints=new Set(options2.allowedCodePoints);this.ambiguousCharacters=AmbiguousCharacters.getInstance(new Set(options2.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII){return"allNonBasicAscii"}const set=new Set;if(this.options.invisibleCharacters){for(const cp of InvisibleCharacters.codePoints){if(!isAllowedInvisibleCharacter(String.fromCodePoint(cp))){set.add(cp)}}}if(this.options.ambiguousCharacters){for(const cp of this.ambiguousCharacters.getConfusableCodePoints()){set.add(cp)}}for(const cp of this.allowedCodePoints){set.delete(cp)}return set}shouldHighlightNonBasicASCII(character,wordContext){const codePoint=character.codePointAt(0);if(this.allowedCodePoints.has(codePoint)){return 0}if(this.options.nonBasicASCII){return 1}let hasBasicASCIICharacters=false;let hasNonConfusableNonBasicAsciiCharacter=false;if(wordContext){for(const char of wordContext){const codePoint2=char.codePointAt(0);const isBasicASCII2=isBasicASCII(char);hasBasicASCIICharacters=hasBasicASCIICharacters||isBasicASCII2;if(!isBasicASCII2&&!this.ambiguousCharacters.isAmbiguous(codePoint2)&&!InvisibleCharacters.isInvisibleCharacter(codePoint2)){hasNonConfusableNonBasicAsciiCharacter=true}}}if(!hasBasicASCIICharacters&&hasNonConfusableNonBasicAsciiCharacter){return 0}if(this.options.invisibleCharacters){if(!isAllowedInvisibleCharacter(character)&&InvisibleCharacters.isInvisibleCharacter(codePoint)){return 2}}if(this.options.ambiguousCharacters){if(this.ambiguousCharacters.isAmbiguous(codePoint)){return 3}}return 0}}}});var OffsetRange,OffsetRangeSet;var init_offsetRange=__esm({"node_modules/monaco-editor/esm/vs/editor/common/core/offsetRange.js"(){init_errors();OffsetRange=class{static addRange(range2,sortedRanges){let i=0;while(iendExclusive){return void 0}return new OffsetRange(start,endExclusive)}static ofLength(length2){return new OffsetRange(0,length2)}constructor(start,endExclusive){this.start=start;this.endExclusive=endExclusive;if(start>endExclusive){throw new BugIndicatingError(`Invalid range: ${this.toString()}`)}}get isEmpty(){return this.start===this.endExclusive}delta(offset){return new OffsetRange(this.start+offset,this.endExclusive+offset)}deltaStart(offset){return new OffsetRange(this.start+offset,this.endExclusive)}deltaEnd(offset){return new OffsetRange(this.start,this.endExclusive+offset)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}equals(other){return this.start===other.start&&this.endExclusive===other.endExclusive}containsRange(other){return this.start<=other.start&&other.endExclusive<=this.endExclusive}contains(offset){return this.start<=offset&&offset=this.endExclusive){return this.start+(value-this.start)%this.length}return value}};OffsetRangeSet=class{constructor(){this._sortedRanges=[]}addRange(range2){let i=0;while(ir.toString())).join(", ")}intersectsStrict(other){let i=0;while(iprev+cur.length),0)}}}});var LineRange;var init_lineRange=__esm({"node_modules/monaco-editor/esm/vs/editor/common/core/lineRange.js"(){init_errors();init_offsetRange();init_range();LineRange=class{static fromRange(range2){return new LineRange(range2.startLineNumber,range2.endLineNumber)}static subtract(a,b){if(!b){return[a]}if(a.startLineNumber=next.startLineNumber){current=new LineRange(current.startLineNumber,Math.max(current.endLineNumberExclusive,next.endLineNumberExclusive))}else{result.push(current);current=next}}}if(current!==null){result.push(current)}return result}static ofLength(startLineNumber,length2){return new LineRange(startLineNumber,startLineNumber+length2)}static deserialize(lineRange){return new LineRange(lineRange[0],lineRange[1])}constructor(startLineNumber,endLineNumberExclusive){if(startLineNumber>endLineNumberExclusive){throw new BugIndicatingError(`startLineNumber ${startLineNumber} cannot be after endLineNumberExclusive ${endLineNumberExclusive}`)}this.startLineNumber=startLineNumber;this.endLineNumberExclusive=endLineNumberExclusive}contains(lineNumber){return this.startLineNumber<=lineNumber&&lineNumber${this.modifiedRange.toString()}}`}get changedLineCount(){return Math.max(this.originalRange.length,this.modifiedRange.length)}flip(){var _a6;return new LineRangeMapping(this.modifiedRange,this.originalRange,(_a6=this.innerChanges)===null||_a6===void 0?void 0:_a6.map((c=>c.flip())))}};RangeMapping=class{constructor(originalRange,modifiedRange){this.originalRange=originalRange;this.modifiedRange=modifiedRange}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new RangeMapping(this.modifiedRange,this.originalRange)}};SimpleLineRangeMapping=class{constructor(original,modified){this.original=original;this.modified=modified}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new SimpleLineRangeMapping(this.modified,this.original)}join(other){return new SimpleLineRangeMapping(this.original.join(other.original),this.modified.join(other.modified))}};MovedText=class{constructor(lineRangeMapping,changes){this.lineRangeMapping=lineRangeMapping;this.changes=changes}flip(){return new MovedText(this.lineRangeMapping.flip(),this.changes.map((c=>c.flip())))}}}});function computeDiff(originalSequence,modifiedSequence,continueProcessingPredicate,pretty){const diffAlgo=new LcsDiff(originalSequence,modifiedSequence,continueProcessingPredicate);return diffAlgo.ComputeDiff(pretty)}function postProcessCharChanges(rawChanges){if(rawChanges.length<=1){return rawChanges}const result=[rawChanges[0]];let prevChange=result[0];for(let i=1,len=rawChanges.length;itrue}const startTime=Date.now();return()=>Date.now()-startTimenew RangeMapping(new Range(c2.originalStartLineNumber,c2.originalStartColumn,c2.originalEndLineNumber,c2.originalEndColumn),new Range(c2.modifiedStartLineNumber,c2.modifiedStartColumn,c2.modifiedEndLineNumber,c2.modifiedEndColumn)))));if(lastChange){if(lastChange.modifiedRange.endLineNumberExclusive===change.modifiedRange.startLineNumber||lastChange.originalRange.endLineNumberExclusive===change.originalRange.startLineNumber){change=new LineRangeMapping(lastChange.originalRange.join(change.originalRange),lastChange.modifiedRange.join(change.modifiedRange),lastChange.innerChanges&&change.innerChanges?lastChange.innerChanges.concat(change.innerChanges):void 0);changes.pop()}}changes.push(change);lastChange=change}assertFn((()=>checkAdjacentItems(changes,((m1,m2)=>m2.originalRange.startLineNumber-m1.originalRange.endLineNumberExclusive===m2.modifiedRange.startLineNumber-m1.modifiedRange.endLineNumberExclusive&&m1.originalRange.endLineNumberExclusive(s===10?"\\n":String.fromCharCode(s))+`-(${this._lineNumbers[idx]},${this._columns[idx]})`)).join(", ")+"]"}_assertIndex(index,arr){if(index<0||index>=arr.length){throw new Error(`Illegal index`)}}getElements(){return this._charCodes}getStartLineNumber(i){if(i>0&&i===this._lineNumbers.length){return this.getEndLineNumber(i-1)}this._assertIndex(i,this._lineNumbers);return this._lineNumbers[i]}getEndLineNumber(i){if(i===-1){return this.getStartLineNumber(i+1)}this._assertIndex(i,this._lineNumbers);if(this._charCodes[i]===10){return this._lineNumbers[i]+1}return this._lineNumbers[i]}getStartColumn(i){if(i>0&&i===this._columns.length){return this.getEndColumn(i-1)}this._assertIndex(i,this._columns);return this._columns[i]}getEndColumn(i){if(i===-1){return this.getStartColumn(i+1)}this._assertIndex(i,this._columns);if(this._charCodes[i]===10){return 1}return this._columns[i]+1}};CharChange=class{constructor(originalStartLineNumber,originalStartColumn,originalEndLineNumber,originalEndColumn,modifiedStartLineNumber,modifiedStartColumn,modifiedEndLineNumber,modifiedEndColumn){this.originalStartLineNumber=originalStartLineNumber;this.originalStartColumn=originalStartColumn;this.originalEndLineNumber=originalEndLineNumber;this.originalEndColumn=originalEndColumn;this.modifiedStartLineNumber=modifiedStartLineNumber;this.modifiedStartColumn=modifiedStartColumn;this.modifiedEndLineNumber=modifiedEndLineNumber;this.modifiedEndColumn=modifiedEndColumn}static createFromDiffChange(diffChange,originalCharSequence,modifiedCharSequence){const originalStartLineNumber=originalCharSequence.getStartLineNumber(diffChange.originalStart);const originalStartColumn=originalCharSequence.getStartColumn(diffChange.originalStart);const originalEndLineNumber=originalCharSequence.getEndLineNumber(diffChange.originalStart+diffChange.originalLength-1);const originalEndColumn=originalCharSequence.getEndColumn(diffChange.originalStart+diffChange.originalLength-1);const modifiedStartLineNumber=modifiedCharSequence.getStartLineNumber(diffChange.modifiedStart);const modifiedStartColumn=modifiedCharSequence.getStartColumn(diffChange.modifiedStart);const modifiedEndLineNumber=modifiedCharSequence.getEndLineNumber(diffChange.modifiedStart+diffChange.modifiedLength-1);const modifiedEndColumn=modifiedCharSequence.getEndColumn(diffChange.modifiedStart+diffChange.modifiedLength-1);return new CharChange(originalStartLineNumber,originalStartColumn,originalEndLineNumber,originalEndColumn,modifiedStartLineNumber,modifiedStartColumn,modifiedEndLineNumber,modifiedEndColumn)}};LineChange=class{constructor(originalStartLineNumber,originalEndLineNumber,modifiedStartLineNumber,modifiedEndLineNumber,charChanges){this.originalStartLineNumber=originalStartLineNumber;this.originalEndLineNumber=originalEndLineNumber;this.modifiedStartLineNumber=modifiedStartLineNumber;this.modifiedEndLineNumber=modifiedEndLineNumber;this.charChanges=charChanges}static createFromDiffResult(shouldIgnoreTrimWhitespace,diffChange,originalLineSequence,modifiedLineSequence,continueCharDiff,shouldComputeCharChanges,shouldPostProcessCharChanges){let originalStartLineNumber;let originalEndLineNumber;let modifiedStartLineNumber;let modifiedEndLineNumber;let charChanges=void 0;if(diffChange.originalLength===0){originalStartLineNumber=originalLineSequence.getStartLineNumber(diffChange.originalStart)-1;originalEndLineNumber=0}else{originalStartLineNumber=originalLineSequence.getStartLineNumber(diffChange.originalStart);originalEndLineNumber=originalLineSequence.getEndLineNumber(diffChange.originalStart+diffChange.originalLength-1)}if(diffChange.modifiedLength===0){modifiedStartLineNumber=modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart)-1;modifiedEndLineNumber=0}else{modifiedStartLineNumber=modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart);modifiedEndLineNumber=modifiedLineSequence.getEndLineNumber(diffChange.modifiedStart+diffChange.modifiedLength-1)}if(shouldComputeCharChanges&&diffChange.originalLength>0&&diffChange.originalLength<20&&diffChange.modifiedLength>0&&diffChange.modifiedLength<20&&continueCharDiff()){const originalCharSequence=originalLineSequence.createCharSequence(shouldIgnoreTrimWhitespace,diffChange.originalStart,diffChange.originalStart+diffChange.originalLength-1);const modifiedCharSequence=modifiedLineSequence.createCharSequence(shouldIgnoreTrimWhitespace,diffChange.modifiedStart,diffChange.modifiedStart+diffChange.modifiedLength-1);if(originalCharSequence.getElements().length>0&&modifiedCharSequence.getElements().length>0){let rawChanges=computeDiff(originalCharSequence,modifiedCharSequence,continueCharDiff,true).changes;if(shouldPostProcessCharChanges){rawChanges=postProcessCharChanges(rawChanges)}charChanges=[];for(let i=0,length2=rawChanges.length;i1&&modifiedStartColumn>1){const originalChar=originalLine.charCodeAt(originalStartColumn-2);const modifiedChar=modifiedLine.charCodeAt(modifiedStartColumn-2);if(originalChar!==modifiedChar){break}originalStartColumn--;modifiedStartColumn--}if(originalStartColumn>1||modifiedStartColumn>1){this._pushTrimWhitespaceCharChange(result,originalLineIndex+1,1,originalStartColumn,modifiedLineIndex+1,1,modifiedStartColumn)}}{let originalEndColumn=getLastNonBlankColumn(originalLine,1);let modifiedEndColumn=getLastNonBlankColumn(modifiedLine,1);const originalMaxColumn=originalLine.length+1;const modifiedMaxColumn=modifiedLine.length+1;while(originalEndColumn ${this.seq2Range}`}join(other){return new SequenceDiff(this.seq1Range.join(other.seq1Range),this.seq2Range.join(other.seq2Range))}delta(offset){if(offset===0){return this}return new SequenceDiff(this.seq1Range.delta(offset),this.seq2Range.delta(offset))}};InfiniteTimeout=class{isValid(){return true}};InfiniteTimeout.instance=new InfiniteTimeout;DateTimeout=class{constructor(timeout2){this.timeout=timeout2;this.startTime=Date.now();this.valid=true;if(timeout2<=0){throw new BugIndicatingError("timeout must be positive")}}isValid(){const valid=Date.now()-this.startTime0&&s22>0&&directions.get(s12-1,s22-1)===3){extendedSeqScore+=lengths.get(s12-1,s22-1)}extendedSeqScore+=equalityScore?equalityScore(s12,s22):1}else{extendedSeqScore=-1}const newValue=Math.max(horizontalLen,verticalLen,extendedSeqScore);if(newValue===extendedSeqScore){const prevLen=s12>0&&s22>0?lengths.get(s12-1,s22-1):0;lengths.set(s12,s22,prevLen+1);directions.set(s12,s22,3)}else if(newValue===horizontalLen){lengths.set(s12,s22,0);directions.set(s12,s22,1)}else if(newValue===verticalLen){lengths.set(s12,s22,0);directions.set(s12,s22,2)}lcsLengths.set(s12,s22,newValue)}}const result=[];let lastAligningPosS1=sequence1.length;let lastAligningPosS2=sequence2.length;function reportDecreasingAligningPositions(s12,s22){if(s12+1!==lastAligningPosS1||s22+1!==lastAligningPosS2){result.push(new SequenceDiff(new OffsetRange(s12+1,lastAligningPosS1),new OffsetRange(s22+1,lastAligningPosS2)))}lastAligningPosS1=s12;lastAligningPosS2=s22}let s1=sequence1.length-1;let s2=sequence2.length-1;while(s1>=0&&s2>=0){if(directions.get(s1,s2)===3){reportDecreasingAligningPositions(s1,s2);s1--;s2--}else{if(directions.get(s1,s2)===1){s1--}else{s2--}}}reportDecreasingAligningPositions(-1,-1);result.reverse();return new DiffAlgorithmResult(result,false)}}}});function optimizeSequenceDiffs(sequence1,sequence2,sequenceDiffs){let result=sequenceDiffs;result=joinSequenceDiffs(sequence1,sequence2,result);result=shiftSequenceDiffs(sequence1,sequence2,result);return result}function smoothenSequenceDiffs(sequence1,sequence2,sequenceDiffs){const result=[];for(const s of sequenceDiffs){const last=result[result.length-1];if(!last){result.push(s);continue}if(s.seq1Range.start-last.seq1Range.endExclusive<=2||s.seq2Range.start-last.seq2Range.endExclusive<=2){result[result.length-1]=new SequenceDiff(last.seq1Range.join(s.seq1Range),last.seq2Range.join(s.seq2Range))}else{result.push(s)}}return result}function removeRandomLineMatches(sequence1,_sequence2,sequenceDiffs){let diffs=sequenceDiffs;if(diffs.length===0){return diffs}let counter=0;let shouldRepeat;do{shouldRepeat=false;const result=[diffs[0]];for(let i=1;i5||after.seq1Range.length+after.seq2Range.length>5)){return true}return false};const cur=diffs[i];const lastResult=result[result.length-1];const shouldJoin=shouldJoinDiffs(lastResult,cur);if(shouldJoin){shouldRepeat=true;result[result.length-1]=result[result.length-1].join(cur)}else{result.push(cur)}}diffs=result}while(counter++<10&&shouldRepeat);return diffs}function removeRandomMatches(sequence1,sequence2,sequenceDiffs){let diffs=sequenceDiffs;if(diffs.length===0){return diffs}let counter=0;let shouldRepeat;do{shouldRepeat=false;const result=[diffs[0]];for(let i=1;i5||unchangedRange.length>500){return false}const unchangedText=sequence1.getText(unchangedRange).trim();if(unchangedText.length>20||unchangedText.split(/\r\n|\r|\n/).length>1){return false}const beforeLineCount1=sequence1.countLinesIn(before.seq1Range);const beforeSeq1Length=before.seq1Range.length;const beforeLineCount2=sequence2.countLinesIn(before.seq2Range);const beforeSeq2Length=before.seq2Range.length;const afterLineCount1=sequence1.countLinesIn(after.seq1Range);const afterSeq1Length=after.seq1Range.length;const afterLineCount2=sequence2.countLinesIn(after.seq2Range);const afterSeq2Length=after.seq2Range.length;const max=2*40+50;function cap(v){return Math.min(v,max)}if(Math.pow(Math.pow(cap(beforeLineCount1*40+beforeSeq1Length),1.5)+Math.pow(cap(beforeLineCount2*40+beforeSeq2Length),1.5),1.5)+Math.pow(Math.pow(cap(afterLineCount1*40+afterSeq1Length),1.5)+Math.pow(cap(afterLineCount2*40+afterSeq2Length),1.5),1.5)>Math.pow(Math.pow(max,1.5),1.5)*1.3){return true}return false};const cur=diffs[i];const lastResult=result[result.length-1];const shouldJoin=shouldJoinDiffs(lastResult,cur);if(shouldJoin){shouldRepeat=true;result[result.length-1]=result[result.length-1].join(cur)}else{result.push(cur)}}diffs=result}while(counter++<10&&shouldRepeat);for(let i=0;i0&&prefix.trim().length<=3&&cur.seq1Range.length+cur.seq2Range.length>100){range1=cur.seq1Range.deltaStart(-prefix.length);range2=cur.seq2Range.deltaStart(-prefix.length)}const suffix=sequence1.getText(new OffsetRange(cur.seq1Range.endExclusive,fullRange1.endExclusive));if(suffix.length>0&&(suffix.trim().length<=3&&cur.seq1Range.length+cur.seq2Range.length>150)){range1=range1.deltaEnd(suffix.length);range2=range2.deltaEnd(suffix.length)}diffs[i]=new SequenceDiff(range1,range2)}return diffs}function joinSequenceDiffs(sequence1,sequence2,sequenceDiffs){if(sequenceDiffs.length===0){return sequenceDiffs}const result=[];result.push(sequenceDiffs[0]);for(let i=1;i0){cur=cur.delta(d)}}result2.push(cur)}if(result.length>0){result2.push(result[result.length-1])}return result2}function shiftSequenceDiffs(sequence1,sequence2,sequenceDiffs){if(!sequence1.getBoundaryScore||!sequence2.getBoundaryScore){return sequenceDiffs}for(let i=0;i0?sequenceDiffs[i-1]:void 0;const diff=sequenceDiffs[i];const nextDiff=i+1=seq1ValidRange.start&&diff.seq2Range.start-deltaBefore>=seq2ValidRange.start&&sequence2.isStronglyEqual(diff.seq2Range.start-deltaBefore,diff.seq2Range.endExclusive-deltaBefore)&&deltaBeforebestScore){bestScore=score3;bestDelta=delta}}return diff.delta(bestDelta)}var init_joinSequenceDiffs=__esm({"node_modules/monaco-editor/esm/vs/editor/common/diff/algorithms/joinSequenceDiffs.js"(){init_offsetRange();init_diffAlgorithm()}});var MyersDiffAlgorithm,SnakePath,FastInt32Array,FastArrayNegativeIndices;var init_myersDiffAlgorithm=__esm({"node_modules/monaco-editor/esm/vs/editor/common/diff/algorithms/myersDiffAlgorithm.js"(){init_offsetRange();init_diffAlgorithm();MyersDiffAlgorithm=class{compute(seq1,seq2,timeout2=InfiniteTimeout.instance){if(seq1.length===0||seq2.length===0){return DiffAlgorithmResult.trivial(seq1,seq2)}function getXAfterSnake(x,y){while(xseq1.length||y>seq2.length){continue}const newMaxX=getXAfterSnake(x,y);V.set(k,newMaxX);const lastPath=x===maxXofDLineTop?paths.get(k+1):paths.get(k-1);paths.set(k,newMaxX!==x?new SnakePath(lastPath,x,y,newMaxX-x):lastPath);if(V.get(k)===seq1.length&&V.get(k)-k===seq2.length){break loop}}}let path=paths.get(k);const result=[];let lastAligningPosS1=seq1.length;let lastAligningPosS2=seq2.length;while(true){const endX=path?path.x+path.length:0;const endY=path?path.y+path.length:0;if(endX!==lastAligningPosS1||endY!==lastAligningPosS2){result.push(new SequenceDiff(new OffsetRange(endX,lastAligningPosS1),new OffsetRange(endY,lastAligningPosS2)))}if(!path){break}lastAligningPosS1=path.x;lastAligningPosS2=path.y;path=path.prev}result.reverse();return new DiffAlgorithmResult(result,false)}};SnakePath=class{constructor(prev,x,y,length2){this.prev=prev;this.x=x;this.y=y;this.length=length2}};FastInt32Array=class{constructor(){this.positiveArr=new Int32Array(10);this.negativeArr=new Int32Array(10)}get(idx){if(idx<0){idx=-idx-1;return this.negativeArr[idx]}else{return this.positiveArr[idx]}}set(idx,value){if(idx<0){idx=-idx-1;if(idx>=this.negativeArr.length){const arr=this.negativeArr;this.negativeArr=new Int32Array(arr.length*2);this.negativeArr.set(arr)}this.negativeArr[idx]=value}else{if(idx>=this.positiveArr.length){const arr=this.positiveArr;this.positiveArr=new Int32Array(arr.length*2);this.positiveArr.set(arr)}this.positiveArr[idx]=value}}};FastArrayNegativeIndices=class{constructor(){this.positiveArr=[];this.negativeArr=[]}get(idx){if(idx<0){idx=-idx-1;return this.negativeArr[idx]}else{return this.positiveArr[idx]}}set(idx,value){if(idx<0){idx=-idx-1;this.negativeArr[idx]=value}else{this.positiveArr[idx]=value}}}}});function intersectRanges(ranges1,ranges2){const result=[];let i1=0;let i2=0;while(i1originalLength1){additional.push(new SequenceDiff(lastModifiedWord.s1Range,lastModifiedWord.s2Range))}lastModifiedWord=void 0}for(const s of sequenceDiffs){let processWord=function(s1Range,s2Range){var _a6,_b3,_c2,_d2;if(!lastModifiedWord||!lastModifiedWord.s1Range.containsRange(s1Range)||!lastModifiedWord.s2Range.containsRange(s2Range)){if(lastModifiedWord&&!(lastModifiedWord.s1Range.endExclusive0||sequenceDiffs2.length>0){const sd1=sequenceDiffs1[0];const sd2=sequenceDiffs2[0];let next;if(sd1&&(!sd2||sd1.seq1Range.start0&&result[result.length-1].seq1Range.endExclusive>=next.seq1Range.start){result[result.length-1]=result[result.length-1].join(next)}else{result.push(next)}}return result}function lineRangeMappingFromRangeMappings(alignments,originalLines,modifiedLines,dontAssertStartLine=false){const changes=[];for(const g of group(alignments.map((a=>getLineRangeMapping(a,originalLines,modifiedLines))),((a1,a2)=>a1.originalRange.overlapOrTouch(a2.originalRange)||a1.modifiedRange.overlapOrTouch(a2.modifiedRange)))){const first2=g[0];const last=g[g.length-1];changes.push(new LineRangeMapping(first2.originalRange.join(last.originalRange),first2.modifiedRange.join(last.modifiedRange),g.map((a=>a.innerChanges[0]))))}assertFn((()=>{if(!dontAssertStartLine){if(changes.length>0&&changes[0].originalRange.startLineNumber!==changes[0].modifiedRange.startLineNumber){return false}}return checkAdjacentItems(changes,((m1,m2)=>m2.originalRange.startLineNumber-m1.originalRange.endLineNumberExclusive===m2.modifiedRange.startLineNumber-m1.modifiedRange.endLineNumberExclusive&&m1.originalRange.endLineNumberExclusive=modifiedLines[rangeMapping.modifiedRange.startLineNumber-1].length&&rangeMapping.originalRange.startColumn-1>=originalLines[rangeMapping.originalRange.startLineNumber-1].length&&rangeMapping.originalRange.startLineNumber<=rangeMapping.originalRange.endLineNumber+lineEndDelta&&rangeMapping.modifiedRange.startLineNumber<=rangeMapping.modifiedRange.endLineNumber+lineEndDelta){lineStartDelta=1}const originalLineRange=new LineRange(rangeMapping.originalRange.startLineNumber+lineStartDelta,rangeMapping.originalRange.endLineNumber+1+lineEndDelta);const modifiedLineRange=new LineRange(rangeMapping.modifiedRange.startLineNumber+lineStartDelta,rangeMapping.modifiedRange.endLineNumber+1+lineEndDelta);return new LineRangeMapping(originalLineRange,modifiedLineRange,[rangeMapping])}function*group(items,shouldBeGrouped){let currentGroup;let last;for(const item of items){if(last!==void 0&&shouldBeGrouped(last,item)){currentGroup.push(item)}else{if(currentGroup){yield currentGroup}currentGroup=[item]}last=item}if(currentGroup){yield currentGroup}}function getIndentation(str){let i=0;while(i=97&&charCode<=122||charCode>=65&&charCode<=90||charCode>=48&&charCode<=57}function getCategoryBoundaryScore(category){return score[category]}function getCategory(charCode){if(charCode===10){return 7}else if(charCode===13){return 6}else if(isSpace(charCode)){return 5}else if(charCode>=97&&charCode<=122){return 0}else if(charCode>=65&&charCode<=90){return 1}else if(charCode>=48&&charCode<=57){return 2}else if(charCode===-1){return 3}else{return 4}}function isSpace(charCode){return charCode===32||charCode===9}function getKey(chr){let key=chrKeys.get(chr);if(key===void 0){key=chrKeys.size;chrKeys.set(chr,key)}return key}var AdvancedLinesDiffComputer,MonotonousFinder,LineRangeSet,LineSequence2,LinesSliceCharSequence,score,chrKeys,LineRangeFragment;var init_advancedLinesDiffComputer=__esm({"node_modules/monaco-editor/esm/vs/editor/common/diff/advancedLinesDiffComputer.js"(){init_arrays();init_assert();init_collections();init_errors();init_lineRange();init_offsetRange();init_position();init_range();init_diffAlgorithm();init_dynamicProgrammingDiffing();init_joinSequenceDiffs();init_myersDiffAlgorithm();init_linesDiffComputer();AdvancedLinesDiffComputer=class{constructor(){this.dynamicProgrammingDiffing=new DynamicProgrammingDiffing;this.myersDiffingAlgorithm=new MyersDiffAlgorithm}computeDiff(originalLines,modifiedLines,options2){if(originalLines.length<=1&&equals(originalLines,modifiedLines,((a,b)=>a===b))){return new LinesDiff([],[],false)}if(originalLines.length===1&&originalLines[0].length===0||modifiedLines.length===1&&modifiedLines[0].length===0){return new LinesDiff([new LineRangeMapping(new LineRange(1,originalLines.length+1),new LineRange(1,modifiedLines.length+1),[new RangeMapping(new Range(1,1,originalLines.length,originalLines[0].length+1),new Range(1,1,modifiedLines.length,modifiedLines[0].length+1))])],[],false)}const timeout2=options2.maxComputationTimeMs===0?InfiniteTimeout.instance:new DateTimeout(options2.maxComputationTimeMs);const considerWhitespaceChanges=!options2.ignoreTrimWhitespace;const perfectHashes=new Map;function getOrCreateHash(text2){let hash2=perfectHashes.get(text2);if(hash2===void 0){hash2=perfectHashes.size;perfectHashes.set(text2,hash2)}return hash2}const srcDocLines=originalLines.map((l=>getOrCreateHash(l.trim())));const tgtDocLines=modifiedLines.map((l=>getOrCreateHash(l.trim())));const sequence1=new LineSequence2(srcDocLines,originalLines);const sequence2=new LineSequence2(tgtDocLines,modifiedLines);const lineAlignmentResult=(()=>{if(sequence1.length+sequence2.length<1700){return this.dynamicProgrammingDiffing.compute(sequence1,sequence2,timeout2,((offset1,offset2)=>originalLines[offset1]===modifiedLines[offset2]?modifiedLines[offset2].length===0?.1:1+Math.log(1+modifiedLines[offset2].length):.99))}return this.myersDiffingAlgorithm.compute(sequence1,sequence2)})();let lineAlignments=lineAlignmentResult.diffs;let hitTimeout=lineAlignmentResult.hitTimeout;lineAlignments=optimizeSequenceDiffs(sequence1,sequence2,lineAlignments);lineAlignments=removeRandomLineMatches(sequence1,sequence2,lineAlignments);const alignments=[];const scanForWhitespaceChanges=equalLinesCount=>{if(!considerWhitespaceChanges){return}for(let i=0;idiff.seq1Range.start-seq1LastStart===diff.seq2Range.start-seq2LastStart));const equalLinesCount=diff.seq1Range.start-seq1LastStart;scanForWhitespaceChanges(equalLinesCount);seq1LastStart=diff.seq1Range.endExclusive;seq2LastStart=diff.seq2Range.endExclusive;const characterDiffs=this.refineDiff(originalLines,modifiedLines,diff,timeout2,considerWhitespaceChanges);if(characterDiffs.hitTimeout){hitTimeout=true}for(const a of characterDiffs.mappings){alignments.push(a)}}scanForWhitespaceChanges(originalLines.length-seq1LastStart);const changes=lineRangeMappingFromRangeMappings(alignments,originalLines,modifiedLines);let moves=[];if(options2.computeMoves){moves=this.computeMoves(changes,originalLines,modifiedLines,srcDocLines,tgtDocLines,timeout2,considerWhitespaceChanges)}assertFn((()=>{function validatePosition(pos,lines){if(pos.lineNumber<1||pos.lineNumber>lines.length){return false}const line=lines[pos.lineNumber-1];if(pos.column<1||pos.column>line.length+1){return false}return true}function validateRange(range2,lines){if(range2.startLineNumber<1||range2.startLineNumber>lines.length+1){return false}if(range2.endLineNumberExclusive<1||range2.endLineNumberExclusive>lines.length+1){return false}return true}for(const c of changes){if(!c.innerChanges){return false}for(const ic of c.innerChanges){const valid=validatePosition(ic.modifiedRange.getStartPosition(),modifiedLines)&&validatePosition(ic.modifiedRange.getEndPosition(),modifiedLines)&&validatePosition(ic.originalRange.getStartPosition(),originalLines)&&validatePosition(ic.originalRange.getEndPosition(),originalLines);if(!valid){return false}}if(!validateRange(c.modifiedRange,modifiedLines)||!validateRange(c.originalRange,originalLines)){return false}}return true}));return new LinesDiff(changes,moves,hitTimeout)}computeMoves(changes,originalLines,modifiedLines,hashedOriginalLines,hashedModifiedLines,timeout2,considerWhitespaceChanges){const moves=[];const deletions=changes.filter((c=>c.modifiedRange.isEmpty&&c.originalRange.length>=3)).map((d=>new LineRangeFragment(d.originalRange,originalLines,d)));const insertions=new Set(changes.filter((c=>c.originalRange.isEmpty&&c.modifiedRange.length>=3)).map((d=>new LineRangeFragment(d.modifiedRange,modifiedLines,d))));const excludedChanges=new Set;for(const deletion of deletions){let highestSimilarity=-1;let best;for(const insertion of insertions){const similarity=deletion.computeSimilarity(insertion);if(similarity>highestSimilarity){highestSimilarity=similarity;best=insertion}}if(highestSimilarity>.9&&best){insertions.delete(best);moves.push(new SimpleLineRangeMapping(deletion.range,best.range));excludedChanges.add(deletion.source);excludedChanges.add(best.source)}if(!timeout2.isValid()){return[]}}const original3LineHashes=new SetMap;for(const change of changes){if(excludedChanges.has(change)){continue}for(let i=change.originalRange.startLineNumber;ic.modifiedRange.startLineNumber),numberComparator));for(const change of changes){if(excludedChanges.has(change)){continue}let lastMappings=[];for(let i=change.modifiedRange.startLineNumber;i{for(const lastMapping of lastMappings){if(lastMapping.originalLineRange.endLineNumberExclusive+1===range2.endLineNumberExclusive&&lastMapping.modifiedLineRange.endLineNumberExclusive+1===currentModifiedRange.endLineNumberExclusive){lastMapping.originalLineRange=new LineRange(lastMapping.originalLineRange.startLineNumber,range2.endLineNumberExclusive);lastMapping.modifiedLineRange=new LineRange(lastMapping.modifiedLineRange.startLineNumber,currentModifiedRange.endLineNumberExclusive);nextMappings.push(lastMapping);return}}const mapping={modifiedLineRange:currentModifiedRange,originalLineRange:range2};possibleMappings.push(mapping);nextMappings.push(mapping)}));lastMappings=nextMappings}if(!timeout2.isValid()){return[]}}possibleMappings.sort(reverseOrder(compareBy((m=>m.modifiedLineRange.length),numberComparator)));const modifiedSet=new LineRangeSet;const originalSet=new LineRangeSet;for(const mapping of possibleMappings){const diffOrigToMod=mapping.modifiedLineRange.startLineNumber-mapping.originalLineRange.startLineNumber;const modifiedSections=modifiedSet.subtractFrom(mapping.modifiedLineRange);const originalTranslatedSections=originalSet.subtractFrom(mapping.originalLineRange).map((r=>r.delta(diffOrigToMod)));const modifiedIntersectedSections=intersectRanges(modifiedSections,originalTranslatedSections);for(const s of modifiedIntersectedSections){if(s.length<3){continue}const modifiedLineRange=s;const originalLineRange=s.delta(-diffOrigToMod);moves.push(new SimpleLineRangeMapping(originalLineRange,modifiedLineRange));modifiedSet.addRange(modifiedLineRange);originalSet.addRange(originalLineRange)}}moves.sort(compareBy((m=>m.original.startLineNumber),numberComparator));if(moves.length===0){return[]}let joinedMoves=[moves[0]];for(let i=1;i=0&&modifiedDist>=0;if(currentMoveAfterLast&&originalDist+modifiedDist<=2){joinedMoves[joinedMoves.length-1]=last.join(current);continue}const originalText=current.original.toOffsetRange().slice(originalLines).map((l=>l.trim())).join("\n");if(originalText.length<=10){continue}joinedMoves.push(current)}const originalChanges=MonotonousFinder.createOfSorted(changes,(c=>c.originalRange.endLineNumberExclusive),numberComparator);joinedMoves=joinedMoves.filter((m=>{const diffBeforeOriginalMove=originalChanges.findLastItemBeforeOrEqual(m.original.startLineNumber)||new LineRangeMapping(new LineRange(1,1),new LineRange(1,1),[]);const modifiedDistToPrevDiff=m.modified.startLineNumber-diffBeforeOriginalMove.modifiedRange.endLineNumberExclusive;const originalDistToPrevDiff=m.original.startLineNumber-diffBeforeOriginalMove.originalRange.endLineNumberExclusive;const differentDistances=modifiedDistToPrevDiff!==originalDistToPrevDiff;return differentDistances}));const fullMoves=joinedMoves.map((m=>{const moveChanges=this.refineDiff(originalLines,modifiedLines,new SequenceDiff(m.original.toOffsetRange(),m.modified.toOffsetRange()),timeout2,considerWhitespaceChanges);const mappings=lineRangeMappingFromRangeMappings(moveChanges.mappings,originalLines,modifiedLines,true);return new MovedText(m,mappings)}));return fullMoves}refineDiff(originalLines,modifiedLines,diff,timeout2,considerWhitespaceChanges){const slice1=new LinesSliceCharSequence(originalLines,diff.seq1Range,considerWhitespaceChanges);const slice2=new LinesSliceCharSequence(modifiedLines,diff.seq2Range,considerWhitespaceChanges);const diffResult=slice1.length+slice2.length<500?this.dynamicProgrammingDiffing.compute(slice1,slice2,timeout2):this.myersDiffingAlgorithm.compute(slice1,slice2,timeout2);let diffs=diffResult.diffs;diffs=optimizeSequenceDiffs(slice1,slice2,diffs);diffs=coverFullWords(slice1,slice2,diffs);diffs=smoothenSequenceDiffs(slice1,slice2,diffs);diffs=removeRandomMatches(slice1,slice2,diffs);const result=diffs.map((d=>new RangeMapping(slice1.translateRange(d.seq1Range),slice2.translateRange(d.seq2Range))));return{mappings:result,hitTimeout:diffResult.hitTimeout}}};MonotonousFinder=class{static createOfSorted(items,itemToDomain,domainComparator){return new MonotonousFinder(items,itemToDomain,domainComparator)}constructor(_items,_itemToDomain,_domainComparator){this._items=_items;this._itemToDomain=_itemToDomain;this._domainComparator=_domainComparator;this._currentIdx=0;this._lastValue=void 0;this._hasLastValue=false}findLastItemBeforeOrEqual(value){if(this._hasLastValue&&CompareResult.isLessThan(this._domainComparator(value,this._lastValue))){throw new BugIndicatingError}this._lastValue=value;this._hasLastValue=true;while(this._currentIdxr.endLineNumberExclusive>=range2.startLineNumber)),this._normalizedRanges.length);const joinRangeEndIdxExclusive=findLastIndex(this._normalizedRanges,(r=>r.startLineNumber<=range2.endLineNumberExclusive))+1;if(joinRangeStartIdx===joinRangeEndIdxExclusive){this._normalizedRanges.splice(joinRangeStartIdx,0,range2)}else if(joinRangeStartIdx===joinRangeEndIdxExclusive-1){const joinRange=this._normalizedRanges[joinRangeStartIdx];this._normalizedRanges[joinRangeStartIdx]=joinRange.join(range2)}else{const joinRange=this._normalizedRanges[joinRangeStartIdx].join(this._normalizedRanges[joinRangeEndIdxExclusive-1]).join(range2);this._normalizedRanges.splice(joinRangeStartIdx,joinRangeEndIdxExclusive-joinRangeStartIdx,joinRange)}}subtractFrom(range2){const joinRangeStartIdx=mapMinusOne(this._normalizedRanges.findIndex((r=>r.endLineNumberExclusive>=range2.startLineNumber)),this._normalizedRanges.length);const joinRangeEndIdxExclusive=findLastIndex(this._normalizedRanges,(r=>r.startLineNumber<=range2.endLineNumberExclusive))+1;if(joinRangeStartIdx===joinRangeEndIdxExclusive){return[range2]}const result=[];let startLineNumber=range2.startLineNumber;for(let i=joinRangeStartIdx;istartLineNumber){result.push(new LineRange(startLineNumber,r.startLineNumber))}startLineNumber=r.endLineNumberExclusive}if(startLineNumber0&&lineRange.endExclusive>=lines.length){lineRange=new OffsetRange(lineRange.start-1,lineRange.endExclusive);trimFirstLineFully=true}this.lineRange=lineRange;for(let i=this.lineRange.start;iString.fromCharCode(e))).join("")}getElement(offset){return this.elements[offset]}get length(){return this.elements.length}getBoundaryScore(length2){const prevCategory=getCategory(length2>0?this.elements[length2-1]:-1);const nextCategory=getCategory(length2offset){j=k}else{i=k+1}}const offsetOfFirstCharInLine=i===0?0:this.firstCharOffsetByLineMinusOne[i-1];return new Position(this.lineRange.start+i+1,offset-offsetOfFirstCharInLine+1+this.additionalOffsetByLine[i])}translateRange(range2){return Range.fromPositions(this.translateOffset(range2.start),this.translateOffset(range2.endExclusive))}findWordContaining(offset){if(offset<0||offset>=this.elements.length){return void 0}if(!isWordChar(this.elements[offset])){return void 0}let start=offset;while(start>0&&isWordChar(this.elements[start-1])){start--}let end=offset;while(endx<=range2.start)))!==null&&_a6!==void 0?_a6:0;const end=(_b3=findFirstMonotonous(this.firstCharOffsetByLineMinusOne,(x=>range2.endExclusive<=x)))!==null&&_b3!==void 0?_b3:this.elements.length;return new OffsetRange(start,end)}};score={[0]:0,[1]:0,[2]:0,[3]:10,[4]:2,[5]:3,[6]:10,[7]:10};chrKeys=new Map;LineRangeFragment=class{constructor(range2,lines,source){this.range=range2;this.lines=lines;this.source=source;this.histogram=[];let counter=0;for(let i=range2.startLineNumber-1;inew LegacyLinesDiffComputer,getAdvanced:()=>new AdvancedLinesDiffComputer}}});function roundFloat(number,decimalPoints){const decimal=Math.pow(10,decimalPoints);return Math.round(number*decimal)/decimal}var RGBA,HSLA,HSVA,Color;var init_color=__esm({"node_modules/monaco-editor/esm/vs/base/common/color.js"(){RGBA=class{constructor(r,g,b,a=1){this._rgbaBrand=void 0;this.r=Math.min(255,Math.max(0,r))|0;this.g=Math.min(255,Math.max(0,g))|0;this.b=Math.min(255,Math.max(0,b))|0;this.a=roundFloat(Math.max(Math.min(1,a),0),3)}static equals(a,b){return a.r===b.r&&a.g===b.g&&a.b===b.b&&a.a===b.a}};HSLA=class{constructor(h2,s,l,a){this._hslaBrand=void 0;this.h=Math.max(Math.min(360,h2),0)|0;this.s=roundFloat(Math.max(Math.min(1,s),0),3);this.l=roundFloat(Math.max(Math.min(1,l),0),3);this.a=roundFloat(Math.max(Math.min(1,a),0),3)}static equals(a,b){return a.h===b.h&&a.s===b.s&&a.l===b.l&&a.a===b.a}static fromRGBA(rgba){const r=rgba.r/255;const g=rgba.g/255;const b=rgba.b/255;const a=rgba.a;const max=Math.max(r,g,b);const min=Math.min(r,g,b);let h2=0;let s=0;const l=(min+max)/2;const chroma=max-min;if(chroma>0){s=Math.min(l<=.5?chroma/(2*l):chroma/(2-2*l),1);switch(max){case r:h2=(g-b)/chroma+(g1){t2-=1}if(t2<1/6){return p+(q-p)*6*t2}if(t2<1/2){return q}if(t2<2/3){return p+(q-p)*(2/3-t2)*6}return p}static toRGBA(hsla){const h2=hsla.h/360;const{s:s,l:l,a:a}=hsla;let r,g,b;if(s===0){r=g=b=l}else{const q=l<.5?l*(1+s):l+s-l*s;const p=2*l-q;r=HSLA._hue2rgb(p,q,h2+1/3);g=HSLA._hue2rgb(p,q,h2);b=HSLA._hue2rgb(p,q,h2-1/3)}return new RGBA(Math.round(r*255),Math.round(g*255),Math.round(b*255),a)}};HSVA=class{constructor(h2,s,v,a){this._hsvaBrand=void 0;this.h=Math.max(Math.min(360,h2),0)|0;this.s=roundFloat(Math.max(Math.min(1,s),0),3);this.v=roundFloat(Math.max(Math.min(1,v),0),3);this.a=roundFloat(Math.max(Math.min(1,a),0),3)}static equals(a,b){return a.h===b.h&&a.s===b.s&&a.v===b.v&&a.a===b.a}static fromRGBA(rgba){const r=rgba.r/255;const g=rgba.g/255;const b=rgba.b/255;const cmax=Math.max(r,g,b);const cmin=Math.min(r,g,b);const delta=cmax-cmin;const s=cmax===0?0:delta/cmax;let m;if(delta===0){m=0}else if(cmax===r){m=((g-b)/delta%6+6)%6}else if(cmax===g){m=(b-r)/delta+2}else{m=(r-g)/delta+4}return new HSVA(Math.round(m*60),s,cmax,rgba.a)}static toRGBA(hsva){const{h:h2,s:s,v:v,a:a}=hsva;const c=v*s;const x=c*(1-Math.abs(h2/60%2-1));const m=v-c;let[r,g,b]=[0,0,0];if(h2<60){r=c;g=x}else if(h2<120){r=x;g=c}else if(h2<180){g=c;b=x}else if(h2<240){g=x;b=c}else if(h2<300){r=x;b=c}else if(h2<=360){r=c;b=x}r=Math.round((r+m)*255);g=Math.round((g+m)*255);b=Math.round((b+m)*255);return new RGBA(r,g,b,a)}};Color=class{static fromHex(hex){return Color.Format.CSS.parseHex(hex)||Color.red}static equals(a,b){if(!a&&!b){return true}if(!a||!b){return false}return a.equals(b)}get hsla(){if(this._hsla){return this._hsla}else{return HSLA.fromRGBA(this.rgba)}}get hsva(){if(this._hsva){return this._hsva}return HSVA.fromRGBA(this.rgba)}constructor(arg){if(!arg){throw new Error("Color needs a value")}else if(arg instanceof RGBA){this.rgba=arg}else if(arg instanceof HSLA){this._hsla=arg;this.rgba=HSLA.toRGBA(arg)}else if(arg instanceof HSVA){this._hsva=arg;this.rgba=HSVA.toRGBA(arg)}else{throw new Error("Invalid color ctor argument")}}equals(other){return!!other&&RGBA.equals(this.rgba,other.rgba)&&HSLA.equals(this.hsla,other.hsla)&&HSVA.equals(this.hsva,other.hsva)}getRelativeLuminance(){const R=Color._relativeLuminanceForComponent(this.rgba.r);const G=Color._relativeLuminanceForComponent(this.rgba.g);const B=Color._relativeLuminanceForComponent(this.rgba.b);const luminance=.2126*R+.7152*G+.0722*B;return roundFloat(luminance,4)}static _relativeLuminanceForComponent(color){const c=color/255;return c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4)}isLighter(){const yiq=(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3;return yiq>=128}isLighterThan(another){const lum1=this.getRelativeLuminance();const lum2=another.getRelativeLuminance();return lum1>lum2}isDarkerThan(another){const lum1=this.getRelativeLuminance();const lum2=another.getRelativeLuminance();return lum10){for(const initialMatch of initialValidationMatches){const initialCaptureGroups=initialMatch.filter((captureGroup=>captureGroup!==void 0));const colorScheme=initialCaptureGroups[1];const colorParameters=initialCaptureGroups[2];if(!colorParameters){continue}let colorInformation;if(colorScheme==="rgb"){const regexParameters=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;colorInformation=_findRGBColorInformation(_findRange(model,initialMatch),_findMatches(colorParameters,regexParameters),false)}else if(colorScheme==="rgba"){const regexParameters=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;colorInformation=_findRGBColorInformation(_findRange(model,initialMatch),_findMatches(colorParameters,regexParameters),true)}else if(colorScheme==="hsl"){const regexParameters=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;colorInformation=_findHSLColorInformation(_findRange(model,initialMatch),_findMatches(colorParameters,regexParameters),false)}else if(colorScheme==="hsla"){const regexParameters=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;colorInformation=_findHSLColorInformation(_findRange(model,initialMatch),_findMatches(colorParameters,regexParameters),true)}else if(colorScheme==="#"){colorInformation=_findHexColorInformation(_findRange(model,initialMatch),colorScheme+colorParameters)}if(colorInformation){result.push(colorInformation)}}}return result}function computeDefaultDocumentColors(model){if(!model||typeof model.getValue!=="function"||typeof model.positionAt!=="function"){return[]}return computeColors(model)}var init_defaultDocumentColorsComputer=__esm({"node_modules/monaco-editor/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js"(){init_color()}});var __awaiter3,MirrorModel,EditorSimpleWorker;var init_editorSimpleWorker=__esm({"node_modules/monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js"(){init_diff();init_uri();init_position();init_range();init_mirrorTextModel();init_wordHelper();init_linkComputer();init_inplaceReplaceSupport();init_editorBaseApi();init_stopwatch();init_unicodeTextModelHighlighter();init_linesDiffComputers();init_objects();init_defaultDocumentColorsComputer();__awaiter3=function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P((function(resolve2){resolve2(value)}))}return new(P||(P=Promise))((function(resolve2,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve2(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))};MirrorModel=class extends MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(regex){const matches=[];for(let i=0;ithis._lines.length){lineNumber=this._lines.length;column=this._lines[lineNumber-1].length+1;hasChanged=true}else{const maxCharacter=this._lines[lineNumber-1].length+1;if(column<1){column=1;hasChanged=true}else if(column>maxCharacter){column=maxCharacter;hasChanged=true}}if(!hasChanged){return position}else{return{lineNumber:lineNumber,column:column}}}};EditorSimpleWorker=class{constructor(host,foreignModuleFactory){this._host=host;this._models=Object.create(null);this._foreignModuleFactory=foreignModuleFactory;this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(uri){return this._models[uri]}_getModels(){const all=[];Object.keys(this._models).forEach((key=>all.push(this._models[key])));return all}acceptNewModel(data){this._models[data.url]=new MirrorModel(URI.parse(data.url),data.lines,data.EOL,data.versionId)}acceptModelChanged(strURL,e){if(!this._models[strURL]){return}const model=this._models[strURL];model.onEvents(e)}acceptRemovedModel(strURL){if(!this._models[strURL]){return}delete this._models[strURL]}computeUnicodeHighlights(url,options2,range2){return __awaiter3(this,void 0,void 0,(function*(){const model=this._getModel(url);if(!model){return{ranges:[],hasMore:false,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}return UnicodeTextModelHighlighter.computeUnicodeHighlights(model,options2,range2)}))}computeDiff(originalUrl,modifiedUrl,options2,algorithm){return __awaiter3(this,void 0,void 0,(function*(){const original=this._getModel(originalUrl);const modified=this._getModel(modifiedUrl);if(!original||!modified){return null}return EditorSimpleWorker.computeDiff(original,modified,options2,algorithm)}))}static computeDiff(originalTextModel,modifiedTextModel,options2,algorithm){const diffAlgorithm=algorithm==="advanced"?linesDiffComputers.getAdvanced():linesDiffComputers.getLegacy();const originalLines=originalTextModel.getLinesContent();const modifiedLines=modifiedTextModel.getLinesContent();const result=diffAlgorithm.computeDiff(originalLines,modifiedLines,options2);const identical=result.changes.length>0?false:this._modelsAreIdentical(originalTextModel,modifiedTextModel);function getLineChanges(changes){return changes.map((m=>{var _a6;return[m.originalRange.startLineNumber,m.originalRange.endLineNumberExclusive,m.modifiedRange.startLineNumber,m.modifiedRange.endLineNumberExclusive,(_a6=m.innerChanges)===null||_a6===void 0?void 0:_a6.map((m2=>[m2.originalRange.startLineNumber,m2.originalRange.startColumn,m2.originalRange.endLineNumber,m2.originalRange.endColumn,m2.modifiedRange.startLineNumber,m2.modifiedRange.startColumn,m2.modifiedRange.endLineNumber,m2.modifiedRange.endColumn]))]}))}return{identical:identical,quitEarly:result.hitTimeout,changes:getLineChanges(result.changes),moves:result.moves.map((m=>[m.lineRangeMapping.original.startLineNumber,m.lineRangeMapping.original.endLineNumberExclusive,m.lineRangeMapping.modified.startLineNumber,m.lineRangeMapping.modified.endLineNumberExclusive,getLineChanges(m.changes)]))}}static _modelsAreIdentical(original,modified){const originalLineCount=original.getLineCount();const modifiedLineCount=modified.getLineCount();if(originalLineCount!==modifiedLineCount){return false}for(let line=1;line<=originalLineCount;line++){const originalLine=original.getLineContent(line);const modifiedLine=modified.getLineContent(line);if(originalLine!==modifiedLine){return false}}return true}computeMoreMinimalEdits(modelUrl,edits,pretty){return __awaiter3(this,void 0,void 0,(function*(){const model=this._getModel(modelUrl);if(!model){return edits}const result=[];let lastEol=void 0;edits=edits.slice(0).sort(((a,b)=>{if(a.range&&b.range){return Range.compareRangesUsingStarts(a.range,b.range)}const aRng=a.range?0:1;const bRng=b.range?0:1;return aRng-bRng}));for(let{range:range2,text:text2,eol:eol}of edits){if(typeof eol==="number"){lastEol=eol}if(Range.isEmpty(range2)&&!text2){continue}const original=model.getValueInRange(range2);text2=text2.replace(/\r\n|\n|\r/g,model.eol);if(original===text2){continue}if(Math.max(text2.length,original.length)>EditorSimpleWorker._diffLimit){result.push({range:range2,text:text2});continue}const changes=stringDiff(original,text2,pretty);const editOffset=model.offsetAt(Range.lift(range2).getStartPosition());for(const change of changes){const start=model.positionAt(editOffset+change.originalStart);const end=model.positionAt(editOffset+change.originalStart+change.originalLength);const newEdit={text:text2.substr(change.modifiedStart,change.modifiedLength),range:{startLineNumber:start.lineNumber,startColumn:start.column,endLineNumber:end.lineNumber,endColumn:end.column}};if(model.getValueInRange(newEdit.range)!==newEdit.text){result.push(newEdit)}}}if(typeof lastEol==="number"){result.push({eol:lastEol,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}})}return result}))}computeLinks(modelUrl){return __awaiter3(this,void 0,void 0,(function*(){const model=this._getModel(modelUrl);if(!model){return null}return computeLinks(model)}))}computeDefaultDocumentColors(modelUrl){return __awaiter3(this,void 0,void 0,(function*(){const model=this._getModel(modelUrl);if(!model){return null}return computeDefaultDocumentColors(model)}))}textualSuggest(modelUrls,leadingWord,wordDef,wordDefFlags){return __awaiter3(this,void 0,void 0,(function*(){const sw=new StopWatch;const wordDefRegExp=new RegExp(wordDef,wordDefFlags);const seen=new Set;outer:for(const url of modelUrls){const model=this._getModel(url);if(!model){continue}for(const word of model.words(wordDefRegExp)){if(word===leadingWord||!isNaN(Number(word))){continue}seen.add(word);if(seen.size>EditorSimpleWorker._suggestionsLimit){break outer}}}return{words:Array.from(seen),duration:sw.elapsed()}}))}computeWordRanges(modelUrl,range2,wordDef,wordDefFlags){return __awaiter3(this,void 0,void 0,(function*(){const model=this._getModel(modelUrl);if(!model){return Object.create(null)}const wordDefRegExp=new RegExp(wordDef,wordDefFlags);const result=Object.create(null);for(let line=range2.startLineNumber;linethis._host.fhr(method,args);const foreignHost=createProxyObject(foreignHostMethods,proxyMethodRequest);const ctx={host:foreignHost,getMirrorModels:()=>this._getModels()};if(this._foreignModuleFactory){this._foreignModule=this._foreignModuleFactory(ctx,createData);return Promise.resolve(getAllMethodNames(this._foreignModule))}return Promise.reject(new Error(`Unexpected usage`))}fmr(method,args){if(!this._foreignModule||typeof this._foreignModule[method]!=="function"){return Promise.reject(new Error("Missing requestHandler or method: "+method))}try{return Promise.resolve(this._foreignModule[method].apply(this._foreignModule,args))}catch(e){return Promise.reject(e)}}};EditorSimpleWorker._diffLimit=1e5;EditorSimpleWorker._suggestionsLimit=1e4;if(typeof importScripts==="function"){globalThis.monaco=createMonacoBaseAPI()}}});var ITextResourceConfigurationService,ITextResourcePropertiesService;var init_textResourceConfiguration=__esm({"node_modules/monaco-editor/esm/vs/editor/common/services/textResourceConfiguration.js"(){init_instantiation();ITextResourceConfigurationService=createDecorator("textResourceConfigurationService");ITextResourcePropertiesService=createDecorator("textResourcePropertiesService")}});function LogLevelToString(logLevel){switch(logLevel){case LogLevel.Trace:return"trace";case LogLevel.Debug:return"debug";case LogLevel.Info:return"info";case LogLevel.Warning:return"warn";case LogLevel.Error:return"error";case LogLevel.Off:return"off"}}var ILogService,LogLevel,DEFAULT_LOG_LEVEL,AbstractLogger,ConsoleLogger,MultiplexLogger,CONTEXT_LOG_LEVEL;var init_log=__esm({"node_modules/monaco-editor/esm/vs/platform/log/common/log.js"(){init_event();init_lifecycle();init_contextkey();init_instantiation();ILogService=createDecorator("logService");(function(LogLevel2){LogLevel2[LogLevel2["Off"]=0]="Off";LogLevel2[LogLevel2["Trace"]=1]="Trace";LogLevel2[LogLevel2["Debug"]=2]="Debug";LogLevel2[LogLevel2["Info"]=3]="Info";LogLevel2[LogLevel2["Warning"]=4]="Warning";LogLevel2[LogLevel2["Error"]=5]="Error"})(LogLevel||(LogLevel={}));DEFAULT_LOG_LEVEL=LogLevel.Info;AbstractLogger=class extends Disposable{constructor(){super(...arguments);this.level=DEFAULT_LOG_LEVEL;this._onDidChangeLogLevel=this._register(new Emitter);this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(level){if(this.level!==level){this.level=level;this._onDidChangeLogLevel.fire(this.level)}}getLevel(){return this.level}checkLogLevel(level){return this.level!==LogLevel.Off&&this.level<=level}};ConsoleLogger=class extends AbstractLogger{constructor(logLevel=DEFAULT_LOG_LEVEL,useColors=true){super();this.useColors=useColors;this.setLevel(logLevel)}trace(message,...args){if(this.checkLogLevel(LogLevel.Trace)){if(this.useColors){console.log("%cTRACE","color: #888",message,...args)}else{console.log(message,...args)}}}debug(message,...args){if(this.checkLogLevel(LogLevel.Debug)){if(this.useColors){console.log("%cDEBUG","background: #eee; color: #888",message,...args)}else{console.log(message,...args)}}}info(message,...args){if(this.checkLogLevel(LogLevel.Info)){if(this.useColors){console.log("%c INFO","color: #33f",message,...args)}else{console.log(message,...args)}}}warn(message,...args){if(this.checkLogLevel(LogLevel.Warning)){if(this.useColors){console.log("%c WARN","color: #993",message,...args)}else{console.log(message,...args)}}}error(message,...args){if(this.checkLogLevel(LogLevel.Error)){if(this.useColors){console.log("%c ERR","color: #f33",message,...args)}else{console.error(message,...args)}}}dispose(){}};MultiplexLogger=class extends AbstractLogger{constructor(loggers){super();this.loggers=loggers;if(loggers.length){this.setLevel(loggers[0].getLevel())}}setLevel(level){for(const logger of this.loggers){logger.setLevel(level)}super.setLevel(level)}trace(message,...args){for(const logger of this.loggers){logger.trace(message,...args)}}debug(message,...args){for(const logger of this.loggers){logger.debug(message,...args)}}info(message,...args){for(const logger of this.loggers){logger.info(message,...args)}}warn(message,...args){for(const logger of this.loggers){logger.warn(message,...args)}}error(message,...args){for(const logger of this.loggers){logger.error(message,...args)}}dispose(){for(const logger of this.loggers){logger.dispose()}}};CONTEXT_LOG_LEVEL=new RawContextKey("logLevel",LogLevelToString(LogLevel.Info))}});var ILanguageFeaturesService;var init_languageFeatures=__esm({"node_modules/monaco-editor/esm/vs/editor/common/services/languageFeatures.js"(){init_instantiation();ILanguageFeaturesService=createDecorator("ILanguageFeaturesService")}});function canSyncModel(modelService,resource){const model=modelService.getModel(resource);if(!model){return false}if(model.isTooLargeForSyncing()){return false}return true}var __decorate3,__param3,__awaiter4,STOP_SYNC_MODEL_DELTA_TIME_MS,STOP_WORKER_DELTA_TIME_MS,EditorWorkerService,WordBasedCompletionItemProvider,WorkerManager,EditorModelManager,SynchronousWorkerClient,EditorWorkerHost,EditorWorkerClient;var init_editorWorkerService=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/services/editorWorkerService.js"(){init_async();init_lifecycle();init_simpleWorker();init_defaultWorkerFactory();init_range();init_languageConfigurationRegistry();init_editorSimpleWorker();init_model2();init_textResourceConfiguration();init_arrays();init_log();init_stopwatch();init_errors();init_languageFeatures();init_linesDiffComputer();init_lineRange();__decorate3=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r};__param3=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};__awaiter4=function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P((function(resolve2){resolve2(value)}))}return new(P||(P=Promise))((function(resolve2,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve2(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))};STOP_SYNC_MODEL_DELTA_TIME_MS=60*1e3;STOP_WORKER_DELTA_TIME_MS=5*60*1e3;EditorWorkerService=class EditorWorkerService2 extends Disposable{constructor(modelService,configurationService,logService,languageConfigurationService,languageFeaturesService){super();this._modelService=modelService;this._workerManager=this._register(new WorkerManager(this._modelService,languageConfigurationService));this._logService=logService;this._register(languageFeaturesService.linkProvider.register({language:"*",hasAccessToAllModels:true},{provideLinks:(model,token)=>{if(!canSyncModel(this._modelService,model.uri)){return Promise.resolve({links:[]})}return this._workerManager.withWorker().then((client=>client.computeLinks(model.uri))).then((links=>links&&{links:links}))}}));this._register(languageFeaturesService.completionProvider.register("*",new WordBasedCompletionItemProvider(this._workerManager,configurationService,this._modelService,languageConfigurationService)))}dispose(){super.dispose()}canComputeUnicodeHighlights(uri){return canSyncModel(this._modelService,uri)}computedUnicodeHighlights(uri,options2,range2){return this._workerManager.withWorker().then((client=>client.computedUnicodeHighlights(uri,options2,range2)))}computeDiff(original,modified,options2,algorithm){return __awaiter4(this,void 0,void 0,(function*(){const result=yield this._workerManager.withWorker().then((client=>client.computeDiff(original,modified,options2,algorithm)));if(!result){return null}const diff={identical:result.identical,quitEarly:result.quitEarly,changes:toLineRangeMappings(result.changes),moves:result.moves.map((m=>new MovedText(new SimpleLineRangeMapping(new LineRange(m[0],m[1]),new LineRange(m[2],m[3])),toLineRangeMappings(m[4]))))};return diff;function toLineRangeMappings(changes){return changes.map((c=>{var _a6;return new LineRangeMapping(new LineRange(c[0],c[1]),new LineRange(c[2],c[3]),(_a6=c[4])===null||_a6===void 0?void 0:_a6.map((c2=>new RangeMapping(new Range(c2[0],c2[1],c2[2],c2[3]),new Range(c2[4],c2[5],c2[6],c2[7])))))}))}}))}computeMoreMinimalEdits(resource,edits,pretty=false){if(isNonEmptyArray(edits)){if(!canSyncModel(this._modelService,resource)){return Promise.resolve(edits)}const sw=StopWatch.create();const result=this._workerManager.withWorker().then((client=>client.computeMoreMinimalEdits(resource,edits,pretty)));result.finally((()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",resource.toString(true),sw.elapsed())));return Promise.race([result,timeout(1e3).then((()=>edits))])}else{return Promise.resolve(void 0)}}canNavigateValueSet(resource){return canSyncModel(this._modelService,resource)}navigateValueSet(resource,range2,up){return this._workerManager.withWorker().then((client=>client.navigateValueSet(resource,range2,up)))}canComputeWordRanges(resource){return canSyncModel(this._modelService,resource)}computeWordRanges(resource,range2){return this._workerManager.withWorker().then((client=>client.computeWordRanges(resource,range2)))}};EditorWorkerService=__decorate3([__param3(0,IModelService),__param3(1,ITextResourceConfigurationService),__param3(2,ILogService),__param3(3,ILanguageConfigurationService),__param3(4,ILanguageFeaturesService)],EditorWorkerService);WordBasedCompletionItemProvider=class{constructor(workerManager,configurationService,modelService,languageConfigurationService){this.languageConfigurationService=languageConfigurationService;this._debugDisplayName="wordbasedCompletions";this._workerManager=workerManager;this._configurationService=configurationService;this._modelService=modelService}provideCompletionItems(model,position){return __awaiter4(this,void 0,void 0,(function*(){const config=this._configurationService.getValue(model.uri,position,"editor");if(!config.wordBasedSuggestions){return void 0}const models=[];if(config.wordBasedSuggestionsMode==="currentDocument"){if(canSyncModel(this._modelService,model.uri)){models.push(model.uri)}}else{for(const candidate of this._modelService.getModels()){if(!canSyncModel(this._modelService,candidate.uri)){continue}if(candidate===model){models.unshift(candidate.uri)}else if(config.wordBasedSuggestionsMode==="allDocuments"||candidate.getLanguageId()===model.getLanguageId()){models.push(candidate.uri)}}}if(models.length===0){return void 0}const wordDefRegExp=this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();const word=model.getWordAtPosition(position);const replace=!word?Range.fromPositions(position):new Range(position.lineNumber,word.startColumn,position.lineNumber,word.endColumn);const insert=replace.setEndPosition(position.lineNumber,position.column);const client=yield this._workerManager.withWorker();const data=yield client.textualSuggest(models,word===null||word===void 0?void 0:word.word,wordDefRegExp);if(!data){return void 0}return{duration:data.duration,suggestions:data.words.map((word2=>({kind:18,label:word2,insertText:word2,range:{insert:insert,replace:replace}})))}}))}};WorkerManager=class extends Disposable{constructor(modelService,languageConfigurationService){super();this.languageConfigurationService=languageConfigurationService;this._modelService=modelService;this._editorWorkerClient=null;this._lastWorkerUsedTime=(new Date).getTime();const stopWorkerInterval=this._register(new IntervalTimer);stopWorkerInterval.cancelAndSet((()=>this._checkStopIdleWorker()),Math.round(STOP_WORKER_DELTA_TIME_MS/2));this._register(this._modelService.onModelRemoved((_=>this._checkStopEmptyWorker())))}dispose(){if(this._editorWorkerClient){this._editorWorkerClient.dispose();this._editorWorkerClient=null}super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient){return}const models=this._modelService.getModels();if(models.length===0){this._editorWorkerClient.dispose();this._editorWorkerClient=null}}_checkStopIdleWorker(){if(!this._editorWorkerClient){return}const timeSinceLastWorkerUsedTime=(new Date).getTime()-this._lastWorkerUsedTime;if(timeSinceLastWorkerUsedTime>STOP_WORKER_DELTA_TIME_MS){this._editorWorkerClient.dispose();this._editorWorkerClient=null}}withWorker(){this._lastWorkerUsedTime=(new Date).getTime();if(!this._editorWorkerClient){this._editorWorkerClient=new EditorWorkerClient(this._modelService,false,"editorWorkerService",this.languageConfigurationService)}return Promise.resolve(this._editorWorkerClient)}};EditorModelManager=class extends Disposable{constructor(proxy,modelService,keepIdleModels){super();this._syncedModels=Object.create(null);this._syncedModelsLastUsedTime=Object.create(null);this._proxy=proxy;this._modelService=modelService;if(!keepIdleModels){const timer=new IntervalTimer;timer.cancelAndSet((()=>this._checkStopModelSync()),Math.round(STOP_SYNC_MODEL_DELTA_TIME_MS/2));this._register(timer)}}dispose(){for(const modelUrl in this._syncedModels){dispose(this._syncedModels[modelUrl])}this._syncedModels=Object.create(null);this._syncedModelsLastUsedTime=Object.create(null);super.dispose()}ensureSyncedResources(resources,forceLargeModels){for(const resource of resources){const resourceStr=resource.toString();if(!this._syncedModels[resourceStr]){this._beginModelSync(resource,forceLargeModels)}if(this._syncedModels[resourceStr]){this._syncedModelsLastUsedTime[resourceStr]=(new Date).getTime()}}}_checkStopModelSync(){const currentTime=(new Date).getTime();const toRemove=[];for(const modelUrl in this._syncedModelsLastUsedTime){const elapsedTime=currentTime-this._syncedModelsLastUsedTime[modelUrl];if(elapsedTime>STOP_SYNC_MODEL_DELTA_TIME_MS){toRemove.push(modelUrl)}}for(const e of toRemove){this._stopModelSync(e)}}_beginModelSync(resource,forceLargeModels){const model=this._modelService.getModel(resource);if(!model){return}if(!forceLargeModels&&model.isTooLargeForSyncing()){return}const modelUrl=resource.toString();this._proxy.acceptNewModel({url:model.uri.toString(),lines:model.getLinesContent(),EOL:model.getEOL(),versionId:model.getVersionId()});const toDispose=new DisposableStore;toDispose.add(model.onDidChangeContent((e=>{this._proxy.acceptModelChanged(modelUrl.toString(),e)})));toDispose.add(model.onWillDispose((()=>{this._stopModelSync(modelUrl)})));toDispose.add(toDisposable((()=>{this._proxy.acceptRemovedModel(modelUrl)})));this._syncedModels[modelUrl]=toDispose}_stopModelSync(modelUrl){const toDispose=this._syncedModels[modelUrl];delete this._syncedModels[modelUrl];delete this._syncedModelsLastUsedTime[modelUrl];dispose(toDispose)}};SynchronousWorkerClient=class{constructor(instance){this._instance=instance;this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}};EditorWorkerHost=class{constructor(workerClient){this._workerClient=workerClient}fhr(method,args){return this._workerClient.fhr(method,args)}};EditorWorkerClient=class extends Disposable{constructor(modelService,keepIdleModels,label,languageConfigurationService){super();this.languageConfigurationService=languageConfigurationService;this._disposed=false;this._modelService=modelService;this._keepIdleModels=keepIdleModels;this._workerFactory=new DefaultWorkerFactory(label);this._worker=null;this._modelManager=null}fhr(method,args){throw new Error(`Not implemented!`)}_getOrCreateWorker(){if(!this._worker){try{this._worker=this._register(new SimpleWorkerClient(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new EditorWorkerHost(this)))}catch(err){logOnceWebWorkerWarning(err);this._worker=new SynchronousWorkerClient(new EditorSimpleWorker(new EditorWorkerHost(this),null))}}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,(err=>{logOnceWebWorkerWarning(err);this._worker=new SynchronousWorkerClient(new EditorSimpleWorker(new EditorWorkerHost(this),null));return this._getOrCreateWorker().getProxyObject()}))}_getOrCreateModelManager(proxy){if(!this._modelManager){this._modelManager=this._register(new EditorModelManager(proxy,this._modelService,this._keepIdleModels))}return this._modelManager}_withSyncedResources(resources,forceLargeModels=false){return __awaiter4(this,void 0,void 0,(function*(){if(this._disposed){return Promise.reject(canceled())}return this._getProxy().then((proxy=>{this._getOrCreateModelManager(proxy).ensureSyncedResources(resources,forceLargeModels);return proxy}))}))}computedUnicodeHighlights(uri,options2,range2){return this._withSyncedResources([uri]).then((proxy=>proxy.computeUnicodeHighlights(uri.toString(),options2,range2)))}computeDiff(original,modified,options2,algorithm){return this._withSyncedResources([original,modified],true).then((proxy=>proxy.computeDiff(original.toString(),modified.toString(),options2,algorithm)))}computeMoreMinimalEdits(resource,edits,pretty){return this._withSyncedResources([resource]).then((proxy=>proxy.computeMoreMinimalEdits(resource.toString(),edits,pretty)))}computeLinks(resource){return this._withSyncedResources([resource]).then((proxy=>proxy.computeLinks(resource.toString())))}computeDefaultDocumentColors(resource){return this._withSyncedResources([resource]).then((proxy=>proxy.computeDefaultDocumentColors(resource.toString())))}textualSuggest(resources,leadingWord,wordDefRegExp){return __awaiter4(this,void 0,void 0,(function*(){const proxy=yield this._withSyncedResources(resources);const wordDef=wordDefRegExp.source;const wordDefFlags=wordDefRegExp.flags;return proxy.textualSuggest(resources.map((r=>r.toString())),leadingWord,wordDef,wordDefFlags)}))}computeWordRanges(resource,range2){return this._withSyncedResources([resource]).then((proxy=>{const model=this._modelService.getModel(resource);if(!model){return Promise.resolve(null)}const wordDefRegExp=this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();const wordDef=wordDefRegExp.source;const wordDefFlags=wordDefRegExp.flags;return proxy.computeWordRanges(resource.toString(),range2,wordDef,wordDefFlags)}))}navigateValueSet(resource,range2,up){return this._withSyncedResources([resource]).then((proxy=>{const model=this._modelService.getModel(resource);if(!model){return null}const wordDefRegExp=this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();const wordDef=wordDefRegExp.source;const wordDefFlags=wordDefRegExp.flags;return proxy.navigateValueSet(resource.toString(),range2,up,wordDef,wordDefFlags)}))}dispose(){super.dispose();this._disposed=true}}}});function createWebWorker(modelService,languageConfigurationService,opts){return new MonacoWebWorkerImpl(modelService,languageConfigurationService,opts)}var MonacoWebWorkerImpl;var init_webWorker=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/services/webWorker.js"(){init_objects();init_editorWorkerService();MonacoWebWorkerImpl=class extends EditorWorkerClient{constructor(modelService,languageConfigurationService,opts){super(modelService,opts.keepIdleModels||false,opts.label,languageConfigurationService);this._foreignModuleId=opts.moduleId;this._foreignModuleCreateData=opts.createData||null;this._foreignModuleHost=opts.host||null;this._foreignProxy=null}fhr(method,args){if(!this._foreignModuleHost||typeof this._foreignModuleHost[method]!=="function"){return Promise.reject(new Error("Missing method "+method+" or missing main thread foreign host."))}try{return Promise.resolve(this._foreignModuleHost[method].apply(this._foreignModuleHost,args))}catch(e){return Promise.reject(e)}}_getForeignProxy(){if(!this._foreignProxy){this._foreignProxy=this._getProxy().then((proxy=>{const foreignHostMethods=this._foreignModuleHost?getAllMethodNames(this._foreignModuleHost):[];return proxy.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,foreignHostMethods).then((foreignMethods=>{this._foreignModuleCreateData=null;const proxyMethodRequest=(method,args)=>proxy.fmr(method,args);const createProxyMethod=(method,proxyMethodRequest2)=>function(){const args=Array.prototype.slice.call(arguments,0);return proxyMethodRequest2(method,args)};const foreignProxy={};for(const foreignMethod of foreignMethods){foreignProxy[foreignMethod]=createProxyMethod(foreignMethod,proxyMethodRequest)}return foreignProxy}))}))}return this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(resources){return this._withSyncedResources(resources).then((_=>this.getProxy()))}}}});var TokenMetadata;var init_encodedTokenAttributes=__esm({"node_modules/monaco-editor/esm/vs/editor/common/encodedTokenAttributes.js"(){TokenMetadata=class{static getLanguageId(metadata){return(metadata&255)>>>0}static getTokenType(metadata){return(metadata&768)>>>8}static containsBalancedBrackets(metadata){return(metadata&1024)!==0}static getFontStyle(metadata){return(metadata&30720)>>>11}static getForeground(metadata){return(metadata&16744448)>>>15}static getBackground(metadata){return(metadata&4278190080)>>>24}static getClassNameFromMetadata(metadata){const foreground2=this.getForeground(metadata);let className="mtk"+foreground2;const fontStyle=this.getFontStyle(metadata);if(fontStyle&1){className+=" mtki"}if(fontStyle&2){className+=" mtkb"}if(fontStyle&4){className+=" mtku"}if(fontStyle&8){className+=" mtks"}return className}static getInlineStyleFromMetadata(metadata,colorMap){const foreground2=this.getForeground(metadata);const fontStyle=this.getFontStyle(metadata);let result=`color: ${colorMap[foreground2]};`;if(fontStyle&1){result+="font-style: italic;"}if(fontStyle&2){result+="font-weight: bold;"}let textDecoration="";if(fontStyle&4){textDecoration+=" underline"}if(fontStyle&8){textDecoration+=" line-through"}if(textDecoration){result+=`text-decoration:${textDecoration};`}return result}static getPresentationFromMetadata(metadata){const foreground2=this.getForeground(metadata);const fontStyle=this.getFontStyle(metadata);return{foreground:foreground2,italic:Boolean(fontStyle&1),bold:Boolean(fontStyle&2),underline:Boolean(fontStyle&4),strikethrough:Boolean(fontStyle&8)}}}}});var LineTokens,SliceLineTokens;var init_lineTokens=__esm({"node_modules/monaco-editor/esm/vs/editor/common/tokens/lineTokens.js"(){init_encodedTokenAttributes();LineTokens=class{static createEmpty(lineContent,decoder){const defaultMetadata=LineTokens.defaultTokenMetadata;const tokens=new Uint32Array(2);tokens[0]=lineContent.length;tokens[1]=defaultMetadata;return new LineTokens(tokens,lineContent,decoder)}constructor(tokens,text2,decoder){this._lineTokensBrand=void 0;this._tokens=tokens;this._tokensCount=this._tokens.length>>>1;this._text=text2;this._languageIdCodec=decoder}equals(other){if(other instanceof LineTokens){return this.slicedEquals(other,0,this._tokensCount)}return false}slicedEquals(other,sliceFromTokenIndex,sliceTokenCount){if(this._text!==other._text){return false}if(this._tokensCount!==other._tokensCount){return false}const from=sliceFromTokenIndex<<1;const to=from+(sliceTokenCount<<1);for(let i=from;i0){return this._tokens[tokenIndex-1<<1]}return 0}getMetadata(tokenIndex){const metadata=this._tokens[(tokenIndex<<1)+1];return metadata}getLanguageId(tokenIndex){const metadata=this._tokens[(tokenIndex<<1)+1];const languageId=TokenMetadata.getLanguageId(metadata);return this._languageIdCodec.decodeLanguageId(languageId)}getStandardTokenType(tokenIndex){const metadata=this._tokens[(tokenIndex<<1)+1];return TokenMetadata.getTokenType(metadata)}getForeground(tokenIndex){const metadata=this._tokens[(tokenIndex<<1)+1];return TokenMetadata.getForeground(metadata)}getClassName(tokenIndex){const metadata=this._tokens[(tokenIndex<<1)+1];return TokenMetadata.getClassNameFromMetadata(metadata)}getInlineStyle(tokenIndex,colorMap){const metadata=this._tokens[(tokenIndex<<1)+1];return TokenMetadata.getInlineStyleFromMetadata(metadata,colorMap)}getPresentation(tokenIndex){const metadata=this._tokens[(tokenIndex<<1)+1];return TokenMetadata.getPresentationFromMetadata(metadata)}getEndOffset(tokenIndex){return this._tokens[tokenIndex<<1]}findTokenIndexAtOffset(offset){return LineTokens.findIndexInTokensArray(this._tokens,offset)}inflate(){return this}sliceAndInflate(startOffset,endOffset,deltaOffset){return new SliceLineTokens(this,startOffset,endOffset,deltaOffset)}static convertToEndOffset(tokens,lineTextLength){const tokenCount=tokens.length>>>1;const lastTokenIndex=tokenCount-1;for(let tokenIndex=0;tokenIndex>>1)-1;while(lowdesiredIndex){high=mid}}return low}withInserted(insertTokens){if(insertTokens.length===0){return this}let nextOriginalTokenIdx=0;let nextInsertTokenIdx=0;let text2="";const newTokens=new Array;let originalEndOffset=0;while(true){const nextOriginalTokenEndOffset=nextOriginalTokenIdxoriginalEndOffset){text2+=this._text.substring(originalEndOffset,nextInsertToken.offset);const metadata=this._tokens[(nextOriginalTokenIdx<<1)+1];newTokens.push(text2.length,metadata);originalEndOffset=nextInsertToken.offset}text2+=nextInsertToken.text;newTokens.push(text2.length,nextInsertToken.tokenMetadata);nextInsertTokenIdx++}else{break}}return new LineTokens(new Uint32Array(newTokens),text2,this._languageIdCodec)}};LineTokens.defaultTokenMetadata=(0<<11|1<<15|2<<24)>>>0;SliceLineTokens=class{constructor(source,startOffset,endOffset,deltaOffset){this._source=source;this._startOffset=startOffset;this._endOffset=endOffset;this._deltaOffset=deltaOffset;this._firstTokenIndex=source.findTokenIndexAtOffset(startOffset);this._tokensCount=0;for(let i=this._firstTokenIndex,len=source.getCount();i=endOffset){break}this._tokensCount++}}getMetadata(tokenIndex){return this._source.getMetadata(this._firstTokenIndex+tokenIndex)}getLanguageId(tokenIndex){return this._source.getLanguageId(this._firstTokenIndex+tokenIndex)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(other){if(other instanceof SliceLineTokens){return this._startOffset===other._startOffset&&this._endOffset===other._endOffset&&this._deltaOffset===other._deltaOffset&&this._source.slicedEquals(other._source,this._firstTokenIndex,this._tokensCount)}return false}getCount(){return this._tokensCount}getForeground(tokenIndex){return this._source.getForeground(this._firstTokenIndex+tokenIndex)}getEndOffset(tokenIndex){const tokenEndOffset=this._source.getEndOffset(this._firstTokenIndex+tokenIndex);return Math.min(this._endOffset,tokenEndOffset)-this._startOffset+this._deltaOffset}getClassName(tokenIndex){return this._source.getClassName(this._firstTokenIndex+tokenIndex)}getInlineStyle(tokenIndex,colorMap){return this._source.getInlineStyle(this._firstTokenIndex+tokenIndex,colorMap)}getPresentation(tokenIndex){return this._source.getPresentation(this._firstTokenIndex+tokenIndex)}findTokenIndexAtOffset(offset){return this._source.findTokenIndexAtOffset(offset+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}}});var LineDecoration,DecorationSegment,Stack,LineDecorationsNormalizer;var init_lineDecorations=__esm({"node_modules/monaco-editor/esm/vs/editor/common/viewLayout/lineDecorations.js"(){init_strings();LineDecoration=class{constructor(startColumn,endColumn,className,type){this.startColumn=startColumn;this.endColumn=endColumn;this.className=className;this.type=type;this._lineDecorationBrand=void 0}static _equals(a,b){return a.startColumn===b.startColumn&&a.endColumn===b.endColumn&&a.className===b.className&&a.type===b.type}static equalsArr(a,b){const aLen=a.length;const bLen=b.length;if(aLen!==bLen){return false}for(let i=0;i=endColumn){continue}r[rLength++]=new LineDecoration(Math.max(1,dec.startColumn-startColumn+1),Math.min(lineLength+1,dec.endColumn-startColumn+1),dec.className,dec.type)}return r}static filter(lineDecorations,lineNumber,minLineColumn,maxLineColumn){if(lineDecorations.length===0){return[]}const result=[];let resultLen=0;for(let i=0,len=lineDecorations.length;ilineNumber){continue}if(range2.isEmpty()&&(d.type===0||d.type===3)){continue}const startColumn=range2.startLineNumber===lineNumber?range2.startColumn:minLineColumn;const endColumn=range2.endLineNumber===lineNumber?range2.endColumn:maxLineColumn;result[resultLen++]=new LineDecoration(startColumn,endColumn,d.inlineClassName,d.type)}return result}static _typeCompare(a,b){const ORDER=[2,0,1,3];return ORDER[a]-ORDER[b]}static compare(a,b){if(a.startColumn!==b.startColumn){return a.startColumn-b.startColumn}if(a.endColumn!==b.endColumn){return a.endColumn-b.endColumn}const typeCmp=LineDecoration._typeCompare(a.type,b.type);if(typeCmp!==0){return typeCmp}if(a.className!==b.className){return a.className0&&this.stopOffsets[0]0&&nextStartOffset=stopOffset){this.stopOffsets.splice(i,0,stopOffset);this.classNames.splice(i,0,className);this.metadata.splice(i,0,metadata);break}}}this.count++;return}};LineDecorationsNormalizer=class{static normalize(lineContent,lineDecorations){if(lineDecorations.length===0){return[]}const result=[];const stack=new Stack;let nextStartOffset=0;for(let i=0,len=lineDecorations.length;i1){const charCodeBefore=lineContent.charCodeAt(startColumn-2);if(isHighSurrogate(charCodeBefore)){startColumn--}}if(endColumn>1){const charCodeBefore=lineContent.charCodeAt(endColumn-2);if(isHighSurrogate(charCodeBefore)){endColumn--}}const currentStartOffset=startColumn-1;const currentEndOffset=endColumn-2;nextStartOffset=stack.consumeLowerThan(currentStartOffset,nextStartOffset,result);if(stack.count===0){nextStartOffset=currentStartOffset}stack.insert(currentEndOffset,className,metadata)}stack.consumeLowerThan(1073741824,nextStartOffset,result);return result}}}});var LinePart;var init_linePart=__esm({"node_modules/monaco-editor/esm/vs/editor/common/viewLayout/linePart.js"(){LinePart=class{constructor(endIndex,type,metadata,containsRTL2){this.endIndex=endIndex;this.type=type;this.metadata=metadata;this.containsRTL=containsRTL2;this._linePartBrand=void 0}isWhitespace(){return this.metadata&1?true:false}isPseudoAfter(){return this.metadata&4?true:false}}}});function renderViewLine(input,sb){if(input.lineContent.length===0){if(input.lineDecorations.length>0){sb.appendString(``);let beforeCount=0;let afterCount=0;let containsForeignElements=0;for(const lineDecoration of input.lineDecorations){if(lineDecoration.type===1||lineDecoration.type===2){sb.appendString(``);if(lineDecoration.type===1){containsForeignElements|=1;beforeCount++}if(lineDecoration.type===2){containsForeignElements|=2;afterCount++}}}sb.appendString(``);const characterMapping=new CharacterMapping(1,beforeCount+afterCount);characterMapping.setColumnInfo(1,beforeCount,0,0);return new RenderLineOutput(characterMapping,false,containsForeignElements)}sb.appendString("");return new RenderLineOutput(new CharacterMapping(0,0),false,0)}return _renderLine(resolveRenderLineInput(input),sb)}function renderViewLine2(input){const sb=new StringBuilder(1e4);const out=renderViewLine(input,sb);return new RenderLineOutput2(out.characterMapping,sb.build(),out.containsRTL,out.containsForeignElements)}function resolveRenderLineInput(input){const lineContent=input.lineContent;let isOverflowing;let overflowingCharCount;let len;if(input.stopRenderingLineAfter!==-1&&input.stopRenderingLineAfter0){for(let i=0,len2=input.lineDecorations.length;i0){result[resultLen++]=new LinePart(fauxIndentLength,"",0,false)}let startOffset=fauxIndentLength;for(let tokenIndex=0,tokensLen=tokens.getCount();tokenIndex=len){const tokenContainsRTL2=lineContainsRTL?containsRTL(lineContent.substring(startOffset,len)):false;result[resultLen++]=new LinePart(len,type,0,tokenContainsRTL2);break}const tokenContainsRTL=lineContainsRTL?containsRTL(lineContent.substring(startOffset,endIndex)):false;result[resultLen++]=new LinePart(endIndex,type,0,tokenContainsRTL);startOffset=endIndex}return result}function splitLargeTokens(lineContent,tokens,onlyAtSpaces){let lastTokenEndIndex=0;const result=[];let resultLen=0;if(onlyAtSpaces){for(let i=0,len=tokens.length;i=50){result[resultLen++]=new LinePart(lastSpaceOffset+1,tokenType,tokenMetadata,tokenContainsRTL);currTokenStart=lastSpaceOffset+1;lastSpaceOffset=-1}}if(currTokenStart!==tokenEndIndex){result[resultLen++]=new LinePart(tokenEndIndex,tokenType,tokenMetadata,tokenContainsRTL)}}else{result[resultLen++]=token}lastTokenEndIndex=tokenEndIndex}}else{for(let i=0,len=tokens.length;i50){const tokenType=token.type;const tokenMetadata=token.metadata;const tokenContainsRTL=token.containsRTL;const piecesCount=Math.ceil(diff/50);for(let j=1;j=8234&&charCode<=8238||charCode>=8294&&charCode<=8297||charCode>=8206&&charCode<=8207||charCode===1564){return true}return false}function extractControlCharacters(lineContent,tokens){const result=[];let lastLinePart=new LinePart(0,"",0,false);let charOffset=0;for(const token of tokens){const tokenEndIndex=token.endIndex;for(;charOffsetlastLinePart.endIndex){lastLinePart=new LinePart(charOffset,token.type,token.metadata,token.containsRTL);result.push(lastLinePart)}lastLinePart=new LinePart(charOffset+1,"mtkcontrol",token.metadata,false);result.push(lastLinePart)}}if(charOffset>lastLinePart.endIndex){lastLinePart=new LinePart(tokenEndIndex,token.type,token.metadata,token.containsRTL);result.push(lastLinePart)}}return result}function _applyRenderWhitespace(input,lineContent,len,tokens){const continuesWithWrappedLine=input.continuesWithWrappedLine;const fauxIndentLength=input.fauxIndentLength;const tabSize=input.tabSize;const startVisibleColumn=input.startVisibleColumn;const useMonospaceOptimizations=input.useMonospaceOptimizations;const selections=input.selectionsOnLine;const onlyBoundary=input.renderWhitespace===1;const onlyTrailing=input.renderWhitespace===3;const generateLinePartForEachWhitespace=input.renderSpaceWidth!==input.spaceWidth;const result=[];let resultLen=0;let tokenIndex=0;let tokenType=tokens[tokenIndex].type;let tokenContainsRTL=tokens[tokenIndex].containsRTL;let tokenEndIndex=tokens[tokenIndex].endIndex;const tokensLength=tokens.length;let lineIsEmptyOrWhitespace=false;let firstNonWhitespaceIndex2=firstNonWhitespaceIndex(lineContent);let lastNonWhitespaceIndex2;if(firstNonWhitespaceIndex2===-1){lineIsEmptyOrWhitespace=true;firstNonWhitespaceIndex2=len;lastNonWhitespaceIndex2=len}else{lastNonWhitespaceIndex2=lastNonWhitespaceIndex(lineContent)}let wasInWhitespace=false;let currentSelectionIndex=0;let currentSelection=selections&&selections[currentSelectionIndex];let tmpIndent=startVisibleColumn%tabSize;for(let charIndex=fauxIndentLength;charIndex=currentSelection.endOffset){currentSelectionIndex++;currentSelection=selections&&selections[currentSelectionIndex]}let isInWhitespace;if(charIndexlastNonWhitespaceIndex2){isInWhitespace=true}else if(chCode===9){isInWhitespace=true}else if(chCode===32){if(onlyBoundary){if(wasInWhitespace){isInWhitespace=true}else{const nextChCode=charIndex+1charIndex}if(isInWhitespace&&onlyTrailing){isInWhitespace=lineIsEmptyOrWhitespace||charIndex>lastNonWhitespaceIndex2}if(isInWhitespace&&tokenContainsRTL){if(charIndex>=firstNonWhitespaceIndex2&&charIndex<=lastNonWhitespaceIndex2){isInWhitespace=false}}if(wasInWhitespace){if(!isInWhitespace||!useMonospaceOptimizations&&tmpIndent>=tabSize){if(generateLinePartForEachWhitespace){const lastEndIndex=resultLen>0?result[resultLen-1].endIndex:fauxIndentLength;for(let i=lastEndIndex+1;i<=charIndex;i++){result[resultLen++]=new LinePart(i,"mtkw",1,false)}}else{result[resultLen++]=new LinePart(charIndex,"mtkw",1,false)}tmpIndent=tmpIndent%tabSize}}else{if(charIndex===tokenEndIndex||isInWhitespace&&charIndex>fauxIndentLength){result[resultLen++]=new LinePart(charIndex,tokenType,0,tokenContainsRTL);tmpIndent=tmpIndent%tabSize}}if(chCode===9){tmpIndent=tabSize}else if(isFullWidthCharacter(chCode)){tmpIndent+=2}else{tmpIndent++}wasInWhitespace=isInWhitespace;while(charIndex===tokenEndIndex){tokenIndex++;if(tokenIndex0?lineContent.charCodeAt(len-1):0;const prevCharCode=len>1?lineContent.charCodeAt(len-2):0;const isSingleTrailingSpace=lastCharCode===32&&(prevCharCode!==32&&prevCharCode!==9);if(!isSingleTrailingSpace){generateWhitespace=true}}else{generateWhitespace=true}}if(generateWhitespace){if(generateLinePartForEachWhitespace){const lastEndIndex=resultLen>0?result[resultLen-1].endIndex:fauxIndentLength;for(let i=lastEndIndex+1;i<=len;i++){result[resultLen++]=new LinePart(i,"mtkw",1,false)}}else{result[resultLen++]=new LinePart(len,"mtkw",1,false)}}else{result[resultLen++]=new LinePart(len,tokenType,0,tokenContainsRTL)}return result}function _applyInlineDecorations(lineContent,len,tokens,_lineDecorations){_lineDecorations.sort(LineDecoration.compare);const lineDecorations=LineDecorationsNormalizer.normalize(lineContent,_lineDecorations);const lineDecorationsLen=lineDecorations.length;let lineDecorationIndex=0;const result=[];let resultLen=0;let lastResultEndIndex=0;for(let tokenIndex=0,len2=tokens.length;tokenIndexlastResultEndIndex){lastResultEndIndex=lineDecoration.startOffset;result[resultLen++]=new LinePart(lastResultEndIndex,tokenType,tokenMetadata,tokenContainsRTL)}if(lineDecoration.endOffset+1<=tokenEndIndex){lastResultEndIndex=lineDecoration.endOffset+1;result[resultLen++]=new LinePart(lastResultEndIndex,tokenType+" "+lineDecoration.className,tokenMetadata|lineDecoration.metadata,tokenContainsRTL);lineDecorationIndex++}else{lastResultEndIndex=tokenEndIndex;result[resultLen++]=new LinePart(lastResultEndIndex,tokenType+" "+lineDecoration.className,tokenMetadata|lineDecoration.metadata,tokenContainsRTL);break}}if(tokenEndIndex>lastResultEndIndex){lastResultEndIndex=tokenEndIndex;result[resultLen++]=new LinePart(lastResultEndIndex,tokenType,tokenMetadata,tokenContainsRTL)}}const lastTokenEndIndex=tokens[tokens.length-1].endIndex;if(lineDecorationIndex')}else{sb.appendString("")}for(let partIndex=0,tokensLen=parts.length;partIndex=fauxIndentLength){_visibleColumn+=charWidth}}}if(partRendersWhitespaceWithWidth){sb.appendString(' style="width:');sb.appendString(String(spaceWidth*partWidth));sb.appendString('px"')}sb.appendASCIICharCode(62);for(;charIndex1){sb.appendCharCode(8594)}else{sb.appendCharCode(65515)}for(let space=2;space<=charWidth;space++){sb.appendCharCode(160)}}else{producedCharacters=2;charWidth=1;sb.appendCharCode(renderSpaceCharCode);sb.appendCharCode(8204)}charOffsetInPart+=producedCharacters;charHorizontalOffset+=charWidth;if(charIndex>=fauxIndentLength){visibleColumn+=charWidth}}}else{sb.appendASCIICharCode(62);for(;charIndex=fauxIndentLength){visibleColumn+=charWidth}}}if(partIsEmptyAndHasPseudoAfter){partDisplacement++}else{partDisplacement=0}if(charIndex>=len&&!lastCharacterMappingDefined&&part.isPseudoAfter()){lastCharacterMappingDefined=true;characterMapping.setColumnInfo(charIndex+1,partIndex,charOffsetInPart,charHorizontalOffset)}sb.appendString("")}if(!lastCharacterMappingDefined){characterMapping.setColumnInfo(len+1,parts.length-1,charOffsetInPart,charHorizontalOffset)}if(isOverflowing){sb.appendString('');sb.appendString(localize("showMore","Show more ({0})",renderOverflowingCharCount(overflowingCharCount)));sb.appendString("")}sb.appendString("");return new RenderLineOutput(characterMapping,containsRTL2,containsForeignElements)}function to4CharHex(n){return n.toString(16).toUpperCase().padStart(4,"0")}function renderOverflowingCharCount(n){if(n<1024){return localize("overflow.chars","{0} chars",n)}if(n<1024*1024){return`${(n/1024).toFixed(1)} KB`}return`${(n/1024/1024).toFixed(1)} MB`}var LineRange2,RenderLineInput,DomPosition,CharacterMapping,RenderLineOutput,RenderLineOutput2,ResolvedRenderLineInput;var init_viewLineRenderer=__esm({"node_modules/monaco-editor/esm/vs/editor/common/viewLayout/viewLineRenderer.js"(){init_nls();init_strings();init_stringBuilder();init_lineDecorations();init_linePart();LineRange2=class{constructor(startIndex,endIndex){this.startOffset=startIndex;this.endOffset=endIndex}equals(otherLineRange){return this.startOffset===otherLineRange.startOffset&&this.endOffset===otherLineRange.endOffset}};RenderLineInput=class{constructor(useMonospaceOptimizations,canUseHalfwidthRightwardsArrow,lineContent,continuesWithWrappedLine,isBasicASCII2,containsRTL2,fauxIndentLength,lineTokens,lineDecorations,tabSize,startVisibleColumn,spaceWidth,middotWidth,wsmiddotWidth,stopRenderingLineAfter,renderWhitespace,renderControlCharacters,fontLigatures,selectionsOnLine){this.useMonospaceOptimizations=useMonospaceOptimizations;this.canUseHalfwidthRightwardsArrow=canUseHalfwidthRightwardsArrow;this.lineContent=lineContent;this.continuesWithWrappedLine=continuesWithWrappedLine;this.isBasicASCII=isBasicASCII2;this.containsRTL=containsRTL2;this.fauxIndentLength=fauxIndentLength;this.lineTokens=lineTokens;this.lineDecorations=lineDecorations.sort(LineDecoration.compare);this.tabSize=tabSize;this.startVisibleColumn=startVisibleColumn;this.spaceWidth=spaceWidth;this.stopRenderingLineAfter=stopRenderingLineAfter;this.renderWhitespace=renderWhitespace==="all"?4:renderWhitespace==="boundary"?1:renderWhitespace==="selection"?2:renderWhitespace==="trailing"?3:0;this.renderControlCharacters=renderControlCharacters;this.fontLigatures=fontLigatures;this.selectionsOnLine=selectionsOnLine&&selectionsOnLine.sort(((a,b)=>a.startOffset>>16}static getCharIndex(partData){return(partData&65535)>>>0}constructor(length2,partCount){this.length=length2;this._data=new Uint32Array(this.length);this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(column,partIndex,charIndex,horizontalOffset){const partData=(partIndex<<16|charIndex<<0)>>>0;this._data[column-1]=partData;this._horizontalOffset[column-1]=horizontalOffset}getHorizontalOffset(column){if(this._horizontalOffset.length===0){return 0}return this._horizontalOffset[column-1]}charOffsetToPartData(charOffset){if(this.length===0){return 0}if(charOffset<0){return this._data[0]}if(charOffset>=this.length){return this._data[this.length-1]}return this._data[charOffset]}getDomPosition(column){const partData=this.charOffsetToPartData(column-1);const partIndex=CharacterMapping.getPartIndex(partData);const charIndex=CharacterMapping.getCharIndex(partData);return new DomPosition(partIndex,charIndex)}getColumn(domPosition,partLength){const charOffset=this.partDataToCharOffset(domPosition.partIndex,partLength,domPosition.charIndex);return charOffset+1}partDataToCharOffset(partIndex,partLength,charIndex){if(this.length===0){return 0}const searchEntry=(partIndex<<16|charIndex<<0)>>>0;let min=0;let max=this.length-1;while(min+1>>1;const midEntry=this._data[mid];if(midEntry===searchEntry){return mid}else if(midEntry>searchEntry){max=mid}else{min=mid}}if(min===max){return min}const minEntry=this._data[min];const maxEntry=this._data[max];if(minEntry===searchEntry){return min}if(maxEntry===searchEntry){return max}const minPartIndex=CharacterMapping.getPartIndex(minEntry);const minCharIndex=CharacterMapping.getCharIndex(minEntry);const maxPartIndex=CharacterMapping.getPartIndex(maxEntry);let maxCharIndex;if(minPartIndex!==maxPartIndex){maxCharIndex=partLength}else{maxCharIndex=CharacterMapping.getCharIndex(maxEntry)}const minEntryDistance=charIndex-minCharIndex;const maxEntryDistance=maxCharIndex-charIndex;if(minEntryDistance<=maxEntryDistance){return min}return max}};RenderLineOutput=class{constructor(characterMapping,containsRTL2,containsForeignElements){this._renderLineOutputBrand=void 0;this.characterMapping=characterMapping;this.containsRTL=containsRTL2;this.containsForeignElements=containsForeignElements}};RenderLineOutput2=class{constructor(characterMapping,html2,containsRTL2,containsForeignElements){this.characterMapping=characterMapping;this.html=html2;this.containsRTL=containsRTL2;this.containsForeignElements=containsForeignElements}};ResolvedRenderLineInput=class{constructor(fontIsMonospace,canUseHalfwidthRightwardsArrow,lineContent,len,isOverflowing,overflowingCharCount,parts,containsForeignElements,fauxIndentLength,tabSize,startVisibleColumn,containsRTL2,spaceWidth,renderSpaceCharCode,renderWhitespace,renderControlCharacters){this.fontIsMonospace=fontIsMonospace;this.canUseHalfwidthRightwardsArrow=canUseHalfwidthRightwardsArrow;this.lineContent=lineContent;this.len=len;this.isOverflowing=isOverflowing;this.overflowingCharCount=overflowingCharCount;this.parts=parts;this.containsForeignElements=containsForeignElements;this.fauxIndentLength=fauxIndentLength;this.tabSize=tabSize;this.startVisibleColumn=startVisibleColumn;this.containsRTL=containsRTL2;this.spaceWidth=spaceWidth;this.renderSpaceCharCode=renderSpaceCharCode;this.renderWhitespace=renderWhitespace;this.renderControlCharacters=renderControlCharacters}}}});var Viewport,MinimapLinesRenderingData,ViewLineData,ViewLineRenderingData,InlineDecoration,SingleLineInlineDecoration,ViewModelDecoration,OverviewRulerDecorationsGroup;var init_viewModel=__esm({"node_modules/monaco-editor/esm/vs/editor/common/viewModel.js"(){init_strings();init_range();Viewport=class{constructor(top,left,width,height){this._viewportBrand=void 0;this.top=top|0;this.left=left|0;this.width=width|0;this.height=height|0}};MinimapLinesRenderingData=class{constructor(tabSize,data){this.tabSize=tabSize;this.data=data}};ViewLineData=class{constructor(content,continuesWithWrappedLine,minColumn,maxColumn,startVisibleColumn,tokens,inlineDecorations){this._viewLineDataBrand=void 0;this.content=content;this.continuesWithWrappedLine=continuesWithWrappedLine;this.minColumn=minColumn;this.maxColumn=maxColumn;this.startVisibleColumn=startVisibleColumn;this.tokens=tokens;this.inlineDecorations=inlineDecorations}};ViewLineRenderingData=class{constructor(minColumn,maxColumn,content,continuesWithWrappedLine,mightContainRTL,mightContainNonBasicASCII,tokens,inlineDecorations,tabSize,startVisibleColumn){this.minColumn=minColumn;this.maxColumn=maxColumn;this.content=content;this.continuesWithWrappedLine=continuesWithWrappedLine;this.isBasicASCII=ViewLineRenderingData.isBasicASCII(content,mightContainNonBasicASCII);this.containsRTL=ViewLineRenderingData.containsRTL(content,this.isBasicASCII,mightContainRTL);this.tokens=tokens;this.inlineDecorations=inlineDecorations;this.tabSize=tabSize;this.startVisibleColumn=startVisibleColumn}static isBasicASCII(lineContent,mightContainNonBasicASCII){if(mightContainNonBasicASCII){return isBasicASCII(lineContent)}return true}static containsRTL(lineContent,isBasicASCII2,mightContainRTL){if(!isBasicASCII2&&mightContainRTL){return containsRTL(lineContent)}return false}};InlineDecoration=class{constructor(range2,inlineClassName,type){this.range=range2;this.inlineClassName=inlineClassName;this.type=type}};SingleLineInlineDecoration=class{constructor(startOffset,endOffset,inlineClassName,inlineClassNameAffectsLetterSpacing){this.startOffset=startOffset;this.endOffset=endOffset;this.inlineClassName=inlineClassName;this.inlineClassNameAffectsLetterSpacing=inlineClassNameAffectsLetterSpacing}toInlineDecoration(lineNumber){return new InlineDecoration(new Range(lineNumber,this.startOffset+1,lineNumber,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}};ViewModelDecoration=class{constructor(range2,options2){this._viewModelDecorationBrand=void 0;this.range=range2;this.options=options2}};OverviewRulerDecorationsGroup=class{constructor(color,zIndex,data){this.color=color;this.zIndex=zIndex;this.data=data}static cmp(a,b){if(a.zIndex===b.zIndex){if(a.colorb.color){return 1}return 0}return a.zIndex-b.zIndex}}}});function isFuzzyActionArr(what){return Array.isArray(what)}function isFuzzyAction(what){return!isFuzzyActionArr(what)}function isString2(what){return typeof what==="string"}function isIAction(what){return!isString2(what)}function empty(s){return s?false:true}function fixCase(lexer2,str){return lexer2.ignoreCase&&str?str.toLowerCase():str}function sanitize(s){return s.replace(/[&<>'"_]/g,"-")}function log(lexer2,msg){console.log(`${lexer2.languageId}: ${msg}`)}function createError(lexer2,msg){return new Error(`${lexer2.languageId}: ${msg}`)}function substituteMatches(lexer2,str,id,matches,state){const re=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let stateMatches=null;return str.replace(re,(function(full,sub,dollar,hash2,n,s,attr,ofs,total){if(!empty(dollar)){return"$"}if(!empty(hash2)){return fixCase(lexer2,id)}if(!empty(n)&&n0){const rules=lexer2.tokenizer[state];if(rules){return rules}const idx=state.lastIndexOf(".");if(idx<0){state=null}else{state=state.substr(0,idx)}}return null}function stateExists(lexer2,inState){let state=inState;while(state&&state.length>0){const exist=lexer2.stateNames[state];if(exist){return true}const idx=state.lastIndexOf(".");if(idx<0){state=null}else{state=state.substr(0,idx)}}return false}var init_monarchCommon=__esm({"node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchCommon.js"(){}});function findBracket(lexer2,matched){if(!matched){return null}matched=fixCase(lexer2,matched);const brackets=lexer2.brackets;for(const bracket of brackets){if(bracket.open===matched){return{token:bracket.token,bracketType:1}}else if(bracket.close===matched){return{token:bracket.token,bracketType:-1}}}return null}var __decorate4,__param4,MonarchTokenizer_1,CACHE_STACK_DEPTH,MonarchStackElementFactory,MonarchStackElement,EmbeddedLanguageData,MonarchLineStateFactory,MonarchLineState,MonarchClassicTokensCollector,MonarchModernTokensCollector,MonarchTokenizer;var init_monarchLexer=__esm({"node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchLexer.js"(){init_languages();init_nullTokenize();init_monarchCommon();init_configuration();__decorate4=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r};__param4=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};CACHE_STACK_DEPTH=5;MonarchStackElementFactory=class{static create(parent,state){return this._INSTANCE.create(parent,state)}constructor(maxCacheDepth){this._maxCacheDepth=maxCacheDepth;this._entries=Object.create(null)}create(parent,state){if(parent!==null&&parent.depth>=this._maxCacheDepth){return new MonarchStackElement(parent,state)}let stackElementId=MonarchStackElement.getStackElementId(parent);if(stackElementId.length>0){stackElementId+="|"}stackElementId+=state;let result=this._entries[stackElementId];if(result){return result}result=new MonarchStackElement(parent,state);this._entries[stackElementId]=result;return result}};MonarchStackElementFactory._INSTANCE=new MonarchStackElementFactory(CACHE_STACK_DEPTH);MonarchStackElement=class{constructor(parent,state){this.parent=parent;this.state=state;this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(element){let result="";while(element!==null){if(result.length>0){result+="|"}result+=element.state;element=element.parent}return result}static _equals(a,b){while(a!==null&&b!==null){if(a===b){return true}if(a.state!==b.state){return false}a=a.parent;b=b.parent}if(a===null&&b===null){return true}return false}equals(other){return MonarchStackElement._equals(this,other)}push(state){return MonarchStackElementFactory.create(this,state)}pop(){return this.parent}popall(){let result=this;while(result.parent){result=result.parent}return result}switchTo(state){return MonarchStackElementFactory.create(this.parent,state)}};EmbeddedLanguageData=class{constructor(languageId,state){this.languageId=languageId;this.state=state}equals(other){return this.languageId===other.languageId&&this.state.equals(other.state)}clone(){const stateClone=this.state.clone();if(stateClone===this.state){return this}return new EmbeddedLanguageData(this.languageId,this.state)}};MonarchLineStateFactory=class{static create(stack,embeddedLanguageData){return this._INSTANCE.create(stack,embeddedLanguageData)}constructor(maxCacheDepth){this._maxCacheDepth=maxCacheDepth;this._entries=Object.create(null)}create(stack,embeddedLanguageData){if(embeddedLanguageData!==null){return new MonarchLineState(stack,embeddedLanguageData)}if(stack!==null&&stack.depth>=this._maxCacheDepth){return new MonarchLineState(stack,embeddedLanguageData)}const stackElementId=MonarchStackElement.getStackElementId(stack);let result=this._entries[stackElementId];if(result){return result}result=new MonarchLineState(stack,null);this._entries[stackElementId]=result;return result}};MonarchLineStateFactory._INSTANCE=new MonarchLineStateFactory(CACHE_STACK_DEPTH);MonarchLineState=class{constructor(stack,embeddedLanguageData){this.stack=stack;this.embeddedLanguageData=embeddedLanguageData}clone(){const embeddedlanguageDataClone=this.embeddedLanguageData?this.embeddedLanguageData.clone():null;if(embeddedlanguageDataClone===this.embeddedLanguageData){return this}return MonarchLineStateFactory.create(this.stack,this.embeddedLanguageData)}equals(other){if(!(other instanceof MonarchLineState)){return false}if(!this.stack.equals(other.stack)){return false}if(this.embeddedLanguageData===null&&other.embeddedLanguageData===null){return true}if(this.embeddedLanguageData===null||other.embeddedLanguageData===null){return false}return this.embeddedLanguageData.equals(other.embeddedLanguageData)}};MonarchClassicTokensCollector=class{constructor(){this._tokens=[];this._languageId=null;this._lastTokenType=null;this._lastTokenLanguage=null}enterLanguage(languageId){this._languageId=languageId}emit(startOffset,type){if(this._lastTokenType===type&&this._lastTokenLanguage===this._languageId){return}this._lastTokenType=type;this._lastTokenLanguage=this._languageId;this._tokens.push(new Token(startOffset,type,this._languageId))}nestedLanguageTokenize(embeddedLanguageLine,hasEOL,embeddedLanguageData,offsetDelta){const nestedLanguageId=embeddedLanguageData.languageId;const embeddedModeState=embeddedLanguageData.state;const nestedLanguageTokenizationSupport=TokenizationRegistry2.get(nestedLanguageId);if(!nestedLanguageTokenizationSupport){this.enterLanguage(nestedLanguageId);this.emit(offsetDelta,"");return embeddedModeState}const nestedResult=nestedLanguageTokenizationSupport.tokenize(embeddedLanguageLine,hasEOL,embeddedModeState);if(offsetDelta!==0){for(const token of nestedResult.tokens){this._tokens.push(new Token(token.offset+offsetDelta,token.type,token.language))}}else{this._tokens=this._tokens.concat(nestedResult.tokens)}this._lastTokenType=null;this._lastTokenLanguage=null;this._languageId=null;return nestedResult.endState}finalize(endState){return new TokenizationResult(this._tokens,endState)}};MonarchModernTokensCollector=class{constructor(languageService,theme){this._languageService=languageService;this._theme=theme;this._prependTokens=null;this._tokens=[];this._currentLanguageId=0;this._lastTokenMetadata=0}enterLanguage(languageId){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(languageId)}emit(startOffset,type){const metadata=this._theme.match(this._currentLanguageId,type)|1024;if(this._lastTokenMetadata===metadata){return}this._lastTokenMetadata=metadata;this._tokens.push(startOffset);this._tokens.push(metadata)}static _merge(a,b,c){const aLen=a!==null?a.length:0;const bLen=b.length;const cLen=c!==null?c.length:0;if(aLen===0&&bLen===0&&cLen===0){return new Uint32Array(0)}if(aLen===0&&bLen===0){return c}if(bLen===0&&cLen===0){return a}const result=new Uint32Array(aLen+bLen+cLen);if(a!==null){result.set(a)}for(let i=0;i{if(emitting){return}let isOneOfMyEmbeddedModes=false;for(let i=0,len=e.changedLanguages.length;i{if(e.affectsConfiguration("editor.maxTokenizationLineLength")){this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId})}}))}dispose(){this._tokenizationRegistryListener.dispose()}getLoadStatus(){const promises=[];for(const nestedLanguageId in this._embeddedLanguages){const tokenizationSupport=TokenizationRegistry2.get(nestedLanguageId);if(tokenizationSupport){if(tokenizationSupport instanceof MonarchTokenizer_1){const nestedModeStatus=tokenizationSupport.getLoadStatus();if(nestedModeStatus.loaded===false){promises.push(nestedModeStatus.promise)}}continue}if(!TokenizationRegistry2.isResolved(nestedLanguageId)){promises.push(TokenizationRegistry2.getOrCreate(nestedLanguageId))}}if(promises.length===0){return{loaded:true}}return{loaded:false,promise:Promise.all(promises).then((_=>void 0))}}getInitialState(){const rootState=MonarchStackElementFactory.create(null,this._lexer.start);return MonarchLineStateFactory.create(rootState,null)}tokenize(line,hasEOL,lineState){if(line.length>=this._maxTokenizationLineLength){return nullTokenize(this._languageId,lineState)}const tokensCollector=new MonarchClassicTokensCollector;const endLineState=this._tokenize(line,hasEOL,lineState,tokensCollector);return tokensCollector.finalize(endLineState)}tokenizeEncoded(line,hasEOL,lineState){if(line.length>=this._maxTokenizationLineLength){return nullTokenizeEncoded(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),lineState)}const tokensCollector=new MonarchModernTokensCollector(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme);const endLineState=this._tokenize(line,hasEOL,lineState,tokensCollector);return tokensCollector.finalize(endLineState)}_tokenize(line,hasEOL,lineState,collector){if(lineState.embeddedLanguageData){return this._nestedTokenize(line,hasEOL,lineState,0,collector)}else{return this._myTokenize(line,hasEOL,lineState,0,collector)}}_findLeavingNestedLanguageOffset(line,state){let rules=this._lexer.tokenizer[state.stack.state];if(!rules){rules=findRules(this._lexer,state.stack.state);if(!rules){throw createError(this._lexer,"tokenizer state is not defined: "+state.stack.state)}}let popOffset=-1;let hasEmbeddedPopRule=false;for(const rule of rules){if(!isIAction(rule.action)||rule.action.nextEmbedded!=="@pop"){continue}hasEmbeddedPopRule=true;let regex=rule.regex;const regexSource=rule.regex.source;if(regexSource.substr(0,4)==="^(?:"&®exSource.substr(regexSource.length-1,1)===")"){const flags=(regex.ignoreCase?"i":"")+(regex.unicode?"u":"");regex=new RegExp(regexSource.substr(4,regexSource.length-5),flags)}const result=line.search(regex);if(result===-1||result!==0&&rule.matchOnlyAtLineStart){continue}if(popOffset===-1||result0){tokensCollector.nestedLanguageTokenize(nestedLanguageLine,false,lineState.embeddedLanguageData,offsetDelta)}const restOfTheLine=line.substring(popOffset);return this._myTokenize(restOfTheLine,hasEOL,lineState,offsetDelta+popOffset,tokensCollector)}_safeRuleName(rule){if(rule){return rule.name}return"(unknown)"}_myTokenize(lineWithoutLF,hasEOL,lineState,offsetDelta,tokensCollector){tokensCollector.enterLanguage(this._languageId);const lineWithoutLFLength=lineWithoutLF.length;const line=hasEOL&&this._lexer.includeLF?lineWithoutLF+"\n":lineWithoutLF;const lineLength=line.length;let embeddedLanguageData=lineState.embeddedLanguageData;let stack=lineState.stack;let pos=0;let groupMatching=null;let forceEvaluation=true;while(forceEvaluation||pos=lineLength){break}forceEvaluation=false;let rules=this._lexer.tokenizer[state];if(!rules){rules=findRules(this._lexer,state);if(!rules){throw createError(this._lexer,"tokenizer state is not defined: "+state)}}const restOfLine=line.substr(pos);for(const rule2 of rules){if(pos===0||!rule2.matchOnlyAtLineStart){matches=restOfLine.match(rule2.regex);if(matches){matched=matches[0];action=rule2.action;break}}}}if(!matches){matches=[""];matched=""}if(!action){if(pos=this._lexer.maxStack){throw createError(this._lexer,"maximum tokenizer stack size reached: ["+stack.state+","+stack.parent.state+",...]")}else{stack=stack.push(state)}}else if(action.next==="@pop"){if(stack.depth<=1){throw createError(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(rule))}else{stack=stack.pop()}}else if(action.next==="@popall"){stack=stack.popall()}else{let nextState=substituteMatches(this._lexer,action.next,matched,matches,state);if(nextState[0]==="@"){nextState=nextState.substr(1)}if(!findRules(this._lexer,nextState)){throw createError(this._lexer,"trying to set a next state '"+nextState+"' that is undefined in rule: "+this._safeRuleName(rule))}else{stack=stack.push(nextState)}}}if(action.log&&typeof action.log==="string"){log(this._lexer,this._lexer.languageId+": "+substituteMatches(this._lexer,action.log,matched,matches,state))}}if(result===null){throw createError(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(rule))}const computeNewStateForEmbeddedLanguage=enteringEmbeddedLanguage2=>{const languageId=this._languageService.getLanguageIdByLanguageName(enteringEmbeddedLanguage2)||this._languageService.getLanguageIdByMimeType(enteringEmbeddedLanguage2)||enteringEmbeddedLanguage2;const embeddedLanguageData2=this._getNestedEmbeddedLanguageData(languageId);if(pos0){throw createError(this._lexer,"groups cannot be nested: "+this._safeRuleName(rule))}if(matches.length!==result.length+1){throw createError(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(rule))}let totalLen=0;for(let i=1;i{const execute=()=>{const result=_actualColorize(lines,tabSize,tokenizationSupport,languageIdCodec);if(tokenizationSupport instanceof MonarchTokenizer){const status2=tokenizationSupport.getLoadStatus();if(status2.loaded===false){status2.promise.then(execute,e);return}}c(result)};execute()}))}function _fakeColorize(lines,tabSize,languageIdCodec){let html2=[];const defaultMetadata=(0<<11|1<<15|2<<24)>>>0;const tokens=new Uint32Array(2);tokens[0]=0;tokens[1]=defaultMetadata;for(let i=0,length2=lines.length;i")}return html2.join("")}function _actualColorize(lines,tabSize,tokenizationSupport,languageIdCodec){let html2=[];let state=tokenizationSupport.getInitialState();for(let i=0,length2=lines.length;i");state=tokenizeResult.endState}return html2.join("")}var __awaiter5,ttPolicy2,Colorizer;var init_colorizer=__esm({"node_modules/monaco-editor/esm/vs/editor/standalone/browser/colorizer.js"(){init_trustedTypes();init_strings();init_languages();init_lineTokens();init_viewLineRenderer();init_viewModel();init_monarchLexer();__awaiter5=function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P((function(resolve2){resolve2(value)}))}return new(P||(P=Promise))((function(resolve2,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve2(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))};ttPolicy2=createTrustedTypesPolicy("standaloneColorizer",{createHTML:value=>value});Colorizer=class{static colorizeElement(themeService,languageService,domNode,options2){options2=options2||{};const theme=options2.theme||"vs";const mimeType=options2.mimeType||domNode.getAttribute("lang")||domNode.getAttribute("data-lang");if(!mimeType){console.error("Mode not detected");return Promise.resolve()}const languageId=languageService.getLanguageIdByMimeType(mimeType)||mimeType;themeService.setTheme(theme);const text2=domNode.firstChild?domNode.firstChild.nodeValue:"";domNode.className+=" "+theme;const render=str=>{var _a6;const trustedhtml=(_a6=ttPolicy2===null||ttPolicy2===void 0?void 0:ttPolicy2.createHTML(str))!==null&&_a6!==void 0?_a6:str;domNode.innerHTML=trustedhtml};return this.colorize(languageService,text2||"",languageId,options2).then(render,(err=>console.error(err)))}static colorize(languageService,text2,languageId,options2){return __awaiter5(this,void 0,void 0,(function*(){const languageIdCodec=languageService.languageIdCodec;let tabSize=4;if(options2&&typeof options2.tabSize==="number"){tabSize=options2.tabSize}if(startsWithUTF8BOM(text2)){text2=text2.substr(1)}const lines=splitLines(text2);if(!languageService.isRegisteredLanguageId(languageId)){return _fakeColorize(lines,tabSize,languageIdCodec)}const tokenizationSupport=yield TokenizationRegistry2.getOrCreate(languageId);if(tokenizationSupport){return _colorize(lines,tabSize,tokenizationSupport,languageIdCodec)}return _fakeColorize(lines,tabSize,languageIdCodec)}))}static colorizeLine(line,mightContainNonBasicASCII,mightContainRTL,tokens,tabSize=4){const isBasicASCII2=ViewLineRenderingData.isBasicASCII(line,mightContainNonBasicASCII);const containsRTL2=ViewLineRenderingData.containsRTL(line,isBasicASCII2,mightContainRTL);const renderResult=renderViewLine2(new RenderLineInput(false,true,line,false,isBasicASCII2,containsRTL2,0,tokens,[],tabSize,0,0,0,0,-1,"none",false,false,null));return renderResult.html}static colorizeModelLine(model,lineNumber,tabSize=4){const content=model.getLineContent(lineNumber);model.tokenization.forceTokenization(lineNumber);const tokens=model.tokenization.getLineTokens(lineNumber);const inflatedTokens=tokens.inflate();return this.colorizeLine(content,model.mightContainNonBasicASCII(),model.mightContainRTL(),inflatedTokens,tabSize)}}}});var BrowserFeatures;var init_canIUse=__esm({"node_modules/monaco-editor/esm/vs/base/browser/canIUse.js"(){init_browser();init_platform();BrowserFeatures={clipboard:{writeText:isNative||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:(()=>{if(isNative||isStandalone()){return 0}if(navigator.keyboard||isSafari2){return 1}return 2})(),touch:"ontouchstart"in window||navigator.maxTouchPoints>0,pointerEvents:window.PointerEvent&&("ontouchstart"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0)}}});function decodeKeybinding(keybinding,OS2){if(typeof keybinding==="number"){if(keybinding===0){return null}const firstChord=(keybinding&65535)>>>0;const secondChord=(keybinding&4294901760)>>>16;if(secondChord!==0){return new Keybinding([createSimpleKeybinding(firstChord,OS2),createSimpleKeybinding(secondChord,OS2)])}return new Keybinding([createSimpleKeybinding(firstChord,OS2)])}else{const chords=[];for(let i=0;i1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}return apply(func,thisArg,args)}}function unconstruct(func){return function(){for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2]}return construct(func,args)}}function addToSet(set,array2,transformCaseFunc){var _transformCaseFunc;transformCaseFunc=(_transformCaseFunc=transformCaseFunc)!==null&&_transformCaseFunc!==void 0?_transformCaseFunc:stringToLowerCase;if(setPrototypeOf){setPrototypeOf(set,null)}let l=array2.length;while(l--){let element=array2[l];if(typeof element==="string"){const lcElement=transformCaseFunc(element);if(lcElement!==element){if(!isFrozen(array2)){array2[l]=lcElement}element=lcElement}}set[element]=true}return set}function clone(object){const newObject=create(null);for(const[property,value]of entries(object)){newObject[property]=value}return newObject}function lookupGetter(object,prop){while(object!==null){const desc=getOwnPropertyDescriptor(object,prop);if(desc){if(desc.get){return unapply(desc.get)}if(typeof desc.value==="function"){return unapply(desc.value)}}object=getPrototypeOf(object)}function fallbackValue(element){console.warn("fallback value for",element);return null}return fallbackValue}function createDOMPurify(){let window2=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const DOMPurify=root=>createDOMPurify(root);DOMPurify.version="3.0.5";DOMPurify.removed=[];if(!window2||!window2.document||window2.document.nodeType!==9){DOMPurify.isSupported=false;return DOMPurify}const originalDocument=window2.document;const currentScript=originalDocument.currentScript;let{document:document2}=window2;const{DocumentFragment:DocumentFragment,HTMLTemplateElement:HTMLTemplateElement,Node:Node4,Element:Element2,NodeFilter:NodeFilter,NamedNodeMap:NamedNodeMap=window2.NamedNodeMap||window2.MozNamedAttrMap,HTMLFormElement:HTMLFormElement,DOMParser:DOMParser2,trustedTypes:trustedTypes}=window2;const ElementPrototype=Element2.prototype;const cloneNode=lookupGetter(ElementPrototype,"cloneNode");const getNextSibling=lookupGetter(ElementPrototype,"nextSibling");const getChildNodes=lookupGetter(ElementPrototype,"childNodes");const getParentNode=lookupGetter(ElementPrototype,"parentNode");if(typeof HTMLTemplateElement==="function"){const template=document2.createElement("template");if(template.content&&template.content.ownerDocument){document2=template.content.ownerDocument}}let trustedTypesPolicy;let emptyHTML="";const{implementation:implementation,createNodeIterator:createNodeIterator,createDocumentFragment:createDocumentFragment,getElementsByTagName:getElementsByTagName}=document2;const{importNode:importNode}=originalDocument;let hooks={};DOMPurify.isSupported=typeof entries==="function"&&typeof getParentNode==="function"&&implementation&&implementation.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:MUSTACHE_EXPR2,ERB_EXPR:ERB_EXPR2,TMPLIT_EXPR:TMPLIT_EXPR2,DATA_ATTR:DATA_ATTR2,ARIA_ATTR:ARIA_ATTR2,IS_SCRIPT_OR_DATA:IS_SCRIPT_OR_DATA2,ATTR_WHITESPACE:ATTR_WHITESPACE2}=EXPRESSIONS;let{IS_ALLOWED_URI:IS_ALLOWED_URI$1}=EXPRESSIONS;let ALLOWED_TAGS=null;const DEFAULT_ALLOWED_TAGS=addToSet({},[...html$1,...svg$1,...svgFilters,...mathMl$1,...text]);let ALLOWED_ATTR=null;const DEFAULT_ALLOWED_ATTR=addToSet({},[...html,...svg,...mathMl,...xml]);let CUSTOM_ELEMENT_HANDLING=Object.seal(Object.create(null,{tagNameCheck:{writable:true,configurable:false,enumerable:true,value:null},attributeNameCheck:{writable:true,configurable:false,enumerable:true,value:null},allowCustomizedBuiltInElements:{writable:true,configurable:false,enumerable:true,value:false}}));let FORBID_TAGS=null;let FORBID_ATTR=null;let ALLOW_ARIA_ATTR=true;let ALLOW_DATA_ATTR=true;let ALLOW_UNKNOWN_PROTOCOLS=false;let ALLOW_SELF_CLOSE_IN_ATTR=true;let SAFE_FOR_TEMPLATES=false;let WHOLE_DOCUMENT=false;let SET_CONFIG=false;let FORCE_BODY=false;let RETURN_DOM=false;let RETURN_DOM_FRAGMENT=false;let RETURN_TRUSTED_TYPE=false;let SANITIZE_DOM=true;let SANITIZE_NAMED_PROPS=false;const SANITIZE_NAMED_PROPS_PREFIX="user-content-";let KEEP_CONTENT=true;let IN_PLACE=false;let USE_PROFILES={};let FORBID_CONTENTS=null;const DEFAULT_FORBID_CONTENTS=addToSet({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let DATA_URI_TAGS=null;const DEFAULT_DATA_URI_TAGS=addToSet({},["audio","video","img","source","image","track"]);let URI_SAFE_ATTRIBUTES=null;const DEFAULT_URI_SAFE_ATTRIBUTES=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]);const MATHML_NAMESPACE="http://www.w3.org/1998/Math/MathML";const SVG_NAMESPACE="http://www.w3.org/2000/svg";const HTML_NAMESPACE="http://www.w3.org/1999/xhtml";let NAMESPACE=HTML_NAMESPACE;let IS_EMPTY_INPUT=false;let ALLOWED_NAMESPACES=null;const DEFAULT_ALLOWED_NAMESPACES=addToSet({},[MATHML_NAMESPACE,SVG_NAMESPACE,HTML_NAMESPACE],stringToString);let PARSER_MEDIA_TYPE;const SUPPORTED_PARSER_MEDIA_TYPES=["application/xhtml+xml","text/html"];const DEFAULT_PARSER_MEDIA_TYPE="text/html";let transformCaseFunc;let CONFIG=null;const formElement=document2.createElement("form");const isRegexOrFunction=function isRegexOrFunction2(testValue){return testValue instanceof RegExp||testValue instanceof Function};const _parseConfig=function _parseConfig2(cfg){if(CONFIG&&CONFIG===cfg){return}if(!cfg||typeof cfg!=="object"){cfg={}}cfg=clone(cfg);PARSER_MEDIA_TYPE=SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE)===-1?PARSER_MEDIA_TYPE=DEFAULT_PARSER_MEDIA_TYPE:PARSER_MEDIA_TYPE=cfg.PARSER_MEDIA_TYPE;transformCaseFunc=PARSER_MEDIA_TYPE==="application/xhtml+xml"?stringToString:stringToLowerCase;ALLOWED_TAGS="ALLOWED_TAGS"in cfg?addToSet({},cfg.ALLOWED_TAGS,transformCaseFunc):DEFAULT_ALLOWED_TAGS;ALLOWED_ATTR="ALLOWED_ATTR"in cfg?addToSet({},cfg.ALLOWED_ATTR,transformCaseFunc):DEFAULT_ALLOWED_ATTR;ALLOWED_NAMESPACES="ALLOWED_NAMESPACES"in cfg?addToSet({},cfg.ALLOWED_NAMESPACES,stringToString):DEFAULT_ALLOWED_NAMESPACES;URI_SAFE_ATTRIBUTES="ADD_URI_SAFE_ATTR"in cfg?addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),cfg.ADD_URI_SAFE_ATTR,transformCaseFunc):DEFAULT_URI_SAFE_ATTRIBUTES;DATA_URI_TAGS="ADD_DATA_URI_TAGS"in cfg?addToSet(clone(DEFAULT_DATA_URI_TAGS),cfg.ADD_DATA_URI_TAGS,transformCaseFunc):DEFAULT_DATA_URI_TAGS;FORBID_CONTENTS="FORBID_CONTENTS"in cfg?addToSet({},cfg.FORBID_CONTENTS,transformCaseFunc):DEFAULT_FORBID_CONTENTS;FORBID_TAGS="FORBID_TAGS"in cfg?addToSet({},cfg.FORBID_TAGS,transformCaseFunc):{};FORBID_ATTR="FORBID_ATTR"in cfg?addToSet({},cfg.FORBID_ATTR,transformCaseFunc):{};USE_PROFILES="USE_PROFILES"in cfg?cfg.USE_PROFILES:false;ALLOW_ARIA_ATTR=cfg.ALLOW_ARIA_ATTR!==false;ALLOW_DATA_ATTR=cfg.ALLOW_DATA_ATTR!==false;ALLOW_UNKNOWN_PROTOCOLS=cfg.ALLOW_UNKNOWN_PROTOCOLS||false;ALLOW_SELF_CLOSE_IN_ATTR=cfg.ALLOW_SELF_CLOSE_IN_ATTR!==false;SAFE_FOR_TEMPLATES=cfg.SAFE_FOR_TEMPLATES||false;WHOLE_DOCUMENT=cfg.WHOLE_DOCUMENT||false;RETURN_DOM=cfg.RETURN_DOM||false;RETURN_DOM_FRAGMENT=cfg.RETURN_DOM_FRAGMENT||false;RETURN_TRUSTED_TYPE=cfg.RETURN_TRUSTED_TYPE||false;FORCE_BODY=cfg.FORCE_BODY||false;SANITIZE_DOM=cfg.SANITIZE_DOM!==false;SANITIZE_NAMED_PROPS=cfg.SANITIZE_NAMED_PROPS||false;KEEP_CONTENT=cfg.KEEP_CONTENT!==false;IN_PLACE=cfg.IN_PLACE||false;IS_ALLOWED_URI$1=cfg.ALLOWED_URI_REGEXP||IS_ALLOWED_URI;NAMESPACE=cfg.NAMESPACE||HTML_NAMESPACE;CUSTOM_ELEMENT_HANDLING=cfg.CUSTOM_ELEMENT_HANDLING||{};if(cfg.CUSTOM_ELEMENT_HANDLING&&isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)){CUSTOM_ELEMENT_HANDLING.tagNameCheck=cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck}if(cfg.CUSTOM_ELEMENT_HANDLING&&isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)){CUSTOM_ELEMENT_HANDLING.attributeNameCheck=cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck}if(cfg.CUSTOM_ELEMENT_HANDLING&&typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements==="boolean"){CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements}if(SAFE_FOR_TEMPLATES){ALLOW_DATA_ATTR=false}if(RETURN_DOM_FRAGMENT){RETURN_DOM=true}if(USE_PROFILES){ALLOWED_TAGS=addToSet({},[...text]);ALLOWED_ATTR=[];if(USE_PROFILES.html===true){addToSet(ALLOWED_TAGS,html$1);addToSet(ALLOWED_ATTR,html)}if(USE_PROFILES.svg===true){addToSet(ALLOWED_TAGS,svg$1);addToSet(ALLOWED_ATTR,svg);addToSet(ALLOWED_ATTR,xml)}if(USE_PROFILES.svgFilters===true){addToSet(ALLOWED_TAGS,svgFilters);addToSet(ALLOWED_ATTR,svg);addToSet(ALLOWED_ATTR,xml)}if(USE_PROFILES.mathMl===true){addToSet(ALLOWED_TAGS,mathMl$1);addToSet(ALLOWED_ATTR,mathMl);addToSet(ALLOWED_ATTR,xml)}}if(cfg.ADD_TAGS){if(ALLOWED_TAGS===DEFAULT_ALLOWED_TAGS){ALLOWED_TAGS=clone(ALLOWED_TAGS)}addToSet(ALLOWED_TAGS,cfg.ADD_TAGS,transformCaseFunc)}if(cfg.ADD_ATTR){if(ALLOWED_ATTR===DEFAULT_ALLOWED_ATTR){ALLOWED_ATTR=clone(ALLOWED_ATTR)}addToSet(ALLOWED_ATTR,cfg.ADD_ATTR,transformCaseFunc)}if(cfg.ADD_URI_SAFE_ATTR){addToSet(URI_SAFE_ATTRIBUTES,cfg.ADD_URI_SAFE_ATTR,transformCaseFunc)}if(cfg.FORBID_CONTENTS){if(FORBID_CONTENTS===DEFAULT_FORBID_CONTENTS){FORBID_CONTENTS=clone(FORBID_CONTENTS)}addToSet(FORBID_CONTENTS,cfg.FORBID_CONTENTS,transformCaseFunc)}if(KEEP_CONTENT){ALLOWED_TAGS["#text"]=true}if(WHOLE_DOCUMENT){addToSet(ALLOWED_TAGS,["html","head","body"])}if(ALLOWED_TAGS.table){addToSet(ALLOWED_TAGS,["tbody"]);delete FORBID_TAGS.tbody}if(cfg.TRUSTED_TYPES_POLICY){if(typeof cfg.TRUSTED_TYPES_POLICY.createHTML!=="function"){throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.')}if(typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL!=="function"){throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.')}trustedTypesPolicy=cfg.TRUSTED_TYPES_POLICY;emptyHTML=trustedTypesPolicy.createHTML("")}else{if(trustedTypesPolicy===void 0){trustedTypesPolicy=_createTrustedTypesPolicy(trustedTypes,currentScript)}if(trustedTypesPolicy!==null&&typeof emptyHTML==="string"){emptyHTML=trustedTypesPolicy.createHTML("")}}if(freeze){freeze(cfg)}CONFIG=cfg};const MATHML_TEXT_INTEGRATION_POINTS=addToSet({},["mi","mo","mn","ms","mtext"]);const HTML_INTEGRATION_POINTS=addToSet({},["foreignobject","desc","title","annotation-xml"]);const COMMON_SVG_AND_HTML_ELEMENTS=addToSet({},["title","style","font","a","script"]);const ALL_SVG_TAGS=addToSet({},svg$1);addToSet(ALL_SVG_TAGS,svgFilters);addToSet(ALL_SVG_TAGS,svgDisallowed);const ALL_MATHML_TAGS=addToSet({},mathMl$1);addToSet(ALL_MATHML_TAGS,mathMlDisallowed);const _checkValidNamespace=function _checkValidNamespace2(element){let parent=getParentNode(element);if(!parent||!parent.tagName){parent={namespaceURI:NAMESPACE,tagName:"template"}}const tagName=stringToLowerCase(element.tagName);const parentTagName=stringToLowerCase(parent.tagName);if(!ALLOWED_NAMESPACES[element.namespaceURI]){return false}if(element.namespaceURI===SVG_NAMESPACE){if(parent.namespaceURI===HTML_NAMESPACE){return tagName==="svg"}if(parent.namespaceURI===MATHML_NAMESPACE){return tagName==="svg"&&(parentTagName==="annotation-xml"||MATHML_TEXT_INTEGRATION_POINTS[parentTagName])}return Boolean(ALL_SVG_TAGS[tagName])}if(element.namespaceURI===MATHML_NAMESPACE){if(parent.namespaceURI===HTML_NAMESPACE){return tagName==="math"}if(parent.namespaceURI===SVG_NAMESPACE){return tagName==="math"&&HTML_INTEGRATION_POINTS[parentTagName]}return Boolean(ALL_MATHML_TAGS[tagName])}if(element.namespaceURI===HTML_NAMESPACE){if(parent.namespaceURI===SVG_NAMESPACE&&!HTML_INTEGRATION_POINTS[parentTagName]){return false}if(parent.namespaceURI===MATHML_NAMESPACE&&!MATHML_TEXT_INTEGRATION_POINTS[parentTagName]){return false}return!ALL_MATHML_TAGS[tagName]&&(COMMON_SVG_AND_HTML_ELEMENTS[tagName]||!ALL_SVG_TAGS[tagName])}if(PARSER_MEDIA_TYPE==="application/xhtml+xml"&&ALLOWED_NAMESPACES[element.namespaceURI]){return true}return false};const _forceRemove=function _forceRemove2(node){arrayPush(DOMPurify.removed,{element:node});try{node.parentNode.removeChild(node)}catch(_){node.remove()}};const _removeAttribute=function _removeAttribute2(name,node){try{arrayPush(DOMPurify.removed,{attribute:node.getAttributeNode(name),from:node})}catch(_){arrayPush(DOMPurify.removed,{attribute:null,from:node})}node.removeAttribute(name);if(name==="is"&&!ALLOWED_ATTR[name]){if(RETURN_DOM||RETURN_DOM_FRAGMENT){try{_forceRemove(node)}catch(_){}}else{try{node.setAttribute(name,"")}catch(_){}}}};const _initDocument=function _initDocument2(dirty){let doc;let leadingWhitespace;if(FORCE_BODY){dirty=""+dirty}else{const matches=stringMatch(dirty,/^[\r\n\t ]+/);leadingWhitespace=matches&&matches[0]}if(PARSER_MEDIA_TYPE==="application/xhtml+xml"&&NAMESPACE===HTML_NAMESPACE){dirty=''+dirty+""}const dirtyPayload=trustedTypesPolicy?trustedTypesPolicy.createHTML(dirty):dirty;if(NAMESPACE===HTML_NAMESPACE){try{doc=(new DOMParser2).parseFromString(dirtyPayload,PARSER_MEDIA_TYPE)}catch(_){}}if(!doc||!doc.documentElement){doc=implementation.createDocument(NAMESPACE,"template",null);try{doc.documentElement.innerHTML=IS_EMPTY_INPUT?emptyHTML:dirtyPayload}catch(_){}}const body=doc.body||doc.documentElement;if(dirty&&leadingWhitespace){body.insertBefore(document2.createTextNode(leadingWhitespace),body.childNodes[0]||null)}if(NAMESPACE===HTML_NAMESPACE){return getElementsByTagName.call(doc,WHOLE_DOCUMENT?"html":"body")[0]}return WHOLE_DOCUMENT?doc.documentElement:body};const _createIterator=function _createIterator2(root){return createNodeIterator.call(root.ownerDocument||root,root,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT|NodeFilter.SHOW_TEXT,null,false)};const _isClobbered=function _isClobbered2(elm){return elm instanceof HTMLFormElement&&(typeof elm.nodeName!=="string"||typeof elm.textContent!=="string"||typeof elm.removeChild!=="function"||!(elm.attributes instanceof NamedNodeMap)||typeof elm.removeAttribute!=="function"||typeof elm.setAttribute!=="function"||typeof elm.namespaceURI!=="string"||typeof elm.insertBefore!=="function"||typeof elm.hasChildNodes!=="function")};const _isNode=function _isNode2(object){return typeof Node4==="object"?object instanceof Node4:object&&typeof object==="object"&&typeof object.nodeType==="number"&&typeof object.nodeName==="string"};const _executeHook=function _executeHook2(entryPoint,currentNode,data){if(!hooks[entryPoint]){return}arrayForEach(hooks[entryPoint],(hook=>{hook.call(DOMPurify,currentNode,data,CONFIG)}))};const _sanitizeElements=function _sanitizeElements2(currentNode){let content;_executeHook("beforeSanitizeElements",currentNode,null);if(_isClobbered(currentNode)){_forceRemove(currentNode);return true}const tagName=transformCaseFunc(currentNode.nodeName);_executeHook("uponSanitizeElement",currentNode,{tagName:tagName,allowedTags:ALLOWED_TAGS});if(currentNode.hasChildNodes()&&!_isNode(currentNode.firstElementChild)&&(!_isNode(currentNode.content)||!_isNode(currentNode.content.firstElementChild))&®ExpTest(/<[/\w]/g,currentNode.innerHTML)&®ExpTest(/<[/\w]/g,currentNode.textContent)){_forceRemove(currentNode);return true}if(!ALLOWED_TAGS[tagName]||FORBID_TAGS[tagName]){if(!FORBID_TAGS[tagName]&&_basicCustomElementTest(tagName)){if(CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp&®ExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck,tagName))return false;if(CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function&&CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName))return false}if(KEEP_CONTENT&&!FORBID_CONTENTS[tagName]){const parentNode=getParentNode(currentNode)||currentNode.parentNode;const childNodes=getChildNodes(currentNode)||currentNode.childNodes;if(childNodes&&parentNode){const childCount=childNodes.length;for(let i=childCount-1;i>=0;--i){parentNode.insertBefore(cloneNode(childNodes[i],true),getNextSibling(currentNode))}}}_forceRemove(currentNode);return true}if(currentNode instanceof Element2&&!_checkValidNamespace(currentNode)){_forceRemove(currentNode);return true}if((tagName==="noscript"||tagName==="noembed"||tagName==="noframes")&®ExpTest(/<\/no(script|embed|frames)/i,currentNode.innerHTML)){_forceRemove(currentNode);return true}if(SAFE_FOR_TEMPLATES&¤tNode.nodeType===3){content=currentNode.textContent;content=stringReplace(content,MUSTACHE_EXPR2," ");content=stringReplace(content,ERB_EXPR2," ");content=stringReplace(content,TMPLIT_EXPR2," ");if(currentNode.textContent!==content){arrayPush(DOMPurify.removed,{element:currentNode.cloneNode()});currentNode.textContent=content}}_executeHook("afterSanitizeElements",currentNode,null);return false};const _isValidAttribute=function _isValidAttribute2(lcTag,lcName,value){if(SANITIZE_DOM&&(lcName==="id"||lcName==="name")&&(value in document2||value in formElement)){return false}if(ALLOW_DATA_ATTR&&!FORBID_ATTR[lcName]&®ExpTest(DATA_ATTR2,lcName));else if(ALLOW_ARIA_ATTR&®ExpTest(ARIA_ATTR2,lcName));else if(!ALLOWED_ATTR[lcName]||FORBID_ATTR[lcName]){if(_basicCustomElementTest(lcTag)&&(CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp&®ExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck,lcTag)||CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function&&CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))&&(CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp&®ExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck,lcName)||CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function&&CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName))||lcName==="is"&&CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp&®ExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck,value)||CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function&&CUSTOM_ELEMENT_HANDLING.tagNameCheck(value)));else{return false}}else if(URI_SAFE_ATTRIBUTES[lcName]);else if(regExpTest(IS_ALLOWED_URI$1,stringReplace(value,ATTR_WHITESPACE2,"")));else if((lcName==="src"||lcName==="xlink:href"||lcName==="href")&&lcTag!=="script"&&stringIndexOf(value,"data:")===0&&DATA_URI_TAGS[lcTag]);else if(ALLOW_UNKNOWN_PROTOCOLS&&!regExpTest(IS_SCRIPT_OR_DATA2,stringReplace(value,ATTR_WHITESPACE2,"")));else if(value){return false}else;return true};const _basicCustomElementTest=function _basicCustomElementTest2(tagName){return tagName.indexOf("-")>0};const _sanitizeAttributes=function _sanitizeAttributes2(currentNode){let attr;let value;let lcName;let l;_executeHook("beforeSanitizeAttributes",currentNode,null);const{attributes:attributes}=currentNode;if(!attributes){return}const hookEvent={attrName:"",attrValue:"",keepAttr:true,allowedAttributes:ALLOWED_ATTR};l=attributes.length;while(l--){attr=attributes[l];const{name:name,namespaceURI:namespaceURI}=attr;value=name==="value"?attr.value:stringTrim(attr.value);lcName=transformCaseFunc(name);hookEvent.attrName=lcName;hookEvent.attrValue=value;hookEvent.keepAttr=true;hookEvent.forceKeepAttr=void 0;_executeHook("uponSanitizeAttribute",currentNode,hookEvent);value=hookEvent.attrValue;if(hookEvent.forceKeepAttr){continue}_removeAttribute(name,currentNode);if(!hookEvent.keepAttr){continue}if(!ALLOW_SELF_CLOSE_IN_ATTR&®ExpTest(/\/>/i,value)){_removeAttribute(name,currentNode);continue}if(SAFE_FOR_TEMPLATES){value=stringReplace(value,MUSTACHE_EXPR2," ");value=stringReplace(value,ERB_EXPR2," ");value=stringReplace(value,TMPLIT_EXPR2," ")}const lcTag=transformCaseFunc(currentNode.nodeName);if(!_isValidAttribute(lcTag,lcName,value)){continue}if(SANITIZE_NAMED_PROPS&&(lcName==="id"||lcName==="name")){_removeAttribute(name,currentNode);value=SANITIZE_NAMED_PROPS_PREFIX+value}if(trustedTypesPolicy&&typeof trustedTypes==="object"&&typeof trustedTypes.getAttributeType==="function"){if(namespaceURI);else{switch(trustedTypes.getAttributeType(lcTag,lcName)){case"TrustedHTML":{value=trustedTypesPolicy.createHTML(value);break}case"TrustedScriptURL":{value=trustedTypesPolicy.createScriptURL(value);break}}}}try{if(namespaceURI){currentNode.setAttributeNS(namespaceURI,name,value)}else{currentNode.setAttribute(name,value)}arrayPop(DOMPurify.removed)}catch(_){}}_executeHook("afterSanitizeAttributes",currentNode,null)};const _sanitizeShadowDOM=function _sanitizeShadowDOM2(fragment){let shadowNode;const shadowIterator=_createIterator(fragment);_executeHook("beforeSanitizeShadowDOM",fragment,null);while(shadowNode=shadowIterator.nextNode()){_executeHook("uponSanitizeShadowNode",shadowNode,null);if(_sanitizeElements(shadowNode)){continue}if(shadowNode.content instanceof DocumentFragment){_sanitizeShadowDOM2(shadowNode.content)}_sanitizeAttributes(shadowNode)}_executeHook("afterSanitizeShadowDOM",fragment,null)};DOMPurify.sanitize=function(dirty){let cfg=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};let body;let importedNode;let currentNode;let returnNode;IS_EMPTY_INPUT=!dirty;if(IS_EMPTY_INPUT){dirty="\x3c!--\x3e"}if(typeof dirty!=="string"&&!_isNode(dirty)){if(typeof dirty.toString==="function"){dirty=dirty.toString();if(typeof dirty!=="string"){throw typeErrorCreate("dirty is not a string, aborting")}}else{throw typeErrorCreate("toString is not a function")}}if(!DOMPurify.isSupported){return dirty}if(!SET_CONFIG){_parseConfig(cfg)}DOMPurify.removed=[];if(typeof dirty==="string"){IN_PLACE=false}if(IN_PLACE){if(dirty.nodeName){const tagName=transformCaseFunc(dirty.nodeName);if(!ALLOWED_TAGS[tagName]||FORBID_TAGS[tagName]){throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}}}else if(dirty instanceof Node4){body=_initDocument("\x3c!----\x3e");importedNode=body.ownerDocument.importNode(dirty,true);if(importedNode.nodeType===1&&importedNode.nodeName==="BODY"){body=importedNode}else if(importedNode.nodeName==="HTML"){body=importedNode}else{body.appendChild(importedNode)}}else{if(!RETURN_DOM&&!SAFE_FOR_TEMPLATES&&!WHOLE_DOCUMENT&&dirty.indexOf("<")===-1){return trustedTypesPolicy&&RETURN_TRUSTED_TYPE?trustedTypesPolicy.createHTML(dirty):dirty}body=_initDocument(dirty);if(!body){return RETURN_DOM?null:RETURN_TRUSTED_TYPE?emptyHTML:""}}if(body&&FORCE_BODY){_forceRemove(body.firstChild)}const nodeIterator=_createIterator(IN_PLACE?dirty:body);while(currentNode=nodeIterator.nextNode()){if(_sanitizeElements(currentNode)){continue}if(currentNode.content instanceof DocumentFragment){_sanitizeShadowDOM(currentNode.content)}_sanitizeAttributes(currentNode)}if(IN_PLACE){return dirty}if(RETURN_DOM){if(RETURN_DOM_FRAGMENT){returnNode=createDocumentFragment.call(body.ownerDocument);while(body.firstChild){returnNode.appendChild(body.firstChild)}}else{returnNode=body}if(ALLOWED_ATTR.shadowroot||ALLOWED_ATTR.shadowrootmode){returnNode=importNode.call(originalDocument,returnNode,true)}return returnNode}let serializedHTML=WHOLE_DOCUMENT?body.outerHTML:body.innerHTML;if(WHOLE_DOCUMENT&&ALLOWED_TAGS["!doctype"]&&body.ownerDocument&&body.ownerDocument.doctype&&body.ownerDocument.doctype.name&®ExpTest(DOCTYPE_NAME,body.ownerDocument.doctype.name)){serializedHTML="\n"+serializedHTML}if(SAFE_FOR_TEMPLATES){serializedHTML=stringReplace(serializedHTML,MUSTACHE_EXPR2," ");serializedHTML=stringReplace(serializedHTML,ERB_EXPR2," ");serializedHTML=stringReplace(serializedHTML,TMPLIT_EXPR2," ")}return trustedTypesPolicy&&RETURN_TRUSTED_TYPE?trustedTypesPolicy.createHTML(serializedHTML):serializedHTML};DOMPurify.setConfig=function(cfg){_parseConfig(cfg);SET_CONFIG=true};DOMPurify.clearConfig=function(){CONFIG=null;SET_CONFIG=false};DOMPurify.isValidAttribute=function(tag,attr,value){if(!CONFIG){_parseConfig({})}const lcTag=transformCaseFunc(tag);const lcName=transformCaseFunc(attr);return _isValidAttribute(lcTag,lcName,value)};DOMPurify.addHook=function(entryPoint,hookFunction){if(typeof hookFunction!=="function"){return}hooks[entryPoint]=hooks[entryPoint]||[];arrayPush(hooks[entryPoint],hookFunction)};DOMPurify.removeHook=function(entryPoint){if(hooks[entryPoint]){return arrayPop(hooks[entryPoint])}};DOMPurify.removeHooks=function(entryPoint){if(hooks[entryPoint]){hooks[entryPoint]=[]}};DOMPurify.removeAllHooks=function(){hooks={}};return DOMPurify}var entries,setPrototypeOf,isFrozen,getPrototypeOf,getOwnPropertyDescriptor,freeze,seal,create,apply,construct,arrayForEach,arrayPop,arrayPush,stringToLowerCase,stringToString,stringMatch,stringReplace,stringIndexOf,stringTrim,regExpTest,typeErrorCreate,html$1,svg$1,svgFilters,svgDisallowed,mathMl$1,mathMlDisallowed,text,html,svg,mathMl,xml,MUSTACHE_EXPR,ERB_EXPR,TMPLIT_EXPR,DATA_ATTR,ARIA_ATTR,IS_ALLOWED_URI,IS_SCRIPT_OR_DATA,ATTR_WHITESPACE,DOCTYPE_NAME,EXPRESSIONS,getGlobal,_createTrustedTypesPolicy,purify,version,isSupported,sanitize2,setConfig,clearConfig,isValidAttribute,addHook,removeHook,removeHooks,removeAllHooks;var init_dompurify=__esm({"node_modules/monaco-editor/esm/vs/base/browser/dompurify/dompurify.js"(){({entries:entries,setPrototypeOf:setPrototypeOf,isFrozen:isFrozen,getPrototypeOf:getPrototypeOf,getOwnPropertyDescriptor:getOwnPropertyDescriptor}=Object);({freeze:freeze,seal:seal,create:create}=Object);({apply:apply,construct:construct}=typeof Reflect!=="undefined"&&Reflect);if(!apply){apply=function apply2(fun,thisValue,args){return fun.apply(thisValue,args)}}if(!freeze){freeze=function freeze3(x){return x}}if(!seal){seal=function seal2(x){return x}}if(!construct){construct=function construct2(Func,args){return new Func(...args)}}arrayForEach=unapply(Array.prototype.forEach);arrayPop=unapply(Array.prototype.pop);arrayPush=unapply(Array.prototype.push);stringToLowerCase=unapply(String.prototype.toLowerCase);stringToString=unapply(String.prototype.toString);stringMatch=unapply(String.prototype.match);stringReplace=unapply(String.prototype.replace);stringIndexOf=unapply(String.prototype.indexOf);stringTrim=unapply(String.prototype.trim);regExpTest=unapply(RegExp.prototype.test);typeErrorCreate=unconstruct(TypeError);html$1=freeze(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]);svg$1=freeze(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]);svgFilters=freeze(["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"]);svgDisallowed=freeze(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]);mathMl$1=freeze(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]);mathMlDisallowed=freeze(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]);text=freeze(["#text"]);html=freeze(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]);svg=freeze(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]);mathMl=freeze(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]);xml=freeze(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]);MUSTACHE_EXPR=seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);ERB_EXPR=seal(/<%[\w\W]*|[\w\W]*%>/gm);TMPLIT_EXPR=seal(/\${[\w\W]*}/gm);DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]/);ARIA_ATTR=seal(/^aria-[\-\w]+$/);IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i);IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i);ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g);DOCTYPE_NAME=seal(/^html$/i);EXPRESSIONS=Object.freeze({__proto__:null,MUSTACHE_EXPR:MUSTACHE_EXPR,ERB_EXPR:ERB_EXPR,TMPLIT_EXPR:TMPLIT_EXPR,DATA_ATTR:DATA_ATTR,ARIA_ATTR:ARIA_ATTR,IS_ALLOWED_URI:IS_ALLOWED_URI,IS_SCRIPT_OR_DATA:IS_SCRIPT_OR_DATA,ATTR_WHITESPACE:ATTR_WHITESPACE,DOCTYPE_NAME:DOCTYPE_NAME});getGlobal=()=>typeof window==="undefined"?null:window;_createTrustedTypesPolicy=function _createTrustedTypesPolicy2(trustedTypes,purifyHostElement){if(typeof trustedTypes!=="object"||typeof trustedTypes.createPolicy!=="function"){return null}let suffix=null;const ATTR_NAME="data-tt-policy-suffix";if(purifyHostElement&&purifyHostElement.hasAttribute(ATTR_NAME)){suffix=purifyHostElement.getAttribute(ATTR_NAME)}const policyName="dompurify"+(suffix?"#"+suffix:"");try{return trustedTypes.createPolicy(policyName,{createHTML(html2){return html2},createScriptURL(scriptUrl){return scriptUrl}})}catch(_){console.warn("TrustedTypes policy "+policyName+" could not be created.");return null}};purify=createDOMPurify();version=purify.version;isSupported=purify.isSupported;sanitize2=purify.sanitize;setConfig=purify.setConfig;clearConfig=purify.clearConfig;isValidAttribute=purify.isValidAttribute;addHook=purify.addHook;removeHook=purify.removeHook;removeHooks=purify.removeHooks;removeAllHooks=purify.removeAllHooks}});var Schemas,connectionTokenQueryName,RemoteAuthoritiesImpl,RemoteAuthorities,FileAccessImpl,FileAccess,COI;var init_network=__esm({"node_modules/monaco-editor/esm/vs/base/common/network.js"(){init_errors();init_platform();init_uri();(function(Schemas2){Schemas2.inMemory="inmemory";Schemas2.vscode="vscode";Schemas2.internal="private";Schemas2.walkThrough="walkThrough";Schemas2.walkThroughSnippet="walkThroughSnippet";Schemas2.http="http";Schemas2.https="https";Schemas2.file="file";Schemas2.mailto="mailto";Schemas2.untitled="untitled";Schemas2.data="data";Schemas2.command="command";Schemas2.vscodeRemote="vscode-remote";Schemas2.vscodeRemoteResource="vscode-remote-resource";Schemas2.vscodeManagedRemoteResource="vscode-managed-remote-resource";Schemas2.vscodeUserData="vscode-userdata";Schemas2.vscodeCustomEditor="vscode-custom-editor";Schemas2.vscodeNotebookCell="vscode-notebook-cell";Schemas2.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata";Schemas2.vscodeNotebookCellOutput="vscode-notebook-cell-output";Schemas2.vscodeInteractiveInput="vscode-interactive-input";Schemas2.vscodeSettings="vscode-settings";Schemas2.vscodeWorkspaceTrust="vscode-workspace-trust";Schemas2.vscodeTerminal="vscode-terminal";Schemas2.vscodeChatSesssion="vscode-chat-editor";Schemas2.webviewPanel="webview-panel";Schemas2.vscodeWebview="vscode-webview";Schemas2.extension="extension";Schemas2.vscodeFileResource="vscode-file";Schemas2.tmp="tmp";Schemas2.vsls="vsls";Schemas2.vscodeSourceControl="vscode-scm"})(Schemas||(Schemas={}));connectionTokenQueryName="tkn";RemoteAuthoritiesImpl=class{constructor(){this._hosts=Object.create(null);this._ports=Object.create(null);this._connectionTokens=Object.create(null);this._preferredWebSchema="http";this._delegate=null;this._remoteResourcesPath=`/${Schemas.vscodeRemoteResource}`}setPreferredWebSchema(schema){this._preferredWebSchema=schema}rewrite(uri){if(this._delegate){try{return this._delegate(uri)}catch(err){onUnexpectedError(err);return uri}}const authority=uri.authority;let host=this._hosts[authority];if(host&&host.indexOf(":")!==-1&&host.indexOf("[")===-1){host=`[${host}]`}const port=this._ports[authority];const connectionToken=this._connectionTokens[authority];let query=`path=${encodeURIComponent(uri.path)}`;if(typeof connectionToken==="string"){query+=`&${connectionTokenQueryName}=${encodeURIComponent(connectionToken)}`}return URI.from({scheme:isWeb?this._preferredWebSchema:Schemas.vscodeRemoteResource,authority:`${host}:${port}`,path:this._remoteResourcesPath,query:query})}};RemoteAuthorities=new RemoteAuthoritiesImpl;FileAccessImpl=class{uriToBrowserUri(uri){if(uri.scheme===Schemas.vscodeRemote){return RemoteAuthorities.rewrite(uri)}if(uri.scheme===Schemas.file&&(isNative||isWebWorker&&globals.origin===`${Schemas.vscodeFileResource}://${FileAccessImpl.FALLBACK_AUTHORITY}`)){return uri.with({scheme:Schemas.vscodeFileResource,authority:uri.authority||FileAccessImpl.FALLBACK_AUTHORITY,query:null,fragment:null})}return uri}};FileAccessImpl.FALLBACK_AUTHORITY="vscode-app";FileAccess=new FileAccessImpl;(function(COI2){const coiHeaders=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);COI2.CoopAndCoep=Object.freeze(coiHeaders.get("3"));const coiSearchParamName="vscode-coi";function getHeadersFromQuery(url){let params;if(typeof url==="string"){params=new URL(url).searchParams}else if(url instanceof URL){params=url.searchParams}else if(URI.isUri(url)){params=new URL(url.toString(true)).searchParams}const value=params===null||params===void 0?void 0:params.get(coiSearchParamName);if(!value){return void 0}return coiHeaders.get(value)}COI2.getHeadersFromQuery=getHeadersFromQuery;function addSearchParam(urlOrSearch,coop,coep){if(!globalThis.crossOriginIsolated){return}const value=coop&&coep?"3":coep?"2":"1";if(urlOrSearch instanceof URLSearchParams){urlOrSearch.set(coiSearchParamName,value)}else{urlOrSearch[coiSearchParamName]=value}}COI2.addSearchParam=addSearchParam})(COI||(COI={}))}});function clearNode(node){while(node.firstChild){node.firstChild.remove()}}function isInDOM(node){var _a6;return(_a6=node===null||node===void 0?void 0:node.isConnected)!==null&&_a6!==void 0?_a6:false}function addDisposableListener(node,type,handler,useCaptureOrOptions){return new DomListener(node,type,handler,useCaptureOrOptions)}function _wrapAsStandardMouseEvent(handler){return function(e){return handler(new StandardMouseEvent(e))}}function _wrapAsStandardKeyboardEvent(handler){return function(e){return handler(new StandardKeyboardEvent(e))}}function addDisposableGenericMouseDownListener(node,handler,useCapture){return addDisposableListener(node,isIOS&&BrowserFeatures.pointerEvents?EventType.POINTER_DOWN:EventType.MOUSE_DOWN,handler,useCapture)}function getComputedStyle2(el){return document.defaultView.getComputedStyle(el,null)}function getClientArea(element){if(element!==document.body){return new Dimension(element.clientWidth,element.clientHeight)}if(isIOS&&window.visualViewport){return new Dimension(window.visualViewport.width,window.visualViewport.height)}if(window.innerWidth&&window.innerHeight){return new Dimension(window.innerWidth,window.innerHeight)}if(document.body&&document.body.clientWidth&&document.body.clientHeight){return new Dimension(document.body.clientWidth,document.body.clientHeight)}if(document.documentElement&&document.documentElement.clientWidth&&document.documentElement.clientHeight){return new Dimension(document.documentElement.clientWidth,document.documentElement.clientHeight)}throw new Error("Unable to figure out browser width and height")}function getTopLeftOffset(element){let offsetParent=element.offsetParent;let top=element.offsetTop;let left=element.offsetLeft;while((element=element.parentNode)!==null&&element!==document.body&&element!==document.documentElement){top-=element.scrollTop;const c=isShadowRoot(element)?null:getComputedStyle2(element);if(c){left-=c.direction!=="rtl"?element.scrollLeft:-element.scrollLeft}if(element===offsetParent){left+=SizeUtils.getBorderLeftWidth(element);top+=SizeUtils.getBorderTopWidth(element);top+=element.offsetTop;left+=element.offsetLeft;offsetParent=element.offsetParent}}return{left:left,top:top}}function size(element,width,height){if(typeof width==="number"){element.style.width=`${width}px`}if(typeof height==="number"){element.style.height=`${height}px`}}function getDomNodePagePosition(domNode){const bb=domNode.getBoundingClientRect();return{left:bb.left+window.scrollX,top:bb.top+window.scrollY,width:bb.width,height:bb.height}}function getDomNodeZoomLevel(domNode){let testElement=domNode;let zoom=1;do{const elementZoomLevel=getComputedStyle2(testElement).zoom;if(elementZoomLevel!==null&&elementZoomLevel!==void 0&&elementZoomLevel!=="1"){zoom*=elementZoomLevel}testElement=testElement.parentElement}while(testElement!==null&&testElement!==document.documentElement);return zoom}function getTotalWidth(element){const margin=SizeUtils.getMarginLeft(element)+SizeUtils.getMarginRight(element);return element.offsetWidth+margin}function getContentWidth(element){const border=SizeUtils.getBorderLeftWidth(element)+SizeUtils.getBorderRightWidth(element);const padding=SizeUtils.getPaddingLeft(element)+SizeUtils.getPaddingRight(element);return element.offsetWidth-border-padding}function getContentHeight(element){const border=SizeUtils.getBorderTopWidth(element)+SizeUtils.getBorderBottomWidth(element);const padding=SizeUtils.getPaddingTop(element)+SizeUtils.getPaddingBottom(element);return element.offsetHeight-border-padding}function getTotalHeight(element){const margin=SizeUtils.getMarginTop(element)+SizeUtils.getMarginBottom(element);return element.offsetHeight+margin}function isAncestor(testChild,testAncestor){while(testChild){if(testChild===testAncestor){return true}testChild=testChild.parentNode}return false}function findParentWithClass(node,clazz,stopAtClazzOrNode){while(node&&node.nodeType===node.ELEMENT_NODE){if(node.classList.contains(clazz)){return node}if(stopAtClazzOrNode){if(typeof stopAtClazzOrNode==="string"){if(node.classList.contains(stopAtClazzOrNode)){return null}}else{if(node===stopAtClazzOrNode){return null}}}node=node.parentNode}return null}function hasParentWithClass(node,clazz,stopAtClazzOrNode){return!!findParentWithClass(node,clazz,stopAtClazzOrNode)}function isShadowRoot(node){return node&&!!node.host&&!!node.mode}function isInShadowDOM(domNode){return!!getShadowRoot(domNode)}function getShadowRoot(domNode){while(domNode.parentNode){if(domNode===document.body){return null}domNode=domNode.parentNode}return isShadowRoot(domNode)?domNode:null}function getActiveElement(){let result=document.activeElement;while(result===null||result===void 0?void 0:result.shadowRoot){result=result.shadowRoot.activeElement}return result}function createStyleSheet(container=document.getElementsByTagName("head")[0],beforeAppend){const style=document.createElement("style");style.type="text/css";style.media="screen";beforeAppend===null||beforeAppend===void 0?void 0:beforeAppend(style);container.appendChild(style);return style}function getSharedStyleSheet(){if(!_sharedStyleSheet){_sharedStyleSheet=createStyleSheet()}return _sharedStyleSheet}function getDynamicStyleSheetRules(style){var _a6,_b3;if((_a6=style===null||style===void 0?void 0:style.sheet)===null||_a6===void 0?void 0:_a6.rules){return style.sheet.rules}if((_b3=style===null||style===void 0?void 0:style.sheet)===null||_b3===void 0?void 0:_b3.cssRules){return style.sheet.cssRules}return[]}function createCSSRule(selector,cssText,style=getSharedStyleSheet()){if(!style||!cssText){return}style.sheet.insertRule(selector+"{"+cssText+"}",0)}function removeCSSRulesContainingSelector(ruleName,style=getSharedStyleSheet()){if(!style){return}const rules=getDynamicStyleSheetRules(style);const toDelete=[];for(let i=0;i=0;i--){style.sheet.deleteRule(toDelete[i])}}function isHTMLElement(o){if(typeof HTMLElement==="object"){return o instanceof HTMLElement}return o&&typeof o==="object"&&o.nodeType===1&&typeof o.nodeName==="string"}function isEventLike(obj){const candidate=obj;return!!(candidate&&typeof candidate.preventDefault==="function"&&typeof candidate.stopPropagation==="function")}function saveParentsScrollTop(node){const r=[];for(let i=0;node&&node.nodeType===node.ELEMENT_NODE;i++){r[i]=node.scrollTop;node=node.parentNode}return r}function restoreParentsScrollTop(node,state){for(let i=0;node&&node.nodeType===node.ELEMENT_NODE;i++){if(node.scrollTop!==state[i]){node.scrollTop=state[i]}node=node.parentNode}}function trackFocus(element){return new FocusTracker(element)}function append(parent,...children){parent.append(...children);if(children.length===1&&typeof children[0]!=="string"){return children[0]}}function prepend(parent,child){parent.insertBefore(child,parent.firstChild);return child}function reset(parent,...children){parent.innerText="";append(parent,...children)}function _$(namespace,description,attrs,...children){const match2=SELECTOR_REGEX.exec(description);if(!match2){throw new Error("Bad use of emmet")}const tagName=match2[1]||"div";let result;if(namespace!==Namespace.HTML){result=document.createElementNS(namespace,tagName)}else{result=document.createElement(tagName)}if(match2[3]){result.id=match2[3]}if(match2[4]){result.className=match2[4].replace(/\./g," ").trim()}if(attrs){Object.entries(attrs).forEach((([name,value])=>{if(typeof value==="undefined"){return}if(/^on\w+$/.test(name)){result[name]=value}else if(name==="selected"){if(value){result.setAttribute(name,"true")}}else{result.setAttribute(name,value)}}))}result.append(...children);return result}function $(description,attrs,...children){return _$(Namespace.HTML,description,attrs,...children)}function setVisibility(visible,...elements){if(visible){show(...elements)}else{hide(...elements)}}function show(...elements){for(const element of elements){element.style.display="";element.removeAttribute("aria-hidden")}}function hide(...elements){for(const element of elements){element.style.display="none";element.setAttribute("aria-hidden","true")}}function computeScreenAwareSize(cssPx){const screenPx=window.devicePixelRatio*cssPx;return Math.max(1,Math.floor(screenPx))/window.devicePixelRatio}function windowOpenNoOpener(url){window.open(url,"_blank","noopener")}function animate(fn){const step=()=>{fn();stepDisposable=scheduleAtNextAnimationFrame(step)};let stepDisposable=scheduleAtNextAnimationFrame(step);return toDisposable((()=>stepDisposable.dispose()))}function asCSSUrl(uri){if(!uri){return`url('')`}return`url('${FileAccess.uriToBrowserUri(uri).toString(true).replace(/'/g,"%27")}')`}function asCSSPropertyValue(value){return`'${value.replace(/'/g,"%27")}'`}function asCssValueWithDefault(cssPropertyValue,dflt){if(cssPropertyValue!==void 0){const variableMatch=cssPropertyValue.match(/^\s*var\((.+)\)$/);if(variableMatch){const varArguments=variableMatch[1].split(",",2);if(varArguments.length===2){dflt=asCssValueWithDefault(varArguments[1].trim(),dflt)}return`var(${varArguments[0]}, ${dflt})`}return cssPropertyValue}return dflt}function hookDomPurifyHrefAndSrcSanitizer(allowedProtocols,allowDataImages=false){const anchor=document.createElement("a");addHook("afterSanitizeAttributes",(node=>{for(const attr of["href","src"]){if(node.hasAttribute(attr)){const attrValue=node.getAttribute(attr);if(attr==="href"&&attrValue.startsWith("#")){continue}anchor.href=attrValue;if(!allowedProtocols.includes(anchor.protocol.replace(/:$/,""))){if(allowDataImages&&attr==="src"&&anchor.href.startsWith("data:")){continue}node.removeAttribute(attr)}}}}));return toDisposable((()=>{removeHook("afterSanitizeAttributes")}))}function h(tag,...args){let attributes;let children;if(Array.isArray(args[0])){attributes={};children=args[0]}else{attributes=args[0]||{};children=args[1]}const match2=H_REGEX.exec(tag);if(!match2||!match2.groups){throw new Error("Bad use of h")}const tagName=match2.groups["tag"]||"div";const el=document.createElement(tagName);if(match2.groups["id"]){el.id=match2.groups["id"]}const classNames=[];if(match2.groups["class"]){for(const className of match2.groups["class"].split(".")){if(className!==""){classNames.push(className)}}}if(attributes.className!==void 0){for(const className of attributes.className.split(".")){if(className!==""){classNames.push(className)}}}if(classNames.length>0){el.className=classNames.join(" ")}const result={};if(match2.groups["name"]){result[match2.groups["name"]]=el}if(children){for(const c of children){if(c instanceof HTMLElement){el.appendChild(c)}else if(typeof c==="string"){el.append(c)}else if("root"in c){Object.assign(result,c);el.appendChild(c.root)}}}for(const[key,value]of Object.entries(attributes)){if(key==="className"){continue}else if(key==="style"){for(const[cssKey,cssValue]of Object.entries(value)){el.style.setProperty(camelCaseToHyphenCase(cssKey),typeof cssValue==="number"?cssValue+"px":""+cssValue)}}else if(key==="tabIndex"){el.tabIndex=value}else{el.setAttribute(camelCaseToHyphenCase(key),value.toString())}}result["root"]=el;return result}function camelCaseToHyphenCase(str){return str.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}var DomListener,addStandardDisposableListener,addStandardDisposableGenericMouseDownListener,runAtThisOrScheduleAtNextAnimationFrame,scheduleAtNextAnimationFrame,AnimationFrameQueueItem,SizeUtils,Dimension,_sharedStyleSheet,EventType,EventHelper,FocusTracker,SELECTOR_REGEX,Namespace,basicMarkupHtmlTags,defaultDomPurifyConfig,ModifierKeyEmitter,DragAndDropObserver,H_REGEX;var init_dom=__esm({"node_modules/monaco-editor/esm/vs/base/browser/dom.js"(){init_browser();init_canIUse();init_keyboardEvent();init_mouseEvent();init_errors();init_event();init_dompurify();init_lifecycle();init_network();init_platform();DomListener=class{constructor(node,type,handler,options2){this._node=node;this._type=type;this._handler=handler;this._options=options2||false;this._node.addEventListener(this._type,this._handler,this._options)}dispose(){if(!this._handler){return}this._node.removeEventListener(this._type,this._handler,this._options);this._node=null;this._handler=null}};addStandardDisposableListener=function addStandardDisposableListener2(node,type,handler,useCapture){let wrapHandler=handler;if(type==="click"||type==="mousedown"){wrapHandler=_wrapAsStandardMouseEvent(handler)}else if(type==="keydown"||type==="keypress"||type==="keyup"){wrapHandler=_wrapAsStandardKeyboardEvent(handler)}return addDisposableListener(node,type,wrapHandler,useCapture)};addStandardDisposableGenericMouseDownListener=function addStandardDisposableListener3(node,handler,useCapture){const wrapHandler=_wrapAsStandardMouseEvent(handler);return addDisposableGenericMouseDownListener(node,wrapHandler,useCapture)};AnimationFrameQueueItem=class{constructor(runner,priority=0){this._runner=runner;this.priority=priority;this._canceled=false}dispose(){this._canceled=true}execute(){if(this._canceled){return}try{this._runner()}catch(e){onUnexpectedError(e)}}static sort(a,b){return b.priority-a.priority}};(function(){let NEXT_QUEUE=[];let CURRENT_QUEUE=null;let animFrameRequested=false;let inAnimationFrameRunner=false;const animationFrameRunner=()=>{animFrameRequested=false;CURRENT_QUEUE=NEXT_QUEUE;NEXT_QUEUE=[];inAnimationFrameRunner=true;while(CURRENT_QUEUE.length>0){CURRENT_QUEUE.sort(AnimationFrameQueueItem.sort);const top=CURRENT_QUEUE.shift();top.execute()}inAnimationFrameRunner=false};scheduleAtNextAnimationFrame=(runner,priority=0)=>{const item=new AnimationFrameQueueItem(runner,priority);NEXT_QUEUE.push(item);if(!animFrameRequested){animFrameRequested=true;requestAnimationFrame(animationFrameRunner)}return item};runAtThisOrScheduleAtNextAnimationFrame=(runner,priority)=>{if(inAnimationFrameRunner){const item=new AnimationFrameQueueItem(runner,priority);CURRENT_QUEUE.push(item);return item}else{return scheduleAtNextAnimationFrame(runner,priority)}}})();SizeUtils=class{static convertToPixels(element,value){return parseFloat(value)||0}static getDimension(element,cssPropertyName,jsPropertyName){const computedStyle=getComputedStyle2(element);const value=computedStyle?computedStyle.getPropertyValue(cssPropertyName):"0";return SizeUtils.convertToPixels(element,value)}static getBorderLeftWidth(element){return SizeUtils.getDimension(element,"border-left-width","borderLeftWidth")}static getBorderRightWidth(element){return SizeUtils.getDimension(element,"border-right-width","borderRightWidth")}static getBorderTopWidth(element){return SizeUtils.getDimension(element,"border-top-width","borderTopWidth")}static getBorderBottomWidth(element){return SizeUtils.getDimension(element,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(element){return SizeUtils.getDimension(element,"padding-left","paddingLeft")}static getPaddingRight(element){return SizeUtils.getDimension(element,"padding-right","paddingRight")}static getPaddingTop(element){return SizeUtils.getDimension(element,"padding-top","paddingTop")}static getPaddingBottom(element){return SizeUtils.getDimension(element,"padding-bottom","paddingBottom")}static getMarginLeft(element){return SizeUtils.getDimension(element,"margin-left","marginLeft")}static getMarginTop(element){return SizeUtils.getDimension(element,"margin-top","marginTop")}static getMarginRight(element){return SizeUtils.getDimension(element,"margin-right","marginRight")}static getMarginBottom(element){return SizeUtils.getDimension(element,"margin-bottom","marginBottom")}};Dimension=class{constructor(width,height){this.width=width;this.height=height}with(width=this.width,height=this.height){if(width!==this.width||height!==this.height){return new Dimension(width,height)}else{return this}}static is(obj){return typeof obj==="object"&&typeof obj.height==="number"&&typeof obj.width==="number"}static lift(obj){if(obj instanceof Dimension){return obj}else{return new Dimension(obj.width,obj.height)}}static equals(a,b){if(a===b){return true}if(!a||!b){return false}return a.width===b.width&&a.height===b.height}};Dimension.None=new Dimension(0,0);_sharedStyleSheet=null;EventType={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:isWebKit?"webkitAnimationStart":"animationstart",ANIMATION_END:isWebKit?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:isWebKit?"webkitAnimationIteration":"animationiteration"};EventHelper={stop:(e,cancelBubble)=>{e.preventDefault();if(cancelBubble){e.stopPropagation()}return e}};FocusTracker=class extends Disposable{static hasFocusWithin(element){const shadowRoot=getShadowRoot(element);const activeElement=shadowRoot?shadowRoot.activeElement:document.activeElement;return isAncestor(activeElement,element)}constructor(element){super();this._onDidFocus=this._register(new Emitter);this.onDidFocus=this._onDidFocus.event;this._onDidBlur=this._register(new Emitter);this.onDidBlur=this._onDidBlur.event;let hasFocus=FocusTracker.hasFocusWithin(element);let loosingFocus=false;const onFocus=()=>{loosingFocus=false;if(!hasFocus){hasFocus=true;this._onDidFocus.fire()}};const onBlur=()=>{if(hasFocus){loosingFocus=true;window.setTimeout((()=>{if(loosingFocus){loosingFocus=false;hasFocus=false;this._onDidBlur.fire()}}),0)}};this._refreshStateHandler=()=>{const currentNodeHasFocus=FocusTracker.hasFocusWithin(element);if(currentNodeHasFocus!==hasFocus){if(hasFocus){onBlur()}else{onFocus()}}};this._register(addDisposableListener(element,EventType.FOCUS,onFocus,true));this._register(addDisposableListener(element,EventType.BLUR,onBlur,true));this._register(addDisposableListener(element,EventType.FOCUS_IN,(()=>this._refreshStateHandler())));this._register(addDisposableListener(element,EventType.FOCUS_OUT,(()=>this._refreshStateHandler())))}};SELECTOR_REGEX=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;(function(Namespace2){Namespace2["HTML"]="http://www.w3.org/1999/xhtml";Namespace2["SVG"]="http://www.w3.org/2000/svg"})(Namespace||(Namespace={}));$.SVG=function(description,attrs,...children){return _$(Namespace.SVG,description,attrs,...children)};RemoteAuthorities.setPreferredWebSchema(/^https:/.test(window.location.href)?"https":"http");basicMarkupHtmlTags=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);defaultDomPurifyConfig=Object.freeze({ALLOWED_TAGS:["a","button","blockquote","code","div","h1","h2","h3","h4","h5","h6","hr","input","label","li","p","pre","select","small","span","strong","textarea","ul","ol"],ALLOWED_ATTR:["href","data-href","data-command","target","title","name","src","alt","class","id","role","tabindex","style","data-code","width","height","align","x-dispatch","required","checked","placeholder","type","start"],RETURN_DOM:false,RETURN_DOM_FRAGMENT:false,RETURN_TRUSTED_TYPE:true});ModifierKeyEmitter=class extends Emitter{constructor(){super();this._subscriptions=new DisposableStore;this._keyStatus={altKey:false,shiftKey:false,ctrlKey:false,metaKey:false};this._subscriptions.add(addDisposableListener(window,"keydown",(e=>{if(e.defaultPrevented){return}const event=new StandardKeyboardEvent(e);if(event.keyCode===6&&e.repeat){return}if(e.altKey&&!this._keyStatus.altKey){this._keyStatus.lastKeyPressed="alt"}else if(e.ctrlKey&&!this._keyStatus.ctrlKey){this._keyStatus.lastKeyPressed="ctrl"}else if(e.metaKey&&!this._keyStatus.metaKey){this._keyStatus.lastKeyPressed="meta"}else if(e.shiftKey&&!this._keyStatus.shiftKey){this._keyStatus.lastKeyPressed="shift"}else if(event.keyCode!==6){this._keyStatus.lastKeyPressed=void 0}else{return}this._keyStatus.altKey=e.altKey;this._keyStatus.ctrlKey=e.ctrlKey;this._keyStatus.metaKey=e.metaKey;this._keyStatus.shiftKey=e.shiftKey;if(this._keyStatus.lastKeyPressed){this._keyStatus.event=e;this.fire(this._keyStatus)}}),true));this._subscriptions.add(addDisposableListener(window,"keyup",(e=>{if(e.defaultPrevented){return}if(!e.altKey&&this._keyStatus.altKey){this._keyStatus.lastKeyReleased="alt"}else if(!e.ctrlKey&&this._keyStatus.ctrlKey){this._keyStatus.lastKeyReleased="ctrl"}else if(!e.metaKey&&this._keyStatus.metaKey){this._keyStatus.lastKeyReleased="meta"}else if(!e.shiftKey&&this._keyStatus.shiftKey){this._keyStatus.lastKeyReleased="shift"}else{this._keyStatus.lastKeyReleased=void 0}if(this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased){this._keyStatus.lastKeyPressed=void 0}this._keyStatus.altKey=e.altKey;this._keyStatus.ctrlKey=e.ctrlKey;this._keyStatus.metaKey=e.metaKey;this._keyStatus.shiftKey=e.shiftKey;if(this._keyStatus.lastKeyReleased){this._keyStatus.event=e;this.fire(this._keyStatus)}}),true));this._subscriptions.add(addDisposableListener(document.body,"mousedown",(()=>{this._keyStatus.lastKeyPressed=void 0}),true));this._subscriptions.add(addDisposableListener(document.body,"mouseup",(()=>{this._keyStatus.lastKeyPressed=void 0}),true));this._subscriptions.add(addDisposableListener(document.body,"mousemove",(e=>{if(e.buttons){this._keyStatus.lastKeyPressed=void 0}}),true));this._subscriptions.add(addDisposableListener(window,"blur",(()=>{this.resetKeyStatus()})))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus();this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:false,shiftKey:false,ctrlKey:false,metaKey:false}}static getInstance(){if(!ModifierKeyEmitter.instance){ModifierKeyEmitter.instance=new ModifierKeyEmitter}return ModifierKeyEmitter.instance}dispose(){super.dispose();this._subscriptions.dispose()}};DragAndDropObserver=class extends Disposable{constructor(element,callbacks){super();this.element=element;this.callbacks=callbacks;this.counter=0;this.dragStartTime=0;this.registerListeners()}registerListeners(){this._register(addDisposableListener(this.element,EventType.DRAG_ENTER,(e=>{this.counter++;this.dragStartTime=e.timeStamp;this.callbacks.onDragEnter(e)})));this._register(addDisposableListener(this.element,EventType.DRAG_OVER,(e=>{var _a6,_b3;e.preventDefault();(_b3=(_a6=this.callbacks).onDragOver)===null||_b3===void 0?void 0:_b3.call(_a6,e,e.timeStamp-this.dragStartTime)})));this._register(addDisposableListener(this.element,EventType.DRAG_LEAVE,(e=>{this.counter--;if(this.counter===0){this.dragStartTime=0;this.callbacks.onDragLeave(e)}})));this._register(addDisposableListener(this.element,EventType.DRAG_END,(e=>{this.counter=0;this.dragStartTime=0;this.callbacks.onDragEnd(e)})));this._register(addDisposableListener(this.element,EventType.DROP,(e=>{this.counter=0;this.dragStartTime=0;this.callbacks.onDrop(e)})))}};H_REGEX=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/}});var init_2=__esm({"node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.css"(){}});function setARIAContainer(parent){ariaContainer=document.createElement("div");ariaContainer.className="monaco-aria-container";const createAlertContainer=()=>{const element=document.createElement("div");element.className="monaco-alert";element.setAttribute("role","alert");element.setAttribute("aria-atomic","true");ariaContainer.appendChild(element);return element};alertContainer=createAlertContainer();alertContainer2=createAlertContainer();const createStatusContainer=()=>{const element=document.createElement("div");element.className="monaco-status";element.setAttribute("aria-live","polite");element.setAttribute("aria-atomic","true");ariaContainer.appendChild(element);return element};statusContainer=createStatusContainer();statusContainer2=createStatusContainer();parent.appendChild(ariaContainer)}function alert(msg){if(!ariaContainer){return}if(alertContainer.textContent!==msg){clearNode(alertContainer2);insertMessage(alertContainer,msg)}else{clearNode(alertContainer);insertMessage(alertContainer2,msg)}}function status(msg){if(!ariaContainer){return}if(statusContainer.textContent!==msg){clearNode(statusContainer2);insertMessage(statusContainer,msg)}else{clearNode(statusContainer);insertMessage(statusContainer2,msg)}}function insertMessage(target,msg){clearNode(target);if(msg.length>MAX_MESSAGE_LENGTH){msg=msg.substr(0,MAX_MESSAGE_LENGTH)}target.textContent=msg;target.style.visibility="hidden";target.style.visibility="visible"}var MAX_MESSAGE_LENGTH,ariaContainer,alertContainer,alertContainer2,statusContainer,statusContainer2;var init_aria=__esm({"node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.js"(){init_dom();init_2();MAX_MESSAGE_LENGTH=2e4}});var IMarkerDecorationsService;var init_markerDecorations=__esm({"node_modules/monaco-editor/esm/vs/editor/common/services/markerDecorations.js"(){init_instantiation();IMarkerDecorationsService=createDecorator("markerDecorationsService")}});var ITextModelService;var init_resolverService=__esm({"node_modules/monaco-editor/esm/vs/editor/common/services/resolverService.js"(){init_instantiation();ITextModelService=createDecorator("textModelService")}});function toAction(props){var _a6,_b3;return{id:props.id,label:props.label,class:void 0,enabled:(_a6=props.enabled)!==null&&_a6!==void 0?_a6:true,checked:(_b3=props.checked)!==null&&_b3!==void 0?_b3:false,run:()=>__awaiter6(this,void 0,void 0,(function*(){return props.run()})),tooltip:props.label}}var __awaiter6,Action,ActionRunner,Separator,SubmenuAction,EmptySubmenuAction;var init_actions=__esm({"node_modules/monaco-editor/esm/vs/base/common/actions.js"(){init_event();init_lifecycle();init_nls();__awaiter6=function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P((function(resolve2){resolve2(value)}))}return new(P||(P=Promise))((function(resolve2,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve2(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))};Action=class extends Disposable{constructor(id,label="",cssClass="",enabled=true,actionCallback){super();this._onDidChange=this._register(new Emitter);this.onDidChange=this._onDidChange.event;this._enabled=true;this._id=id;this._label=label;this._cssClass=cssClass;this._enabled=enabled;this._actionCallback=actionCallback}get id(){return this._id}get label(){return this._label}set label(value){this._setLabel(value)}_setLabel(value){if(this._label!==value){this._label=value;this._onDidChange.fire({label:value})}}get tooltip(){return this._tooltip||""}set tooltip(value){this._setTooltip(value)}_setTooltip(value){if(this._tooltip!==value){this._tooltip=value;this._onDidChange.fire({tooltip:value})}}get class(){return this._cssClass}set class(value){this._setClass(value)}_setClass(value){if(this._cssClass!==value){this._cssClass=value;this._onDidChange.fire({class:value})}}get enabled(){return this._enabled}set enabled(value){this._setEnabled(value)}_setEnabled(value){if(this._enabled!==value){this._enabled=value;this._onDidChange.fire({enabled:value})}}get checked(){return this._checked}set checked(value){this._setChecked(value)}_setChecked(value){if(this._checked!==value){this._checked=value;this._onDidChange.fire({checked:value})}}run(event,data){return __awaiter6(this,void 0,void 0,(function*(){if(this._actionCallback){yield this._actionCallback(event)}}))}};ActionRunner=class extends Disposable{constructor(){super(...arguments);this._onWillRun=this._register(new Emitter);this.onWillRun=this._onWillRun.event;this._onDidRun=this._register(new Emitter);this.onDidRun=this._onDidRun.event}run(action,context){return __awaiter6(this,void 0,void 0,(function*(){if(!action.enabled){return}this._onWillRun.fire({action:action});let error=void 0;try{yield this.runAction(action,context)}catch(e){error=e}this._onDidRun.fire({action:action,error:error})}))}runAction(action,context){return __awaiter6(this,void 0,void 0,(function*(){yield action.run(context)}))}};Separator=class{constructor(){this.id=Separator.ID;this.label="";this.tooltip="";this.class="separator";this.enabled=false;this.checked=false}static join(...actionLists){let out=[];for(const list of actionLists){if(!list.length){}else if(out.length){out=[...out,new Separator,...list]}else{out=list}}return out}run(){return __awaiter6(this,void 0,void 0,(function*(){}))}};Separator.ID="vs.actions.separator";SubmenuAction=class{get actions(){return this._actions}constructor(id,label,actions,cssClass){this.tooltip="";this.enabled=true;this.checked=void 0;this.id=id;this.label=label;this.class=cssClass;this._actions=actions}run(){return __awaiter6(this,void 0,void 0,(function*(){}))}};EmptySubmenuAction=class extends Action{constructor(){super(EmptySubmenuAction.ID,localize("submenu.empty","(empty)"),void 0,false)}};EmptySubmenuAction.ID="vs.actions.empty"}});var ThemeColor,ThemeIcon;var init_themables=__esm({"node_modules/monaco-editor/esm/vs/base/common/themables.js"(){init_codicons();(function(ThemeColor2){function isThemeColor(obj){return obj&&typeof obj==="object"&&typeof obj.id==="string"}ThemeColor2.isThemeColor=isThemeColor})(ThemeColor||(ThemeColor={}));(function(ThemeIcon2){ThemeIcon2.iconNameSegment="[A-Za-z0-9]+";ThemeIcon2.iconNameExpression="[A-Za-z0-9-]+";ThemeIcon2.iconModifierExpression="~[A-Za-z]+";ThemeIcon2.iconNameCharacter="[A-Za-z0-9~-]";const ThemeIconIdRegex=new RegExp(`^(${ThemeIcon2.iconNameExpression})(${ThemeIcon2.iconModifierExpression})?$`);function asClassNameArray(icon){const match2=ThemeIconIdRegex.exec(icon.id);if(!match2){return asClassNameArray(Codicon.error)}const[,id,modifier]=match2;const classNames=["codicon","codicon-"+id];if(modifier){classNames.push("codicon-modifier-"+modifier.substring(1))}return classNames}ThemeIcon2.asClassNameArray=asClassNameArray;function asClassName(icon){return asClassNameArray(icon).join(" ")}ThemeIcon2.asClassName=asClassName;function asCSSSelector(icon){return"."+asClassNameArray(icon).join(".")}ThemeIcon2.asCSSSelector=asCSSSelector;function isThemeIcon(obj){return obj&&typeof obj==="object"&&typeof obj.id==="string"&&(typeof obj.color==="undefined"||ThemeColor.isThemeColor(obj.color))}ThemeIcon2.isThemeIcon=isThemeIcon;const _regexFromString=new RegExp(`^\\$\\((${ThemeIcon2.iconNameExpression}(?:${ThemeIcon2.iconModifierExpression})?)\\)$`);function fromString(str){const match2=_regexFromString.exec(str);if(!match2){return void 0}const[,name]=match2;return{id:name}}ThemeIcon2.fromString=fromString;function fromId(id){return{id:id}}ThemeIcon2.fromId=fromId;function modify(icon,modifier){let id=icon.id;const tildeIndex=id.lastIndexOf("~");if(tildeIndex!==-1){id=id.substring(0,tildeIndex)}if(modifier){id=`${id}~${modifier}`}return{id:id}}ThemeIcon2.modify=modify;function getModifier(icon){const tildeIndex=icon.id.lastIndexOf("~");if(tildeIndex!==-1){return icon.id.substring(tildeIndex+1)}return void 0}ThemeIcon2.getModifier=getModifier;function isEqual2(ti1,ti2){var _a6,_b3;return ti1.id===ti2.id&&((_a6=ti1.color)===null||_a6===void 0?void 0:_a6.id)===((_b3=ti2.color)===null||_b3===void 0?void 0:_b3.id)}ThemeIcon2.isEqual=isEqual2})(ThemeIcon||(ThemeIcon={}))}});var ICommandService,CommandsRegistry;var init_commands=__esm({"node_modules/monaco-editor/esm/vs/platform/commands/common/commands.js"(){init_event();init_iterator();init_lifecycle();init_linkedList();init_types();init_instantiation();ICommandService=createDecorator("commandService");CommandsRegistry=new class{constructor(){this._commands=new Map;this._onDidRegisterCommand=new Emitter;this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(idOrCommand,handler){if(!idOrCommand){throw new Error(`invalid command`)}if(typeof idOrCommand==="string"){if(!handler){throw new Error(`invalid command`)}return this.registerCommand({id:idOrCommand,handler:handler})}if(idOrCommand.description){const constraints=[];for(const arg of idOrCommand.description.args){constraints.push(arg.constraint)}const actualHandler=idOrCommand.handler;idOrCommand.handler=function(accessor,...args){validateConstraints(args,constraints);return actualHandler(accessor,...args)}}const{id:id}=idOrCommand;let commands=this._commands.get(id);if(!commands){commands=new LinkedList;this._commands.set(id,commands)}const removeFn=commands.unshift(idOrCommand);const ret=toDisposable((()=>{removeFn();const command=this._commands.get(id);if(command===null||command===void 0?void 0:command.isEmpty()){this._commands.delete(id)}}));this._onDidRegisterCommand.fire(id);return ret}registerCommandAlias(oldId,newId){return CommandsRegistry.registerCommand(oldId,((accessor,...args)=>accessor.get(ICommandService).executeCommand(newId,...args)))}getCommand(id){const list=this._commands.get(id);if(!list||list.isEmpty()){return void 0}return Iterable.first(list)}getCommands(){const result=new Map;for(const key of this._commands.keys()){const command=this.getCommand(key);if(command){result.set(key,command)}}return result}};CommandsRegistry.registerCommand("noop",(()=>{}))}});function sorter(a,b){if(a.weight1!==b.weight1){return a.weight1-b.weight1}if(a.command&&b.command){if(a.commandb.command){return 1}}return a.weight2-b.weight2}var KeybindingsRegistryImpl,KeybindingsRegistry,Extensions4;var init_keybindingsRegistry=__esm({"node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js"(){init_keybindings();init_platform();init_commands();init_platform2();init_lifecycle();init_linkedList();KeybindingsRegistryImpl=class{constructor(){this._coreKeybindings=new LinkedList;this._extensionKeybindings=[];this._cachedMergedKeybindings=null}static bindToCurrentPlatform(kb){if(OS===1){if(kb&&kb.win){return kb.win}}else if(OS===2){if(kb&&kb.mac){return kb.mac}}else{if(kb&&kb.linux){return kb.linux}}return kb}registerKeybindingRule(rule){const actualKb=KeybindingsRegistryImpl.bindToCurrentPlatform(rule);const result=new DisposableStore;if(actualKb&&actualKb.primary){const kk=decodeKeybinding(actualKb.primary,OS);if(kk){result.add(this._registerDefaultKeybinding(kk,rule.id,rule.args,rule.weight,0,rule.when))}}if(actualKb&&Array.isArray(actualKb.secondary)){for(let i=0,len=actualKb.secondary.length;i{remove();this._cachedMergedKeybindings=null}))}getDefaultKeybindings(){if(!this._cachedMergedKeybindings){this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings);this._cachedMergedKeybindings.sort(sorter)}return this._cachedMergedKeybindings.slice(0)}};KeybindingsRegistry=new KeybindingsRegistryImpl;Extensions4={EditorModes:"platform.keybindingsRegistry"};Registry.add(Extensions4.EditorModes,KeybindingsRegistry)}});function isIMenuItem(item){return item.command!==void 0}function isISubmenuItem(item){return item.submenu!==void 0}function registerAction2(ctor){const disposables=new DisposableStore;const action=new ctor;const _a6=action.desc,{f1:f1,menu:menu,keybinding:keybinding,description:description}=_a6,command=__rest(_a6,["f1","menu","keybinding","description"]);disposables.add(CommandsRegistry.registerCommand({id:command.id,handler:(accessor,...args)=>action.run(accessor,...args),description:description}));if(Array.isArray(menu)){for(const item of menu){disposables.add(MenuRegistry.appendMenuItem(item.id,Object.assign({command:Object.assign(Object.assign({},command),{precondition:item.precondition===null?void 0:command.precondition})},item)))}}else if(menu){disposables.add(MenuRegistry.appendMenuItem(menu.id,Object.assign({command:Object.assign(Object.assign({},command),{precondition:menu.precondition===null?void 0:command.precondition})},menu)))}if(f1){disposables.add(MenuRegistry.appendMenuItem(MenuId.CommandPalette,{command:command,when:command.precondition}));disposables.add(MenuRegistry.addCommand(command))}if(Array.isArray(keybinding)){for(const item of keybinding){disposables.add(KeybindingsRegistry.registerKeybindingRule(Object.assign(Object.assign({},item),{id:command.id,when:command.precondition?ContextKeyExpr.and(command.precondition,item.when):item.when})))}}else if(keybinding){disposables.add(KeybindingsRegistry.registerKeybindingRule(Object.assign(Object.assign({},keybinding),{id:command.id,when:command.precondition?ContextKeyExpr.and(command.precondition,keybinding.when):keybinding.when})))}return disposables}var __decorate5,__param5,__rest,MenuItemAction_1,MenuId,IMenuService,MenuRegistryChangeEvent,MenuRegistry,SubmenuItemAction,MenuItemAction,Action2;var init_actions2=__esm({"node_modules/monaco-editor/esm/vs/platform/actions/common/actions.js"(){init_actions();init_themables();init_event();init_lifecycle();init_linkedList();init_commands();init_contextkey();init_instantiation();init_keybindingsRegistry();__decorate5=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r};__param5=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};__rest=function(s,e){var t2={};for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0)t2[p]=s[p];if(s!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,p=Object.getOwnPropertySymbols(s);icandidate===id}};MenuRegistryChangeEvent._all=new Map;MenuRegistry=new class{constructor(){this._commands=new Map;this._menuItems=new Map;this._onDidChangeMenu=new MicrotaskEmitter({merge:MenuRegistryChangeEvent.merge});this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(command){this._commands.set(command.id,command);this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));return toDisposable((()=>{if(this._commands.delete(command.id)){this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette))}}))}getCommand(id){return this._commands.get(id)}getCommands(){const map=new Map;this._commands.forEach(((value,key)=>map.set(key,value)));return map}appendMenuItem(id,item){let list=this._menuItems.get(id);if(!list){list=new LinkedList;this._menuItems.set(id,list)}const rm=list.push(item);this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));return toDisposable((()=>{rm();this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id))}))}appendMenuItems(items){const result=new DisposableStore;for(const{id:id,item:item}of items){result.add(this.appendMenuItem(id,item))}return result}getMenuItems(id){let result;if(this._menuItems.has(id)){result=[...this._menuItems.get(id)]}else{result=[]}if(id===MenuId.CommandPalette){this._appendImplicitItems(result)}return result}_appendImplicitItems(result){const set=new Set;for(const item of result){if(isIMenuItem(item)){set.add(item.command.id);if(item.alt){set.add(item.alt.id)}}}this._commands.forEach(((command,id)=>{if(!set.has(id)){result.push({command:command})}}))}};SubmenuItemAction=class extends SubmenuAction{constructor(item,hideActions,actions){super(`submenuitem.${item.submenu.id}`,typeof item.title==="string"?item.title:item.title.value,actions,"submenu");this.item=item;this.hideActions=hideActions}};MenuItemAction=MenuItemAction_1=class MenuItemAction2{static label(action,options2){return(options2===null||options2===void 0?void 0:options2.renderShortTitle)&&action.shortTitle?typeof action.shortTitle==="string"?action.shortTitle:action.shortTitle.value:typeof action.title==="string"?action.title:action.title.value}constructor(item,alt,options2,hideActions,contextKeyService,_commandService){var _a6,_b3;this.hideActions=hideActions;this._commandService=_commandService;this.id=item.id;this.label=MenuItemAction_1.label(item,options2);this.tooltip=(_b3=typeof item.tooltip==="string"?item.tooltip:(_a6=item.tooltip)===null||_a6===void 0?void 0:_a6.value)!==null&&_b3!==void 0?_b3:"";this.enabled=!item.precondition||contextKeyService.contextMatchesRules(item.precondition);this.checked=void 0;let icon;if(item.toggled){const toggled=item.toggled.condition?item.toggled:{condition:item.toggled};this.checked=contextKeyService.contextMatchesRules(toggled.condition);if(this.checked&&toggled.tooltip){this.tooltip=typeof toggled.tooltip==="string"?toggled.tooltip:toggled.tooltip.value}if(this.checked&&ThemeIcon.isThemeIcon(toggled.icon)){icon=toggled.icon}if(this.checked&&toggled.title){this.label=typeof toggled.title==="string"?toggled.title:toggled.title.value}}if(!icon){icon=ThemeIcon.isThemeIcon(item.icon)?item.icon:void 0}this.item=item;this.alt=alt?new MenuItemAction_1(alt,void 0,options2,hideActions,contextKeyService,_commandService):void 0;this._options=options2;this.class=icon&&ThemeIcon.asClassName(icon)}run(...args){var _a6,_b3;let runArgs=[];if((_a6=this._options)===null||_a6===void 0?void 0:_a6.arg){runArgs=[...runArgs,this._options.arg]}if((_b3=this._options)===null||_b3===void 0?void 0:_b3.shouldForwardArgs){runArgs=[...runArgs,...args]}return this._commandService.executeCommand(this.id,...runArgs)}};MenuItemAction=MenuItemAction_1=__decorate5([__param5(4,IContextKeyService),__param5(5,ICommandService)],MenuItemAction);Action2=class{constructor(desc){this.desc=desc}}}});var ITelemetryService;var init_telemetry=__esm({"node_modules/monaco-editor/esm/vs/platform/telemetry/common/telemetry.js"(){init_instantiation();ITelemetryService=createDecorator("telemetryService")}});function registerModelAndPositionCommand(id,handler){CommandsRegistry.registerCommand(id,(function(accessor,...args){const instaService=accessor.get(IInstantiationService);const[resource,position]=args;assertType(URI.isUri(resource));assertType(Position.isIPosition(position));const model=accessor.get(IModelService).getModel(resource);if(model){const editorPosition=Position.lift(position);return instaService.invokeFunction(handler,model,editorPosition,...args.slice(2))}return accessor.get(ITextModelService).createModelReference(resource).then((reference=>new Promise(((resolve2,reject)=>{try{const result=instaService.invokeFunction(handler,reference.object.textEditorModel,Position.lift(position),args.slice(2));resolve2(result)}catch(err){reject(err)}})).finally((()=>{reference.dispose()}))))}))}function registerEditorCommand(editorCommand){EditorContributionRegistry.INSTANCE.registerEditorCommand(editorCommand);return editorCommand}function registerEditorAction(ctor){const action=new ctor;EditorContributionRegistry.INSTANCE.registerEditorAction(action);return action}function registerMultiEditorAction(action){EditorContributionRegistry.INSTANCE.registerEditorAction(action);return action}function registerInstantiatedEditorAction(editorAction){EditorContributionRegistry.INSTANCE.registerEditorAction(editorAction)}function registerEditorContribution(id,ctor,instantiation){EditorContributionRegistry.INSTANCE.registerEditorContribution(id,ctor,instantiation)}function registerCommand(command){command.register();return command}var Command2,MultiCommand,ProxyCommand,EditorCommand,EditorAction,MultiEditorAction,EditorAction2,EditorExtensionsRegistry,Extensions5,EditorContributionRegistry,UndoCommand,RedoCommand,SelectAllCommand;var init_editorExtensions=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/editorExtensions.js"(){init_nls();init_uri();init_codeEditorService();init_position();init_model2();init_resolverService();init_actions2();init_commands();init_contextkey();init_instantiation();init_keybindingsRegistry();init_platform2();init_telemetry();init_types();init_log();Command2=class{constructor(opts){this.id=opts.id;this.precondition=opts.precondition;this._kbOpts=opts.kbOpts;this._menuOpts=opts.menuOpts;this._description=opts.description}register(){if(Array.isArray(this._menuOpts)){this._menuOpts.forEach(this._registerMenuItem,this)}else if(this._menuOpts){this._registerMenuItem(this._menuOpts)}if(this._kbOpts){const kbOptsArr=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const kbOpts of kbOptsArr){let kbWhen=kbOpts.kbExpr;if(this.precondition){if(kbWhen){kbWhen=ContextKeyExpr.and(kbWhen,this.precondition)}else{kbWhen=this.precondition}}const desc={id:this.id,weight:kbOpts.weight,args:kbOpts.args,when:kbWhen,primary:kbOpts.primary,secondary:kbOpts.secondary,win:kbOpts.win,linux:kbOpts.linux,mac:kbOpts.mac};KeybindingsRegistry.registerKeybindingRule(desc)}}CommandsRegistry.registerCommand({id:this.id,handler:(accessor,args)=>this.runCommand(accessor,args),description:this._description})}_registerMenuItem(item){MenuRegistry.appendMenuItem(item.menuId,{group:item.group,command:{id:this.id,title:item.title,icon:item.icon,precondition:this.precondition},when:item.when,order:item.order})}};MultiCommand=class extends Command2{constructor(){super(...arguments);this._implementations=[]}addImplementation(priority,name,implementation,when){this._implementations.push({priority:priority,name:name,implementation:implementation,when:when});this._implementations.sort(((a,b)=>b.priority-a.priority));return{dispose:()=>{for(let i=0;i{const kbService=editorAccessor.get(IContextKeyService);if(!kbService.contextMatchesRules(precondition!==null&&precondition!==void 0?precondition:void 0)){return}return runner(editorAccessor,editor2,args)}))}runCommand(accessor,args){return EditorCommand.runEditorCommand(accessor,args,this.precondition,((accessor2,editor2,args2)=>this.runEditorCommand(accessor2,editor2,args2)))}};EditorAction=class extends EditorCommand{static convertOptions(opts){let menuOpts;if(Array.isArray(opts.menuOpts)){menuOpts=opts.menuOpts}else if(opts.menuOpts){menuOpts=[opts.menuOpts]}else{menuOpts=[]}function withDefaults(item){if(!item.menuId){item.menuId=MenuId.EditorContext}if(!item.title){item.title=opts.label}item.when=ContextKeyExpr.and(opts.precondition,item.when);return item}if(Array.isArray(opts.contextMenuOpts)){menuOpts.push(...opts.contextMenuOpts.map(withDefaults))}else if(opts.contextMenuOpts){menuOpts.push(withDefaults(opts.contextMenuOpts))}opts.menuOpts=menuOpts;return opts}constructor(opts){super(EditorAction.convertOptions(opts));this.label=opts.label;this.alias=opts.alias}runEditorCommand(accessor,editor2,args){this.reportTelemetry(accessor,editor2);return this.run(accessor,editor2,args||{})}reportTelemetry(accessor,editor2){accessor.get(ITelemetryService).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}};MultiEditorAction=class extends EditorAction{constructor(){super(...arguments);this._implementations=[]}addImplementation(priority,implementation){this._implementations.push([priority,implementation]);this._implementations.sort(((a,b)=>b[0]-a[0]));return{dispose:()=>{for(let i=0;i{var _a6,_b3;const kbService=editorAccessor.get(IContextKeyService);const logService=editorAccessor.get(ILogService);const enabled=kbService.contextMatchesRules((_a6=this.desc.precondition)!==null&&_a6!==void 0?_a6:void 0);if(!enabled){logService.debug(`[EditorAction2] NOT running command because its precondition is FALSE`,this.desc.id,(_b3=this.desc.precondition)===null||_b3===void 0?void 0:_b3.serialize());return}return this.runEditorCommand(editorAccessor,editor2,...args)}))}};(function(EditorExtensionsRegistry2){function getEditorCommand(commandId){return EditorContributionRegistry.INSTANCE.getEditorCommand(commandId)}EditorExtensionsRegistry2.getEditorCommand=getEditorCommand;function getEditorActions(){return EditorContributionRegistry.INSTANCE.getEditorActions()}EditorExtensionsRegistry2.getEditorActions=getEditorActions;function getEditorContributions(){return EditorContributionRegistry.INSTANCE.getEditorContributions()}EditorExtensionsRegistry2.getEditorContributions=getEditorContributions;function getSomeEditorContributions(ids){return EditorContributionRegistry.INSTANCE.getEditorContributions().filter((c=>ids.indexOf(c.id)>=0))}EditorExtensionsRegistry2.getSomeEditorContributions=getSomeEditorContributions;function getDiffEditorContributions(){return EditorContributionRegistry.INSTANCE.getDiffEditorContributions()}EditorExtensionsRegistry2.getDiffEditorContributions=getDiffEditorContributions})(EditorExtensionsRegistry||(EditorExtensionsRegistry={}));Extensions5={EditorCommonContributions:"editor.contributions"};EditorContributionRegistry=class{constructor(){this.editorContributions=[];this.diffEditorContributions=[];this.editorActions=[];this.editorCommands=Object.create(null)}registerEditorContribution(id,ctor,instantiation){this.editorContributions.push({id:id,ctor:ctor,instantiation:instantiation})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(action){action.register();this.editorActions.push(action)}getEditorActions(){return this.editorActions}registerEditorCommand(editorCommand){editorCommand.register();this.editorCommands[editorCommand.id]=editorCommand}getEditorCommand(commandId){return this.editorCommands[commandId]||null}};EditorContributionRegistry.INSTANCE=new EditorContributionRegistry;Registry.add(Extensions5.EditorCommonContributions,EditorContributionRegistry.INSTANCE);UndoCommand=registerCommand(new MultiCommand({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2048|56},menuOpts:[{menuId:MenuId.MenubarEditMenu,group:"1_do",title:localize({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1},{menuId:MenuId.CommandPalette,group:"",title:localize("undo","Undo"),order:1}]}));registerCommand(new ProxyCommand(UndoCommand,{id:"default:undo",precondition:void 0}));RedoCommand=registerCommand(new MultiCommand({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2048|55,secondary:[2048|1024|56],mac:{primary:2048|1024|56}},menuOpts:[{menuId:MenuId.MenubarEditMenu,group:"1_do",title:localize({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2},{menuId:MenuId.CommandPalette,group:"",title:localize("redo","Redo"),order:1}]}));registerCommand(new ProxyCommand(RedoCommand,{id:"default:redo",precondition:void 0}));SelectAllCommand=registerCommand(new MultiCommand({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2048|31},menuOpts:[{menuId:MenuId.MenubarSelectionMenu,group:"1_basic",title:localize({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1},{menuId:MenuId.CommandPalette,group:"",title:localize("selectAll","Select All"),order:1}]}))}});var __decorate6,__param6,MarkerDecorationsContribution;var init_markerDecorations2=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/services/markerDecorations.js"(){init_markerDecorations();init_editorExtensions();__decorate6=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r};__param6=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};MarkerDecorationsContribution=class MarkerDecorationsContribution2{constructor(_editor,_markerDecorationsService){}dispose(){}};MarkerDecorationsContribution.ID="editor.contrib.markerDecorations";MarkerDecorationsContribution=__decorate6([__param6(1,IMarkerDecorationsService)],MarkerDecorationsContribution);registerEditorContribution(MarkerDecorationsContribution.ID,MarkerDecorationsContribution,0)}});var init_3=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/widget/media/editor.css"(){}});var ElementSizeObserver;var init_elementSizeObserver=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/config/elementSizeObserver.js"(){init_lifecycle();init_event();ElementSizeObserver=class extends Disposable{constructor(referenceDomElement,dimension){super();this._onDidChange=this._register(new Emitter);this.onDidChange=this._onDidChange.event;this._referenceDomElement=referenceDomElement;this._width=-1;this._height=-1;this._resizeObserver=null;this.measureReferenceDomElement(false,dimension)}dispose(){this.stopObserving();super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let observeContentRect=null;const observeNow=()=>{if(observeContentRect){this.observe({width:observeContentRect.width,height:observeContentRect.height})}else{this.observe()}};let shouldObserve=false;let alreadyObservedThisAnimationFrame=false;const update=()=>{if(shouldObserve&&!alreadyObservedThisAnimationFrame){try{shouldObserve=false;alreadyObservedThisAnimationFrame=true;observeNow()}finally{requestAnimationFrame((()=>{alreadyObservedThisAnimationFrame=false;update()}))}}};this._resizeObserver=new ResizeObserver((entries2=>{observeContentRect=entries2&&entries2[0]&&entries2[0].contentRect?entries2[0].contentRect:null;shouldObserve=true;update()}));this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){if(this._resizeObserver){this._resizeObserver.disconnect();this._resizeObserver=null}}observe(dimension){this.measureReferenceDomElement(true,dimension)}measureReferenceDomElement(emitEvent,dimension){let observedWidth=0;let observedHeight=0;if(dimension){observedWidth=dimension.width;observedHeight=dimension.height}else if(this._referenceDomElement){observedWidth=this._referenceDomElement.clientWidth;observedHeight=this._referenceDomElement.clientHeight}observedWidth=Math.max(5,observedWidth);observedHeight=Math.max(5,observedHeight);if(this._width!==observedWidth||this._height!==observedHeight){this._width=observedWidth;this._height=observedHeight;if(emitEvent){this._onDidChange.fire()}}}}}});function registerEditorSettingMigration(key,migrate){EditorSettingMigration.items.push(new EditorSettingMigration(key,migrate))}function registerSimpleEditorSettingMigration(key,values){registerEditorSettingMigration(key,((value,read,write)=>{if(typeof value!=="undefined"){for(const[oldValue,newValue]of values){if(value===oldValue){write(key,newValue);return}}}}))}function migrateOptions(options2){EditorSettingMigration.items.forEach((migration=>migration.apply(options2)))}var EditorSettingMigration,suggestFilteredTypesMapping;var init_migrateOptions=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/config/migrateOptions.js"(){EditorSettingMigration=class{constructor(key,migrate){this.key=key;this.migrate=migrate}apply(options2){const value=EditorSettingMigration._read(options2,this.key);const read=key=>EditorSettingMigration._read(options2,key);const write=(key,value2)=>EditorSettingMigration._write(options2,key,value2);this.migrate(value,read,write)}static _read(source,key){if(typeof source==="undefined"){return void 0}const firstDotIndex=key.indexOf(".");if(firstDotIndex>=0){const firstSegment=key.substring(0,firstDotIndex);return this._read(source[firstSegment],key.substring(firstDotIndex+1))}return source[key]}static _write(target,key,value){const firstDotIndex=key.indexOf(".");if(firstDotIndex>=0){const firstSegment=key.substring(0,firstDotIndex);target[firstSegment]=target[firstSegment]||{};this._write(target[firstSegment],key.substring(firstDotIndex+1),value);return}target[key]=value}};EditorSettingMigration.items=[];registerSimpleEditorSettingMigration("wordWrap",[[true,"on"],[false,"off"]]);registerSimpleEditorSettingMigration("lineNumbers",[[true,"on"],[false,"off"]]);registerSimpleEditorSettingMigration("cursorBlinking",[["visible","solid"]]);registerSimpleEditorSettingMigration("renderWhitespace",[[true,"boundary"],[false,"none"]]);registerSimpleEditorSettingMigration("renderLineHighlight",[[true,"line"],[false,"none"]]);registerSimpleEditorSettingMigration("acceptSuggestionOnEnter",[[true,"on"],[false,"off"]]);registerSimpleEditorSettingMigration("tabCompletion",[[false,"off"],[true,"onlySnippets"]]);registerSimpleEditorSettingMigration("hover",[[true,{enabled:true}],[false,{enabled:false}]]);registerSimpleEditorSettingMigration("parameterHints",[[true,{enabled:true}],[false,{enabled:false}]]);registerSimpleEditorSettingMigration("autoIndent",[[false,"advanced"],[true,"full"]]);registerSimpleEditorSettingMigration("matchBrackets",[[true,"always"],[false,"never"]]);registerSimpleEditorSettingMigration("renderFinalNewline",[[true,"on"],[false,"off"]]);registerSimpleEditorSettingMigration("cursorSmoothCaretAnimation",[[true,"on"],[false,"off"]]);registerEditorSettingMigration("autoClosingBrackets",((value,read,write)=>{if(value===false){write("autoClosingBrackets","never");if(typeof read("autoClosingQuotes")==="undefined"){write("autoClosingQuotes","never")}if(typeof read("autoSurround")==="undefined"){write("autoSurround","never")}}}));registerEditorSettingMigration("renderIndentGuides",((value,read,write)=>{if(typeof value!=="undefined"){write("renderIndentGuides",void 0);if(typeof read("guides.indentation")==="undefined"){write("guides.indentation",!!value)}}}));registerEditorSettingMigration("highlightActiveIndentGuide",((value,read,write)=>{if(typeof value!=="undefined"){write("highlightActiveIndentGuide",void 0);if(typeof read("guides.highlightActiveIndentation")==="undefined"){write("guides.highlightActiveIndentation",!!value)}}}));suggestFilteredTypesMapping={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};registerEditorSettingMigration("suggest.filteredTypes",((value,read,write)=>{if(value&&typeof value==="object"){for(const entry of Object.entries(suggestFilteredTypesMapping)){const v=value[entry[0]];if(v===false){if(typeof read(`suggest.${entry[1]}`)==="undefined"){write(`suggest.${entry[1]}`,false)}}}write("suggest.filteredTypes",void 0)}}));registerEditorSettingMigration("quickSuggestions",((input,read,write)=>{if(typeof input==="boolean"){const value=input?"on":"off";const newValue={comments:value,strings:value,other:value};write("quickSuggestions",newValue)}}));registerEditorSettingMigration("experimental.stickyScroll.enabled",((value,read,write)=>{if(typeof value==="boolean"){write("experimental.stickyScroll.enabled",void 0);if(typeof read("stickyScroll.enabled")==="undefined"){write("stickyScroll.enabled",value)}}}));registerEditorSettingMigration("experimental.stickyScroll.maxLineCount",((value,read,write)=>{if(typeof value==="number"){write("experimental.stickyScroll.maxLineCount",void 0);if(typeof read("stickyScroll.maxLineCount")==="undefined"){write("stickyScroll.maxLineCount",value)}}}))}});var TabFocusImpl,TabFocus;var init_tabFocus=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/config/tabFocus.js"(){init_event();TabFocusImpl=class{constructor(){this._tabFocusTerminal=false;this._tabFocusEditor=false;this._onDidChangeTabFocus=new Emitter;this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(context){return context==="terminalFocus"?this._tabFocusTerminal:this._tabFocusEditor}setTabFocusMode(tabFocusMode,context){if(context==="terminalFocus"){this._tabFocusTerminal=tabFocusMode}else{this._tabFocusEditor=tabFocusMode}this._onDidChangeTabFocus.fire()}};TabFocus=new TabFocusImpl}});function digitCount(n){let r=0;while(n){n=Math.floor(n/10);r++}return r?r:1}function getExtraEditorClassName(){let extra="";if(!isSafari2&&!isWebkitWebView){extra+="no-user-select "}if(isSafari2){extra+="no-minimap-shadow ";extra+="enable-user-select "}if(isMacintosh){extra+="mac "}return extra}function deepCloneAndMigrateOptions(_options){const options2=deepClone(_options);migrateOptions(options2);return options2}var __decorate7,__param7,EditorConfiguration,ValidatedEditorOptions,ComputedEditorOptions,EditorOptionsUtil;var init_editorConfiguration=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/config/editorConfiguration.js"(){init_browser();init_arrays();init_event();init_lifecycle();init_objects();init_platform();init_elementSizeObserver();init_fontMeasurements();init_migrateOptions();init_tabFocus();init_editorOptions();init_editorZoom();init_fontInfo();init_accessibility();__decorate7=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r};__param7=function(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}};EditorConfiguration=class EditorConfiguration2 extends Disposable{constructor(isSimpleWidget,options2,container,_accessibilityService){super();this._accessibilityService=_accessibilityService;this._onDidChange=this._register(new Emitter);this.onDidChange=this._onDidChange.event;this._onDidChangeFast=this._register(new Emitter);this.onDidChangeFast=this._onDidChangeFast.event;this._isDominatedByLongLines=false;this._viewLineCount=1;this._lineNumbersDigitCount=1;this._reservedHeight=0;this._glyphMarginDecorationLaneCount=1;this._computeOptionsMemory=new ComputeOptionsMemory;this.isSimpleWidget=isSimpleWidget;this._containerObserver=this._register(new ElementSizeObserver(container,options2.dimension));this._rawOptions=deepCloneAndMigrateOptions(options2);this._validatedOptions=EditorOptionsUtil.validateOptions(this._rawOptions);this.options=this._computeOptions();if(this.options.get(12)){this._containerObserver.startObserving()}this._register(EditorZoom.onDidChangeZoomLevel((()=>this._recomputeOptions())));this._register(TabFocus.onDidChangeTabFocus((()=>this._recomputeOptions())));this._register(this._containerObserver.onDidChange((()=>this._recomputeOptions())));this._register(FontMeasurements.onDidChange((()=>this._recomputeOptions())));this._register(PixelRatio.onDidChange((()=>this._recomputeOptions())));this._register(this._accessibilityService.onDidChangeScreenReaderOptimized((()=>this._recomputeOptions())))}_recomputeOptions(){const newOptions=this._computeOptions();const changeEvent=EditorOptionsUtil.checkEquals(this.options,newOptions);if(changeEvent===null){return}this.options=newOptions;this._onDidChangeFast.fire(changeEvent);this._onDidChange.fire(changeEvent)}_computeOptions(){const partialEnv=this._readEnvConfiguration();const bareFontInfo=BareFontInfo.createFromValidatedSettings(this._validatedOptions,partialEnv.pixelRatio,this.isSimpleWidget);const fontInfo=this._readFontInfo(bareFontInfo);const env2={memory:this._computeOptionsMemory,outerWidth:partialEnv.outerWidth,outerHeight:partialEnv.outerHeight-this._reservedHeight,fontInfo:fontInfo,extraEditorClassName:partialEnv.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:partialEnv.emptySelectionClipboard,pixelRatio:partialEnv.pixelRatio,tabFocusMode:TabFocus.getTabFocusMode("editorFocus"),accessibilitySupport:partialEnv.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return EditorOptionsUtil.computeOptions(this._validatedOptions,env2)}_readEnvConfiguration(){return{extraEditorClassName:getExtraEditorClassName(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:isWebKit||isFirefox2,pixelRatio:PixelRatio.value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(bareFontInfo){return FontMeasurements.readFontInfo(bareFontInfo)}getRawOptions(){return this._rawOptions}updateOptions(_newOptions){const newOptions=deepCloneAndMigrateOptions(_newOptions);const didChange=EditorOptionsUtil.applyUpdate(this._rawOptions,newOptions);if(!didChange){return}this._validatedOptions=EditorOptionsUtil.validateOptions(this._rawOptions);this._recomputeOptions()}observeContainer(dimension){this._containerObserver.observe(dimension)}setIsDominatedByLongLines(isDominatedByLongLines){if(this._isDominatedByLongLines===isDominatedByLongLines){return}this._isDominatedByLongLines=isDominatedByLongLines;this._recomputeOptions()}setModelLineCount(modelLineCount){const lineNumbersDigitCount=digitCount(modelLineCount);if(this._lineNumbersDigitCount===lineNumbersDigitCount){return}this._lineNumbersDigitCount=lineNumbersDigitCount;this._recomputeOptions()}setViewLineCount(viewLineCount){if(this._viewLineCount===viewLineCount){return}this._viewLineCount=viewLineCount;this._recomputeOptions()}setReservedHeight(reservedHeight){if(this._reservedHeight===reservedHeight){return}this._reservedHeight=reservedHeight;this._recomputeOptions()}setGlyphMarginDecorationLaneCount(decorationLaneCount){if(this._glyphMarginDecorationLaneCount===decorationLaneCount){return}this._glyphMarginDecorationLaneCount=decorationLaneCount;this._recomputeOptions()}};EditorConfiguration=__decorate7([__param7(3,IAccessibilityService)],EditorConfiguration);ValidatedEditorOptions=class{constructor(){this._values=[]}_read(option){return this._values[option]}get(id){return this._values[id]}_write(option,value){this._values[option]=value}};ComputedEditorOptions=class{constructor(){this._values=[]}_read(id){if(id>=this._values.length){throw new Error("Cannot read uninitialized value")}return this._values[id]}get(id){return this._read(id)}_write(id,value){this._values[id]=value}};EditorOptionsUtil=class{static validateOptions(options2){const result=new ValidatedEditorOptions;for(const editorOption of editorOptionsRegistry){const value=editorOption.name==="_never_"?void 0:options2[editorOption.name];result._write(editorOption.id,editorOption.validate(value))}return result}static computeOptions(options2,env2){const result=new ComputedEditorOptions;for(const editorOption of editorOptionsRegistry){result._write(editorOption.id,editorOption.compute(env2,result,options2._read(editorOption.id)))}return result}static _deepEquals(a,b){if(typeof a!=="object"||typeof b!=="object"||!a||!b){return a===b}if(Array.isArray(a)||Array.isArray(b)){return Array.isArray(a)&&Array.isArray(b)?equals(a,b):false}if(Object.keys(a).length!==Object.keys(b).length){return false}for(const key in a){if(!EditorOptionsUtil._deepEquals(a[key],b[key])){return false}}return true}static checkEquals(a,b){const result=[];let somethingChanged=false;for(const editorOption of editorOptionsRegistry){const changed=!EditorOptionsUtil._deepEquals(a._read(editorOption.id),b._read(editorOption.id));result[editorOption.id]=changed;if(changed){somethingChanged=true}}return somethingChanged?new ConfigurationChangedEvent(result):null}static applyUpdate(options2,update){let changed=false;for(const editorOption of editorOptionsRegistry){if(update.hasOwnProperty(editorOption.name)){const result=editorOption.applyUpdate(options2[editorOption.name],update[editorOption.name]);options2[editorOption.name]=result.newValue;changed=changed||result.didChange}}return changed}}}});function memoize(_target,key,descriptor){let fnKey=null;let fn=null;if(typeof descriptor.value==="function"){fnKey="value";fn=descriptor.value;if(fn.length!==0){console.warn("Memoize should only be used in functions with zero parameters")}}else if(typeof descriptor.get==="function"){fnKey="get";fn=descriptor.get}if(!fn){throw new Error("not supported")}const memoizeKey=`$memoize$${key}`;descriptor[fnKey]=function(...args){if(!this.hasOwnProperty(memoizeKey)){Object.defineProperty(this,memoizeKey,{configurable:false,enumerable:false,writable:false,value:fn.apply(this,args)})}return this[memoizeKey]}}var init_decorators=__esm({"node_modules/monaco-editor/esm/vs/base/common/decorators.js"(){}});var __decorate8,EventType2,Gesture;var init_touch=__esm({"node_modules/monaco-editor/esm/vs/base/browser/touch.js"(){init_dom();init_arrays();init_decorators();init_lifecycle();init_linkedList();__decorate8=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r};(function(EventType3){EventType3.Tap="-monaco-gesturetap";EventType3.Change="-monaco-gesturechange";EventType3.Start="-monaco-gesturestart";EventType3.End="-monaco-gesturesend";EventType3.Contextmenu="-monaco-gesturecontextmenu"})(EventType2||(EventType2={}));Gesture=class extends Disposable{constructor(){super();this.dispatched=false;this.targets=new LinkedList;this.ignoreTargets=new LinkedList;this.activeTouches={};this.handle=null;this._lastSetTapCountTime=0;this._register(addDisposableListener(document,"touchstart",(e=>this.onTouchStart(e)),{passive:false}));this._register(addDisposableListener(document,"touchend",(e=>this.onTouchEnd(e))));this._register(addDisposableListener(document,"touchmove",(e=>this.onTouchMove(e)),{passive:false}))}static addTarget(element){if(!Gesture.isTouchDevice()){return Disposable.None}if(!Gesture.INSTANCE){Gesture.INSTANCE=new Gesture}const remove=Gesture.INSTANCE.targets.push(element);return toDisposable(remove)}static ignoreTarget(element){if(!Gesture.isTouchDevice()){return Disposable.None}if(!Gesture.INSTANCE){Gesture.INSTANCE=new Gesture}const remove=Gesture.INSTANCE.ignoreTargets.push(element);return toDisposable(remove)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}dispose(){if(this.handle){this.handle.dispose();this.handle=null}super.dispose()}onTouchStart(e){const timestamp=Date.now();if(this.handle){this.handle.dispose();this.handle=null}for(let i=0,len=e.targetTouches.length;i=Gesture.HOLD_DELAY&&Math.abs(data.initialPageX-tail(data.rollingPageX))<30&&Math.abs(data.initialPageY-tail(data.rollingPageY))<30){const evt=this.newGestureEvent(EventType2.Contextmenu,data.initialTarget);evt.pageX=tail(data.rollingPageX);evt.pageY=tail(data.rollingPageY);this.dispatchEvent(evt)}else if(activeTouchCount===1){const finalX=tail(data.rollingPageX);const finalY=tail(data.rollingPageY);const deltaT=tail(data.rollingTimestamps)-data.rollingTimestamps[0];const deltaX=finalX-data.rollingPageX[0];const deltaY=finalY-data.rollingPageY[0];const dispatchTo=[...this.targets].filter((t2=>data.initialTarget instanceof Node&&t2.contains(data.initialTarget)));this.inertia(dispatchTo,timestamp,Math.abs(deltaX)/deltaT,deltaX>0?1:-1,finalX,Math.abs(deltaY)/deltaT,deltaY>0?1:-1,finalY)}this.dispatchEvent(this.newGestureEvent(EventType2.End,data.initialTarget));delete this.activeTouches[touch.identifier]}if(this.dispatched){e.preventDefault();e.stopPropagation();this.dispatched=false}}newGestureEvent(type,initialTarget){const event=document.createEvent("CustomEvent");event.initEvent(type,false,true);event.initialTarget=initialTarget;event.tapCount=0;return event}dispatchEvent(event){if(event.type===EventType2.Tap){const currentTime=(new Date).getTime();let setTapCount=0;if(currentTime-this._lastSetTapCountTime>Gesture.CLEAR_TAP_COUNT_TIME){setTapCount=1}else{setTapCount=2}this._lastSetTapCountTime=currentTime;event.tapCount=setTapCount}else if(event.type===EventType2.Change||event.type===EventType2.Contextmenu){this._lastSetTapCountTime=0}if(event.initialTarget instanceof Node){for(const ignoreTarget of this.ignoreTargets){if(ignoreTarget.contains(event.initialTarget)){return}}for(const target of this.targets){if(target.contains(event.initialTarget)){target.dispatchEvent(event);this.dispatched=true}}}}inertia(dispatchTo,t1,vX,dirX,x,vY,dirY,y){this.handle=scheduleAtNextAnimationFrame((()=>{const now=Date.now();const deltaT=now-t1;let delta_pos_x=0,delta_pos_y=0;let stopped=true;vX+=Gesture.SCROLL_FRICTION*deltaT;vY+=Gesture.SCROLL_FRICTION*deltaT;if(vX>0){stopped=false;delta_pos_x=dirX*vX*deltaT}if(vY>0){stopped=false;delta_pos_y=dirY*vY*deltaT}const evt=this.newGestureEvent(EventType2.Change);evt.translationX=delta_pos_x;evt.translationY=delta_pos_y;dispatchTo.forEach((d=>d.dispatchEvent(evt)));if(!stopped){this.inertia(dispatchTo,now,vX,dirX,x+delta_pos_x,vY,dirY,y+delta_pos_y)}}))}onTouchMove(e){const timestamp=Date.now();for(let i=0,len=e.changedTouches.length;i3){data.rollingPageX.shift();data.rollingPageY.shift();data.rollingTimestamps.shift()}data.rollingPageX.push(touch.pageX);data.rollingPageY.push(touch.pageY);data.rollingTimestamps.push(timestamp)}if(this.dispatched){e.preventDefault();e.stopPropagation();this.dispatched=false}}};Gesture.SCROLL_FRICTION=-.005;Gesture.HOLD_DELAY=700;Gesture.CLEAR_TAP_COUNT_TIME=400;__decorate8([memoize],Gesture,"isTouchDevice",null)}});var GlobalPointerMoveMonitor;var init_globalPointerMoveMonitor=__esm({"node_modules/monaco-editor/esm/vs/base/browser/globalPointerMoveMonitor.js"(){init_dom();init_lifecycle();GlobalPointerMoveMonitor=class{constructor(){this._hooks=new DisposableStore;this._pointerMoveCallback=null;this._onStopCallback=null}dispose(){this.stopMonitoring(false);this._hooks.dispose()}stopMonitoring(invokeStopCallback,browserEvent){if(!this.isMonitoring()){return}this._hooks.clear();this._pointerMoveCallback=null;const onStopCallback=this._onStopCallback;this._onStopCallback=null;if(invokeStopCallback&&onStopCallback){onStopCallback(browserEvent)}}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(initialElement,pointerId,initialButtons,pointerMoveCallback,onStopCallback){if(this.isMonitoring()){this.stopMonitoring(false)}this._pointerMoveCallback=pointerMoveCallback;this._onStopCallback=onStopCallback;let eventSource=initialElement;try{initialElement.setPointerCapture(pointerId);this._hooks.add(toDisposable((()=>{try{initialElement.releasePointerCapture(pointerId)}catch(err){}})))}catch(err){eventSource=window}this._hooks.add(addDisposableListener(eventSource,EventType.POINTER_MOVE,(e=>{if(e.buttons!==initialButtons){this.stopMonitoring(true);return}e.preventDefault();this._pointerMoveCallback(e)})));this._hooks.add(addDisposableListener(eventSource,EventType.POINTER_UP,(e=>this.stopMonitoring(true))))}}}});function asCssVariableName(colorIdent){return`--vscode-${colorIdent.replace(/\./g,"-")}`}function asCssVariable(color){return`var(${asCssVariableName(color)})`}function asCssVariableWithDefault(color,defaultCssValue){return`var(${asCssVariableName(color)}, ${defaultCssValue})`}function registerColor(id,defaults,description,needsTransparency,deprecationMessage){return colorRegistry.registerColor(id,defaults,description,needsTransparency,deprecationMessage)}function executeTransform(transform,theme){var _a6,_b3,_c2,_d2;switch(transform.op){case 0:return(_a6=resolveColorValue(transform.value,theme))===null||_a6===void 0?void 0:_a6.darken(transform.factor);case 1:return(_b3=resolveColorValue(transform.value,theme))===null||_b3===void 0?void 0:_b3.lighten(transform.factor);case 2:return(_c2=resolveColorValue(transform.value,theme))===null||_c2===void 0?void 0:_c2.transparent(transform.factor);case 3:{const backgroundColor=resolveColorValue(transform.background,theme);if(!backgroundColor){return resolveColorValue(transform.value,theme)}return(_d2=resolveColorValue(transform.value,theme))===null||_d2===void 0?void 0:_d2.makeOpaque(backgroundColor)}case 4:for(const candidate of transform.values){const color=resolveColorValue(candidate,theme);if(color){return color}}return void 0;case 6:return resolveColorValue(theme.defines(transform.if)?transform.then:transform.else,theme);case 5:{const from=resolveColorValue(transform.value,theme);if(!from){return void 0}const backgroundColor=resolveColorValue(transform.background,theme);if(!backgroundColor){return from.transparent(transform.factor*transform.transparency)}return from.isDarkerThan(backgroundColor)?Color.getLighterColor(from,backgroundColor,transform.factor).transparent(transform.transparency):Color.getDarkerColor(from,backgroundColor,transform.factor).transparent(transform.transparency)}default:throw assertNever(transform)}}function darken(colorValue,factor2){return{op:0,value:colorValue,factor:factor2}}function lighten(colorValue,factor2){return{op:1,value:colorValue,factor:factor2}}function transparent(colorValue,factor2){return{op:2,value:colorValue,factor:factor2}}function oneOf(...colorValues){return{op:4,values:colorValues}}function ifDefinedThenElse(ifArg,thenArg,elseArg){return{op:6,if:ifArg,then:thenArg,else:elseArg}}function lessProminent(colorValue,backgroundColorValue,factor2,transparency){return{op:5,value:colorValue,background:backgroundColorValue,factor:factor2,transparency:transparency}}function resolveColorValue(colorValue,theme){if(colorValue===null){return void 0}else if(typeof colorValue==="string"){if(colorValue[0]==="#"){return Color.fromHex(colorValue)}return theme.getColor(colorValue)}else if(colorValue instanceof Color){return colorValue}else if(typeof colorValue==="object"){return executeTransform(colorValue,theme)}return void 0}var Extensions6,ColorRegistry,colorRegistry,foreground,disabledForeground,errorForeground,descriptionForeground,iconForeground,focusBorder,contrastBorder,activeContrastBorder,selectionBackground,textSeparatorForeground,textLinkForeground,textLinkActiveForeground,textPreformatForeground,textBlockQuoteBackground,textBlockQuoteBorder,textCodeBlockBackground,widgetShadow,widgetBorder,inputBackground,inputForeground,inputBorder,inputActiveOptionBorder,inputActiveOptionHoverBackground,inputActiveOptionBackground,inputActiveOptionForeground,inputPlaceholderForeground,inputValidationInfoBackground,inputValidationInfoForeground,inputValidationInfoBorder,inputValidationWarningBackground,inputValidationWarningForeground,inputValidationWarningBorder,inputValidationErrorBackground,inputValidationErrorForeground,inputValidationErrorBorder,selectBackground,selectListBackground,selectForeground,selectBorder,buttonForeground,buttonSeparator,buttonBackground,buttonHoverBackground,buttonBorder,buttonSecondaryForeground,buttonSecondaryBackground,buttonSecondaryHoverBackground,badgeBackground,badgeForeground,scrollbarShadow,scrollbarSliderBackground,scrollbarSliderHoverBackground,scrollbarSliderActiveBackground,progressBarBackground,editorErrorBackground,editorErrorForeground,editorErrorBorder,editorWarningBackground,editorWarningForeground,editorWarningBorder,editorInfoBackground,editorInfoForeground,editorInfoBorder,editorHintForeground,editorHintBorder,sashHoverBorder,editorBackground,editorForeground,editorStickyScrollBackground,editorStickyScrollHoverBackground,editorWidgetBackground,editorWidgetForeground,editorWidgetBorder,editorWidgetResizeBorder,quickInputBackground,quickInputForeground,quickInputTitleBackground,pickerGroupForeground,pickerGroupBorder,keybindingLabelBackground,keybindingLabelForeground,keybindingLabelBorder,keybindingLabelBottomBorder,editorSelectionBackground,editorSelectionForeground,editorInactiveSelection,editorSelectionHighlight,editorSelectionHighlightBorder,editorFindMatch,editorFindMatchHighlight,editorFindRangeHighlight,editorFindMatchBorder,editorFindMatchHighlightBorder,editorFindRangeHighlightBorder,searchEditorFindMatch,searchEditorFindMatchBorder,searchResultsInfoForeground,editorHoverHighlight,editorHoverBackground,editorHoverForeground,editorHoverBorder,editorHoverStatusBarBackground,editorActiveLinkForeground,editorInlayHintForeground,editorInlayHintBackground,editorInlayHintTypeForeground,editorInlayHintTypeBackground,editorInlayHintParameterForeground,editorInlayHintParameterBackground,editorLightBulbForeground,editorLightBulbAutoFixForeground,defaultInsertColor,defaultRemoveColor,diffInserted,diffRemoved,diffInsertedLine,diffRemovedLine,diffInsertedLineGutter,diffRemovedLineGutter,diffOverviewRulerInserted,diffOverviewRulerRemoved,diffInsertedOutline,diffRemovedOutline,diffBorder,diffDiagonalFill,diffUnchangedRegionBackground,diffUnchangedRegionForeground,diffUnchangedTextBackground,listFocusBackground,listFocusForeground,listFocusOutline,listFocusAndSelectionOutline,listActiveSelectionBackground,listActiveSelectionForeground,listActiveSelectionIconForeground,listInactiveSelectionBackground,listInactiveSelectionForeground,listInactiveSelectionIconForeground,listInactiveFocusBackground,listInactiveFocusOutline,listHoverBackground,listHoverForeground,listDropBackground,listHighlightForeground,listFocusHighlightForeground,listInvalidItemForeground,listErrorForeground,listWarningForeground,listFilterWidgetBackground,listFilterWidgetOutline,listFilterWidgetNoMatchesOutline,listFilterWidgetShadow,listFilterMatchHighlight,listFilterMatchHighlightBorder,treeIndentGuidesStroke,treeInactiveIndentGuidesStroke,tableColumnsBorder,tableOddRowsBackgroundColor,listDeemphasizedForeground,checkboxBackground,checkboxSelectBackground,checkboxForeground,checkboxBorder,checkboxSelectBorder,_deprecatedQuickInputListFocusBackground,quickInputListFocusForeground,quickInputListFocusIconForeground,quickInputListFocusBackground,menuBorder,menuForeground,menuBackground,menuSelectionForeground,menuSelectionBackground,menuSelectionBorder,menuSeparatorBackground,toolbarHoverBackground,toolbarHoverOutline,toolbarActiveBackground,snippetTabstopHighlightBackground,snippetTabstopHighlightBorder,snippetFinalTabstopHighlightBackground,snippetFinalTabstopHighlightBorder,breadcrumbsForeground,breadcrumbsBackground,breadcrumbsFocusForeground,breadcrumbsActiveSelectionForeground,breadcrumbsPickerBackground,headerTransparency,currentBaseColor,incomingBaseColor,commonBaseColor,contentTransparency,rulerTransparency,mergeCurrentHeaderBackground,mergeCurrentContentBackground,mergeIncomingHeaderBackground,mergeIncomingContentBackground,mergeCommonHeaderBackground,mergeCommonContentBackground,mergeBorder,overviewRulerCurrentContentForeground,overviewRulerIncomingContentForeground,overviewRulerCommonContentForeground,overviewRulerFindMatchForeground,overviewRulerSelectionHighlightForeground,minimapFindMatch,minimapSelectionOccurrenceHighlight,minimapSelection,minimapError,minimapWarning,minimapBackground,minimapForegroundOpacity,minimapSliderBackground,minimapSliderHoverBackground,minimapSliderActiveBackground,problemsErrorIconForeground,problemsWarningIconForeground,problemsInfoIconForeground,chartsForeground,chartsLines,chartsRed,chartsBlue,chartsYellow,chartsOrange,chartsGreen,chartsPurple,workbenchColorsSchemaId,schemaRegistry,delayer;var init_colorRegistry=__esm({"node_modules/monaco-editor/esm/vs/platform/theme/common/colorRegistry.js"(){init_async();init_color();init_event();init_assert();init_nls();init_jsonContributionRegistry();init_platform2();Extensions6={ColorContribution:"base.contributions.colors"};ColorRegistry=class{constructor(){this._onDidChangeSchema=new Emitter;this.onDidChangeSchema=this._onDidChangeSchema.event;this.colorSchema={type:"object",properties:{}};this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]};this.colorsById={}}registerColor(id,defaults,description,needsTransparency=false,deprecationMessage){const colorContribution={id:id,description:description,defaults:defaults,needsTransparency:needsTransparency,deprecationMessage:deprecationMessage};this.colorsById[id]=colorContribution;const propertySchema={type:"string",description:description,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};if(deprecationMessage){propertySchema.deprecationMessage=deprecationMessage}this.colorSchema.properties[id]=propertySchema;this.colorReferenceSchema.enum.push(id);this.colorReferenceSchema.enumDescriptions.push(description);this._onDidChangeSchema.fire();return id}getColors(){return Object.keys(this.colorsById).map((id=>this.colorsById[id]))}resolveDefaultColor(id,theme){const colorDesc=this.colorsById[id];if(colorDesc&&colorDesc.defaults){const colorValue=colorDesc.defaults[theme.type];return resolveColorValue(colorValue,theme)}return void 0}getColorSchema(){return this.colorSchema}toString(){const sorter2=(a,b)=>{const cat1=a.indexOf(".")===-1?0:1;const cat2=b.indexOf(".")===-1?0:1;if(cat1!==cat2){return cat1-cat2}return a.localeCompare(b)};return Object.keys(this.colorsById).sort(sorter2).map((k=>`- \`${k}\`: ${this.colorsById[k].description}`)).join("\n")}};colorRegistry=new ColorRegistry;Registry.add(Extensions6.ColorContribution,colorRegistry);foreground=registerColor("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},localize("foreground","Overall foreground color. This color is only used if not overridden by a component."));disabledForeground=registerColor("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},localize("disabledForeground","Overall foreground for disabled elements. This color is only used if not overridden by a component."));errorForeground=registerColor("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},localize("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component."));descriptionForeground=registerColor("descriptionForeground",{light:"#717171",dark:transparent(foreground,.7),hcDark:transparent(foreground,.7),hcLight:transparent(foreground,.7)},localize("descriptionForeground","Foreground color for description text providing additional information, for example for a label."));iconForeground=registerColor("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},localize("iconForeground","The default color for icons in the workbench."));focusBorder=registerColor("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},localize("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component."));contrastBorder=registerColor("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},localize("contrastBorder","An extra border around elements to separate them from others for greater contrast."));activeContrastBorder=registerColor("contrastActiveBorder",{light:null,dark:null,hcDark:focusBorder,hcLight:focusBorder},localize("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast."));selectionBackground=registerColor("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},localize("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor."));textSeparatorForeground=registerColor("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:Color.black,hcLight:"#292929"},localize("textSeparatorForeground","Color for text separators."));textLinkForeground=registerColor("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},localize("textLinkForeground","Foreground color for links in text."));textLinkActiveForeground=registerColor("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},localize("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover."));textPreformatForeground=registerColor("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#D7BA7D",hcLight:"#292929"},localize("textPreformatForeground","Foreground color for preformatted text segments."));textBlockQuoteBackground=registerColor("textBlockQuote.background",{light:"#7f7f7f1a",dark:"#7f7f7f1a",hcDark:null,hcLight:"#F2F2F2"},localize("textBlockQuoteBackground","Background color for block quotes in text."));textBlockQuoteBorder=registerColor("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:Color.white,hcLight:"#292929"},localize("textBlockQuoteBorder","Border color for block quotes in text."));textCodeBlockBackground=registerColor("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:Color.black,hcLight:"#F2F2F2"},localize("textCodeBlockBackground","Background color for code blocks in text."));widgetShadow=registerColor("widget.shadow",{dark:transparent(Color.black,.36),light:transparent(Color.black,.16),hcDark:null,hcLight:null},localize("widgetShadow","Shadow color of widgets such as find/replace inside the editor."));widgetBorder=registerColor("widget.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize("widgetBorder","Border color of widgets such as find/replace inside the editor."));inputBackground=registerColor("input.background",{dark:"#3C3C3C",light:Color.white,hcDark:Color.black,hcLight:Color.white},localize("inputBoxBackground","Input box background."));inputForeground=registerColor("input.foreground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("inputBoxForeground","Input box foreground."));inputBorder=registerColor("input.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize("inputBoxBorder","Input box border."));inputActiveOptionBorder=registerColor("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:contrastBorder,hcLight:contrastBorder},localize("inputBoxActiveOptionBorder","Border color of activated options in input fields."));inputActiveOptionHoverBackground=registerColor("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},localize("inputOption.hoverBackground","Background color of activated options in input fields."));inputActiveOptionBackground=registerColor("inputOption.activeBackground",{dark:transparent(focusBorder,.4),light:transparent(focusBorder,.2),hcDark:Color.transparent,hcLight:Color.transparent},localize("inputOption.activeBackground","Background hover color of options in input fields."));inputActiveOptionForeground=registerColor("inputOption.activeForeground",{dark:Color.white,light:Color.black,hcDark:foreground,hcLight:foreground},localize("inputOption.activeForeground","Foreground color of activated options in input fields."));inputPlaceholderForeground=registerColor("input.placeholderForeground",{light:transparent(foreground,.5),dark:transparent(foreground,.5),hcDark:transparent(foreground,.7),hcLight:transparent(foreground,.7)},localize("inputPlaceholderForeground","Input box foreground color for placeholder text."));inputValidationInfoBackground=registerColor("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:Color.black,hcLight:Color.white},localize("inputValidationInfoBackground","Input validation background color for information severity."));inputValidationInfoForeground=registerColor("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize("inputValidationInfoForeground","Input validation foreground color for information severity."));inputValidationInfoBorder=registerColor("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:contrastBorder,hcLight:contrastBorder},localize("inputValidationInfoBorder","Input validation border color for information severity."));inputValidationWarningBackground=registerColor("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:Color.black,hcLight:Color.white},localize("inputValidationWarningBackground","Input validation background color for warning severity."));inputValidationWarningForeground=registerColor("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize("inputValidationWarningForeground","Input validation foreground color for warning severity."));inputValidationWarningBorder=registerColor("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:contrastBorder,hcLight:contrastBorder},localize("inputValidationWarningBorder","Input validation border color for warning severity."));inputValidationErrorBackground=registerColor("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:Color.black,hcLight:Color.white},localize("inputValidationErrorBackground","Input validation background color for error severity."));inputValidationErrorForeground=registerColor("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize("inputValidationErrorForeground","Input validation foreground color for error severity."));inputValidationErrorBorder=registerColor("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:contrastBorder,hcLight:contrastBorder},localize("inputValidationErrorBorder","Input validation border color for error severity."));selectBackground=registerColor("dropdown.background",{dark:"#3C3C3C",light:Color.white,hcDark:Color.black,hcLight:Color.white},localize("dropdownBackground","Dropdown background."));selectListBackground=registerColor("dropdown.listBackground",{dark:null,light:null,hcDark:Color.black,hcLight:Color.white},localize("dropdownListBackground","Dropdown list background."));selectForeground=registerColor("dropdown.foreground",{dark:"#F0F0F0",light:foreground,hcDark:Color.white,hcLight:foreground},localize("dropdownForeground","Dropdown foreground."));selectBorder=registerColor("dropdown.border",{dark:selectBackground,light:"#CECECE",hcDark:contrastBorder,hcLight:contrastBorder},localize("dropdownBorder","Dropdown border."));buttonForeground=registerColor("button.foreground",{dark:Color.white,light:Color.white,hcDark:Color.white,hcLight:Color.white},localize("buttonForeground","Button foreground color."));buttonSeparator=registerColor("button.separator",{dark:transparent(buttonForeground,.4),light:transparent(buttonForeground,.4),hcDark:transparent(buttonForeground,.4),hcLight:transparent(buttonForeground,.4)},localize("buttonSeparator","Button separator color."));buttonBackground=registerColor("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},localize("buttonBackground","Button background color."));buttonHoverBackground=registerColor("button.hoverBackground",{dark:lighten(buttonBackground,.2),light:darken(buttonBackground,.2),hcDark:buttonBackground,hcLight:buttonBackground},localize("buttonHoverBackground","Button background color when hovering."));buttonBorder=registerColor("button.border",{dark:contrastBorder,light:contrastBorder,hcDark:contrastBorder,hcLight:contrastBorder},localize("buttonBorder","Button border color."));buttonSecondaryForeground=registerColor("button.secondaryForeground",{dark:Color.white,light:Color.white,hcDark:Color.white,hcLight:foreground},localize("buttonSecondaryForeground","Secondary button foreground color."));buttonSecondaryBackground=registerColor("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:Color.white},localize("buttonSecondaryBackground","Secondary button background color."));buttonSecondaryHoverBackground=registerColor("button.secondaryHoverBackground",{dark:lighten(buttonSecondaryBackground,.2),light:darken(buttonSecondaryBackground,.2),hcDark:null,hcLight:null},localize("buttonSecondaryHoverBackground","Secondary button background color when hovering."));badgeBackground=registerColor("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:Color.black,hcLight:"#0F4A85"},localize("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count."));badgeForeground=registerColor("badge.foreground",{dark:Color.white,light:"#333",hcDark:Color.white,hcLight:Color.white},localize("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count."));scrollbarShadow=registerColor("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},localize("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled."));scrollbarSliderBackground=registerColor("scrollbarSlider.background",{dark:Color.fromHex("#797979").transparent(.4),light:Color.fromHex("#646464").transparent(.4),hcDark:transparent(contrastBorder,.6),hcLight:transparent(contrastBorder,.4)},localize("scrollbarSliderBackground","Scrollbar slider background color."));scrollbarSliderHoverBackground=registerColor("scrollbarSlider.hoverBackground",{dark:Color.fromHex("#646464").transparent(.7),light:Color.fromHex("#646464").transparent(.7),hcDark:transparent(contrastBorder,.8),hcLight:transparent(contrastBorder,.8)},localize("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering."));scrollbarSliderActiveBackground=registerColor("scrollbarSlider.activeBackground",{dark:Color.fromHex("#BFBFBF").transparent(.4),light:Color.fromHex("#000000").transparent(.6),hcDark:contrastBorder,hcLight:contrastBorder},localize("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on."));progressBarBackground=registerColor("progressBar.background",{dark:Color.fromHex("#0E70C0"),light:Color.fromHex("#0E70C0"),hcDark:contrastBorder,hcLight:contrastBorder},localize("progressBarBackground","Background color of the progress bar that can show for long running operations."));editorErrorBackground=registerColor("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),true);editorErrorForeground=registerColor("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},localize("editorError.foreground","Foreground color of error squigglies in the editor."));editorErrorBorder=registerColor("editorError.border",{dark:null,light:null,hcDark:Color.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},localize("errorBorder","If set, color of double underlines for errors in the editor."));editorWarningBackground=registerColor("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),true);editorWarningForeground=registerColor("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},localize("editorWarning.foreground","Foreground color of warning squigglies in the editor."));editorWarningBorder=registerColor("editorWarning.border",{dark:null,light:null,hcDark:Color.fromHex("#FFCC00").transparent(.8),hcLight:Color.fromHex("#FFCC00").transparent(.8)},localize("warningBorder","If set, color of double underlines for warnings in the editor."));editorInfoBackground=registerColor("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),true);editorInfoForeground=registerColor("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},localize("editorInfo.foreground","Foreground color of info squigglies in the editor."));editorInfoBorder=registerColor("editorInfo.border",{dark:null,light:null,hcDark:Color.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},localize("infoBorder","If set, color of double underlines for infos in the editor."));editorHintForeground=registerColor("editorHint.foreground",{dark:Color.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},localize("editorHint.foreground","Foreground color of hint squigglies in the editor."));editorHintBorder=registerColor("editorHint.border",{dark:null,light:null,hcDark:Color.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},localize("hintBorder","If set, color of double underlines for hints in the editor."));sashHoverBorder=registerColor("sash.hoverBorder",{dark:focusBorder,light:focusBorder,hcDark:focusBorder,hcLight:focusBorder},localize("sashActiveBorder","Border color of active sashes."));editorBackground=registerColor("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:Color.black,hcLight:Color.white},localize("editorBackground","Editor background color."));editorForeground=registerColor("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:Color.white,hcLight:foreground},localize("editorForeground","Editor default foreground color."));editorStickyScrollBackground=registerColor("editorStickyScroll.background",{light:editorBackground,dark:editorBackground,hcDark:editorBackground,hcLight:editorBackground},localize("editorStickyScrollBackground","Sticky scroll background color for the editor"));editorStickyScrollHoverBackground=registerColor("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize("editorStickyScrollHoverBackground","Sticky scroll on hover background color for the editor"));editorWidgetBackground=registerColor("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:Color.white},localize("editorWidgetBackground","Background color of editor widgets, such as find/replace."));editorWidgetForeground=registerColor("editorWidget.foreground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("editorWidgetForeground","Foreground color of editor widgets, such as find/replace."));editorWidgetBorder=registerColor("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:contrastBorder,hcLight:contrastBorder},localize("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget."));editorWidgetResizeBorder=registerColor("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},localize("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget."));quickInputBackground=registerColor("quickInput.background",{dark:editorWidgetBackground,light:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette."));quickInputForeground=registerColor("quickInput.foreground",{dark:editorWidgetForeground,light:editorWidgetForeground,hcDark:editorWidgetForeground,hcLight:editorWidgetForeground},localize("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette."));quickInputTitleBackground=registerColor("quickInputTitle.background",{dark:new Color(new RGBA(255,255,255,.105)),light:new Color(new RGBA(0,0,0,.06)),hcDark:"#000000",hcLight:Color.white},localize("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette."));pickerGroupForeground=registerColor("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:Color.white,hcLight:"#0F4A85"},localize("pickerGroupForeground","Quick picker color for grouping labels."));pickerGroupBorder=registerColor("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:Color.white,hcLight:"#0F4A85"},localize("pickerGroupBorder","Quick picker color for grouping borders."));keybindingLabelBackground=registerColor("keybindingLabel.background",{dark:new Color(new RGBA(128,128,128,.17)),light:new Color(new RGBA(221,221,221,.4)),hcDark:Color.transparent,hcLight:Color.transparent},localize("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut."));keybindingLabelForeground=registerColor("keybindingLabel.foreground",{dark:Color.fromHex("#CCCCCC"),light:Color.fromHex("#555555"),hcDark:Color.white,hcLight:foreground},localize("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut."));keybindingLabelBorder=registerColor("keybindingLabel.border",{dark:new Color(new RGBA(51,51,51,.6)),light:new Color(new RGBA(204,204,204,.4)),hcDark:new Color(new RGBA(111,195,223)),hcLight:contrastBorder},localize("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut."));keybindingLabelBottomBorder=registerColor("keybindingLabel.bottomBorder",{dark:new Color(new RGBA(68,68,68,.6)),light:new Color(new RGBA(187,187,187,.4)),hcDark:new Color(new RGBA(111,195,223)),hcLight:foreground},localize("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut."));editorSelectionBackground=registerColor("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},localize("editorSelectionBackground","Color of the editor selection."));editorSelectionForeground=registerColor("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:Color.white},localize("editorSelectionForeground","Color of the selected text for high contrast."));editorInactiveSelection=registerColor("editor.inactiveSelectionBackground",{light:transparent(editorSelectionBackground,.5),dark:transparent(editorSelectionBackground,.5),hcDark:transparent(editorSelectionBackground,.7),hcLight:transparent(editorSelectionBackground,.5)},localize("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),true);editorSelectionHighlight=registerColor("editor.selectionHighlightBackground",{light:lessProminent(editorSelectionBackground,editorBackground,.3,.6),dark:lessProminent(editorSelectionBackground,editorBackground,.3,.6),hcDark:null,hcLight:null},localize("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),true);editorSelectionHighlightBorder=registerColor("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("editorSelectionHighlightBorder","Border color for regions with the same content as the selection."));editorFindMatch=registerColor("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},localize("editorFindMatch","Color of the current search match."));editorFindMatchHighlight=registerColor("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},localize("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),true);editorFindRangeHighlight=registerColor("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},localize("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),true);editorFindMatchBorder=registerColor("editor.findMatchBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("editorFindMatchBorder","Border color of the current search match."));editorFindMatchHighlightBorder=registerColor("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("findMatchHighlightBorder","Border color of the other search matches."));editorFindRangeHighlightBorder=registerColor("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:transparent(activeContrastBorder,.4),hcLight:transparent(activeContrastBorder,.4)},localize("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),true);searchEditorFindMatch=registerColor("searchEditor.findMatchBackground",{light:transparent(editorFindMatchHighlight,.66),dark:transparent(editorFindMatchHighlight,.66),hcDark:editorFindMatchHighlight,hcLight:editorFindMatchHighlight},localize("searchEditor.queryMatch","Color of the Search Editor query matches."));searchEditorFindMatchBorder=registerColor("searchEditor.findMatchBorder",{light:transparent(editorFindMatchHighlightBorder,.66),dark:transparent(editorFindMatchHighlightBorder,.66),hcDark:editorFindMatchHighlightBorder,hcLight:editorFindMatchHighlightBorder},localize("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches."));searchResultsInfoForeground=registerColor("search.resultsInfoForeground",{light:foreground,dark:transparent(foreground,.65),hcDark:foreground,hcLight:foreground},localize("search.resultsInfoForeground","Color of the text in the search viewlet's completion message."));editorHoverHighlight=registerColor("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},localize("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),true);editorHoverBackground=registerColor("editorHoverWidget.background",{light:editorWidgetBackground,dark:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("hoverBackground","Background color of the editor hover."));editorHoverForeground=registerColor("editorHoverWidget.foreground",{light:editorWidgetForeground,dark:editorWidgetForeground,hcDark:editorWidgetForeground,hcLight:editorWidgetForeground},localize("hoverForeground","Foreground color of the editor hover."));editorHoverBorder=registerColor("editorHoverWidget.border",{light:editorWidgetBorder,dark:editorWidgetBorder,hcDark:editorWidgetBorder,hcLight:editorWidgetBorder},localize("hoverBorder","Border color of the editor hover."));editorHoverStatusBarBackground=registerColor("editorHoverWidget.statusBarBackground",{dark:lighten(editorHoverBackground,.2),light:darken(editorHoverBackground,.05),hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("statusBarBackground","Background color of the editor hover status bar."));editorActiveLinkForeground=registerColor("editorLink.activeForeground",{dark:"#4E94CE",light:Color.blue,hcDark:Color.cyan,hcLight:"#292929"},localize("activeLinkForeground","Color of active links."));editorInlayHintForeground=registerColor("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:Color.white,hcLight:Color.black},localize("editorInlayHintForeground","Foreground color of inline hints"));editorInlayHintBackground=registerColor("editorInlayHint.background",{dark:transparent(badgeBackground,.1),light:transparent(badgeBackground,.1),hcDark:transparent(Color.white,.1),hcLight:transparent(badgeBackground,.1)},localize("editorInlayHintBackground","Background color of inline hints"));editorInlayHintTypeForeground=registerColor("editorInlayHint.typeForeground",{dark:editorInlayHintForeground,light:editorInlayHintForeground,hcDark:editorInlayHintForeground,hcLight:editorInlayHintForeground},localize("editorInlayHintForegroundTypes","Foreground color of inline hints for types"));editorInlayHintTypeBackground=registerColor("editorInlayHint.typeBackground",{dark:editorInlayHintBackground,light:editorInlayHintBackground,hcDark:editorInlayHintBackground,hcLight:editorInlayHintBackground},localize("editorInlayHintBackgroundTypes","Background color of inline hints for types"));editorInlayHintParameterForeground=registerColor("editorInlayHint.parameterForeground",{dark:editorInlayHintForeground,light:editorInlayHintForeground,hcDark:editorInlayHintForeground,hcLight:editorInlayHintForeground},localize("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters"));editorInlayHintParameterBackground=registerColor("editorInlayHint.parameterBackground",{dark:editorInlayHintBackground,light:editorInlayHintBackground,hcDark:editorInlayHintBackground,hcLight:editorInlayHintBackground},localize("editorInlayHintBackgroundParameter","Background color of inline hints for parameters"));editorLightBulbForeground=registerColor("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},localize("editorLightBulbForeground","The color used for the lightbulb actions icon."));editorLightBulbAutoFixForeground=registerColor("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},localize("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon."));defaultInsertColor=new Color(new RGBA(155,185,85,.2));defaultRemoveColor=new Color(new RGBA(255,0,0,.2));diffInserted=registerColor("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},localize("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),true);diffRemoved=registerColor("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},localize("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),true);diffInsertedLine=registerColor("diffEditor.insertedLineBackground",{dark:defaultInsertColor,light:defaultInsertColor,hcDark:null,hcLight:null},localize("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),true);diffRemovedLine=registerColor("diffEditor.removedLineBackground",{dark:defaultRemoveColor,light:defaultRemoveColor,hcDark:null,hcLight:null},localize("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),true);diffInsertedLineGutter=registerColor("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted."));diffRemovedLineGutter=registerColor("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("diffEditorRemovedLineGutter","Background color for the margin where lines got removed."));diffOverviewRulerInserted=registerColor("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content."));diffOverviewRulerRemoved=registerColor("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content."));diffInsertedOutline=registerColor("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},localize("diffEditorInsertedOutline","Outline color for the text that got inserted."));diffRemovedOutline=registerColor("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},localize("diffEditorRemovedOutline","Outline color for text that got removed."));diffBorder=registerColor("diffEditor.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize("diffEditorBorder","Border color between the two text editors."));diffDiagonalFill=registerColor("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},localize("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views."));diffUnchangedRegionBackground=registerColor("diffEditor.unchangedRegionBackground",{dark:"#3e3e3e",light:"#e4e4e4",hcDark:null,hcLight:null},localize("diffEditor.unchangedRegionBackground","The background color of unchanged blocks in the diff editor."));diffUnchangedRegionForeground=registerColor("diffEditor.unchangedRegionForeground",{dark:"#a3a2a2",light:"#4d4c4c",hcDark:null,hcLight:null},localize("diffEditor.unchangedRegionForeground","The foreground color of unchanged blocks in the diff editor."));diffUnchangedTextBackground=registerColor("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},localize("diffEditor.unchangedCodeBackground","The background color of unchanged code in the diff editor."));listFocusBackground=registerColor("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not."));listFocusForeground=registerColor("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not."));listFocusOutline=registerColor("list.focusOutline",{dark:focusBorder,light:focusBorder,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not."));listFocusAndSelectionOutline=registerColor("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},localize("listFocusAndSelectionOutline","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not."));listActiveSelectionBackground=registerColor("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not."));listActiveSelectionForeground=registerColor("list.activeSelectionForeground",{dark:Color.white,light:Color.white,hcDark:null,hcLight:null},localize("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not."));listActiveSelectionIconForeground=registerColor("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("listActiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not."));listInactiveSelectionBackground=registerColor("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not."));listInactiveSelectionForeground=registerColor("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not."));listInactiveSelectionIconForeground=registerColor("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("listInactiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not."));listInactiveFocusBackground=registerColor("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not."));listInactiveFocusOutline=registerColor("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},localize("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not."));listHoverBackground=registerColor("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:Color.white.transparent(.1),hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize("listHoverBackground","List/Tree background when hovering over items using the mouse."));listHoverForeground=registerColor("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("listHoverForeground","List/Tree foreground when hovering over items using the mouse."));listDropBackground=registerColor("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},localize("listDropBackground","List/Tree drag and drop background when moving items around using the mouse."));listHighlightForeground=registerColor("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:focusBorder,hcLight:focusBorder},localize("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree."));listFocusHighlightForeground=registerColor("list.focusHighlightForeground",{dark:listHighlightForeground,light:ifDefinedThenElse(listActiveSelectionBackground,listHighlightForeground,"#BBE7FF"),hcDark:listHighlightForeground,hcLight:listHighlightForeground},localize("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));listInvalidItemForeground=registerColor("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},localize("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer."));listErrorForeground=registerColor("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},localize("listErrorForeground","Foreground color of list items containing errors."));listWarningForeground=registerColor("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},localize("listWarningForeground","Foreground color of list items containing warnings."));listFilterWidgetBackground=registerColor("listFilterWidget.background",{light:darken(editorWidgetBackground,0),dark:lighten(editorWidgetBackground,0),hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("listFilterWidgetBackground","Background color of the type filter widget in lists and trees."));listFilterWidgetOutline=registerColor("listFilterWidget.outline",{dark:Color.transparent,light:Color.transparent,hcDark:"#f38518",hcLight:"#007ACC"},localize("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees."));listFilterWidgetNoMatchesOutline=registerColor("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:contrastBorder,hcLight:contrastBorder},localize("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches."));listFilterWidgetShadow=registerColor("listFilterWidget.shadow",{dark:widgetShadow,light:widgetShadow,hcDark:widgetShadow,hcLight:widgetShadow},localize("listFilterWidgetShadow","Shadow color of the type filter widget in lists and trees."));listFilterMatchHighlight=registerColor("list.filterMatchBackground",{dark:editorFindMatchHighlight,light:editorFindMatchHighlight,hcDark:null,hcLight:null},localize("listFilterMatchHighlight","Background color of the filtered match."));listFilterMatchHighlightBorder=registerColor("list.filterMatchBorder",{dark:editorFindMatchHighlightBorder,light:editorFindMatchHighlightBorder,hcDark:contrastBorder,hcLight:activeContrastBorder},localize("listFilterMatchHighlightBorder","Border color of the filtered match."));treeIndentGuidesStroke=registerColor("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},localize("treeIndentGuidesStroke","Tree stroke color for the indentation guides."));treeInactiveIndentGuidesStroke=registerColor("tree.inactiveIndentGuidesStroke",{dark:transparent(treeIndentGuidesStroke,.4),light:transparent(treeIndentGuidesStroke,.4),hcDark:transparent(treeIndentGuidesStroke,.4),hcLight:transparent(treeIndentGuidesStroke,.4)},localize("treeInactiveIndentGuidesStroke","Tree stroke color for the indentation guides that are not active."));tableColumnsBorder=registerColor("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},localize("tableColumnsBorder","Table border color between columns."));tableOddRowsBackgroundColor=registerColor("tree.tableOddRowsBackground",{dark:transparent(foreground,.04),light:transparent(foreground,.04),hcDark:null,hcLight:null},localize("tableOddRowsBackgroundColor","Background color for odd table rows."));listDeemphasizedForeground=registerColor("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},localize("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized. "));checkboxBackground=registerColor("checkbox.background",{dark:selectBackground,light:selectBackground,hcDark:selectBackground,hcLight:selectBackground},localize("checkbox.background","Background color of checkbox widget."));checkboxSelectBackground=registerColor("checkbox.selectBackground",{dark:editorWidgetBackground,light:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("checkbox.select.background","Background color of checkbox widget when the element it's in is selected."));checkboxForeground=registerColor("checkbox.foreground",{dark:selectForeground,light:selectForeground,hcDark:selectForeground,hcLight:selectForeground},localize("checkbox.foreground","Foreground color of checkbox widget."));checkboxBorder=registerColor("checkbox.border",{dark:selectBorder,light:selectBorder,hcDark:selectBorder,hcLight:selectBorder},localize("checkbox.border","Border color of checkbox widget."));checkboxSelectBorder=registerColor("checkbox.selectBorder",{dark:iconForeground,light:iconForeground,hcDark:iconForeground,hcLight:iconForeground},localize("checkbox.select.border","Border color of checkbox widget when the element it's in is selected."));_deprecatedQuickInputListFocusBackground=registerColor("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,localize("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead"));quickInputListFocusForeground=registerColor("quickInputList.focusForeground",{dark:listActiveSelectionForeground,light:listActiveSelectionForeground,hcDark:listActiveSelectionForeground,hcLight:listActiveSelectionForeground},localize("quickInput.listFocusForeground","Quick picker foreground color for the focused item."));quickInputListFocusIconForeground=registerColor("quickInputList.focusIconForeground",{dark:listActiveSelectionIconForeground,light:listActiveSelectionIconForeground,hcDark:listActiveSelectionIconForeground,hcLight:listActiveSelectionIconForeground},localize("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item."));quickInputListFocusBackground=registerColor("quickInputList.focusBackground",{dark:oneOf(_deprecatedQuickInputListFocusBackground,listActiveSelectionBackground),light:oneOf(_deprecatedQuickInputListFocusBackground,listActiveSelectionBackground),hcDark:null,hcLight:null},localize("quickInput.listFocusBackground","Quick picker background color for the focused item."));menuBorder=registerColor("menu.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize("menuBorder","Border color of menus."));menuForeground=registerColor("menu.foreground",{dark:selectForeground,light:selectForeground,hcDark:selectForeground,hcLight:selectForeground},localize("menuForeground","Foreground color of menu items."));menuBackground=registerColor("menu.background",{dark:selectBackground,light:selectBackground,hcDark:selectBackground,hcLight:selectBackground},localize("menuBackground","Background color of menu items."));menuSelectionForeground=registerColor("menu.selectionForeground",{dark:listActiveSelectionForeground,light:listActiveSelectionForeground,hcDark:listActiveSelectionForeground,hcLight:listActiveSelectionForeground},localize("menuSelectionForeground","Foreground color of the selected menu item in menus."));menuSelectionBackground=registerColor("menu.selectionBackground",{dark:listActiveSelectionBackground,light:listActiveSelectionBackground,hcDark:listActiveSelectionBackground,hcLight:listActiveSelectionBackground},localize("menuSelectionBackground","Background color of the selected menu item in menus."));menuSelectionBorder=registerColor("menu.selectionBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("menuSelectionBorder","Border color of the selected menu item in menus."));menuSeparatorBackground=registerColor("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:contrastBorder,hcLight:contrastBorder},localize("menuSeparatorBackground","Color of a separator menu item in menus."));toolbarHoverBackground=registerColor("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},localize("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse"));toolbarHoverOutline=registerColor("toolbar.hoverOutline",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse"));toolbarActiveBackground=registerColor("toolbar.activeBackground",{dark:lighten(toolbarHoverBackground,.1),light:darken(toolbarHoverBackground,.1),hcDark:null,hcLight:null},localize("toolbarActiveBackground","Toolbar background when holding the mouse over actions"));snippetTabstopHighlightBackground=registerColor("editor.snippetTabstopHighlightBackground",{dark:new Color(new RGBA(124,124,124,.3)),light:new Color(new RGBA(10,50,100,.2)),hcDark:new Color(new RGBA(124,124,124,.3)),hcLight:new Color(new RGBA(10,50,100,.2))},localize("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop."));snippetTabstopHighlightBorder=registerColor("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},localize("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop."));snippetFinalTabstopHighlightBackground=registerColor("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet."));snippetFinalTabstopHighlightBorder=registerColor("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new Color(new RGBA(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},localize("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet."));breadcrumbsForeground=registerColor("breadcrumb.foreground",{light:transparent(foreground,.8),dark:transparent(foreground,.8),hcDark:transparent(foreground,.8),hcLight:transparent(foreground,.8)},localize("breadcrumbsFocusForeground","Color of focused breadcrumb items."));breadcrumbsBackground=registerColor("breadcrumb.background",{light:editorBackground,dark:editorBackground,hcDark:editorBackground,hcLight:editorBackground},localize("breadcrumbsBackground","Background color of breadcrumb items."));breadcrumbsFocusForeground=registerColor("breadcrumb.focusForeground",{light:darken(foreground,.2),dark:lighten(foreground,.1),hcDark:lighten(foreground,.1),hcLight:lighten(foreground,.1)},localize("breadcrumbsFocusForeground","Color of focused breadcrumb items."));breadcrumbsActiveSelectionForeground=registerColor("breadcrumb.activeSelectionForeground",{light:darken(foreground,.2),dark:lighten(foreground,.1),hcDark:lighten(foreground,.1),hcLight:lighten(foreground,.1)},localize("breadcrumbsSelectedForeground","Color of selected breadcrumb items."));breadcrumbsPickerBackground=registerColor("breadcrumbPicker.background",{light:editorWidgetBackground,dark:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("breadcrumbsSelectedBackground","Background color of breadcrumb item picker."));headerTransparency=.5;currentBaseColor=Color.fromHex("#40C8AE").transparent(headerTransparency);incomingBaseColor=Color.fromHex("#40A6FF").transparent(headerTransparency);commonBaseColor=Color.fromHex("#606060").transparent(.4);contentTransparency=.4;rulerTransparency=1;mergeCurrentHeaderBackground=registerColor("merge.currentHeaderBackground",{dark:currentBaseColor,light:currentBaseColor,hcDark:null,hcLight:null},localize("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),true);mergeCurrentContentBackground=registerColor("merge.currentContentBackground",{dark:transparent(mergeCurrentHeaderBackground,contentTransparency),light:transparent(mergeCurrentHeaderBackground,contentTransparency),hcDark:transparent(mergeCurrentHeaderBackground,contentTransparency),hcLight:transparent(mergeCurrentHeaderBackground,contentTransparency)},localize("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),true);mergeIncomingHeaderBackground=registerColor("merge.incomingHeaderBackground",{dark:incomingBaseColor,light:incomingBaseColor,hcDark:null,hcLight:null},localize("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),true);mergeIncomingContentBackground=registerColor("merge.incomingContentBackground",{dark:transparent(mergeIncomingHeaderBackground,contentTransparency),light:transparent(mergeIncomingHeaderBackground,contentTransparency),hcDark:transparent(mergeIncomingHeaderBackground,contentTransparency),hcLight:transparent(mergeIncomingHeaderBackground,contentTransparency)},localize("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),true);mergeCommonHeaderBackground=registerColor("merge.commonHeaderBackground",{dark:commonBaseColor,light:commonBaseColor,hcDark:null,hcLight:null},localize("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),true);mergeCommonContentBackground=registerColor("merge.commonContentBackground",{dark:transparent(mergeCommonHeaderBackground,contentTransparency),light:transparent(mergeCommonHeaderBackground,contentTransparency),hcDark:transparent(mergeCommonHeaderBackground,contentTransparency),hcLight:transparent(mergeCommonHeaderBackground,contentTransparency)},localize("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),true);mergeBorder=registerColor("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},localize("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."));overviewRulerCurrentContentForeground=registerColor("editorOverviewRuler.currentContentForeground",{dark:transparent(mergeCurrentHeaderBackground,rulerTransparency),light:transparent(mergeCurrentHeaderBackground,rulerTransparency),hcDark:mergeBorder,hcLight:mergeBorder},localize("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts."));overviewRulerIncomingContentForeground=registerColor("editorOverviewRuler.incomingContentForeground",{dark:transparent(mergeIncomingHeaderBackground,rulerTransparency),light:transparent(mergeIncomingHeaderBackground,rulerTransparency),hcDark:mergeBorder,hcLight:mergeBorder},localize("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts."));overviewRulerCommonContentForeground=registerColor("editorOverviewRuler.commonContentForeground",{dark:transparent(mergeCommonHeaderBackground,rulerTransparency),light:transparent(mergeCommonHeaderBackground,rulerTransparency),hcDark:mergeBorder,hcLight:mergeBorder},localize("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts."));overviewRulerFindMatchForeground=registerColor("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},localize("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),true);overviewRulerSelectionHighlightForeground=registerColor("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},localize("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),true);minimapFindMatch=registerColor("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},localize("minimapFindMatchHighlight","Minimap marker color for find matches."),true);minimapSelectionOccurrenceHighlight=registerColor("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},localize("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),true);minimapSelection=registerColor("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},localize("minimapSelectionHighlight","Minimap marker color for the editor selection."),true);minimapError=registerColor("minimap.errorHighlight",{dark:new Color(new RGBA(255,18,18,.7)),light:new Color(new RGBA(255,18,18,.7)),hcDark:new Color(new RGBA(255,50,50,1)),hcLight:"#B5200D"},localize("minimapError","Minimap marker color for errors."));minimapWarning=registerColor("minimap.warningHighlight",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningBorder,hcLight:editorWarningBorder},localize("overviewRuleWarning","Minimap marker color for warnings."));minimapBackground=registerColor("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("minimapBackground","Minimap background color."));minimapForegroundOpacity=registerColor("minimap.foregroundOpacity",{dark:Color.fromHex("#000f"),light:Color.fromHex("#000f"),hcDark:Color.fromHex("#000f"),hcLight:Color.fromHex("#000f")},localize("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.'));minimapSliderBackground=registerColor("minimapSlider.background",{light:transparent(scrollbarSliderBackground,.5),dark:transparent(scrollbarSliderBackground,.5),hcDark:transparent(scrollbarSliderBackground,.5),hcLight:transparent(scrollbarSliderBackground,.5)},localize("minimapSliderBackground","Minimap slider background color."));minimapSliderHoverBackground=registerColor("minimapSlider.hoverBackground",{light:transparent(scrollbarSliderHoverBackground,.5),dark:transparent(scrollbarSliderHoverBackground,.5),hcDark:transparent(scrollbarSliderHoverBackground,.5),hcLight:transparent(scrollbarSliderHoverBackground,.5)},localize("minimapSliderHoverBackground","Minimap slider background color when hovering."));minimapSliderActiveBackground=registerColor("minimapSlider.activeBackground",{light:transparent(scrollbarSliderActiveBackground,.5),dark:transparent(scrollbarSliderActiveBackground,.5),hcDark:transparent(scrollbarSliderActiveBackground,.5),hcLight:transparent(scrollbarSliderActiveBackground,.5)},localize("minimapSliderActiveBackground","Minimap slider background color when clicked on."));problemsErrorIconForeground=registerColor("problemsErrorIcon.foreground",{dark:editorErrorForeground,light:editorErrorForeground,hcDark:editorErrorForeground,hcLight:editorErrorForeground},localize("problemsErrorIconForeground","The color used for the problems error icon."));problemsWarningIconForeground=registerColor("problemsWarningIcon.foreground",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningForeground,hcLight:editorWarningForeground},localize("problemsWarningIconForeground","The color used for the problems warning icon."));problemsInfoIconForeground=registerColor("problemsInfoIcon.foreground",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoForeground,hcLight:editorInfoForeground},localize("problemsInfoIconForeground","The color used for the problems info icon."));chartsForeground=registerColor("charts.foreground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("chartsForeground","The foreground color used in charts."));chartsLines=registerColor("charts.lines",{dark:transparent(foreground,.5),light:transparent(foreground,.5),hcDark:transparent(foreground,.5),hcLight:transparent(foreground,.5)},localize("chartsLines","The color used for horizontal lines in charts."));chartsRed=registerColor("charts.red",{dark:editorErrorForeground,light:editorErrorForeground,hcDark:editorErrorForeground,hcLight:editorErrorForeground},localize("chartsRed","The red color used in chart visualizations."));chartsBlue=registerColor("charts.blue",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoForeground,hcLight:editorInfoForeground},localize("chartsBlue","The blue color used in chart visualizations."));chartsYellow=registerColor("charts.yellow",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningForeground,hcLight:editorWarningForeground},localize("chartsYellow","The yellow color used in chart visualizations."));chartsOrange=registerColor("charts.orange",{dark:minimapFindMatch,light:minimapFindMatch,hcDark:minimapFindMatch,hcLight:minimapFindMatch},localize("chartsOrange","The orange color used in chart visualizations."));chartsGreen=registerColor("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},localize("chartsGreen","The green color used in chart visualizations."));chartsPurple=registerColor("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},localize("chartsPurple","The purple color used in chart visualizations."));workbenchColorsSchemaId="vscode://schemas/workbench-colors";schemaRegistry=Registry.as(Extensions.JSONContribution);schemaRegistry.registerSchema(workbenchColorsSchemaId,colorRegistry.getColorSchema());delayer=new RunOnceScheduler((()=>schemaRegistry.notifySchemaChanged(workbenchColorsSchemaId)),200);colorRegistry.onDidChangeSchema((()=>{if(!delayer.isScheduled()){delayer.schedule()}}))}});function createEditorPagePosition(editorViewDomNode){const editorPos=getDomNodePagePosition(editorViewDomNode);return new EditorPagePosition(editorPos.left,editorPos.top,editorPos.width,editorPos.height)}function createCoordinatesRelativeToEditor(editorViewDomNode,editorPagePosition,pos){const scaleX=editorPagePosition.width/editorViewDomNode.offsetWidth;const scaleY=editorPagePosition.height/editorViewDomNode.offsetHeight;const relativeX=(pos.x-editorPagePosition.x)/scaleX;const relativeY=(pos.y-editorPagePosition.y)/scaleY;return new CoordinatesRelativeToEditor(relativeX,relativeY)}function camelToDashes(str){return str.replace(/(^[A-Z])/,(([first2])=>first2.toLowerCase())).replace(/([A-Z])/g,(([letter])=>`-${letter.toLowerCase()}`))}var PageCoordinates,ClientCoordinates,EditorPagePosition,CoordinatesRelativeToEditor,EditorMouseEvent,EditorMouseEventFactory,EditorPointerEventFactory,GlobalEditorPointerMoveMonitor,DynamicCssRules,RefCountedCssRule;var init_editorDom=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/editorDom.js"(){init_dom();init_globalPointerMoveMonitor();init_mouseEvent();init_async();init_lifecycle();init_colorRegistry();PageCoordinates=class{constructor(x,y){this.x=x;this.y=y;this._pageCoordinatesBrand=void 0}toClientCoordinates(){return new ClientCoordinates(this.x-window.scrollX,this.y-window.scrollY)}};ClientCoordinates=class{constructor(clientX,clientY){this.clientX=clientX;this.clientY=clientY;this._clientCoordinatesBrand=void 0}toPageCoordinates(){return new PageCoordinates(this.clientX+window.scrollX,this.clientY+window.scrollY)}};EditorPagePosition=class{constructor(x,y,width,height){this.x=x;this.y=y;this.width=width;this.height=height;this._editorPagePositionBrand=void 0}};CoordinatesRelativeToEditor=class{constructor(x,y){this.x=x;this.y=y;this._positionRelativeToEditorBrand=void 0}};EditorMouseEvent=class extends StandardMouseEvent{constructor(e,isFromPointerCapture,editorViewDomNode){super(e);this._editorMouseEventBrand=void 0;this.isFromPointerCapture=isFromPointerCapture;this.pos=new PageCoordinates(this.posx,this.posy);this.editorPos=createEditorPagePosition(editorViewDomNode);this.relativePos=createCoordinatesRelativeToEditor(editorViewDomNode,this.editorPos,this.pos)}};EditorMouseEventFactory=class{constructor(editorViewDomNode){this._editorViewDomNode=editorViewDomNode}_create(e){return new EditorMouseEvent(e,false,this._editorViewDomNode)}onContextMenu(target,callback){return addDisposableListener(target,"contextmenu",(e=>{callback(this._create(e))}))}onMouseUp(target,callback){return addDisposableListener(target,"mouseup",(e=>{callback(this._create(e))}))}onMouseDown(target,callback){return addDisposableListener(target,EventType.MOUSE_DOWN,(e=>{callback(this._create(e))}))}onPointerDown(target,callback){return addDisposableListener(target,EventType.POINTER_DOWN,(e=>{callback(this._create(e),e.pointerId)}))}onMouseLeave(target,callback){return addDisposableListener(target,EventType.MOUSE_LEAVE,(e=>{callback(this._create(e))}))}onMouseMove(target,callback){return addDisposableListener(target,"mousemove",(e=>callback(this._create(e))))}};EditorPointerEventFactory=class{constructor(editorViewDomNode){this._editorViewDomNode=editorViewDomNode}_create(e){return new EditorMouseEvent(e,false,this._editorViewDomNode)}onPointerUp(target,callback){return addDisposableListener(target,"pointerup",(e=>{callback(this._create(e))}))}onPointerDown(target,callback){return addDisposableListener(target,EventType.POINTER_DOWN,(e=>{callback(this._create(e),e.pointerId)}))}onPointerLeave(target,callback){return addDisposableListener(target,EventType.POINTER_LEAVE,(e=>{callback(this._create(e))}))}onPointerMove(target,callback){return addDisposableListener(target,"pointermove",(e=>callback(this._create(e))))}};GlobalEditorPointerMoveMonitor=class extends Disposable{constructor(editorViewDomNode){super();this._editorViewDomNode=editorViewDomNode;this._globalPointerMoveMonitor=this._register(new GlobalPointerMoveMonitor);this._keydownListener=null}startMonitoring(initialElement,pointerId,initialButtons,pointerMoveCallback,onStopCallback){this._keydownListener=addStandardDisposableListener(document,"keydown",(e=>{const chord=e.toKeyCodeChord();if(chord.isModifierKey()){return}this._globalPointerMoveMonitor.stopMonitoring(true,e.browserEvent)}),true);this._globalPointerMoveMonitor.startMonitoring(initialElement,pointerId,initialButtons,(e=>{pointerMoveCallback(new EditorMouseEvent(e,true,this._editorViewDomNode))}),(e=>{this._keydownListener.dispose();onStopCallback(e)}))}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(true)}};DynamicCssRules=class{constructor(_editor){this._editor=_editor;this._instanceId=++DynamicCssRules._idPool;this._counter=0;this._rules=new Map;this._garbageCollectionScheduler=new RunOnceScheduler((()=>this.garbageCollect()),1e3)}createClassNameRef(options2){const rule=this.getOrCreateRule(options2);rule.increaseRefCount();return{className:rule.className,dispose:()=>{rule.decreaseRefCount();this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(properties){const key=this.computeUniqueKey(properties);let existingRule=this._rules.get(key);if(!existingRule){const counter=this._counter++;existingRule=new RefCountedCssRule(key,`dyn-rule-${this._instanceId}-${counter}`,isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,properties);this._rules.set(key,existingRule)}return existingRule}computeUniqueKey(properties){return JSON.stringify(properties)}garbageCollect(){for(const rule of this._rules.values()){if(!rule.hasReferences()){this._rules.delete(rule.key);rule.dispose()}}}};DynamicCssRules._idPool=0;RefCountedCssRule=class{constructor(key,className,_containerElement,properties){this.key=key;this.className=className;this.properties=properties;this._referenceCount=0;this._styleElement=createStyleSheet(_containerElement);this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(className,properties){let str=`.${className} {`;for(const prop in properties){const value=properties[prop];let cssValue;if(typeof value==="object"){cssValue=asCssVariable(value.id)}else{cssValue=value}const cssPropName=camelToDashes(prop);str+=`\n\t${cssPropName}: ${cssValue};`}str+=`\n}`;return str}dispose(){this._styleElement.remove()}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}}});var ViewEventHandler;var init_viewEventHandler=__esm({"node_modules/monaco-editor/esm/vs/editor/common/viewEventHandler.js"(){init_lifecycle();ViewEventHandler=class extends Disposable{constructor(){super();this._shouldRender=true}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=true}setShouldRender(){this._shouldRender=true}onDidRender(){this._shouldRender=false}onCompositionStart(e){return false}onCompositionEnd(e){return false}onConfigurationChanged(e){return false}onCursorStateChanged(e){return false}onDecorationsChanged(e){return false}onFlushed(e){return false}onFocusChanged(e){return false}onLanguageConfigurationChanged(e){return false}onLineMappingChanged(e){return false}onLinesChanged(e){return false}onLinesDeleted(e){return false}onLinesInserted(e){return false}onRevealRangeRequest(e){return false}onScrollChanged(e){return false}onThemeChanged(e){return false}onTokensChanged(e){return false}onTokensColorsChanged(e){return false}onZonesChanged(e){return false}handleEvents(events){let shouldRender=false;for(let i=0,len=events.length;i=range2.left){prev.width=Math.max(prev.width,range2.left+range2.width-prev.left)}else{result[resultLen++]=prev;prev=range2}}result[resultLen++]=prev;return result}static _createHorizontalRangesFromClientRects(clientRects,clientRectDeltaLeft,clientRectScale){if(!clientRects||clientRects.length===0){return null}const result=[];for(let i=0,len=clientRects.length;imax){return null}startChildIndex=Math.min(max,Math.max(min,startChildIndex));endChildIndex=Math.min(max,Math.max(min,endChildIndex));if(startChildIndex===endChildIndex&&startOffset===endOffset&&startOffset===0&&!domNode.children[startChildIndex].firstChild){const clientRects2=domNode.children[startChildIndex].getClientRects();context.markDidDomLayout();return this._createHorizontalRangesFromClientRects(clientRects2,context.clientRectDeltaLeft,context.clientRectScale)}if(startChildIndex!==endChildIndex){if(endChildIndex>0&&endOffset===0){endChildIndex--;endOffset=1073741824}}let startElement=domNode.children[startChildIndex].firstChild;let endElement=domNode.children[endChildIndex].firstChild;if(!startElement||!endElement){if(!startElement&&startOffset===0&&startChildIndex>0){startElement=domNode.children[startChildIndex-1].firstChild;startOffset=1073741824}if(!endElement&&endOffset===0&&endChildIndex>0){endElement=domNode.children[endChildIndex-1].firstChild;endOffset=1073741824}}if(!startElement||!endElement){return null}startOffset=Math.min(startElement.textContent.length,Math.max(0,startOffset));endOffset=Math.min(endElement.textContent.length,Math.max(0,endOffset));const clientRects=this._readClientRects(startElement,startOffset,endElement,endOffset,context.endNode);context.markDidDomLayout();return this._createHorizontalRangesFromClientRects(clientRects,context.clientRectDeltaLeft,context.clientRectScale)}}}});function isHighContrast(scheme){return scheme===ColorScheme.HIGH_CONTRAST_DARK||scheme===ColorScheme.HIGH_CONTRAST_LIGHT}function isDark(scheme){return scheme===ColorScheme.DARK||scheme===ColorScheme.HIGH_CONTRAST_DARK}var ColorScheme;var init_theme=__esm({"node_modules/monaco-editor/esm/vs/platform/theme/common/theme.js"(){(function(ColorScheme2){ColorScheme2["DARK"]="dark";ColorScheme2["LIGHT"]="light";ColorScheme2["HIGH_CONTRAST_DARK"]="hcDark";ColorScheme2["HIGH_CONTRAST_LIGHT"]="hcLight"})(ColorScheme||(ColorScheme={}))}});function createWebKitRenderedLine(domNode,renderLineInput,characterMapping,containsRTL2,containsForeignElements){return new WebKitRenderedViewLine(domNode,renderLineInput,characterMapping,containsRTL2,containsForeignElements)}function createNormalRenderedLine(domNode,renderLineInput,characterMapping,containsRTL2,containsForeignElements){return new RenderedViewLine(domNode,renderLineInput,characterMapping,containsRTL2,containsForeignElements)}function getColumnOfNodeOffset(characterMapping,spanNode,offset){const spanNodeTextContentLength=spanNode.textContent.length;let spanIndex=-1;while(spanNode){spanNode=spanNode.previousSibling;spanIndex++}return characterMapping.getColumn(new DomPosition(spanIndex,offset),spanNodeTextContentLength)}var canUseFastRenderedViewLine,monospaceAssumptionsAreValid,ViewLineOptions,ViewLine,FastRenderedViewLine,RenderedViewLine,WebKitRenderedViewLine,createRenderedLine;var init_viewLine=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/viewLine.js"(){init_browser();init_fastDomNode();init_platform();init_rangeUtil();init_renderingContext();init_lineDecorations();init_viewLineRenderer();init_theme();init_editorOptions();canUseFastRenderedViewLine=function(){if(isNative){return true}if(isLinux||isFirefox2||isSafari2){return false}return true}();monospaceAssumptionsAreValid=true;ViewLineOptions=class{constructor(config,themeType){this.themeType=themeType;const options2=config.options;const fontInfo=options2.get(49);const experimentalWhitespaceRendering=options2.get(37);if(experimentalWhitespaceRendering==="off"){this.renderWhitespace=options2.get(97)}else{this.renderWhitespace="none"}this.renderControlCharacters=options2.get(92);this.spaceWidth=fontInfo.spaceWidth;this.middotWidth=fontInfo.middotWidth;this.wsmiddotWidth=fontInfo.wsmiddotWidth;this.useMonospaceOptimizations=fontInfo.isMonospace&&!options2.get(32);this.canUseHalfwidthRightwardsArrow=fontInfo.canUseHalfwidthRightwardsArrow;this.lineHeight=options2.get(65);this.stopRenderingLineAfter=options2.get(115);this.fontLigatures=options2.get(50)}equals(other){return this.themeType===other.themeType&&this.renderWhitespace===other.renderWhitespace&&this.renderControlCharacters===other.renderControlCharacters&&this.spaceWidth===other.spaceWidth&&this.middotWidth===other.middotWidth&&this.wsmiddotWidth===other.wsmiddotWidth&&this.useMonospaceOptimizations===other.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===other.canUseHalfwidthRightwardsArrow&&this.lineHeight===other.lineHeight&&this.stopRenderingLineAfter===other.stopRenderingLineAfter&&this.fontLigatures===other.fontLigatures}};ViewLine=class{constructor(options2){this._options=options2;this._isMaybeInvalid=true;this._renderedViewLine=null}getDomNode(){if(this._renderedViewLine&&this._renderedViewLine.domNode){return this._renderedViewLine.domNode.domNode}return null}setDomNode(domNode){if(this._renderedViewLine){this._renderedViewLine.domNode=createFastDomNode(domNode)}else{throw new Error("I have no rendered view line to set the dom node to...")}}onContentChanged(){this._isMaybeInvalid=true}onTokensChanged(){this._isMaybeInvalid=true}onDecorationsChanged(){this._isMaybeInvalid=true}onOptionsChanged(newOptions){this._isMaybeInvalid=true;this._options=newOptions}onSelectionChanged(){if(isHighContrast(this._options.themeType)||this._options.renderWhitespace==="selection"){this._isMaybeInvalid=true;return true}return false}renderLine(lineNumber,deltaTop,viewportData,sb){if(this._isMaybeInvalid===false){return false}this._isMaybeInvalid=false;const lineData=viewportData.getViewLineRenderingData(lineNumber);const options2=this._options;const actualInlineDecorations=LineDecoration.filter(lineData.inlineDecorations,lineNumber,lineData.minColumn,lineData.maxColumn);let selectionsOnLine=null;if(isHighContrast(options2.themeType)||this._options.renderWhitespace==="selection"){const selections=viewportData.selections;for(const selection of selections){if(selection.endLineNumberlineNumber){continue}const startColumn=selection.startLineNumber===lineNumber?selection.startColumn:lineData.minColumn;const endColumn=selection.endLineNumber===lineNumber?selection.endColumn:lineData.maxColumn;if(startColumn');const output=renderViewLine(renderLineInput,sb);sb.appendString("");let renderedViewLine=null;if(monospaceAssumptionsAreValid&&canUseFastRenderedViewLine&&lineData.isBasicASCII&&options2.useMonospaceOptimizations&&output.containsForeignElements===0){renderedViewLine=new FastRenderedViewLine(this._renderedViewLine?this._renderedViewLine.domNode:null,renderLineInput,output.characterMapping)}if(!renderedViewLine){renderedViewLine=createRenderedLine(this._renderedViewLine?this._renderedViewLine.domNode:null,renderLineInput,output.characterMapping,output.containsRTL,output.containsForeignElements)}this._renderedViewLine=renderedViewLine;return true}layoutLine(lineNumber,deltaTop){if(this._renderedViewLine&&this._renderedViewLine.domNode){this._renderedViewLine.domNode.setTop(deltaTop);this._renderedViewLine.domNode.setHeight(this._options.lineHeight)}}getWidth(context){if(!this._renderedViewLine){return 0}return this._renderedViewLine.getWidth(context)}getWidthIsFast(){if(!this._renderedViewLine){return true}return this._renderedViewLine.getWidthIsFast()}needsMonospaceFontCheck(){if(!this._renderedViewLine){return false}return this._renderedViewLine instanceof FastRenderedViewLine}monospaceAssumptionsAreValid(){if(!this._renderedViewLine){return monospaceAssumptionsAreValid}if(this._renderedViewLine instanceof FastRenderedViewLine){return this._renderedViewLine.monospaceAssumptionsAreValid()}return monospaceAssumptionsAreValid}onMonospaceAssumptionsInvalidated(){if(this._renderedViewLine&&this._renderedViewLine instanceof FastRenderedViewLine){this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine()}}getVisibleRangesForRange(lineNumber,startColumn,endColumn,context){if(!this._renderedViewLine){return null}startColumn=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,startColumn));endColumn=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,endColumn));const stopRenderingLineAfter=this._renderedViewLine.input.stopRenderingLineAfter;if(stopRenderingLineAfter!==-1&&startColumn>stopRenderingLineAfter+1&&endColumn>stopRenderingLineAfter+1){return new VisibleRanges(true,[new FloatHorizontalRange(this.getWidth(context),0)])}if(stopRenderingLineAfter!==-1&&startColumn>stopRenderingLineAfter+1){startColumn=stopRenderingLineAfter+1}if(stopRenderingLineAfter!==-1&&endColumn>stopRenderingLineAfter+1){endColumn=stopRenderingLineAfter+1}const horizontalRanges=this._renderedViewLine.getVisibleRangesForRange(lineNumber,startColumn,endColumn,context);if(horizontalRanges&&horizontalRanges.length>0){return new VisibleRanges(false,horizontalRanges)}return null}getColumnOfNodeOffset(spanNode,offset){if(!this._renderedViewLine){return 1}return this._renderedViewLine.getColumnOfNodeOffset(spanNode,offset)}};ViewLine.CLASS_NAME="view-line";FastRenderedViewLine=class{constructor(domNode,renderLineInput,characterMapping){this._cachedWidth=-1;this.domNode=domNode;this.input=renderLineInput;const keyColumnCount=Math.floor(renderLineInput.lineContent.length/300);if(keyColumnCount>0){this._keyColumnPixelOffsetCache=new Float32Array(keyColumnCount);for(let i=0;i=2){console.warn(`monospace assumptions have been violated, therefore disabling monospace optimizations!`);monospaceAssumptionsAreValid=false}}return monospaceAssumptionsAreValid}toSlowRenderedLine(){return createRenderedLine(this.domNode,this.input,this._characterMapping,false,0)}getVisibleRangesForRange(lineNumber,startColumn,endColumn,context){const startPosition=this._getColumnPixelOffset(lineNumber,startColumn,context);const endPosition=this._getColumnPixelOffset(lineNumber,endColumn,context);return[new FloatHorizontalRange(startPosition,endPosition-startPosition)]}_getColumnPixelOffset(lineNumber,column,context){if(column<=300){const horizontalOffset2=this._characterMapping.getHorizontalOffset(column);return this._charWidth*horizontalOffset2}const keyColumnOrdinal=Math.floor((column-1)/300)-1;const keyColumn=(keyColumnOrdinal+1)*300+1;let keyColumnPixelOffset=-1;if(this._keyColumnPixelOffsetCache){keyColumnPixelOffset=this._keyColumnPixelOffsetCache[keyColumnOrdinal];if(keyColumnPixelOffset===-1){keyColumnPixelOffset=this._actualReadPixelOffset(lineNumber,keyColumn,context);this._keyColumnPixelOffsetCache[keyColumnOrdinal]=keyColumnPixelOffset}}if(keyColumnPixelOffset===-1){const horizontalOffset2=this._characterMapping.getHorizontalOffset(column);return this._charWidth*horizontalOffset2}const keyColumnHorizontalOffset=this._characterMapping.getHorizontalOffset(keyColumn);const horizontalOffset=this._characterMapping.getHorizontalOffset(column);return keyColumnPixelOffset+this._charWidth*(horizontalOffset-keyColumnHorizontalOffset)}_getReadingTarget(myDomNode){return myDomNode.domNode.firstChild}_actualReadPixelOffset(lineNumber,column,context){if(!this.domNode){return-1}const domPosition=this._characterMapping.getDomPosition(column);const r=RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode),domPosition.partIndex,domPosition.charIndex,domPosition.partIndex,domPosition.charIndex,context);if(!r||r.length===0){return-1}return r[0].left}getColumnOfNodeOffset(spanNode,offset){return getColumnOfNodeOffset(this._characterMapping,spanNode,offset)}};RenderedViewLine=class{constructor(domNode,renderLineInput,characterMapping,containsRTL2,containsForeignElements){this.domNode=domNode;this.input=renderLineInput;this._characterMapping=characterMapping;this._isWhitespaceOnly=/^\s*$/.test(renderLineInput.lineContent);this._containsForeignElements=containsForeignElements;this._cachedWidth=-1;this._pixelOffsetCache=null;if(!containsRTL2||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let column=0,len=this._characterMapping.length;column<=len;column++){this._pixelOffsetCache[column]=-1}}}_getReadingTarget(myDomNode){return myDomNode.domNode.firstChild}getWidth(context){if(!this.domNode){return 0}if(this._cachedWidth===-1){this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth;context===null||context===void 0?void 0:context.markDidDomLayout()}return this._cachedWidth}getWidthIsFast(){if(this._cachedWidth===-1){return false}return true}getVisibleRangesForRange(lineNumber,startColumn,endColumn,context){if(!this.domNode){return null}if(this._pixelOffsetCache!==null){const startOffset=this._readPixelOffset(this.domNode,lineNumber,startColumn,context);if(startOffset===-1){return null}const endOffset=this._readPixelOffset(this.domNode,lineNumber,endColumn,context);if(endOffset===-1){return null}return[new FloatHorizontalRange(startOffset,endOffset-startOffset)]}return this._readVisibleRangesForRange(this.domNode,lineNumber,startColumn,endColumn,context)}_readVisibleRangesForRange(domNode,lineNumber,startColumn,endColumn,context){if(startColumn===endColumn){const pixelOffset=this._readPixelOffset(domNode,lineNumber,startColumn,context);if(pixelOffset===-1){return null}else{return[new FloatHorizontalRange(pixelOffset,0)]}}else{return this._readRawVisibleRangesForRange(domNode,startColumn,endColumn,context)}}_readPixelOffset(domNode,lineNumber,column,context){if(this._characterMapping.length===0){if(this._containsForeignElements===0){return 0}if(this._containsForeignElements===2){return 0}if(this._containsForeignElements===1){return this.getWidth(context)}const readingTarget=this._getReadingTarget(domNode);if(readingTarget.firstChild){context.markDidDomLayout();return readingTarget.firstChild.offsetWidth}else{return 0}}if(this._pixelOffsetCache!==null){const cachedPixelOffset=this._pixelOffsetCache[column];if(cachedPixelOffset!==-1){return cachedPixelOffset}const result=this._actualReadPixelOffset(domNode,lineNumber,column,context);this._pixelOffsetCache[column]=result;return result}return this._actualReadPixelOffset(domNode,lineNumber,column,context)}_actualReadPixelOffset(domNode,lineNumber,column,context){if(this._characterMapping.length===0){const r2=RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode),0,0,0,0,context);if(!r2||r2.length===0){return-1}return r2[0].left}if(column===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0){return this.getWidth(context)}const domPosition=this._characterMapping.getDomPosition(column);const r=RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode),domPosition.partIndex,domPosition.charIndex,domPosition.partIndex,domPosition.charIndex,context);if(!r||r.length===0){return-1}const result=r[0].left;if(this.input.isBasicASCII){const horizontalOffset=this._characterMapping.getHorizontalOffset(column);const expectedResult=Math.round(this.input.spaceWidth*horizontalOffset);if(Math.abs(expectedResult-result)<=1){return expectedResult}}return result}_readRawVisibleRangesForRange(domNode,startColumn,endColumn,context){if(startColumn===1&&endColumn===this._characterMapping.length){return[new FloatHorizontalRange(0,this.getWidth(context))]}const startDomPosition=this._characterMapping.getDomPosition(startColumn);const endDomPosition=this._characterMapping.getDomPosition(endColumn);return RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode),startDomPosition.partIndex,startDomPosition.charIndex,endDomPosition.partIndex,endDomPosition.charIndex,context)}getColumnOfNodeOffset(spanNode,offset){return getColumnOfNodeOffset(this._characterMapping,spanNode,offset)}};WebKitRenderedViewLine=class extends RenderedViewLine{_readVisibleRangesForRange(domNode,lineNumber,startColumn,endColumn,context){const output=super._readVisibleRangesForRange(domNode,lineNumber,startColumn,endColumn,context);if(!output||output.length===0||startColumn===endColumn||startColumn===1&&endColumn===this._characterMapping.length){return output}if(!this.input.containsRTL){const endPixelOffset=this._readPixelOffset(domNode,lineNumber,endColumn,context);if(endPixelOffset!==-1){const lastRange=output[output.length-1];if(lastRange.left=visibleColumn){const beforeDelta=visibleColumn-beforeVisibleColumn;const afterDelta=afterVisibleColumn-visibleColumn;if(afterDeltarect.left+rect.width){offset=text2.length}else{const charWidthReader=CharWidthReader.getInstance();for(let i=0;i=4&&path[0]===3&&path[3]===7}static isStrictChildOfViewLines(path){return path.length>4&&path[0]===3&&path[3]===7}static isChildOfScrollableElement(path){return path.length>=2&&path[0]===3&&path[1]===5}static isChildOfMinimap(path){return path.length>=2&&path[0]===3&&path[1]===8}static isChildOfContentWidgets(path){return path.length>=4&&path[0]===3&&path[3]===1}static isChildOfOverflowGuard(path){return path.length>=1&&path[0]===3}static isChildOfOverflowingContentWidgets(path){return path.length>=1&&path[0]===2}static isChildOfOverlayWidgets(path){return path.length>=2&&path[0]===3&&path[1]===4}};HitTestContext=class{constructor(context,viewHelper,lastRenderData){this.viewModel=context.viewModel;const options2=context.configuration.options;this.layoutInfo=options2.get(142);this.viewDomNode=viewHelper.viewDomNode;this.lineHeight=options2.get(65);this.stickyTabStops=options2.get(114);this.typicalHalfwidthCharacterWidth=options2.get(49).typicalHalfwidthCharacterWidth;this.lastRenderData=lastRenderData;this._context=context;this._viewHelper=viewHelper}getZoneAtCoord(mouseVerticalOffset){return HitTestContext.getZoneAtCoord(this._context,mouseVerticalOffset)}static getZoneAtCoord(context,mouseVerticalOffset){const viewZoneWhitespace=context.viewLayout.getWhitespaceAtVerticalOffset(mouseVerticalOffset);if(viewZoneWhitespace){const viewZoneMiddle=viewZoneWhitespace.verticalOffset+viewZoneWhitespace.height/2;const lineCount=context.viewModel.getLineCount();let positionBefore=null;let position;let positionAfter=null;if(viewZoneWhitespace.afterLineNumber!==lineCount){positionAfter=new Position(viewZoneWhitespace.afterLineNumber+1,1)}if(viewZoneWhitespace.afterLineNumber>0){positionBefore=new Position(viewZoneWhitespace.afterLineNumber,context.viewModel.getLineMaxColumn(viewZoneWhitespace.afterLineNumber))}if(positionAfter===null){position=positionBefore}else if(positionBefore===null){position=positionAfter}else if(mouseVerticalOffset=ctx.layoutInfo.glyphMarginLeft;this.isInContentArea=!this.isInMarginArea;this.mouseColumn=Math.max(0,MouseTargetFactory._getMouseColumn(this.mouseContentHorizontalOffset,ctx.typicalHalfwidthCharacterWidth))}};HitTestRequest=class extends BareHitTestRequest{constructor(ctx,editorPos,pos,relativePos,target){super(ctx,editorPos,pos,relativePos);this._ctx=ctx;if(target){this.target=target;this.targetPath=PartFingerprints.collect(target,ctx.viewDomNode)}else{this.target=null;this.targetPath=new Uint8Array(0)}}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\n\ttarget: ${this.target?this.target.outerHTML:null}`}_getMouseColumn(position=null){if(position&&position.columnd.contentLeft+d.width){continue}const cursorVerticalOffset=ctx.getVerticalOffsetForLineNumber(d.position.lineNumber);if(cursorVerticalOffset<=mouseVerticalOffset&&mouseVerticalOffset<=cursorVerticalOffset+d.height){return request.fulfillContentText(d.position,null,{mightBeForeignElement:false,injectedText:null})}}}return null}static _hitTestViewZone(ctx,request){const viewZoneData=ctx.getZoneAtCoord(request.mouseVerticalOffset);if(viewZoneData){const mouseTargetType=request.isInContentArea?8:5;return request.fulfillViewZone(mouseTargetType,viewZoneData.position,viewZoneData)}return null}static _hitTestTextArea(ctx,request){if(ElementPath.isTextArea(request.targetPath)){if(ctx.lastRenderData.lastTextareaPosition){return request.fulfillContentText(ctx.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:false,injectedText:null})}return request.fulfillTextarea()}return null}static _hitTestMargin(ctx,request){if(request.isInMarginArea){const res=ctx.getFullLineRangeAtCoord(request.mouseVerticalOffset);const pos=res.range.getStartPosition();let offset=Math.abs(request.relativePos.x);const detail={isAfterLines:res.isAfterLines,glyphMarginLeft:ctx.layoutInfo.glyphMarginLeft,glyphMarginWidth:ctx.layoutInfo.glyphMarginWidth,lineNumbersWidth:ctx.layoutInfo.lineNumbersWidth,offsetX:offset};offset-=ctx.layoutInfo.glyphMarginLeft;if(offset<=ctx.layoutInfo.glyphMarginWidth){return request.fulfillMargin(2,pos,res.range,detail)}offset-=ctx.layoutInfo.glyphMarginWidth;if(offset<=ctx.layoutInfo.lineNumbersWidth){return request.fulfillMargin(3,pos,res.range,detail)}offset-=ctx.layoutInfo.lineNumbersWidth;return request.fulfillMargin(4,pos,res.range,detail)}return null}static _hitTestViewLines(ctx,request,domHitTestExecuted){if(!ElementPath.isChildOfViewLines(request.targetPath)){return null}if(ctx.isInTopPadding(request.mouseVerticalOffset)){return request.fulfillContentEmpty(new Position(1,1),EMPTY_CONTENT_AFTER_LINES)}if(ctx.isAfterLines(request.mouseVerticalOffset)||ctx.isInBottomPadding(request.mouseVerticalOffset)){const lineCount=ctx.viewModel.getLineCount();const maxLineColumn=ctx.viewModel.getLineMaxColumn(lineCount);return request.fulfillContentEmpty(new Position(lineCount,maxLineColumn),EMPTY_CONTENT_AFTER_LINES)}if(domHitTestExecuted){if(ElementPath.isStrictChildOfViewLines(request.targetPath)){const lineNumber=ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);if(ctx.viewModel.getLineLength(lineNumber)===0){const lineWidth2=ctx.getLineWidth(lineNumber);const detail=createEmptyContentDataInLines(request.mouseContentHorizontalOffset-lineWidth2);return request.fulfillContentEmpty(new Position(lineNumber,1),detail)}const lineWidth=ctx.getLineWidth(lineNumber);if(request.mouseContentHorizontalOffset>=lineWidth){const detail=createEmptyContentDataInLines(request.mouseContentHorizontalOffset-lineWidth);const pos=new Position(lineNumber,ctx.viewModel.getLineMaxColumn(lineNumber));return request.fulfillContentEmpty(pos,detail)}}return request.fulfillUnknown()}const hitTestResult=MouseTargetFactory._doHitTest(ctx,request);if(hitTestResult.type===1){return MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx,request,hitTestResult.spanNode,hitTestResult.position,hitTestResult.injectedText)}return this._createMouseTarget(ctx,request.withTarget(hitTestResult.hitTarget),true)}static _hitTestMinimap(ctx,request){if(ElementPath.isChildOfMinimap(request.targetPath)){const possibleLineNumber=ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);const maxColumn=ctx.viewModel.getLineMaxColumn(possibleLineNumber);return request.fulfillScrollbar(new Position(possibleLineNumber,maxColumn))}return null}static _hitTestScrollbarSlider(ctx,request){if(ElementPath.isChildOfScrollableElement(request.targetPath)){if(request.target&&request.target.nodeType===1){const className=request.target.className;if(className&&/\b(slider|scrollbar)\b/.test(className)){const possibleLineNumber=ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);const maxColumn=ctx.viewModel.getLineMaxColumn(possibleLineNumber);return request.fulfillScrollbar(new Position(possibleLineNumber,maxColumn))}}}return null}static _hitTestScrollbar(ctx,request){if(ElementPath.isChildOfScrollableElement(request.targetPath)){const possibleLineNumber=ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);const maxColumn=ctx.viewModel.getLineMaxColumn(possibleLineNumber);return request.fulfillScrollbar(new Position(possibleLineNumber,maxColumn))}return null}getMouseColumn(relativePos){const options2=this._context.configuration.options;const layoutInfo=options2.get(142);const mouseContentHorizontalOffset=this._context.viewLayout.getCurrentScrollLeft()+relativePos.x-layoutInfo.contentLeft;return MouseTargetFactory._getMouseColumn(mouseContentHorizontalOffset,options2.get(49).typicalHalfwidthCharacterWidth)}static _getMouseColumn(mouseContentHorizontalOffset,typicalHalfwidthCharacterWidth){if(mouseContentHorizontalOffset<0){return 1}const chars=Math.round(mouseContentHorizontalOffset/typicalHalfwidthCharacterWidth);return chars+1}static createMouseTargetFromHitTestPosition(ctx,request,spanNode,pos,injectedText){const lineNumber=pos.lineNumber;const column=pos.column;const lineWidth=ctx.getLineWidth(lineNumber);if(request.mouseContentHorizontalOffset>lineWidth){const detail=createEmptyContentDataInLines(request.mouseContentHorizontalOffset-lineWidth);return request.fulfillContentEmpty(pos,detail)}const visibleRange=ctx.visibleRangeForPosition(lineNumber,column);if(!visibleRange){return request.fulfillUnknown(pos)}const columnHorizontalOffset=visibleRange.left;if(Math.abs(request.mouseContentHorizontalOffset-columnHorizontalOffset)<1){return request.fulfillContentText(pos,null,{mightBeForeignElement:!!injectedText,injectedText:injectedText})}const points=[];points.push({offset:visibleRange.left,column:column});if(column>1){const visibleRange2=ctx.visibleRangeForPosition(lineNumber,column-1);if(visibleRange2){points.push({offset:visibleRange2.left,column:column-1})}}const lineMaxColumn=ctx.viewModel.getLineMaxColumn(lineNumber);if(columna.offset-b.offset));const mouseCoordinates=request.pos.toClientCoordinates();const spanNodeClientRect=spanNode.getBoundingClientRect();const mouseIsOverSpanNode=spanNodeClientRect.left<=mouseCoordinates.clientX&&mouseCoordinates.clientX<=spanNodeClientRect.right;let rng=null;for(let i=1;ilineEndVerticalOffset;if(!isBelowLastLine){const lineCenteredVerticalOffset=Math.floor((lineStartVerticalOffset+lineEndVerticalOffset)/2);let adjustedPageY=request.pos.y+(lineCenteredVerticalOffset-request.mouseVerticalOffset);if(adjustedPageY<=request.editorPos.y){adjustedPageY=request.editorPos.y+1}if(adjustedPageY>=request.editorPos.y+request.editorPos.height){adjustedPageY=request.editorPos.y+request.editorPos.height-1}const adjustedPage=new PageCoordinates(request.pos.x,adjustedPageY);const r=this._actualDoHitTestWithCaretRangeFromPoint(ctx,adjustedPage.toClientCoordinates());if(r.type===1){return r}}return this._actualDoHitTestWithCaretRangeFromPoint(ctx,request.pos.toClientCoordinates())}static _actualDoHitTestWithCaretRangeFromPoint(ctx,coords){const shadowRoot=getShadowRoot(ctx.viewDomNode);let range2;if(shadowRoot){if(typeof shadowRoot.caretRangeFromPoint==="undefined"){range2=shadowCaretRangeFromPoint(shadowRoot,coords.clientX,coords.clientY)}else{range2=shadowRoot.caretRangeFromPoint(coords.clientX,coords.clientY)}}else{range2=document.caretRangeFromPoint(coords.clientX,coords.clientY)}if(!range2||!range2.startContainer){return new UnknownHitTestResult}const startContainer=range2.startContainer;if(startContainer.nodeType===startContainer.TEXT_NODE){const parent1=startContainer.parentNode;const parent2=parent1?parent1.parentNode:null;const parent3=parent2?parent2.parentNode:null;const parent3ClassName=parent3&&parent3.nodeType===parent3.ELEMENT_NODE?parent3.className:null;if(parent3ClassName===ViewLine.CLASS_NAME){return HitTestResult.createFromDOMInfo(ctx,parent1,range2.startOffset)}else{return new UnknownHitTestResult(startContainer.parentNode)}}else if(startContainer.nodeType===startContainer.ELEMENT_NODE){const parent1=startContainer.parentNode;const parent2=parent1?parent1.parentNode:null;const parent2ClassName=parent2&&parent2.nodeType===parent2.ELEMENT_NODE?parent2.className:null;if(parent2ClassName===ViewLine.CLASS_NAME){return HitTestResult.createFromDOMInfo(ctx,startContainer,startContainer.textContent.length)}else{return new UnknownHitTestResult(startContainer)}}return new UnknownHitTestResult}static _doHitTestWithCaretPositionFromPoint(ctx,coords){const hitResult=document.caretPositionFromPoint(coords.clientX,coords.clientY);if(hitResult.offsetNode.nodeType===hitResult.offsetNode.TEXT_NODE){const parent1=hitResult.offsetNode.parentNode;const parent2=parent1?parent1.parentNode:null;const parent3=parent2?parent2.parentNode:null;const parent3ClassName=parent3&&parent3.nodeType===parent3.ELEMENT_NODE?parent3.className:null;if(parent3ClassName===ViewLine.CLASS_NAME){return HitTestResult.createFromDOMInfo(ctx,hitResult.offsetNode.parentNode,hitResult.offset)}else{return new UnknownHitTestResult(hitResult.offsetNode.parentNode)}}if(hitResult.offsetNode.nodeType===hitResult.offsetNode.ELEMENT_NODE){const parent1=hitResult.offsetNode.parentNode;const parent1ClassName=parent1&&parent1.nodeType===parent1.ELEMENT_NODE?parent1.className:null;const parent2=parent1?parent1.parentNode:null;const parent2ClassName=parent2&&parent2.nodeType===parent2.ELEMENT_NODE?parent2.className:null;if(parent1ClassName===ViewLine.CLASS_NAME){const tokenSpan=hitResult.offsetNode.childNodes[Math.min(hitResult.offset,hitResult.offsetNode.childNodes.length-1)];if(tokenSpan){return HitTestResult.createFromDOMInfo(ctx,tokenSpan,0)}}else if(parent2ClassName===ViewLine.CLASS_NAME){return HitTestResult.createFromDOMInfo(ctx,hitResult.offsetNode,0)}}return new UnknownHitTestResult(hitResult.offsetNode)}static _snapToSoftTabBoundary(position,viewModel){const lineContent=viewModel.getLineContent(position.lineNumber);const{tabSize:tabSize}=viewModel.model.getOptions();const newPosition=AtomicTabMoveOperations.atomicPosition(lineContent,position.column-1,tabSize,2);if(newPosition!==-1){return new Position(position.lineNumber,newPosition+1)}return position}static _doHitTest(ctx,request){let result=new UnknownHitTestResult;if(typeof document.caretRangeFromPoint==="function"){result=this._doHitTestWithCaretRangeFromPoint(ctx,request)}else if(document.caretPositionFromPoint){result=this._doHitTestWithCaretPositionFromPoint(ctx,request.pos.toClientCoordinates())}if(result.type===1){const injectedText=ctx.viewModel.getInjectedTextAt(result.position);const normalizedPosition=ctx.viewModel.normalizePosition(result.position,2);if(injectedText||!normalizedPosition.equals(result.position)){result=new ContentHitTestResult(normalizedPosition,result.spanNode,injectedText)}}return result}};CharWidthReader=class{static getInstance(){if(!CharWidthReader._INSTANCE){CharWidthReader._INSTANCE=new CharWidthReader}return CharWidthReader._INSTANCE}constructor(){this._cache={};this._canvas=document.createElement("canvas")}getCharWidth(char,font){const cacheKey=char+font;if(this._cache[cacheKey]){return this._cache[cacheKey]}const context=this._canvas.getContext("2d");context.font=font;const metrics=context.measureText(char);const width=metrics.width;this._cache[cacheKey]=width;return width}};CharWidthReader._INSTANCE=null}});var Widget;var init_widget=__esm({"node_modules/monaco-editor/esm/vs/base/browser/ui/widget.js"(){init_dom();init_keyboardEvent();init_mouseEvent();init_touch();init_lifecycle();Widget=class extends Disposable{onclick(domNode,listener){this._register(addDisposableListener(domNode,EventType.CLICK,(e=>listener(new StandardMouseEvent(e)))))}onmousedown(domNode,listener){this._register(addDisposableListener(domNode,EventType.MOUSE_DOWN,(e=>listener(new StandardMouseEvent(e)))))}onmouseover(domNode,listener){this._register(addDisposableListener(domNode,EventType.MOUSE_OVER,(e=>listener(new StandardMouseEvent(e)))))}onmouseleave(domNode,listener){this._register(addDisposableListener(domNode,EventType.MOUSE_LEAVE,(e=>listener(new StandardMouseEvent(e)))))}onkeydown(domNode,listener){this._register(addDisposableListener(domNode,EventType.KEY_DOWN,(e=>listener(new StandardKeyboardEvent(e)))))}onkeyup(domNode,listener){this._register(addDisposableListener(domNode,EventType.KEY_UP,(e=>listener(new StandardKeyboardEvent(e)))))}oninput(domNode,listener){this._register(addDisposableListener(domNode,EventType.INPUT,listener))}onblur(domNode,listener){this._register(addDisposableListener(domNode,EventType.BLUR,listener))}onfocus(domNode,listener){this._register(addDisposableListener(domNode,EventType.FOCUS,listener))}ignoreGesture(domNode){return Gesture.ignoreTarget(domNode)}}}});var ARROW_IMG_SIZE,ScrollbarArrow;var init_scrollbarArrow=__esm({"node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarArrow.js"(){init_globalPointerMoveMonitor();init_widget();init_async();init_themables();init_dom();ARROW_IMG_SIZE=11;ScrollbarArrow=class extends Widget{constructor(opts){super();this._onActivate=opts.onActivate;this.bgDomNode=document.createElement("div");this.bgDomNode.className="arrow-background";this.bgDomNode.style.position="absolute";this.bgDomNode.style.width=opts.bgWidth+"px";this.bgDomNode.style.height=opts.bgHeight+"px";if(typeof opts.top!=="undefined"){this.bgDomNode.style.top="0px"}if(typeof opts.left!=="undefined"){this.bgDomNode.style.left="0px"}if(typeof opts.bottom!=="undefined"){this.bgDomNode.style.bottom="0px"}if(typeof opts.right!=="undefined"){this.bgDomNode.style.right="0px"}this.domNode=document.createElement("div");this.domNode.className=opts.className;this.domNode.classList.add(...ThemeIcon.asClassNameArray(opts.icon));this.domNode.style.position="absolute";this.domNode.style.width=ARROW_IMG_SIZE+"px";this.domNode.style.height=ARROW_IMG_SIZE+"px";if(typeof opts.top!=="undefined"){this.domNode.style.top=opts.top+"px"}if(typeof opts.left!=="undefined"){this.domNode.style.left=opts.left+"px"}if(typeof opts.bottom!=="undefined"){this.domNode.style.bottom=opts.bottom+"px"}if(typeof opts.right!=="undefined"){this.domNode.style.right=opts.right+"px"}this._pointerMoveMonitor=this._register(new GlobalPointerMoveMonitor);this._register(addStandardDisposableListener(this.bgDomNode,EventType.POINTER_DOWN,(e=>this._arrowPointerDown(e))));this._register(addStandardDisposableListener(this.domNode,EventType.POINTER_DOWN,(e=>this._arrowPointerDown(e))));this._pointerdownRepeatTimer=this._register(new IntervalTimer);this._pointerdownScheduleRepeatTimer=this._register(new TimeoutTimer)}_arrowPointerDown(e){if(!e.target||!(e.target instanceof Element)){return}const scheduleRepeater=()=>{this._pointerdownRepeatTimer.cancelAndSet((()=>this._onActivate()),1e3/24)};this._onActivate();this._pointerdownRepeatTimer.cancel();this._pointerdownScheduleRepeatTimer.cancelAndSet(scheduleRepeater,200);this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,(pointerMoveData=>{}),(()=>{this._pointerdownRepeatTimer.cancel();this._pointerdownScheduleRepeatTimer.cancel()}));e.preventDefault()}}}});var ScrollbarVisibilityController;var init_scrollbarVisibilityController=__esm({"node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js"(){init_async();init_lifecycle();ScrollbarVisibilityController=class extends Disposable{constructor(visibility,visibleClassName,invisibleClassName){super();this._visibility=visibility;this._visibleClassName=visibleClassName;this._invisibleClassName=invisibleClassName;this._domNode=null;this._isVisible=false;this._isNeeded=false;this._rawShouldBeVisible=false;this._shouldBeVisible=false;this._revealTimer=this._register(new TimeoutTimer)}setVisibility(visibility){if(this._visibility!==visibility){this._visibility=visibility;this._updateShouldBeVisible()}}setShouldBeVisible(rawShouldBeVisible){this._rawShouldBeVisible=rawShouldBeVisible;this._updateShouldBeVisible()}_applyVisibilitySetting(){if(this._visibility===2){return false}if(this._visibility===3){return true}return this._rawShouldBeVisible}_updateShouldBeVisible(){const shouldBeVisible=this._applyVisibilitySetting();if(this._shouldBeVisible!==shouldBeVisible){this._shouldBeVisible=shouldBeVisible;this.ensureVisibility()}}setIsNeeded(isNeeded){if(this._isNeeded!==isNeeded){this._isNeeded=isNeeded;this.ensureVisibility()}}setDomNode(domNode){this._domNode=domNode;this._domNode.setClassName(this._invisibleClassName);this.setShouldBeVisible(false)}ensureVisibility(){if(!this._isNeeded){this._hide(false);return}if(this._shouldBeVisible){this._reveal()}else{this._hide(true)}}_reveal(){if(this._isVisible){return}this._isVisible=true;this._revealTimer.setIfNotSet((()=>{var _a6;(_a6=this._domNode)===null||_a6===void 0?void 0:_a6.setClassName(this._visibleClassName)}),0)}_hide(withFadeAway){var _a6;this._revealTimer.cancel();if(!this._isVisible){return}this._isVisible=false;(_a6=this._domNode)===null||_a6===void 0?void 0:_a6.setClassName(this._invisibleClassName+(withFadeAway?" fade":""))}}}});var POINTER_DRAG_RESET_DISTANCE,AbstractScrollbar;var init_abstractScrollbar=__esm({"node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/abstractScrollbar.js"(){init_dom();init_fastDomNode();init_globalPointerMoveMonitor();init_scrollbarArrow();init_scrollbarVisibilityController();init_widget();init_platform();POINTER_DRAG_RESET_DISTANCE=140;AbstractScrollbar=class extends Widget{constructor(opts){super();this._lazyRender=opts.lazyRender;this._host=opts.host;this._scrollable=opts.scrollable;this._scrollByPage=opts.scrollByPage;this._scrollbarState=opts.scrollbarState;this._visibilityController=this._register(new ScrollbarVisibilityController(opts.visibility,"visible scrollbar "+opts.extraScrollbarClassName,"invisible scrollbar "+opts.extraScrollbarClassName));this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());this._pointerMoveMonitor=this._register(new GlobalPointerMoveMonitor);this._shouldRender=true;this.domNode=createFastDomNode(document.createElement("div"));this.domNode.setAttribute("role","presentation");this.domNode.setAttribute("aria-hidden","true");this._visibilityController.setDomNode(this.domNode);this.domNode.setPosition("absolute");this._register(addDisposableListener(this.domNode.domNode,EventType.POINTER_DOWN,(e=>this._domNodePointerDown(e))))}_createArrow(opts){const arrow=this._register(new ScrollbarArrow(opts));this.domNode.domNode.appendChild(arrow.bgDomNode);this.domNode.domNode.appendChild(arrow.domNode)}_createSlider(top,left,width,height){this.slider=createFastDomNode(document.createElement("div"));this.slider.setClassName("slider");this.slider.setPosition("absolute");this.slider.setTop(top);this.slider.setLeft(left);if(typeof width==="number"){this.slider.setWidth(width)}if(typeof height==="number"){this.slider.setHeight(height)}this.slider.setLayerHinting(true);this.slider.setContain("strict");this.domNode.domNode.appendChild(this.slider.domNode);this._register(addDisposableListener(this.slider.domNode,EventType.POINTER_DOWN,(e=>{if(e.button===0){e.preventDefault();this._sliderPointerDown(e)}})));this.onclick(this.slider.domNode,(e=>{if(e.leftButton){e.stopPropagation()}}))}_onElementSize(visibleSize){if(this._scrollbarState.setVisibleSize(visibleSize)){this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());this._shouldRender=true;if(!this._lazyRender){this.render()}}return this._shouldRender}_onElementScrollSize(elementScrollSize){if(this._scrollbarState.setScrollSize(elementScrollSize)){this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());this._shouldRender=true;if(!this._lazyRender){this.render()}}return this._shouldRender}_onElementScrollPosition(elementScrollPosition){if(this._scrollbarState.setScrollPosition(elementScrollPosition)){this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());this._shouldRender=true;if(!this._lazyRender){this.render()}}return this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(true)}beginHide(){this._visibilityController.setShouldBeVisible(false)}render(){if(!this._shouldRender){return}this._shouldRender=false;this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize());this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition())}_domNodePointerDown(e){if(e.target!==this.domNode.domNode){return}this._onPointerDown(e)}delegatePointerDown(e){const domTop=this.domNode.domNode.getClientRects()[0].top;const sliderStart=domTop+this._scrollbarState.getSliderPosition();const sliderStop=domTop+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize();const pointerPos=this._sliderPointerPosition(e);if(sliderStart<=pointerPos&&pointerPos<=sliderStop){if(e.button===0){e.preventDefault();this._sliderPointerDown(e)}}else{this._onPointerDown(e)}}_onPointerDown(e){let offsetX;let offsetY;if(e.target===this.domNode.domNode&&typeof e.offsetX==="number"&&typeof e.offsetY==="number"){offsetX=e.offsetX;offsetY=e.offsetY}else{const domNodePosition=getDomNodePagePosition(this.domNode.domNode);offsetX=e.pageX-domNodePosition.left;offsetY=e.pageY-domNodePosition.top}const offset=this._pointerDownRelativePosition(offsetX,offsetY);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(offset):this._scrollbarState.getDesiredScrollPositionFromOffset(offset));if(e.button===0){e.preventDefault();this._sliderPointerDown(e)}}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element)){return}const initialPointerPosition=this._sliderPointerPosition(e);const initialPointerOrthogonalPosition=this._sliderOrthogonalPointerPosition(e);const initialScrollbarState=this._scrollbarState.clone();this.slider.toggleClassName("active",true);this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,(pointerMoveData=>{const pointerOrthogonalPosition=this._sliderOrthogonalPointerPosition(pointerMoveData);const pointerOrthogonalDelta=Math.abs(pointerOrthogonalPosition-initialPointerOrthogonalPosition);if(isWindows&&pointerOrthogonalDelta>POINTER_DRAG_RESET_DISTANCE){this._setDesiredScrollPositionNow(initialScrollbarState.getScrollPosition());return}const pointerPosition=this._sliderPointerPosition(pointerMoveData);const pointerDelta=pointerPosition-initialPointerPosition;this._setDesiredScrollPositionNow(initialScrollbarState.getDesiredScrollPositionFromDelta(pointerDelta))}),(()=>{this.slider.toggleClassName("active",false);this._host.onDragEnd()}));this._host.onDragStart()}_setDesiredScrollPositionNow(_desiredScrollPosition){const desiredScrollPosition={};this.writeScrollPosition(desiredScrollPosition,_desiredScrollPosition);this._scrollable.setScrollPositionNow(desiredScrollPosition)}updateScrollbarSize(scrollbarSize){this._updateScrollbarSize(scrollbarSize);this._scrollbarState.setScrollbarSize(scrollbarSize);this._shouldRender=true;if(!this._lazyRender){this.render()}}isNeeded(){return this._scrollbarState.isNeeded()}}}});var MINIMUM_SLIDER_SIZE,ScrollbarState;var init_scrollbarState=__esm({"node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarState.js"(){MINIMUM_SLIDER_SIZE=20;ScrollbarState=class{constructor(arrowSize,scrollbarSize,oppositeScrollbarSize,visibleSize,scrollSize,scrollPosition){this._scrollbarSize=Math.round(scrollbarSize);this._oppositeScrollbarSize=Math.round(oppositeScrollbarSize);this._arrowSize=Math.round(arrowSize);this._visibleSize=visibleSize;this._scrollSize=scrollSize;this._scrollPosition=scrollPosition;this._computedAvailableSize=0;this._computedIsNeeded=false;this._computedSliderSize=0;this._computedSliderRatio=0;this._computedSliderPosition=0;this._refreshComputedValues()}clone(){return new ScrollbarState(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(visibleSize){const iVisibleSize=Math.round(visibleSize);if(this._visibleSize!==iVisibleSize){this._visibleSize=iVisibleSize;this._refreshComputedValues();return true}return false}setScrollSize(scrollSize){const iScrollSize=Math.round(scrollSize);if(this._scrollSize!==iScrollSize){this._scrollSize=iScrollSize;this._refreshComputedValues();return true}return false}setScrollPosition(scrollPosition){const iScrollPosition=Math.round(scrollPosition);if(this._scrollPosition!==iScrollPosition){this._scrollPosition=iScrollPosition;this._refreshComputedValues();return true}return false}setScrollbarSize(scrollbarSize){this._scrollbarSize=Math.round(scrollbarSize)}setOppositeScrollbarSize(oppositeScrollbarSize){this._oppositeScrollbarSize=Math.round(oppositeScrollbarSize)}static _computeValues(oppositeScrollbarSize,arrowSize,visibleSize,scrollSize,scrollPosition){const computedAvailableSize=Math.max(0,visibleSize-oppositeScrollbarSize);const computedRepresentableSize=Math.max(0,computedAvailableSize-2*arrowSize);const computedIsNeeded=scrollSize>0&&scrollSize>visibleSize;if(!computedIsNeeded){return{computedAvailableSize:Math.round(computedAvailableSize),computedIsNeeded:computedIsNeeded,computedSliderSize:Math.round(computedRepresentableSize),computedSliderRatio:0,computedSliderPosition:0}}const computedSliderSize=Math.round(Math.max(MINIMUM_SLIDER_SIZE,Math.floor(visibleSize*computedRepresentableSize/scrollSize)));const computedSliderRatio=(computedRepresentableSize-computedSliderSize)/(scrollSize-visibleSize);const computedSliderPosition=scrollPosition*computedSliderRatio;return{computedAvailableSize:Math.round(computedAvailableSize),computedIsNeeded:computedIsNeeded,computedSliderSize:Math.round(computedSliderSize),computedSliderRatio:computedSliderRatio,computedSliderPosition:Math.round(computedSliderPosition)}}_refreshComputedValues(){const r=ScrollbarState._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=r.computedAvailableSize;this._computedIsNeeded=r.computedIsNeeded;this._computedSliderSize=r.computedSliderSize;this._computedSliderRatio=r.computedSliderRatio;this._computedSliderPosition=r.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(offset){if(!this._computedIsNeeded){return 0}const desiredSliderPosition=offset-this._arrowSize-this._computedSliderSize/2;return Math.round(desiredSliderPosition/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(offset){if(!this._computedIsNeeded){return 0}const correctedOffset=offset-this._arrowSize;let desiredScrollPosition=this._scrollPosition;if(correctedOffsetthis._host.onMouseWheel(new StandardWheelEvent(null,1,0))});this._createArrow({className:"scra",icon:Codicon.scrollbarButtonRight,top:scrollbarDelta,left:void 0,bottom:void 0,right:arrowDelta,bgWidth:options2.arrowSize,bgHeight:options2.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new StandardWheelEvent(null,-1,0))})}this._createSlider(Math.floor((options2.horizontalScrollbarSize-options2.horizontalSliderSize)/2),0,void 0,options2.horizontalSliderSize)}_updateSlider(sliderSize,sliderPosition){this.slider.setWidth(sliderSize);this.slider.setLeft(sliderPosition)}_renderDomNode(largeSize,smallSize){this.domNode.setWidth(largeSize);this.domNode.setHeight(smallSize);this.domNode.setLeft(0);this.domNode.setBottom(0)}onDidScroll(e){this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender;this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender;this._shouldRender=this._onElementSize(e.width)||this._shouldRender;return this._shouldRender}_pointerDownRelativePosition(offsetX,offsetY){return offsetX}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(size2){this.slider.setHeight(size2)}writeScrollPosition(target,scrollPosition){target.scrollLeft=scrollPosition}updateOptions(options2){this.updateScrollbarSize(options2.horizontal===2?0:options2.horizontalScrollbarSize);this._scrollbarState.setOppositeScrollbarSize(options2.vertical===2?0:options2.verticalScrollbarSize);this._visibilityController.setVisibility(options2.horizontal);this._scrollByPage=options2.scrollByPage}}}});var VerticalScrollbar;var init_verticalScrollbar=__esm({"node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/verticalScrollbar.js"(){init_mouseEvent();init_abstractScrollbar();init_scrollbarArrow();init_scrollbarState();init_codicons();VerticalScrollbar=class extends AbstractScrollbar{constructor(scrollable,options2,host){const scrollDimensions=scrollable.getScrollDimensions();const scrollPosition=scrollable.getCurrentScrollPosition();super({lazyRender:options2.lazyRender,host:host,scrollbarState:new ScrollbarState(options2.verticalHasArrows?options2.arrowSize:0,options2.vertical===2?0:options2.verticalScrollbarSize,0,scrollDimensions.height,scrollDimensions.scrollHeight,scrollPosition.scrollTop),visibility:options2.vertical,extraScrollbarClassName:"vertical",scrollable:scrollable,scrollByPage:options2.scrollByPage});if(options2.verticalHasArrows){const arrowDelta=(options2.arrowSize-ARROW_IMG_SIZE)/2;const scrollbarDelta=(options2.verticalScrollbarSize-ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:Codicon.scrollbarButtonUp,top:arrowDelta,left:scrollbarDelta,bottom:void 0,right:void 0,bgWidth:options2.verticalScrollbarSize,bgHeight:options2.arrowSize,onActivate:()=>this._host.onMouseWheel(new StandardWheelEvent(null,0,1))});this._createArrow({className:"scra",icon:Codicon.scrollbarButtonDown,top:void 0,left:scrollbarDelta,bottom:arrowDelta,right:void 0,bgWidth:options2.verticalScrollbarSize,bgHeight:options2.arrowSize,onActivate:()=>this._host.onMouseWheel(new StandardWheelEvent(null,0,-1))})}this._createSlider(0,Math.floor((options2.verticalScrollbarSize-options2.verticalSliderSize)/2),options2.verticalSliderSize,void 0)}_updateSlider(sliderSize,sliderPosition){this.slider.setHeight(sliderSize);this.slider.setTop(sliderPosition)}_renderDomNode(largeSize,smallSize){this.domNode.setWidth(smallSize);this.domNode.setHeight(largeSize);this.domNode.setRight(0);this.domNode.setTop(0)}onDidScroll(e){this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender;this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender;this._shouldRender=this._onElementSize(e.height)||this._shouldRender;return this._shouldRender}_pointerDownRelativePosition(offsetX,offsetY){return offsetY}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(size2){this.slider.setWidth(size2)}writeScrollPosition(target,scrollPosition){target.scrollTop=scrollPosition}updateOptions(options2){this.updateScrollbarSize(options2.vertical===2?0:options2.verticalScrollbarSize);this._scrollbarState.setOppositeScrollbarSize(0);this._visibilityController.setVisibility(options2.vertical);this._scrollByPage=options2.scrollByPage}}}});function createEaseOutCubic(from,to){const delta=to-from;return function(completion){return from+delta*easeOutCubic(completion)}}function createComposed(a,b,cut){return function(completion){if(completionscrollWidth){scrollLeft=scrollWidth-width}if(scrollLeft<0){scrollLeft=0}if(height<0){height=0}if(scrollTop+height>scrollHeight){scrollTop=scrollHeight-height}if(scrollTop<0){scrollTop=0}this.width=width;this.scrollWidth=scrollWidth;this.scrollLeft=scrollLeft;this.height=height;this.scrollHeight=scrollHeight;this.scrollTop=scrollTop}equals(other){return this.rawScrollLeft===other.rawScrollLeft&&this.rawScrollTop===other.rawScrollTop&&this.width===other.width&&this.scrollWidth===other.scrollWidth&&this.scrollLeft===other.scrollLeft&&this.height===other.height&&this.scrollHeight===other.scrollHeight&&this.scrollTop===other.scrollTop}withScrollDimensions(update,useRawScrollPositions){return new ScrollState(this._forceIntegerValues,typeof update.width!=="undefined"?update.width:this.width,typeof update.scrollWidth!=="undefined"?update.scrollWidth:this.scrollWidth,useRawScrollPositions?this.rawScrollLeft:this.scrollLeft,typeof update.height!=="undefined"?update.height:this.height,typeof update.scrollHeight!=="undefined"?update.scrollHeight:this.scrollHeight,useRawScrollPositions?this.rawScrollTop:this.scrollTop)}withScrollPosition(update){return new ScrollState(this._forceIntegerValues,this.width,this.scrollWidth,typeof update.scrollLeft!=="undefined"?update.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof update.scrollTop!=="undefined"?update.scrollTop:this.rawScrollTop)}createScrollEvent(previous,inSmoothScrolling){const widthChanged=this.width!==previous.width;const scrollWidthChanged=this.scrollWidth!==previous.scrollWidth;const scrollLeftChanged=this.scrollLeft!==previous.scrollLeft;const heightChanged=this.height!==previous.height;const scrollHeightChanged=this.scrollHeight!==previous.scrollHeight;const scrollTopChanged=this.scrollTop!==previous.scrollTop;return{inSmoothScrolling:inSmoothScrolling,oldWidth:previous.width,oldScrollWidth:previous.scrollWidth,oldScrollLeft:previous.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:previous.height,oldScrollHeight:previous.scrollHeight,oldScrollTop:previous.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:widthChanged,scrollWidthChanged:scrollWidthChanged,scrollLeftChanged:scrollLeftChanged,heightChanged:heightChanged,scrollHeightChanged:scrollHeightChanged,scrollTopChanged:scrollTopChanged}}};Scrollable=class extends Disposable{constructor(options2){super();this._scrollableBrand=void 0;this._onScroll=this._register(new Emitter);this.onScroll=this._onScroll.event;this._smoothScrollDuration=options2.smoothScrollDuration;this._scheduleAtNextAnimationFrame=options2.scheduleAtNextAnimationFrame;this._state=new ScrollState(options2.forceIntegerValues,0,0,0,0,0,0);this._smoothScrolling=null}dispose(){if(this._smoothScrolling){this._smoothScrolling.dispose();this._smoothScrolling=null}super.dispose()}setSmoothScrollDuration(smoothScrollDuration){this._smoothScrollDuration=smoothScrollDuration}validateScrollPosition(scrollPosition){return this._state.withScrollPosition(scrollPosition)}getScrollDimensions(){return this._state}setScrollDimensions(dimensions,useRawScrollPositions){var _a6;const newState=this._state.withScrollDimensions(dimensions,useRawScrollPositions);this._setState(newState,Boolean(this._smoothScrolling));(_a6=this._smoothScrolling)===null||_a6===void 0?void 0:_a6.acceptScrollDimensions(this._state)}getFutureScrollPosition(){if(this._smoothScrolling){return this._smoothScrolling.to}return this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(update){const newState=this._state.withScrollPosition(update);if(this._smoothScrolling){this._smoothScrolling.dispose();this._smoothScrolling=null}this._setState(newState,false)}setScrollPositionSmooth(update,reuseAnimation){if(this._smoothScrollDuration===0){return this.setScrollPositionNow(update)}if(this._smoothScrolling){update={scrollLeft:typeof update.scrollLeft==="undefined"?this._smoothScrolling.to.scrollLeft:update.scrollLeft,scrollTop:typeof update.scrollTop==="undefined"?this._smoothScrolling.to.scrollTop:update.scrollTop};const validTarget=this._state.withScrollPosition(update);if(this._smoothScrolling.to.scrollLeft===validTarget.scrollLeft&&this._smoothScrolling.to.scrollTop===validTarget.scrollTop){return}let newSmoothScrolling;if(reuseAnimation){newSmoothScrolling=new SmoothScrollingOperation(this._smoothScrolling.from,validTarget,this._smoothScrolling.startTime,this._smoothScrolling.duration)}else{newSmoothScrolling=this._smoothScrolling.combine(this._state,validTarget,this._smoothScrollDuration)}this._smoothScrolling.dispose();this._smoothScrolling=newSmoothScrolling}else{const validTarget=this._state.withScrollPosition(update);this._smoothScrolling=SmoothScrollingOperation.start(this._state,validTarget,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{if(!this._smoothScrolling){return}this._smoothScrolling.animationFrameDisposable=null;this._performSmoothScrolling()}))}hasPendingScrollAnimation(){return Boolean(this._smoothScrolling)}_performSmoothScrolling(){if(!this._smoothScrolling){return}const update=this._smoothScrolling.tick();const newState=this._state.withScrollPosition(update);this._setState(newState,true);if(!this._smoothScrolling){return}if(update.isDone){this._smoothScrolling.dispose();this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{if(!this._smoothScrolling){return}this._smoothScrolling.animationFrameDisposable=null;this._performSmoothScrolling()}))}_setState(newState,inSmoothScrolling){const oldState=this._state;if(oldState.equals(newState)){return}this._state=newState;this._onScroll.fire(this._state.createScrollEvent(oldState,inSmoothScrolling))}};SmoothScrollingUpdate=class{constructor(scrollLeft,scrollTop,isDone){this.scrollLeft=scrollLeft;this.scrollTop=scrollTop;this.isDone=isDone}};SmoothScrollingOperation=class{constructor(from,to,startTime,duration){this.from=from;this.to=to;this.duration=duration;this.startTime=startTime;this.animationFrameDisposable=null;this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width);this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(from,to,viewportSize){const delta=Math.abs(from-to);if(delta>2.5*viewportSize){let stop1,stop2;if(from0&&Math.abs(item.deltaY)>0){return 1}let score3=.5;const prev=this._front===-1&&this._rear===-1?null:this._memory[this._rear];if(prev){}if(!this._isAlmostInt(item.deltaX)||!this._isAlmostInt(item.deltaY)){score3+=.25}return Math.min(Math.max(score3,0),1)}_isAlmostInt(value){const delta=Math.abs(Math.round(value)-value);return delta<.01}};MouseWheelClassifier.INSTANCE=new MouseWheelClassifier;AbstractScrollableElement=class extends Widget{get options(){return this._options}constructor(element,options2,scrollable){super();this._onScroll=this._register(new Emitter);this.onScroll=this._onScroll.event;this._onWillScroll=this._register(new Emitter);element.style.overflow="hidden";this._options=resolveOptions(options2);this._scrollable=scrollable;this._register(this._scrollable.onScroll((e=>{this._onWillScroll.fire(e);this._onDidScroll(e);this._onScroll.fire(e)})));const scrollbarHost={onMouseWheel:mouseWheelEvent=>this._onMouseWheel(mouseWheelEvent),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new VerticalScrollbar(this._scrollable,this._options,scrollbarHost));this._horizontalScrollbar=this._register(new HorizontalScrollbar(this._scrollable,this._options,scrollbarHost));this._domNode=document.createElement("div");this._domNode.className="monaco-scrollable-element "+this._options.className;this._domNode.setAttribute("role","presentation");this._domNode.style.position="relative";this._domNode.style.overflow="hidden";this._domNode.appendChild(element);this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode);this._domNode.appendChild(this._verticalScrollbar.domNode.domNode);if(this._options.useShadows){this._leftShadowDomNode=createFastDomNode(document.createElement("div"));this._leftShadowDomNode.setClassName("shadow");this._domNode.appendChild(this._leftShadowDomNode.domNode);this._topShadowDomNode=createFastDomNode(document.createElement("div"));this._topShadowDomNode.setClassName("shadow");this._domNode.appendChild(this._topShadowDomNode.domNode);this._topLeftShadowDomNode=createFastDomNode(document.createElement("div"));this._topLeftShadowDomNode.setClassName("shadow");this._domNode.appendChild(this._topLeftShadowDomNode.domNode)}else{this._leftShadowDomNode=null;this._topShadowDomNode=null;this._topLeftShadowDomNode=null}this._listenOnDomNode=this._options.listenOnDomNode||this._domNode;this._mouseWheelToDispose=[];this._setListeningToMouseWheel(this._options.handleMouseWheel);this.onmouseover(this._listenOnDomNode,(e=>this._onMouseOver(e)));this.onmouseleave(this._listenOnDomNode,(e=>this._onMouseLeave(e)));this._hideTimeout=this._register(new TimeoutTimer);this._isDragging=false;this._mouseIsOver=false;this._shouldRender=true;this._revealOnScroll=true}dispose(){this._mouseWheelToDispose=dispose(this._mouseWheelToDispose);super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(browserEvent){this._verticalScrollbar.delegatePointerDown(browserEvent)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(dimensions){this._scrollable.setScrollDimensions(dimensions,false)}updateClassName(newClassName){this._options.className=newClassName;if(isMacintosh){this._options.className+=" mac"}this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(newOptions){if(typeof newOptions.handleMouseWheel!=="undefined"){this._options.handleMouseWheel=newOptions.handleMouseWheel;this._setListeningToMouseWheel(this._options.handleMouseWheel)}if(typeof newOptions.mouseWheelScrollSensitivity!=="undefined"){this._options.mouseWheelScrollSensitivity=newOptions.mouseWheelScrollSensitivity}if(typeof newOptions.fastScrollSensitivity!=="undefined"){this._options.fastScrollSensitivity=newOptions.fastScrollSensitivity}if(typeof newOptions.scrollPredominantAxis!=="undefined"){this._options.scrollPredominantAxis=newOptions.scrollPredominantAxis}if(typeof newOptions.horizontal!=="undefined"){this._options.horizontal=newOptions.horizontal}if(typeof newOptions.vertical!=="undefined"){this._options.vertical=newOptions.vertical}if(typeof newOptions.horizontalScrollbarSize!=="undefined"){this._options.horizontalScrollbarSize=newOptions.horizontalScrollbarSize}if(typeof newOptions.verticalScrollbarSize!=="undefined"){this._options.verticalScrollbarSize=newOptions.verticalScrollbarSize}if(typeof newOptions.scrollByPage!=="undefined"){this._options.scrollByPage=newOptions.scrollByPage}this._horizontalScrollbar.updateOptions(this._options);this._verticalScrollbar.updateOptions(this._options);if(!this._options.lazyRender){this._render()}}delegateScrollFromMouseWheelEvent(browserEvent){this._onMouseWheel(new StandardWheelEvent(browserEvent))}_setListeningToMouseWheel(shouldListen){const isListening=this._mouseWheelToDispose.length>0;if(isListening===shouldListen){return}this._mouseWheelToDispose=dispose(this._mouseWheelToDispose);if(shouldListen){const onMouseWheel=browserEvent=>{this._onMouseWheel(new StandardWheelEvent(browserEvent))};this._mouseWheelToDispose.push(addDisposableListener(this._listenOnDomNode,EventType.MOUSE_WHEEL,onMouseWheel,{passive:false}))}}_onMouseWheel(e){var _a6;if((_a6=e.browserEvent)===null||_a6===void 0?void 0:_a6.defaultPrevented){return}const classifier=MouseWheelClassifier.INSTANCE;if(SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED){classifier.acceptStandardWheelEvent(e)}let didScroll=false;if(e.deltaY||e.deltaX){let deltaY=e.deltaY*this._options.mouseWheelScrollSensitivity;let deltaX=e.deltaX*this._options.mouseWheelScrollSensitivity;if(this._options.scrollPredominantAxis){if(this._options.scrollYToX&&deltaX+deltaY===0){deltaX=deltaY=0}else if(Math.abs(deltaY)>=Math.abs(deltaX)){deltaX=0}else{deltaY=0}}if(this._options.flipAxes){[deltaY,deltaX]=[deltaX,deltaY]}const shiftConvert=!isMacintosh&&e.browserEvent&&e.browserEvent.shiftKey;if((this._options.scrollYToX||shiftConvert)&&!deltaX){deltaX=deltaY;deltaY=0}if(e.browserEvent&&e.browserEvent.altKey){deltaX=deltaX*this._options.fastScrollSensitivity;deltaY=deltaY*this._options.fastScrollSensitivity}const futureScrollPosition=this._scrollable.getFutureScrollPosition();let desiredScrollPosition={};if(deltaY){const deltaScrollTop=SCROLL_WHEEL_SENSITIVITY*deltaY;const desiredScrollTop=futureScrollPosition.scrollTop-(deltaScrollTop<0?Math.floor(deltaScrollTop):Math.ceil(deltaScrollTop));this._verticalScrollbar.writeScrollPosition(desiredScrollPosition,desiredScrollTop)}if(deltaX){const deltaScrollLeft=SCROLL_WHEEL_SENSITIVITY*deltaX;const desiredScrollLeft=futureScrollPosition.scrollLeft-(deltaScrollLeft<0?Math.floor(deltaScrollLeft):Math.ceil(deltaScrollLeft));this._horizontalScrollbar.writeScrollPosition(desiredScrollPosition,desiredScrollLeft)}desiredScrollPosition=this._scrollable.validateScrollPosition(desiredScrollPosition);if(futureScrollPosition.scrollLeft!==desiredScrollPosition.scrollLeft||futureScrollPosition.scrollTop!==desiredScrollPosition.scrollTop){const canPerformSmoothScroll=SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED&&this._options.mouseWheelSmoothScroll&&classifier.isPhysicalMouseWheel();if(canPerformSmoothScroll){this._scrollable.setScrollPositionSmooth(desiredScrollPosition)}else{this._scrollable.setScrollPositionNow(desiredScrollPosition)}didScroll=true}}let consumeMouseWheel=didScroll;if(!consumeMouseWheel&&this._options.alwaysConsumeMouseWheel){consumeMouseWheel=true}if(!consumeMouseWheel&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())){consumeMouseWheel=true}if(consumeMouseWheel){e.preventDefault();e.stopPropagation()}}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender;this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender;if(this._options.useShadows){this._shouldRender=true}if(this._revealOnScroll){this._reveal()}if(!this._options.lazyRender){this._render()}}renderNow(){if(!this._options.lazyRender){throw new Error("Please use `lazyRender` together with `renderNow`!")}this._render()}_render(){if(!this._shouldRender){return}this._shouldRender=false;this._horizontalScrollbar.render();this._verticalScrollbar.render();if(this._options.useShadows){const scrollState=this._scrollable.getCurrentScrollPosition();const enableTop=scrollState.scrollTop>0;const enableLeft=scrollState.scrollLeft>0;const leftClassName=enableLeft?" left":"";const topClassName=enableTop?" top":"";const topLeftClassName=enableLeft||enableTop?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${leftClassName}`);this._topShadowDomNode.setClassName(`shadow${topClassName}`);this._topLeftShadowDomNode.setClassName(`shadow${topLeftClassName}${topClassName}${leftClassName}`)}}_onDragStart(){this._isDragging=true;this._reveal()}_onDragEnd(){this._isDragging=false;this._hide()}_onMouseLeave(e){this._mouseIsOver=false;this._hide()}_onMouseOver(e){this._mouseIsOver=true;this._reveal()}_reveal(){this._verticalScrollbar.beginReveal();this._horizontalScrollbar.beginReveal();this._scheduleHide()}_hide(){if(!this._mouseIsOver&&!this._isDragging){this._verticalScrollbar.beginHide();this._horizontalScrollbar.beginHide()}}_scheduleHide(){if(!this._mouseIsOver&&!this._isDragging){this._hideTimeout.cancelAndSet((()=>this._hide()),HIDE_TIMEOUT)}}};ScrollableElement=class extends AbstractScrollableElement{constructor(element,options2){options2=options2||{};options2.mouseWheelSmoothScroll=false;const scrollable=new Scrollable({forceIntegerValues:true,smoothScrollDuration:0,scheduleAtNextAnimationFrame:callback=>scheduleAtNextAnimationFrame(callback)});super(element,options2,scrollable);this._register(scrollable)}setScrollPosition(update){this._scrollable.setScrollPositionNow(update)}};SmoothScrollableElement=class extends AbstractScrollableElement{constructor(element,options2,scrollable){super(element,options2,scrollable)}setScrollPosition(update){if(update.reuseAnimation){this._scrollable.setScrollPositionSmooth(update,update.reuseAnimation)}else{this._scrollable.setScrollPositionNow(update)}}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}};DomScrollableElement=class extends AbstractScrollableElement{constructor(element,options2){options2=options2||{};options2.mouseWheelSmoothScroll=false;const scrollable=new Scrollable({forceIntegerValues:false,smoothScrollDuration:0,scheduleAtNextAnimationFrame:callback=>scheduleAtNextAnimationFrame(callback)});super(element,options2,scrollable);this._register(scrollable);this._element=element;this.onScroll((e=>{if(e.scrollTopChanged){this._element.scrollTop=e.scrollTop}if(e.scrollLeftChanged){this._element.scrollLeft=e.scrollLeft}}));this.scanDomNode()}setScrollPosition(update){this._scrollable.setScrollPositionNow(update)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight});this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}}});var MouseHandler,MouseDownOperation,TopBottomDragScrolling,TopBottomDragScrollingOperation,MouseDownState;var init_mouseHandler=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/controller/mouseHandler.js"(){init_dom();init_mouseEvent();init_lifecycle();init_platform();init_mouseTarget();init_editorDom();init_editorZoom();init_position();init_selection();init_viewEventHandler();init_scrollableElement();MouseHandler=class extends ViewEventHandler{constructor(context,viewController,viewHelper){super();this._mouseLeaveMonitor=null;this._context=context;this.viewController=viewController;this.viewHelper=viewHelper;this.mouseTargetFactory=new MouseTargetFactory(this._context,viewHelper);this._mouseDownOperation=this._register(new MouseDownOperation(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,((e,testEventTarget)=>this._createMouseTarget(e,testEventTarget)),(e=>this._getMouseColumn(e))));this.lastMouseLeaveTime=-1;this._height=this._context.configuration.options.get(142).height;const mouseEvents=new EditorMouseEventFactory(this.viewHelper.viewDomNode);this._register(mouseEvents.onContextMenu(this.viewHelper.viewDomNode,(e=>this._onContextMenu(e,true))));this._register(mouseEvents.onMouseMove(this.viewHelper.viewDomNode,(e=>{this._onMouseMove(e);if(!this._mouseLeaveMonitor){this._mouseLeaveMonitor=addDisposableListener(document,"mousemove",(e2=>{if(!this.viewHelper.viewDomNode.contains(e2.target)){this._onMouseLeave(new EditorMouseEvent(e2,false,this.viewHelper.viewDomNode))}}))}})));this._register(mouseEvents.onMouseUp(this.viewHelper.viewDomNode,(e=>this._onMouseUp(e))));this._register(mouseEvents.onMouseLeave(this.viewHelper.viewDomNode,(e=>this._onMouseLeave(e))));let capturePointerId=0;this._register(mouseEvents.onPointerDown(this.viewHelper.viewDomNode,((e,pointerId)=>{capturePointerId=pointerId})));this._register(addDisposableListener(this.viewHelper.viewDomNode,EventType.POINTER_UP,(e=>{this._mouseDownOperation.onPointerUp()})));this._register(mouseEvents.onMouseDown(this.viewHelper.viewDomNode,(e=>this._onMouseDown(e,capturePointerId))));this._setupMouseWheelZoomListener();this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const classifier=MouseWheelClassifier.INSTANCE;let prevMouseWheelTime=0;let gestureStartZoomLevel=EditorZoom.getZoomLevel();let gestureHasZoomModifiers=false;let gestureAccumulatedDelta=0;const onMouseWheel=browserEvent=>{this.viewController.emitMouseWheel(browserEvent);if(!this._context.configuration.options.get(74)){return}const e=new StandardWheelEvent(browserEvent);classifier.acceptStandardWheelEvent(e);if(classifier.isPhysicalMouseWheel()){if(hasMouseWheelZoomModifiers(browserEvent)){const zoomLevel=EditorZoom.getZoomLevel();const delta=e.deltaY>0?1:-1;EditorZoom.setZoomLevel(zoomLevel+delta);e.preventDefault();e.stopPropagation()}}else{if(Date.now()-prevMouseWheelTime>50){gestureStartZoomLevel=EditorZoom.getZoomLevel();gestureHasZoomModifiers=hasMouseWheelZoomModifiers(browserEvent);gestureAccumulatedDelta=0}prevMouseWheelTime=Date.now();gestureAccumulatedDelta+=e.deltaY;if(gestureHasZoomModifiers){EditorZoom.setZoomLevel(gestureStartZoomLevel+gestureAccumulatedDelta/5);e.preventDefault();e.stopPropagation()}}};this._register(addDisposableListener(this.viewHelper.viewDomNode,EventType.MOUSE_WHEEL,onMouseWheel,{capture:true,passive:false}));function hasMouseWheelZoomModifiers(browserEvent){return isMacintosh?(browserEvent.metaKey||browserEvent.ctrlKey)&&!browserEvent.shiftKey&&!browserEvent.altKey:browserEvent.ctrlKey&&!browserEvent.metaKey&&!browserEvent.shiftKey&&!browserEvent.altKey}}dispose(){this._context.removeEventHandler(this);if(this._mouseLeaveMonitor){this._mouseLeaveMonitor.dispose();this._mouseLeaveMonitor=null}super.dispose()}onConfigurationChanged(e){if(e.hasChanged(142)){const height=this._context.configuration.options.get(142).height;if(this._height!==height){this._height=height;this._mouseDownOperation.onHeightChanged()}}return false}onCursorStateChanged(e){this._mouseDownOperation.onCursorStateChanged(e);return false}onFocusChanged(e){return false}getTargetAtClientPoint(clientX,clientY){const clientPos=new ClientCoordinates(clientX,clientY);const pos=clientPos.toPageCoordinates();const editorPos=createEditorPagePosition(this.viewHelper.viewDomNode);if(pos.yeditorPos.y+editorPos.height||pos.xeditorPos.x+editorPos.width){return null}const relativePos=createCoordinatesRelativeToEditor(this.viewHelper.viewDomNode,editorPos,pos);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),editorPos,pos,relativePos,null)}_createMouseTarget(e,testEventTarget){let target=e.target;if(!this.viewHelper.viewDomNode.contains(target)){const shadowRoot=getShadowRoot(this.viewHelper.viewDomNode);if(shadowRoot){target=shadowRoot.elementsFromPoint(e.posx,e.posy).find((el=>this.viewHelper.viewDomNode.contains(el)))}}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,testEventTarget?target:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,testEventTarget){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,testEventTarget)})}_onMouseMove(e){const targetIsWidget=this.mouseTargetFactory.mouseTargetIsWidget(e);if(!targetIsWidget){e.preventDefault()}if(this._mouseDownOperation.isActive()){return}const actualMouseMoveTime=e.timestamp;if(actualMouseMoveTime{e.preventDefault();this.viewHelper.focusTextArea()};if(shouldHandle&&(targetIsContent||targetIsLineNumbers&&selectOnLineNumbers)){focus();this._mouseDownOperation.start(t2.type,e,pointerId)}else if(targetIsGutter){e.preventDefault()}else if(targetIsViewZone){const viewZoneData=t2.detail;if(shouldHandle&&this.viewHelper.shouldSuppressMouseDownOnViewZone(viewZoneData.viewZoneId)){focus();this._mouseDownOperation.start(t2.type,e,pointerId);e.preventDefault()}}else if(targetIsWidget&&this.viewHelper.shouldSuppressMouseDownOnWidget(t2.detail)){focus();e.preventDefault()}this.viewController.emitMouseDown({event:e,target:t2})}};MouseDownOperation=class extends Disposable{constructor(_context,_viewController,_viewHelper,_mouseTargetFactory,createMouseTarget,getMouseColumn){super();this._context=_context;this._viewController=_viewController;this._viewHelper=_viewHelper;this._mouseTargetFactory=_mouseTargetFactory;this._createMouseTarget=createMouseTarget;this._getMouseColumn=getMouseColumn;this._mouseMoveMonitor=this._register(new GlobalEditorPointerMoveMonitor(this._viewHelper.viewDomNode));this._topBottomDragScrolling=this._register(new TopBottomDragScrolling(this._context,this._viewHelper,this._mouseTargetFactory,((position,inSelectionMode,revealType)=>this._dispatchMouse(position,inSelectionMode,revealType))));this._mouseState=new MouseDownState;this._currentSelection=new Selection(1,1,1,1);this._isActive=false;this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e;this._mouseState.setModifiers(e);const position=this._findMousePosition(e,false);if(!position){return}if(this._mouseState.isDragAndDrop){this._viewController.emitMouseDrag({event:e,target:position})}else{if(position.type===13&&(position.outsidePosition==="above"||position.outsidePosition==="below")){this._topBottomDragScrolling.start(position,e)}else{this._topBottomDragScrolling.stop();this._dispatchMouse(position,true,1)}}}start(targetType,e,pointerId){this._lastMouseEvent=e;this._mouseState.setStartedOnLineNumbers(targetType===3);this._mouseState.setStartButtons(e);this._mouseState.setModifiers(e);const position=this._findMousePosition(e,true);if(!position||!position.position){return}this._mouseState.trySetCount(e.detail,position.position);e.detail=this._mouseState.count;const options2=this._context.configuration.options;if(!options2.get(89)&&options2.get(34)&&!options2.get(21)&&!this._mouseState.altKey&&e.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&position.type===6&&position.position&&this._currentSelection.containsPosition(position.position)){this._mouseState.isDragAndDrop=true;this._isActive=true;this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,pointerId,e.buttons,(e2=>this._onMouseDownThenMove(e2)),(browserEvent=>{const position2=this._findMousePosition(this._lastMouseEvent,false);if(browserEvent&&browserEvent instanceof KeyboardEvent){this._viewController.emitMouseDropCanceled()}else{this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:position2?this._createMouseTarget(this._lastMouseEvent,true):null})}this._stop()}));return}this._mouseState.isDragAndDrop=false;this._dispatchMouse(position,e.shiftKey,1);if(!this._isActive){this._isActive=true;this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,pointerId,e.buttons,(e2=>this._onMouseDownThenMove(e2)),(()=>this._stop()))}}_stop(){this._isActive=false;this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const editorContent=e.editorPos;const model=this._context.viewModel;const viewLayout=this._context.viewLayout;const mouseColumn=this._getMouseColumn(e);if(e.posyeditorContent.y+editorContent.height){const outsideDistance=e.posy-editorContent.y-editorContent.height;const verticalOffset=viewLayout.getCurrentScrollTop()+e.relativePos.y;const viewZoneData=HitTestContext.getZoneAtCoord(this._context,verticalOffset);if(viewZoneData){const newPosition=this._helpPositionJumpOverViewZone(viewZoneData);if(newPosition){return MouseTarget.createOutsideEditor(mouseColumn,newPosition,"below",outsideDistance)}}const belowLineNumber=viewLayout.getLineNumberAtVerticalOffset(verticalOffset);return MouseTarget.createOutsideEditor(mouseColumn,new Position(belowLineNumber,model.getLineMaxColumn(belowLineNumber)),"below",outsideDistance)}const possibleLineNumber=viewLayout.getLineNumberAtVerticalOffset(viewLayout.getCurrentScrollTop()+e.relativePos.y);if(e.posxeditorContent.x+editorContent.width){const outsideDistance=e.posx-editorContent.x-editorContent.width;return MouseTarget.createOutsideEditor(mouseColumn,new Position(possibleLineNumber,model.getLineMaxColumn(possibleLineNumber)),"right",outsideDistance)}return null}_findMousePosition(e,testEventTarget){const positionOutsideEditor=this._getPositionOutsideEditor(e);if(positionOutsideEditor){return positionOutsideEditor}const t2=this._createMouseTarget(e,testEventTarget);const hintedPosition=t2.position;if(!hintedPosition){return null}if(t2.type===8||t2.type===5){const newPosition=this._helpPositionJumpOverViewZone(t2.detail);if(newPosition){return MouseTarget.createViewZone(t2.type,t2.element,t2.mouseColumn,newPosition,t2.detail)}}return t2}_helpPositionJumpOverViewZone(viewZoneData){const selectionStart=new Position(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn);const positionBefore=viewZoneData.positionBefore;const positionAfter=viewZoneData.positionAfter;if(positionBefore&&positionAfter){if(positionBefore.isBefore(selectionStart)){return positionBefore}else{return positionAfter}}return null}_dispatchMouse(position,inSelectionMode,revealType){if(!position.position){return}this._viewController.dispatchMouse({position:position.position,mouseColumn:position.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:revealType,inSelectionMode:inSelectionMode,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:position.type===6&&position.detail.injectedText!==null})}};TopBottomDragScrolling=class extends Disposable{constructor(_context,_viewHelper,_mouseTargetFactory,_dispatchMouse){super();this._context=_context;this._viewHelper=_viewHelper;this._mouseTargetFactory=_mouseTargetFactory;this._dispatchMouse=_dispatchMouse;this._operation=null}dispose(){super.dispose();this.stop()}start(position,mouseEvent){if(this._operation){this._operation.setPosition(position,mouseEvent)}else{this._operation=new TopBottomDragScrollingOperation(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,position,mouseEvent)}}stop(){if(this._operation){this._operation.dispose();this._operation=null}}};TopBottomDragScrollingOperation=class extends Disposable{constructor(_context,_viewHelper,_mouseTargetFactory,_dispatchMouse,position,mouseEvent){super();this._context=_context;this._viewHelper=_viewHelper;this._mouseTargetFactory=_mouseTargetFactory;this._dispatchMouse=_dispatchMouse;this._position=position;this._mouseEvent=mouseEvent;this._lastTime=Date.now();this._animationFrameDisposable=scheduleAtNextAnimationFrame((()=>this._execute()))}dispose(){this._animationFrameDisposable.dispose()}setPosition(position,mouseEvent){this._position=position;this._mouseEvent=mouseEvent}_tick(){const now=Date.now();const elapsed=now-this._lastTime;this._lastTime=now;return elapsed}_getScrollSpeed(){const lineHeight=this._context.configuration.options.get(65);const viewportInLines=this._context.configuration.options.get(142).height/lineHeight;const outsideDistanceInLines=this._position.outsideDistance/lineHeight;if(outsideDistanceInLines<=1.5){return Math.max(30,viewportInLines*(1+outsideDistanceInLines))}if(outsideDistanceInLines<=3){return Math.max(60,viewportInLines*(2+outsideDistanceInLines))}return Math.max(200,viewportInLines*(7+outsideDistanceInLines))}_execute(){const lineHeight=this._context.configuration.options.get(65);const scrollSpeedInLines=this._getScrollSpeed();const elapsed=this._tick();const scrollInPixels=scrollSpeedInLines*(elapsed/1e3)*lineHeight;const scrollValue=this._position.outsidePosition==="above"?-scrollInPixels:scrollInPixels;this._context.viewModel.viewLayout.deltaScrollNow(0,scrollValue);this._viewHelper.renderNow();const viewportData=this._context.viewLayout.getLinesViewportData();const edgeLineNumber=this._position.outsidePosition==="above"?viewportData.startLineNumber:viewportData.endLineNumber;let mouseTarget;{const editorPos=createEditorPagePosition(this._viewHelper.viewDomNode);const horizontalScrollbarHeight=this._context.configuration.options.get(142).horizontalScrollbarHeight;const pos=new PageCoordinates(this._mouseEvent.pos.x,editorPos.y+editorPos.height-horizontalScrollbarHeight-.1);const relativePos=createCoordinatesRelativeToEditor(this._viewHelper.viewDomNode,editorPos,pos);mouseTarget=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),editorPos,pos,relativePos,null)}if(!mouseTarget.position||mouseTarget.position.lineNumber!==edgeLineNumber){if(this._position.outsidePosition==="above"){mouseTarget=MouseTarget.createOutsideEditor(this._position.mouseColumn,new Position(edgeLineNumber,1),"above",this._position.outsideDistance)}else{mouseTarget=MouseTarget.createOutsideEditor(this._position.mouseColumn,new Position(edgeLineNumber,this._context.viewModel.getLineMaxColumn(edgeLineNumber)),"below",this._position.outsideDistance)}}this._dispatchMouse(mouseTarget,true,2);this._animationFrameDisposable=scheduleAtNextAnimationFrame((()=>this._execute()))}};MouseDownState=class{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=false;this._ctrlKey=false;this._metaKey=false;this._shiftKey=false;this._leftButton=false;this._middleButton=false;this._startedOnLineNumbers=false;this._lastMouseDownPosition=null;this._lastMouseDownPositionEqualCount=0;this._lastMouseDownCount=0;this._lastSetMouseDownCountTime=0;this.isDragAndDrop=false}get count(){return this._lastMouseDownCount}setModifiers(source){this._altKey=source.altKey;this._ctrlKey=source.ctrlKey;this._metaKey=source.metaKey;this._shiftKey=source.shiftKey}setStartButtons(source){this._leftButton=source.leftButton;this._middleButton=source.middleButton}setStartedOnLineNumbers(startedOnLineNumbers){this._startedOnLineNumbers=startedOnLineNumbers}trySetCount(setMouseDownCount,newMouseDownPosition){const currentTime=(new Date).getTime();if(currentTime-this._lastSetMouseDownCountTime>MouseDownState.CLEAR_MOUSE_DOWN_COUNT_TIME){setMouseDownCount=1}this._lastSetMouseDownCountTime=currentTime;if(setMouseDownCount>this._lastMouseDownCount+1){setMouseDownCount=this._lastMouseDownCount+1}if(this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(newMouseDownPosition)){this._lastMouseDownPositionEqualCount++}else{this._lastMouseDownPositionEqualCount=1}this._lastMouseDownPosition=newMouseDownPosition;this._lastMouseDownCount=Math.min(setMouseDownCount,this._lastMouseDownPositionEqualCount)}};MouseDownState.CLEAR_MOUSE_DOWN_COUNT_TIME=400}});var DomEmitter;var init_event2=__esm({"node_modules/monaco-editor/esm/vs/base/browser/event.js"(){init_event();DomEmitter=class{get event(){return this.emitter.event}constructor(element,type,useCapture){const fn=e=>this.emitter.fire(e);this.emitter=new Emitter({onWillAddFirstListener:()=>element.addEventListener(type,fn,useCapture),onDidRemoveLastListener:()=>element.removeEventListener(type,fn,useCapture)})}dispose(){this.emitter.dispose()}}}});var inputLatency;var init_performance=__esm({"node_modules/monaco-editor/esm/vs/base/browser/performance.js"(){(function(inputLatency2){const totalKeydownTime={total:0,min:Number.MAX_VALUE,max:0};const totalInputTime=Object.assign({},totalKeydownTime);const totalRenderTime=Object.assign({},totalKeydownTime);const totalInputLatencyTime=Object.assign({},totalKeydownTime);let measurementsCount=0;const state={keydown:0,input:0,render:0};function onKeyDown(){recordIfFinished();performance.mark("inputlatency/start");performance.mark("keydown/start");state.keydown=1;queueMicrotask(markKeyDownEnd)}inputLatency2.onKeyDown=onKeyDown;function markKeyDownEnd(){if(state.keydown===1){performance.mark("keydown/end");state.keydown=2}}function onBeforeInput(){performance.mark("input/start");state.input=1;scheduleRecordIfFinishedTask()}inputLatency2.onBeforeInput=onBeforeInput;function onInput(){if(state.input===0){onBeforeInput()}queueMicrotask(markInputEnd)}inputLatency2.onInput=onInput;function markInputEnd(){if(state.input===1){performance.mark("input/end");state.input=2}}function onKeyUp(){recordIfFinished()}inputLatency2.onKeyUp=onKeyUp;function onSelectionChange(){recordIfFinished()}inputLatency2.onSelectionChange=onSelectionChange;function onRenderStart(){if(state.keydown===2&&state.input===2&&state.render===0){performance.mark("render/start");state.render=1;queueMicrotask(markRenderEnd);scheduleRecordIfFinishedTask()}}inputLatency2.onRenderStart=onRenderStart;function markRenderEnd(){if(state.render===1){performance.mark("render/end");state.render=2}}function scheduleRecordIfFinishedTask(){setTimeout(recordIfFinished)}function recordIfFinished(){if(state.keydown===2&&state.input===2&&state.render===2){performance.mark("inputlatency/end");performance.measure("keydown","keydown/start","keydown/end");performance.measure("input","input/start","input/end");performance.measure("render","render/start","render/end");performance.measure("inputlatency","inputlatency/start","inputlatency/end");addMeasure("keydown",totalKeydownTime);addMeasure("input",totalInputTime);addMeasure("render",totalRenderTime);addMeasure("inputlatency",totalInputLatencyTime);measurementsCount++;reset2()}}function addMeasure(entryName,cumulativeMeasurement){const duration=performance.getEntriesByName(entryName)[0].duration;cumulativeMeasurement.total+=duration;cumulativeMeasurement.min=Math.min(cumulativeMeasurement.min,duration);cumulativeMeasurement.max=Math.max(cumulativeMeasurement.max,duration)}function reset2(){performance.clearMarks("keydown/start");performance.clearMarks("keydown/end");performance.clearMarks("input/start");performance.clearMarks("input/end");performance.clearMarks("render/start");performance.clearMarks("render/end");performance.clearMarks("inputlatency/start");performance.clearMarks("inputlatency/end");performance.clearMeasures("keydown");performance.clearMeasures("input");performance.clearMeasures("render");performance.clearMeasures("inputlatency");state.keydown=0;state.input=0;state.render=0}function getAndClearMeasurements(){if(measurementsCount===0){return void 0}const result={keydown:cumulativeToFinalMeasurement(totalKeydownTime),input:cumulativeToFinalMeasurement(totalInputTime),render:cumulativeToFinalMeasurement(totalRenderTime),total:cumulativeToFinalMeasurement(totalInputLatencyTime),sampleCount:measurementsCount};clearCumulativeMeasurement(totalKeydownTime);clearCumulativeMeasurement(totalInputTime);clearCumulativeMeasurement(totalRenderTime);clearCumulativeMeasurement(totalInputLatencyTime);measurementsCount=0;return result}inputLatency2.getAndClearMeasurements=getAndClearMeasurements;function cumulativeToFinalMeasurement(cumulative){return{average:cumulative.total/measurementsCount,max:cumulative.max,min:cumulative.min}}function clearCumulativeMeasurement(cumulative){cumulative.total=0;cumulative.min=Number.MAX_VALUE;cumulative.max=0}})(inputLatency||(inputLatency={}))}});var _debugComposition,TextAreaState,PagedScreenReaderStrategy;var init_textAreaState=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaState.js"(){init_strings();init_range();_debugComposition=false;TextAreaState=class{constructor(value,selectionStart,selectionEnd,selection,newlineCountBeforeSelection){this.value=value;this.selectionStart=selectionStart;this.selectionEnd=selectionEnd;this.selection=selection;this.newlineCountBeforeSelection=newlineCountBeforeSelection}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(textArea,previousState){const value=textArea.getValue();const selectionStart=textArea.getSelectionStart();const selectionEnd=textArea.getSelectionEnd();let newlineCountBeforeSelection=void 0;if(previousState){const valueBeforeSelectionStart=value.substring(0,selectionStart);const previousValueBeforeSelectionStart=previousState.value.substring(0,previousState.selectionStart);if(valueBeforeSelectionStart===previousValueBeforeSelectionStart){newlineCountBeforeSelection=previousState.newlineCountBeforeSelection}}return new TextAreaState(value,selectionStart,selectionEnd,null,newlineCountBeforeSelection)}collapseSelection(){if(this.selectionStart===this.value.length){return this}return new TextAreaState(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(reason,textArea,select){if(_debugComposition){console.log(`writeToTextArea ${reason}: ${this.toString()}`)}textArea.setValue(reason,this.value);if(select){textArea.setSelectionRange(reason,this.selectionStart,this.selectionEnd)}}deduceEditorPosition(offset){var _a6,_b3,_c2,_d2,_e2,_f2,_g2,_h2;if(offset<=this.selectionStart){const str=this.value.substring(offset,this.selectionStart);return this._finishDeduceEditorPosition((_b3=(_a6=this.selection)===null||_a6===void 0?void 0:_a6.getStartPosition())!==null&&_b3!==void 0?_b3:null,str,-1)}if(offset>=this.selectionEnd){const str=this.value.substring(this.selectionEnd,offset);return this._finishDeduceEditorPosition((_d2=(_c2=this.selection)===null||_c2===void 0?void 0:_c2.getEndPosition())!==null&&_d2!==void 0?_d2:null,str,1)}const str1=this.value.substring(this.selectionStart,offset);if(str1.indexOf(String.fromCharCode(8230))===-1){return this._finishDeduceEditorPosition((_f2=(_e2=this.selection)===null||_e2===void 0?void 0:_e2.getStartPosition())!==null&&_f2!==void 0?_f2:null,str1,1)}const str2=this.value.substring(offset,this.selectionEnd);return this._finishDeduceEditorPosition((_h2=(_g2=this.selection)===null||_g2===void 0?void 0:_g2.getEndPosition())!==null&&_h2!==void 0?_h2:null,str2,-1)}_finishDeduceEditorPosition(anchor,deltaText,signum){let lineFeedCnt=0;let lastLineFeedIndex=-1;while((lastLineFeedIndex=deltaText.indexOf("\n",lastLineFeedIndex+1))!==-1){lineFeedCnt++}return[anchor,signum*deltaText.length,lineFeedCnt]}static deduceInput(previousState,currentState,couldBeEmojiInput){if(!previousState){return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0}}if(_debugComposition){console.log("------------------------deduceInput");console.log(`PREVIOUS STATE: ${previousState.toString()}`);console.log(`CURRENT STATE: ${currentState.toString()}`)}const prefixLength=Math.min(commonPrefixLength(previousState.value,currentState.value),previousState.selectionStart,currentState.selectionStart);const suffixLength=Math.min(commonSuffixLength(previousState.value,currentState.value),previousState.value.length-previousState.selectionEnd,currentState.value.length-currentState.selectionEnd);const previousValue=previousState.value.substring(prefixLength,previousState.value.length-suffixLength);const currentValue=currentState.value.substring(prefixLength,currentState.value.length-suffixLength);const previousSelectionStart=previousState.selectionStart-prefixLength;const previousSelectionEnd=previousState.selectionEnd-prefixLength;const currentSelectionStart=currentState.selectionStart-prefixLength;const currentSelectionEnd=currentState.selectionEnd-prefixLength;if(_debugComposition){console.log(`AFTER DIFFING PREVIOUS STATE: <${previousValue}>, selectionStart: ${previousSelectionStart}, selectionEnd: ${previousSelectionEnd}`);console.log(`AFTER DIFFING CURRENT STATE: <${currentValue}>, selectionStart: ${currentSelectionStart}, selectionEnd: ${currentSelectionEnd}`)}if(currentSelectionStart===currentSelectionEnd){const replacePreviousCharacters2=previousState.selectionStart-prefixLength;if(_debugComposition){console.log(`REMOVE PREVIOUS: ${replacePreviousCharacters2} chars`)}return{text:currentValue,replacePrevCharCnt:replacePreviousCharacters2,replaceNextCharCnt:0,positionDelta:0}}const replacePreviousCharacters=previousSelectionEnd-previousSelectionStart;return{text:currentValue,replacePrevCharCnt:replacePreviousCharacters,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(previousState,currentState){if(!previousState){return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0}}if(_debugComposition){console.log("------------------------deduceAndroidCompositionInput");console.log(`PREVIOUS STATE: ${previousState.toString()}`);console.log(`CURRENT STATE: ${currentState.toString()}`)}if(previousState.value===currentState.value){return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:currentState.selectionEnd-previousState.selectionEnd}}const prefixLength=Math.min(commonPrefixLength(previousState.value,currentState.value),previousState.selectionEnd);const suffixLength=Math.min(commonSuffixLength(previousState.value,currentState.value),previousState.value.length-previousState.selectionEnd);const previousValue=previousState.value.substring(prefixLength,previousState.value.length-suffixLength);const currentValue=currentState.value.substring(prefixLength,currentState.value.length-suffixLength);const previousSelectionStart=previousState.selectionStart-prefixLength;const previousSelectionEnd=previousState.selectionEnd-prefixLength;const currentSelectionStart=currentState.selectionStart-prefixLength;const currentSelectionEnd=currentState.selectionEnd-prefixLength;if(_debugComposition){console.log(`AFTER DIFFING PREVIOUS STATE: <${previousValue}>, selectionStart: ${previousSelectionStart}, selectionEnd: ${previousSelectionEnd}`);console.log(`AFTER DIFFING CURRENT STATE: <${currentValue}>, selectionStart: ${currentSelectionStart}, selectionEnd: ${currentSelectionEnd}`)}return{text:currentValue,replacePrevCharCnt:previousSelectionEnd,replaceNextCharCnt:previousValue.length-previousSelectionEnd,positionDelta:currentSelectionEnd-currentValue.length}}};TextAreaState.EMPTY=new TextAreaState("",0,0,null,void 0);PagedScreenReaderStrategy=class{static _getPageOfLine(lineNumber,linesPerPage){return Math.floor((lineNumber-1)/linesPerPage)}static _getRangeForPage(page,linesPerPage){const offset=page*linesPerPage;const startLineNumber=offset+1;const endLineNumber=offset+linesPerPage;return new Range(startLineNumber,1,endLineNumber+1,1)}static fromEditorSelection(model,selection,linesPerPage,trimLongText){const LIMIT_CHARS=500;const selectionStartPage=PagedScreenReaderStrategy._getPageOfLine(selection.startLineNumber,linesPerPage);const selectionStartPageRange=PagedScreenReaderStrategy._getRangeForPage(selectionStartPage,linesPerPage);const selectionEndPage=PagedScreenReaderStrategy._getPageOfLine(selection.endLineNumber,linesPerPage);const selectionEndPageRange=PagedScreenReaderStrategy._getRangeForPage(selectionEndPage,linesPerPage);let pretextRange=selectionStartPageRange.intersectRanges(new Range(1,1,selection.startLineNumber,selection.startColumn));if(trimLongText&&model.getValueLengthInRange(pretextRange,1)>LIMIT_CHARS){const pretextStart=model.modifyPosition(pretextRange.getEndPosition(),-LIMIT_CHARS);pretextRange=Range.fromPositions(pretextStart,pretextRange.getEndPosition())}const pretext=model.getValueInRange(pretextRange,1);const lastLine=model.getLineCount();const lastLineMaxColumn=model.getLineMaxColumn(lastLine);let posttextRange=selectionEndPageRange.intersectRanges(new Range(selection.endLineNumber,selection.endColumn,lastLine,lastLineMaxColumn));if(trimLongText&&model.getValueLengthInRange(posttextRange,1)>LIMIT_CHARS){const posttextEnd=model.modifyPosition(posttextRange.getStartPosition(),LIMIT_CHARS);posttextRange=Range.fromPositions(posttextRange.getStartPosition(),posttextEnd)}const posttext=model.getValueInRange(posttextRange,1);let text2;if(selectionStartPage===selectionEndPage||selectionStartPage+1===selectionEndPage){text2=model.getValueInRange(selection,1)}else{const selectionRange1=selectionStartPageRange.intersectRanges(selection);const selectionRange2=selectionEndPageRange.intersectRanges(selection);text2=model.getValueInRange(selectionRange1,1)+String.fromCharCode(8230)+model.getValueInRange(selectionRange2,1)}if(trimLongText&&text2.length>2*LIMIT_CHARS){text2=text2.substring(0,LIMIT_CHARS)+String.fromCharCode(8230)+text2.substring(text2.length-LIMIT_CHARS,text2.length)}return new TextAreaState(pretext+text2+posttext,pretext.length,pretext.length+text2.length,selection,pretextRange.endLineNumber-pretextRange.startLineNumber)}}}});var TextAreaSyntethicEvents,CopyOptions,InMemoryClipboardMetadataManager,CompositionContext,TextAreaInput,ClipboardEventUtils,TextAreaWrapper;var init_textAreaInput=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaInput.js"(){init_browser();init_dom();init_event2();init_keyboardEvent();init_performance();init_async();init_event();init_lifecycle();init_mime();init_strings();init_textAreaState();init_selection();(function(TextAreaSyntethicEvents2){TextAreaSyntethicEvents2.Tap="-monaco-textarea-synthetic-tap"})(TextAreaSyntethicEvents||(TextAreaSyntethicEvents={}));CopyOptions={forceCopyWithSyntaxHighlighting:false};InMemoryClipboardMetadataManager=class{constructor(){this._lastState=null}set(lastCopiedValue,data){this._lastState={lastCopiedValue:lastCopiedValue,data:data}}get(pastedText){if(this._lastState&&this._lastState.lastCopiedValue===pastedText){return this._lastState.data}this._lastState=null;return null}};InMemoryClipboardMetadataManager.INSTANCE=new InMemoryClipboardMetadataManager;CompositionContext=class{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(text2){text2=text2||"";const typeInput={text:text2,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};this._lastTypeTextLength=text2.length;return typeInput}};TextAreaInput=class extends Disposable{get textAreaState(){return this._textAreaState}constructor(_host,_textArea,_OS,_browser){super();this._host=_host;this._textArea=_textArea;this._OS=_OS;this._browser=_browser;this._onFocus=this._register(new Emitter);this.onFocus=this._onFocus.event;this._onBlur=this._register(new Emitter);this.onBlur=this._onBlur.event;this._onKeyDown=this._register(new Emitter);this.onKeyDown=this._onKeyDown.event;this._onKeyUp=this._register(new Emitter);this.onKeyUp=this._onKeyUp.event;this._onCut=this._register(new Emitter);this.onCut=this._onCut.event;this._onPaste=this._register(new Emitter);this.onPaste=this._onPaste.event;this._onType=this._register(new Emitter);this.onType=this._onType.event;this._onCompositionStart=this._register(new Emitter);this.onCompositionStart=this._onCompositionStart.event;this._onCompositionUpdate=this._register(new Emitter);this.onCompositionUpdate=this._onCompositionUpdate.event;this._onCompositionEnd=this._register(new Emitter);this.onCompositionEnd=this._onCompositionEnd.event;this._onSelectionChangeRequest=this._register(new Emitter);this.onSelectionChangeRequest=this._onSelectionChangeRequest.event;this._asyncTriggerCut=this._register(new RunOnceScheduler((()=>this._onCut.fire()),0));this._asyncFocusGainWriteScreenReaderContent=this._register(new RunOnceScheduler((()=>this.writeScreenReaderContent("asyncFocusGain")),0));this._textAreaState=TextAreaState.EMPTY;this._selectionChangeListener=null;this.writeScreenReaderContent("ctor");this._hasFocus=false;this._currentComposition=null;let lastKeyDown=null;this._register(this._textArea.onKeyDown((_e2=>{const e=new StandardKeyboardEvent(_e2);if(e.keyCode===114||this._currentComposition&&e.keyCode===1){e.stopPropagation()}if(e.equals(9)){e.preventDefault()}lastKeyDown=e;this._onKeyDown.fire(e)})));this._register(this._textArea.onKeyUp((_e2=>{const e=new StandardKeyboardEvent(_e2);this._onKeyUp.fire(e)})));this._register(this._textArea.onCompositionStart((e=>{if(_debugComposition){console.log(`[compositionstart]`,e)}const currentComposition=new CompositionContext;if(this._currentComposition){this._currentComposition=currentComposition;return}this._currentComposition=currentComposition;if(this._OS===2&&lastKeyDown&&lastKeyDown.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===e.data&&(lastKeyDown.code==="ArrowRight"||lastKeyDown.code==="ArrowLeft")){if(_debugComposition){console.log(`[compositionstart] Handling long press case on macOS + arrow key`,e)}currentComposition.handleCompositionUpdate("x");this._onCompositionStart.fire({data:e.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:e.data});return}this._onCompositionStart.fire({data:e.data})})));this._register(this._textArea.onCompositionUpdate((e=>{if(_debugComposition){console.log(`[compositionupdate]`,e)}const currentComposition=this._currentComposition;if(!currentComposition){return}if(this._browser.isAndroid){const newState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState);const typeInput2=TextAreaState.deduceAndroidCompositionInput(this._textAreaState,newState);this._textAreaState=newState;this._onType.fire(typeInput2);this._onCompositionUpdate.fire(e);return}const typeInput=currentComposition.handleCompositionUpdate(e.data);this._textAreaState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState);this._onType.fire(typeInput);this._onCompositionUpdate.fire(e)})));this._register(this._textArea.onCompositionEnd((e=>{if(_debugComposition){console.log(`[compositionend]`,e)}const currentComposition=this._currentComposition;if(!currentComposition){return}this._currentComposition=null;if(this._browser.isAndroid){const newState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState);const typeInput2=TextAreaState.deduceAndroidCompositionInput(this._textAreaState,newState);this._textAreaState=newState;this._onType.fire(typeInput2);this._onCompositionEnd.fire();return}const typeInput=currentComposition.handleCompositionUpdate(e.data);this._textAreaState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState);this._onType.fire(typeInput);this._onCompositionEnd.fire()})));this._register(this._textArea.onInput((e=>{if(_debugComposition){console.log(`[input]`,e)}this._textArea.setIgnoreSelectionChangeTime("received input event");if(this._currentComposition){return}const newState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState);const typeInput=TextAreaState.deduceInput(this._textAreaState,newState,this._OS===2);if(typeInput.replacePrevCharCnt===0&&typeInput.text.length===1){if(isHighSurrogate(typeInput.text.charCodeAt(0))||typeInput.text.charCodeAt(0)===127){return}}this._textAreaState=newState;if(typeInput.text!==""||typeInput.replacePrevCharCnt!==0||typeInput.replaceNextCharCnt!==0||typeInput.positionDelta!==0){this._onType.fire(typeInput)}})));this._register(this._textArea.onCut((e=>{this._textArea.setIgnoreSelectionChangeTime("received cut event");this._ensureClipboardGetsEditorSelection(e);this._asyncTriggerCut.schedule()})));this._register(this._textArea.onCopy((e=>{this._ensureClipboardGetsEditorSelection(e)})));this._register(this._textArea.onPaste((e=>{this._textArea.setIgnoreSelectionChangeTime("received paste event");e.preventDefault();if(!e.clipboardData){return}let[text2,metadata]=ClipboardEventUtils.getTextData(e.clipboardData);if(!text2){return}metadata=metadata||InMemoryClipboardMetadataManager.INSTANCE.get(text2);this._onPaste.fire({text:text2,metadata:metadata})})));this._register(this._textArea.onFocus((()=>{const hadFocus=this._hasFocus;this._setHasFocus(true);if(this._browser.isSafari&&!hadFocus&&this._hasFocus){this._asyncFocusGainWriteScreenReaderContent.schedule()}})));this._register(this._textArea.onBlur((()=>{if(this._currentComposition){this._currentComposition=null;this.writeScreenReaderContent("blurWithoutCompositionEnd");this._onCompositionEnd.fire()}this._setHasFocus(false)})));this._register(this._textArea.onSyntheticTap((()=>{if(this._browser.isAndroid&&this._currentComposition){this._currentComposition=null;this.writeScreenReaderContent("tapWithoutCompositionEnd");this._onCompositionEnd.fire()}})))}_installSelectionChangeListener(){let previousSelectionChangeEventTime=0;return addDisposableListener(document,"selectionchange",(e=>{inputLatency.onSelectionChange();if(!this._hasFocus){return}if(this._currentComposition){return}if(!this._browser.isChrome){return}const now=Date.now();const delta1=now-previousSelectionChangeEventTime;previousSelectionChangeEventTime=now;if(delta1<5){return}const delta2=now-this._textArea.getIgnoreSelectionChangeTime();this._textArea.resetSelectionChangeTime();if(delta2<100){return}if(!this._textAreaState.selection){return}const newValue=this._textArea.getValue();if(this._textAreaState.value!==newValue){return}const newSelectionStart=this._textArea.getSelectionStart();const newSelectionEnd=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===newSelectionStart&&this._textAreaState.selectionEnd===newSelectionEnd){return}const _newSelectionStartPosition=this._textAreaState.deduceEditorPosition(newSelectionStart);const newSelectionStartPosition=this._host.deduceModelPosition(_newSelectionStartPosition[0],_newSelectionStartPosition[1],_newSelectionStartPosition[2]);const _newSelectionEndPosition=this._textAreaState.deduceEditorPosition(newSelectionEnd);const newSelectionEndPosition=this._host.deduceModelPosition(_newSelectionEndPosition[0],_newSelectionEndPosition[1],_newSelectionEndPosition[2]);const newSelection=new Selection(newSelectionStartPosition.lineNumber,newSelectionStartPosition.column,newSelectionEndPosition.lineNumber,newSelectionEndPosition.column);this._onSelectionChangeRequest.fire(newSelection)}))}dispose(){super.dispose();if(this._selectionChangeListener){this._selectionChangeListener.dispose();this._selectionChangeListener=null}}focusTextArea(){this._setHasFocus(true);this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(newHasFocus){if(this._hasFocus===newHasFocus){return}this._hasFocus=newHasFocus;if(this._selectionChangeListener){this._selectionChangeListener.dispose();this._selectionChangeListener=null}if(this._hasFocus){this._selectionChangeListener=this._installSelectionChangeListener()}if(this._hasFocus){this.writeScreenReaderContent("focusgain")}if(this._hasFocus){this._onFocus.fire()}else{this._onBlur.fire()}}_setAndWriteTextAreaState(reason,textAreaState){if(!this._hasFocus){textAreaState=textAreaState.collapseSelection()}textAreaState.writeToTextArea(reason,this._textArea,this._hasFocus);this._textAreaState=textAreaState}writeScreenReaderContent(reason){if(this._currentComposition){return}this._setAndWriteTextAreaState(reason,this._host.getScreenReaderContent())}_ensureClipboardGetsEditorSelection(e){const dataToCopy=this._host.getDataToCopy();const storedMetadata={version:1,isFromEmptySelection:dataToCopy.isFromEmptySelection,multicursorText:dataToCopy.multicursorText,mode:dataToCopy.mode};InMemoryClipboardMetadataManager.INSTANCE.set(this._browser.isFirefox?dataToCopy.text.replace(/\r\n/g,"\n"):dataToCopy.text,storedMetadata);e.preventDefault();if(e.clipboardData){ClipboardEventUtils.setTextData(e.clipboardData,dataToCopy.text,dataToCopy.html,storedMetadata)}}};ClipboardEventUtils={getTextData(clipboardData){const text2=clipboardData.getData(Mimes.text);let metadata=null;const rawmetadata=clipboardData.getData("vscode-editor-data");if(typeof rawmetadata==="string"){try{metadata=JSON.parse(rawmetadata);if(metadata.version!==1){metadata=null}}catch(err){}}if(text2.length===0&&metadata===null&&clipboardData.files.length>0){const files=Array.prototype.slice.call(clipboardData.files,0);return[files.map((file=>file.name)).join("\n"),null]}return[text2,metadata]},setTextData(clipboardData,text2,html2,metadata){clipboardData.setData(Mimes.text,text2);if(typeof html2==="string"){clipboardData.setData("text/html",html2)}clipboardData.setData("vscode-editor-data",JSON.stringify(metadata))}};TextAreaWrapper=class extends Disposable{constructor(_actual){super();this._actual=_actual;this.onKeyDown=this._register(new DomEmitter(this._actual,"keydown")).event;this.onKeyUp=this._register(new DomEmitter(this._actual,"keyup")).event;this.onCompositionStart=this._register(new DomEmitter(this._actual,"compositionstart")).event;this.onCompositionUpdate=this._register(new DomEmitter(this._actual,"compositionupdate")).event;this.onCompositionEnd=this._register(new DomEmitter(this._actual,"compositionend")).event;this.onBeforeInput=this._register(new DomEmitter(this._actual,"beforeinput")).event;this.onInput=this._register(new DomEmitter(this._actual,"input")).event;this.onCut=this._register(new DomEmitter(this._actual,"cut")).event;this.onCopy=this._register(new DomEmitter(this._actual,"copy")).event;this.onPaste=this._register(new DomEmitter(this._actual,"paste")).event;this.onFocus=this._register(new DomEmitter(this._actual,"focus")).event;this.onBlur=this._register(new DomEmitter(this._actual,"blur")).event;this._onSyntheticTap=this._register(new Emitter);this.onSyntheticTap=this._onSyntheticTap.event;this._ignoreSelectionChangeTime=0;this._register(this.onKeyDown((()=>inputLatency.onKeyDown())));this._register(this.onBeforeInput((()=>inputLatency.onBeforeInput())));this._register(this.onInput((()=>inputLatency.onInput())));this._register(this.onKeyUp((()=>inputLatency.onKeyUp())));this._register(addDisposableListener(this._actual,TextAreaSyntethicEvents.Tap,(()=>this._onSyntheticTap.fire())))}hasFocus(){const shadowRoot=getShadowRoot(this._actual);if(shadowRoot){return shadowRoot.activeElement===this._actual}else if(isInDOM(this._actual)){return document.activeElement===this._actual}else{return false}}setIgnoreSelectionChangeTime(reason){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(reason,value){const textArea=this._actual;if(textArea.value===value){return}this.setIgnoreSelectionChangeTime("setValue");textArea.value=value}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(reason,selectionStart,selectionEnd){const textArea=this._actual;let activeElement=null;const shadowRoot=getShadowRoot(textArea);if(shadowRoot){activeElement=shadowRoot.activeElement}else{activeElement=document.activeElement}const currentIsFocused=activeElement===textArea;const currentSelectionStart=textArea.selectionStart;const currentSelectionEnd=textArea.selectionEnd;if(currentIsFocused&¤tSelectionStart===selectionStart&¤tSelectionEnd===selectionEnd){if(isFirefox2&&window.parent!==window){textArea.focus()}return}if(currentIsFocused){this.setIgnoreSelectionChangeTime("setSelectionRange");textArea.setSelectionRange(selectionStart,selectionEnd);if(isFirefox2&&window.parent!==window){textArea.focus()}return}try{const scrollState=saveParentsScrollTop(textArea);this.setIgnoreSelectionChangeTime("setSelectionRange");textArea.focus();textArea.setSelectionRange(selectionStart,selectionEnd);restoreParentsScrollTop(textArea,scrollState)}catch(e){}}}}});var PointerEventHandler,TouchHandler,PointerHandler;var init_pointerHandler=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/controller/pointerHandler.js"(){init_dom();init_platform();init_touch();init_lifecycle();init_mouseHandler();init_editorDom();init_canIUse();init_textAreaInput();PointerEventHandler=class extends MouseHandler{constructor(context,viewController,viewHelper){super(context,viewController,viewHelper);this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode));this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType2.Tap,(e=>this.onTap(e))));this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType2.Change,(e=>this.onChange(e))));this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType2.Contextmenu,(e=>this._onContextMenu(new EditorMouseEvent(e,false,this.viewHelper.viewDomNode),false))));this._lastPointerType="mouse";this._register(addDisposableListener(this.viewHelper.linesContentDomNode,"pointerdown",(e=>{const pointerType=e.pointerType;if(pointerType==="mouse"){this._lastPointerType="mouse";return}else if(pointerType==="touch"){this._lastPointerType="touch"}else{this._lastPointerType="pen"}})));const pointerEvents=new EditorPointerEventFactory(this.viewHelper.viewDomNode);this._register(pointerEvents.onPointerMove(this.viewHelper.viewDomNode,(e=>this._onMouseMove(e))));this._register(pointerEvents.onPointerUp(this.viewHelper.viewDomNode,(e=>this._onMouseUp(e))));this._register(pointerEvents.onPointerLeave(this.viewHelper.viewDomNode,(e=>this._onMouseLeave(e))));this._register(pointerEvents.onPointerDown(this.viewHelper.viewDomNode,((e,pointerId)=>this._onMouseDown(e,pointerId))))}onTap(event){if(!event.initialTarget||!this.viewHelper.linesContentDomNode.contains(event.initialTarget)){return}event.preventDefault();this.viewHelper.focusTextArea();const target=this._createMouseTarget(new EditorMouseEvent(event,false,this.viewHelper.viewDomNode),false);if(target.position){this.viewController.dispatchMouse({position:target.position,mouseColumn:target.position.column,startedOnLineNumbers:false,revealType:1,mouseDownCount:event.tapCount,inSelectionMode:false,altKey:false,ctrlKey:false,metaKey:false,shiftKey:false,leftButton:false,middleButton:false,onInjectedText:target.type===6&&target.detail.injectedText!==null})}}onChange(e){if(this._lastPointerType==="touch"){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}_onMouseDown(e,pointerId){if(e.browserEvent.pointerType==="touch"){return}super._onMouseDown(e,pointerId)}};TouchHandler=class extends MouseHandler{constructor(context,viewController,viewHelper){super(context,viewController,viewHelper);this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode));this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType2.Tap,(e=>this.onTap(e))));this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType2.Change,(e=>this.onChange(e))));this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType2.Contextmenu,(e=>this._onContextMenu(new EditorMouseEvent(e,false,this.viewHelper.viewDomNode),false))))}onTap(event){event.preventDefault();this.viewHelper.focusTextArea();const target=this._createMouseTarget(new EditorMouseEvent(event,false,this.viewHelper.viewDomNode),false);if(target.position){const event2=document.createEvent("CustomEvent");event2.initEvent(TextAreaSyntethicEvents.Tap,false,true);this.viewHelper.dispatchTextAreaEvent(event2);this.viewController.moveTo(target.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}};PointerHandler=class extends Disposable{constructor(context,viewController,viewHelper){super();if(isIOS&&BrowserFeatures.pointerEvents){this.handler=this._register(new PointerEventHandler(context,viewController,viewHelper))}else if(window.TouchEvent){this.handler=this._register(new TouchHandler(context,viewController,viewHelper))}else{this.handler=this._register(new MouseHandler(context,viewController,viewHelper))}}getTargetAtClientPoint(clientX,clientY){return this.handler.getTargetAtClientPoint(clientX,clientY)}}}});var init_5=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaHandler.css"(){}});var init_6=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.css"(){}});var DynamicViewOverlay;var init_dynamicViewOverlay=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/view/dynamicViewOverlay.js"(){init_viewEventHandler();DynamicViewOverlay=class extends ViewEventHandler{}}});function themeColorFromId(id){return{id:id}}function getThemeTypeSelector(type){switch(type){case ColorScheme.DARK:return"vs-dark";case ColorScheme.HIGH_CONTRAST_DARK:return"hc-black";case ColorScheme.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}function registerThemingParticipant(participant){return themingRegistry.onColorThemeChange(participant)}var IThemeService,Extensions7,ThemingRegistry,themingRegistry,Themable;var init_themeService=__esm({"node_modules/monaco-editor/esm/vs/platform/theme/common/themeService.js"(){init_event();init_lifecycle();init_instantiation();init_platform2();init_theme();IThemeService=createDecorator("themeService");Extensions7={ThemingContribution:"base.contributions.theming"};ThemingRegistry=class{constructor(){this.themingParticipants=[];this.themingParticipants=[];this.onThemingParticipantAddedEmitter=new Emitter}onColorThemeChange(participant){this.themingParticipants.push(participant);this.onThemingParticipantAddedEmitter.fire(participant);return toDisposable((()=>{const idx=this.themingParticipants.indexOf(participant);this.themingParticipants.splice(idx,1)}))}getThemingParticipants(){return this.themingParticipants}};themingRegistry=new ThemingRegistry;Registry.add(Extensions7.ThemingContribution,themingRegistry);Themable=class extends Disposable{constructor(themeService){super();this.themeService=themeService;this.theme=themeService.getColorTheme();this._register(this.themeService.onDidColorThemeChange((theme=>this.onThemeChange(theme))))}onThemeChange(theme){this.theme=theme;this.updateStyles()}updateStyles(){}}}});var editorLineHighlight,editorLineHighlightBorder,editorRangeHighlight,editorRangeHighlightBorder,editorSymbolHighlight,editorSymbolHighlightBorder,editorCursorForeground,editorCursorBackground,editorWhitespaces,editorLineNumbers,deprecatedEditorIndentGuides,deprecatedEditorActiveIndentGuides,editorIndentGuide1,editorIndentGuide2,editorIndentGuide3,editorIndentGuide4,editorIndentGuide5,editorIndentGuide6,editorActiveIndentGuide1,editorActiveIndentGuide2,editorActiveIndentGuide3,editorActiveIndentGuide4,editorActiveIndentGuide5,editorActiveIndentGuide6,deprecatedEditorActiveLineNumber,editorActiveLineNumber,editorDimmedLineNumber,editorRuler,editorCodeLensForeground,editorBracketMatchBackground,editorBracketMatchBorder,editorOverviewRulerBorder,editorOverviewRulerBackground,editorGutter,editorUnnecessaryCodeBorder,editorUnnecessaryCodeOpacity,ghostTextBorder,ghostTextForeground,ghostTextBackground,rulerRangeDefault,overviewRulerRangeHighlight,overviewRulerError,overviewRulerWarning,overviewRulerInfo,editorBracketHighlightingForeground1,editorBracketHighlightingForeground2,editorBracketHighlightingForeground3,editorBracketHighlightingForeground4,editorBracketHighlightingForeground5,editorBracketHighlightingForeground6,editorBracketHighlightingUnexpectedBracketForeground,editorBracketPairGuideBackground1,editorBracketPairGuideBackground2,editorBracketPairGuideBackground3,editorBracketPairGuideBackground4,editorBracketPairGuideBackground5,editorBracketPairGuideBackground6,editorBracketPairGuideActiveBackground1,editorBracketPairGuideActiveBackground2,editorBracketPairGuideActiveBackground3,editorBracketPairGuideActiveBackground4,editorBracketPairGuideActiveBackground5,editorBracketPairGuideActiveBackground6,editorUnicodeHighlightBorder,editorUnicodeHighlightBackground;var init_editorColorRegistry=__esm({"node_modules/monaco-editor/esm/vs/editor/common/core/editorColorRegistry.js"(){init_nls();init_color();init_colorRegistry();init_themeService();editorLineHighlight=registerColor("editor.lineHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("lineHighlight","Background color for the highlight of line at the cursor position."));editorLineHighlightBorder=registerColor("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:contrastBorder},localize("lineHighlightBorderBox","Background color for the border around the line at the cursor position."));editorRangeHighlight=registerColor("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},localize("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),true);editorRangeHighlightBorder=registerColor("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("rangeHighlightBorder","Background color of the border around highlighted ranges."),true);editorSymbolHighlight=registerColor("editor.symbolHighlightBackground",{dark:editorFindMatchHighlight,light:editorFindMatchHighlight,hcDark:null,hcLight:null},localize("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),true);editorSymbolHighlightBorder=registerColor("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("symbolHighlightBorder","Background color of the border around highlighted symbols."),true);editorCursorForeground=registerColor("editorCursor.foreground",{dark:"#AEAFAD",light:Color.black,hcDark:Color.white,hcLight:"#0F4A85"},localize("caret","Color of the editor cursor."));editorCursorBackground=registerColor("editorCursor.background",null,localize("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor."));editorWhitespaces=registerColor("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},localize("editorWhitespaces","Color of whitespace characters in the editor."));editorLineNumbers=registerColor("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:Color.white,hcLight:"#292929"},localize("editorLineNumbers","Color of editor line numbers."));deprecatedEditorIndentGuides=registerColor("editorIndentGuide.background",{dark:editorWhitespaces,light:editorWhitespaces,hcDark:editorWhitespaces,hcLight:editorWhitespaces},localize("editorIndentGuides","Color of the editor indentation guides."),false,localize("deprecatedEditorIndentGuides","'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead."));deprecatedEditorActiveIndentGuides=registerColor("editorIndentGuide.activeBackground",{dark:editorWhitespaces,light:editorWhitespaces,hcDark:editorWhitespaces,hcLight:editorWhitespaces},localize("editorActiveIndentGuide","Color of the active editor indentation guides."),false,localize("deprecatedEditorActiveIndentGuide","'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead."));editorIndentGuide1=registerColor("editorIndentGuide.background1",{dark:deprecatedEditorIndentGuides,light:deprecatedEditorIndentGuides,hcDark:deprecatedEditorIndentGuides,hcLight:deprecatedEditorIndentGuides},localize("editorIndentGuides1","Color of the editor indentation guides (1)."));editorIndentGuide2=registerColor("editorIndentGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides2","Color of the editor indentation guides (2)."));editorIndentGuide3=registerColor("editorIndentGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides3","Color of the editor indentation guides (3)."));editorIndentGuide4=registerColor("editorIndentGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides4","Color of the editor indentation guides (4)."));editorIndentGuide5=registerColor("editorIndentGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides5","Color of the editor indentation guides (5)."));editorIndentGuide6=registerColor("editorIndentGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides6","Color of the editor indentation guides (6)."));editorActiveIndentGuide1=registerColor("editorIndentGuide.activeBackground1",{dark:deprecatedEditorActiveIndentGuides,light:deprecatedEditorActiveIndentGuides,hcDark:deprecatedEditorActiveIndentGuides,hcLight:deprecatedEditorActiveIndentGuides},localize("editorActiveIndentGuide1","Color of the active editor indentation guides (1)."));editorActiveIndentGuide2=registerColor("editorIndentGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide2","Color of the active editor indentation guides (2)."));editorActiveIndentGuide3=registerColor("editorIndentGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide3","Color of the active editor indentation guides (3)."));editorActiveIndentGuide4=registerColor("editorIndentGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide4","Color of the active editor indentation guides (4)."));editorActiveIndentGuide5=registerColor("editorIndentGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide5","Color of the active editor indentation guides (5)."));editorActiveIndentGuide6=registerColor("editorIndentGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide6","Color of the active editor indentation guides (6)."));deprecatedEditorActiveLineNumber=registerColor("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("editorActiveLineNumber","Color of editor active line number"),false,localize("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));editorActiveLineNumber=registerColor("editorLineNumber.activeForeground",{dark:deprecatedEditorActiveLineNumber,light:deprecatedEditorActiveLineNumber,hcDark:deprecatedEditorActiveLineNumber,hcLight:deprecatedEditorActiveLineNumber},localize("editorActiveLineNumber","Color of editor active line number"));editorDimmedLineNumber=registerColor("editorLineNumber.dimmedForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorDimmedLineNumber","Color of the final editor line when editor.renderFinalNewline is set to dimmed."));editorRuler=registerColor("editorRuler.foreground",{dark:"#5A5A5A",light:Color.lightgrey,hcDark:Color.white,hcLight:"#292929"},localize("editorRuler","Color of the editor rulers."));editorCodeLensForeground=registerColor("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},localize("editorCodeLensForeground","Foreground color of editor CodeLens"));editorBracketMatchBackground=registerColor("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},localize("editorBracketMatchBackground","Background color behind matching brackets"));editorBracketMatchBorder=registerColor("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:contrastBorder,hcLight:contrastBorder},localize("editorBracketMatchBorder","Color for matching brackets boxes"));editorOverviewRulerBorder=registerColor("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},localize("editorOverviewRulerBorder","Color of the overview ruler border."));editorOverviewRulerBackground=registerColor("editorOverviewRuler.background",null,localize("editorOverviewRulerBackground","Background color of the editor overview ruler."));editorGutter=registerColor("editorGutter.background",{dark:editorBackground,light:editorBackground,hcDark:editorBackground,hcLight:editorBackground},localize("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers."));editorUnnecessaryCodeBorder=registerColor("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:Color.fromHex("#fff").transparent(.8),hcLight:contrastBorder},localize("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor."));editorUnnecessaryCodeOpacity=registerColor("editorUnnecessaryCode.opacity",{dark:Color.fromHex("#000a"),light:Color.fromHex("#0007"),hcDark:null,hcLight:null},localize("unnecessaryCodeOpacity",`Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`));ghostTextBorder=registerColor("editorGhostText.border",{dark:null,light:null,hcDark:Color.fromHex("#fff").transparent(.8),hcLight:Color.fromHex("#292929").transparent(.8)},localize("editorGhostTextBorder","Border color of ghost text in the editor."));ghostTextForeground=registerColor("editorGhostText.foreground",{dark:Color.fromHex("#ffffff56"),light:Color.fromHex("#0007"),hcDark:null,hcLight:null},localize("editorGhostTextForeground","Foreground color of the ghost text in the editor."));ghostTextBackground=registerColor("editorGhostText.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorGhostTextBackground","Background color of the ghost text in the editor."));rulerRangeDefault=new Color(new RGBA(0,122,204,.6));overviewRulerRangeHighlight=registerColor("editorOverviewRuler.rangeHighlightForeground",{dark:rulerRangeDefault,light:rulerRangeDefault,hcDark:rulerRangeDefault,hcLight:rulerRangeDefault},localize("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),true);overviewRulerError=registerColor("editorOverviewRuler.errorForeground",{dark:new Color(new RGBA(255,18,18,.7)),light:new Color(new RGBA(255,18,18,.7)),hcDark:new Color(new RGBA(255,50,50,1)),hcLight:"#B5200D"},localize("overviewRuleError","Overview ruler marker color for errors."));overviewRulerWarning=registerColor("editorOverviewRuler.warningForeground",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningBorder,hcLight:editorWarningBorder},localize("overviewRuleWarning","Overview ruler marker color for warnings."));overviewRulerInfo=registerColor("editorOverviewRuler.infoForeground",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoBorder,hcLight:editorInfoBorder},localize("overviewRuleInfo","Overview ruler marker color for infos."));editorBracketHighlightingForeground1=registerColor("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},localize("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization."));editorBracketHighlightingForeground2=registerColor("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},localize("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization."));editorBracketHighlightingForeground3=registerColor("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},localize("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization."));editorBracketHighlightingForeground4=registerColor("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization."));editorBracketHighlightingForeground5=registerColor("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization."));editorBracketHighlightingForeground6=registerColor("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization."));editorBracketHighlightingUnexpectedBracketForeground=registerColor("editorBracketHighlight.unexpectedBracket.foreground",{dark:new Color(new RGBA(255,18,18,.8)),light:new Color(new RGBA(255,18,18,.8)),hcDark:new Color(new RGBA(255,50,50,1)),hcLight:""},localize("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets."));editorBracketPairGuideBackground1=registerColor("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides."));editorBracketPairGuideBackground2=registerColor("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides."));editorBracketPairGuideBackground3=registerColor("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides."));editorBracketPairGuideBackground4=registerColor("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides."));editorBracketPairGuideBackground5=registerColor("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides."));editorBracketPairGuideBackground6=registerColor("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides."));editorBracketPairGuideActiveBackground1=registerColor("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides."));editorBracketPairGuideActiveBackground2=registerColor("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides."));editorBracketPairGuideActiveBackground3=registerColor("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides."));editorBracketPairGuideActiveBackground4=registerColor("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides."));editorBracketPairGuideActiveBackground5=registerColor("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides."));editorBracketPairGuideActiveBackground6=registerColor("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));editorUnicodeHighlightBorder=registerColor("editorUnicodeHighlight.border",{dark:"#BD9B03",light:"#CEA33D",hcDark:"#ff0000",hcLight:"#CEA33D"},localize("editorUnicodeHighlight.border","Border color used to highlight unicode characters."));editorUnicodeHighlightBackground=registerColor("editorUnicodeHighlight.background",{dark:"#bd9b0326",light:"#cea33d14",hcDark:"#00000000",hcLight:"#cea33d14"},localize("editorUnicodeHighlight.background","Background color used to highlight unicode characters."));registerThemingParticipant(((theme,collector)=>{const background=theme.getColor(editorBackground);const lineHighlight=theme.getColor(editorLineHighlight);const imeBackground=lineHighlight&&!lineHighlight.isTransparent()?lineHighlight:background;if(imeBackground){collector.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${imeBackground}; }`)}}))}});var LineNumbersOverlay;var init_lineNumbers=__esm({"node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js"(){init_6();init_platform();init_dynamicViewOverlay();init_position();init_themeService();init_editorColorRegistry();LineNumbersOverlay=class extends DynamicViewOverlay{constructor(context){super();this._context=context;this._readConfig();this._lastCursorModelPosition=new Position(1,1);this._renderResult=null;this._activeLineNumber=1;this._context.addEventHandler(this)}_readConfig(){const options2=this._context.configuration.options;this._lineHeight=options2.get(65);const lineNumbers=options2.get(66);this._renderLineNumbers=lineNumbers.renderType;this._renderCustomLineNumbers=lineNumbers.renderFn;this._renderFinalNewline=options2.get(93);const layoutInfo=options2.get(142);this._lineNumbersLeft=layoutInfo.lineNumbersLeft;this._lineNumbersWidth=layoutInfo.lineNumbersWidth}dispose(){this._context.removeEventHandler(this);this._renderResult=null;super.dispose()}onConfigurationChanged(e){this._readConfig();return true}onCursorStateChanged(e){const primaryViewPosition=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(primaryViewPosition);let shouldRender=false;if(this._activeLineNumber!==primaryViewPosition.lineNumber){this._activeLineNumber=primaryViewPosition.lineNumber;shouldRender=true}if(this._renderLineNumbers===2||this._renderLineNumbers===3){shouldRender=true}return shouldRender}onFlushed(e){return true}onLinesChanged(e){return true}onLinesDeleted(e){return true}onLinesInserted(e){return true}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return true}_getLineRenderLineNumber(viewLineNumber){const modelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(viewLineNumber,1));if(modelPosition.column!==1){return""}const modelLineNumber=modelPosition.lineNumber;if(this._renderCustomLineNumbers){return this._renderCustomLineNumbers(modelLineNumber)}if(this._renderLineNumbers===2){const diff=Math.abs(this._lastCursorModelPosition.lineNumber-modelLineNumber);if(diff===0){return''+modelLineNumber+""}return String(diff)}if(this._renderLineNumbers===3){if(this._lastCursorModelPosition.lineNumber===modelLineNumber){return String(modelLineNumber)}if(modelLineNumber%10===0){return String(modelLineNumber)}return""}return String(modelLineNumber)}prepareRender(ctx){if(this._renderLineNumbers===0){this._renderResult=null;return}const lineHeightClassName=isLinux?this._lineHeight%2===0?" lh-even":" lh-odd":"";const visibleStartLineNumber=ctx.visibleRange.startLineNumber;const visibleEndLineNumber=ctx.visibleRange.endLineNumber;const lineCount=this._context.viewModel.getLineCount();const output=[];for(let lineNumber=visibleStartLineNumber;lineNumber<=visibleEndLineNumber;lineNumber++){const lineIndex=lineNumber-visibleStartLineNumber;const renderLineNumber=this._getLineRenderLineNumber(lineNumber);if(!renderLineNumber){output[lineIndex]="";continue}let extraClassName="";if(lineNumber===lineCount&&this._context.viewModel.getLineLength(lineNumber)===0){if(this._renderFinalNewline==="off"){output[lineIndex]="";continue}if(this._renderFinalNewline==="dimmed"){extraClassName=" dimmed-line-number"}}if(lineNumber===this._activeLineNumber){extraClassName=" active-line-number"}output[lineIndex]=`