/*!--------------------------------------------------------
 * Copyright (C) Microsoft Corporation. All rights reserved.
 *--------------------------------------------------------*/
/******************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol */

var extendStatics = function(d, b) {
    extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
    return extendStatics(d, b);
};

export function __extends(d, b) {
    if (typeof b !== "function" && b !== null)
        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
    extendStatics(d, b);
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}

export var __assign = function() {
    __assign = Object.assign || function __assign(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
        }
        return t;
    }
    return __assign.apply(this, arguments);
}

export function __rest(s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
}

export function __decorate(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;
}

export function __param(paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
}

export function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
    function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
    var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
    var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
    var _, done = false;
    for (var i = decorators.length - 1; i >= 0; i--) {
        var context = {};
        for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
        for (var p in contextIn.access) context.access[p] = contextIn.access[p];
        context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
        var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
        if (kind === "accessor") {
            if (result === void 0) continue;
            if (result === null || typeof result !== "object") throw new TypeError("Object expected");
            if (_ = accept(result.get)) descriptor.get = _;
            if (_ = accept(result.set)) descriptor.set = _;
            if (_ = accept(result.init)) initializers.unshift(_);
        }
        else if (_ = accept(result)) {
            if (kind === "field") initializers.unshift(_);
            else descriptor[key] = _;
        }
    }
    if (target) Object.defineProperty(target, contextIn.name, descriptor);
    done = true;
};

export function __runInitializers(thisArg, initializers, value) {
    var useValue = arguments.length > 2;
    for (var i = 0; i < initializers.length; i++) {
        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
    }
    return useValue ? value : void 0;
};

export function __propKey(x) {
    return typeof x === "symbol" ? x : "".concat(x);
};

export function __setFunctionName(f, name, prefix) {
    if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
    return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
};

export function __metadata(metadataKey, metadataValue) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}

export function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, 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 ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
}

export function __generator(thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (g && (g = 0, op[0] && (_ = 0)), _) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
}

export var __createBinding = Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
});

export function __exportStar(m, o) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
}

export function __values(o) {
    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
    if (m) return m.call(o);
    if (o && typeof o.length === "number") return {
        next: function () {
            if (o && i >= o.length) o = void 0;
            return { value: o && o[i++], done: !o };
        }
    };
    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}

export function __read(o, n) {
    var m = typeof Symbol === "function" && o[Symbol.iterator];
    if (!m) return o;
    var i = m.call(o), r, ar = [], e;
    try {
        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
    }
    catch (error) { e = { error: error }; }
    finally {
        try {
            if (r && !r.done && (m = i["return"])) m.call(i);
        }
        finally { if (e) throw e.error; }
    }
    return ar;
}

/** @deprecated */
export function __spread() {
    for (var ar = [], i = 0; i < arguments.length; i++)
        ar = ar.concat(__read(arguments[i]));
    return ar;
}

/** @deprecated */
export function __spreadArrays() {
    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
    for (var r = Array(s), k = 0, i = 0; i < il; i++)
        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
            r[k] = a[j];
    return r;
}

export function __spreadArray(to, from, pack) {
    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
            ar[i] = from[i];
        }
    }
    return to.concat(ar || Array.prototype.slice.call(from));
}

export function __await(v) {
    return this instanceof __await ? (this.v = v, this) : new __await(v);
}

export function __asyncGenerator(thisArg, _arguments, generator) {
    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
    var g = generator.apply(thisArg, _arguments || []), i, q = [];
    return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
    function fulfill(value) { resume("next", value); }
    function reject(value) { resume("throw", value); }
    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}

export function __asyncDelegator(o) {
    var i, p;
    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
}

export function __asyncValues(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 (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}

export function __makeTemplateObject(cooked, raw) {
    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
    return cooked;
};

var __setModuleDefault = Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
};

export function __importStar(mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
}

export function __importDefault(mod) {
    return (mod && mod.__esModule) ? mod : { default: mod };
}

export function __classPrivateFieldGet(receiver, state, kind, f) {
    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}

export function __classPrivateFieldSet(receiver, state, value, kind, f) {
    if (kind === "m") throw new TypeError("Private method is not writable");
    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}

export function __classPrivateFieldIn(state, receiver) {
    if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
    return typeof state === "function" ? receiver === state : state.has(receiver);
}

export function __addDisposableResource(env, value, async) {
    if (value !== null && value !== void 0) {
        if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
        var dispose, inner;
        if (async) {
            if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
            dispose = value[Symbol.asyncDispose];
        }
        if (dispose === void 0) {
            if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
            dispose = value[Symbol.dispose];
            if (async) inner = dispose;
        }
        if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
        env.stack.push({ value: value, dispose: dispose, async: async });
    }
    else if (async) {
        env.stack.push({ async: true });
    }
    return value;

}

var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
    var e = new Error(message);
    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};

export function __disposeResources(env) {
    function fail(e) {
        env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
        env.hasError = true;
    }
    function next() {
        while (env.stack.length) {
            var rec = env.stack.pop();
            try {
                var result = rec.dispose && rec.dispose.call(rec.value);
                if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
            }
            catch (e) {
                fail(e);
            }
        }
        if (env.hasError) throw env.error;
    }
    return next();
}

export default {
    __extends: __extends,
    __assign: __assign,
    __rest: __rest,
    __decorate: __decorate,
    __param: __param,
    __metadata: __metadata,
    __awaiter: __awaiter,
    __generator: __generator,
    __createBinding: __createBinding,
    __exportStar: __exportStar,
    __values: __values,
    __read: __read,
    __spread: __spread,
    __spreadArrays: __spreadArrays,
    __spreadArray: __spreadArray,
    __await: __await,
    __asyncGenerator: __asyncGenerator,
    __asyncDelegator: __asyncDelegator,
    __asyncValues: __asyncValues,
    __makeTemplateObject: __makeTemplateObject,
    __importStar: __importStar,
    __importDefault: __importDefault,
    __classPrivateFieldGet: __classPrivateFieldGet,
    __classPrivateFieldSet: __classPrivateFieldSet,
    __classPrivateFieldIn: __classPrivateFieldIn,
    __addDisposableResource: __addDisposableResource,
    __disposeResources: __disposeResources,
};

var OO=Object.defineProperty;var $5=Object.getOwnPropertyDescriptor;var NO=r=>{throw TypeError(r)};var z5=(r,t)=>{for(var e in t)OO(r,e,{get:t[e],enumerable:!0})};var _=(r,t,e,n)=>{for(var o=n>1?void 0:n?$5(t,e):t,i=r.length-1,s;i>=0;i--)(s=r[i])&&(o=(n?s(t,e,o):s(o))||o);return n&&o&&OO(t,e,o),o},C=(r,t)=>(e,n)=>t(e,n,r);var Lk=(r,t,e)=>t.has(r)||NO("Cannot "+e);var cn=(r,t,e)=>(Lk(r,t,"read from private field"),e?e.call(r):t.get(r)),Lu=(r,t,e)=>t.has(r)?NO("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,e),$f=(r,t,e,n)=>(Lk(r,t,"write to private field"),n?n.call(r,e):t.set(r,e),e),zf=(r,t,e)=>(Lk(r,t,"access private method"),e);import eJ from"minimist";import*as C5 from"net";function Ou(r,t){let e=Object.create(null);for(let n of r){let o=t(n),i=e[o];i||(i=e[o]=[]),i.push(n)}return e}function Ok(r,t){let e=[],n=[];for(let o of r)t.has(o)||e.push(o);for(let o of t)r.has(o)||n.push(o);return{removed:e,added:n}}var FO,HO,UO=class{constructor(t,e){this.toKey=e;this._map=new Map;this[FO]="SetWithKey";for(let n of t)this.add(n)}get size(){return this._map.size}add(t){let e=this.toKey(t);return this._map.set(e,t),this}delete(t){return this._map.delete(this.toKey(t))}has(t){return this._map.has(this.toKey(t))}*entries(){for(let t of this._map.values())yield[t,t]}keys(){return this.values()}*values(){for(let t of this._map.values())yield t}clear(){this._map.clear()}forEach(t,e){this._map.forEach(n=>t.call(e,n,n,this))}[(HO=Symbol.iterator,FO=Symbol.toStringTag,HO)](){return this.values()}};var Nk=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?co.isErrorNoTelemetry(t)?new co(t.message+`

`+t.stack):new Error(t.message+`

`+t.stack):t},0)}}addListener(t){return this.listeners.push(t),()=>{this._removeListener(t)}}emit(t){this.listeners.forEach(e=>{e(t)})}_removeListener(t){this.listeners.splice(this.listeners.indexOf(t),1)}setUnexpectedErrorHandler(t){this.unexpectedErrorHandler=t}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}},Nu=new Nk;function qf(r){Nu.setUnexpectedErrorHandler(r)}function WO(r){if(!r||typeof r!="object")return!1;let t=r;return t.code==="EPIPE"&&t.syscall?.toUpperCase()==="WRITE"}function $a(r){Nu.onUnexpectedError(r)}function $e(r){zt(r)||Nu.onUnexpectedError(r)}function Md(r){zt(r)||Nu.onUnexpectedExternalError(r)}function Vi(r){if(r instanceof Error){let{name:t,message:e,cause:n}=r,o=r.stacktrace||r.stack;return{$isError:!0,name:t,message:e,stack:o,noTelemetry:co.isErrorNoTelemetry(r),cause:n?Vi(n):void 0,code:r.code}}return r}function Uk(r){let t;return r.noTelemetry?t=new co:(t=new Error,t.name=r.name),t.message=r.message,t.stack=r.stack,r.code&&(t.code=r.code),r.cause&&(t.cause=Uk(r.cause)),t}var my="Canceled";function zt(r){return r instanceof Be?!0:r instanceof Error&&r.name===my&&r.message===my}var Be=class extends Error{constructor(){super(my),this.name=this.message}},Rd=class r extends Error{static{this._name="PendingMigrationError"}static is(t){return t instanceof r||t instanceof Error&&t.name===r._name}constructor(t){super(t),this.name=r._name}};function Ws(){let r=new Error(my);return r.name=r.message,r}function Ue(r){return r?new Error(`Illegal argument: ${r}`):new Error("Illegal argument")}function Uu(r){return r?new Error(`Illegal state: ${r}`):new Error("Illegal state")}var ni=class extends TypeError{constructor(t){super(t?`${t} is read-only and cannot be changed`:"Cannot change read-only property")}};function Bi(r){return r?r.message?r.message:r.stack?r.stack.split(`
`)[0]:String(r):"Error"}var gy=class extends Error{constructor(t){super("NotImplemented"),t&&(this.message=t)}},Ad=class extends Error{constructor(t){super("NotSupported"),t&&(this.message=t)}};var co=class r extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof r)return t;let e=new r;return e.message=t.message,e.stack=t.stack,e}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}},Dt=class r extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,r.prototype)}};function qa(r,t){let e=this,n=!1,o;return function(){if(n)return o;if(n=!0,t)try{o=r.apply(e,arguments)}finally{t()}else o=r.apply(e,arguments);return o}}function BO(r,t,e=r.length-1){let n=K5(r,t,e);if(n!==-1)return r[n]}function K5(r,t,e=r.length-1){for(let n=e;n>=0;n--){let o=r[n];if(t(o,n))return n}return-1}function j5(r,t,e=0,n=r.length){let o=e,i=n;for(;o<i;){let s=Math.floor((o+i)/2);t(r[s])?o=s+1:i=s}return o-1}function $O(r,t,e=0,n=r.length){let o=e,i=n;for(;o<i;){let s=Math.floor((o+i)/2);t(r[s])?i=s:o=s+1}return o}var VO=class r{constructor(t){this._array=t;this._findLastMonotonousLastIdx=0}static{this.assertInvariants=!1}findLastMonotonous(t){if(r.assertInvariants){if(this._prevFindLastPredicate){for(let n of this._array)if(this._prevFindLastPredicate(n)&&!t(n))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=t}let e=j5(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=e+1,e===-1?void 0:this._array[e]}};function Xt(r,t,e=(n,o)=>n===o){if(r===t)return!0;if(!r||!t||r.length!==t.length)return!1;for(let n=0,o=r.length;n<o;n++)if(!e(r[n],t[n]))return!1;return!0}function qO(r,t){let e=[],n;for(let o of r.slice(0).sort(t))!n||t(n[0],o)!==0?(n=[o],e.push(n)):n.push(o);return e}function Fk(r,t,e){let n=[];function o(a,l,d){if(l===0&&d.length===0)return;let c=n[n.length-1];c&&c.start+c.deleteCount===a?(c.deleteCount+=l,c.toInsert.push(...d)):n.push({start:a,deleteCount:l,toInsert:d})}let i=0,s=0;for(;;){if(i===r.length){o(i,0,t.slice(s));break}if(s===t.length){o(i,r.length-i,[]);break}let a=r[i],l=t[s],d=e(a,l);d===0?(i+=1,s+=1):d<0?(o(i,1,[]),i+=1):d>0&&(o(i,0,[l]),s+=1)}return n}function KO(r,t,e){let n=Fk(r,t,e),o=[],i=[];for(let s of n)o.push(...r.slice(s.start,s.start+s.deleteCount)),i.push(...s.toInsert);return{removed:o,added:i}}function jO(r,t,e,n,o){return e===0?Promise.resolve([]):new Promise((i,s)=>{(async()=>{let a=r.length,l=r.slice(0,e).sort(t);for(let d=e,c=Math.min(e+n,a);d<a;d=c,c=Math.min(c+n,a)){if(d>e&&await new Promise(u=>setTimeout(u)),o&&o.isCancellationRequested)throw new Be;G5(r,t,l,d,c)}return l})().then(i,s)})}function G5(r,t,e,n,o){for(let i=e.length;n<o;n++){let s=r[n];if(t(s,e[i-1])<0){e.pop();let a=$O(e,l=>t(s,l)<0);e.splice(a,0,s)}}}function nt(r){return r.filter(t=>!!t)}function GO(r){let t=0;for(let e=0;e<r.length;e++)r[e]&&(r[t]=r[e],t+=1);r.length=t}function Kf(r){return!Array.isArray(r)||r.length===0}function Ka(r){return Array.isArray(r)&&r.length>0}function Dr(r,t=e=>e){let e=new Set;return r.filter(n=>{let o=t(n);return e.has(o)?!1:(e.add(o),!0)})}function Hk(r,t){return r.push(t),()=>Q5(r,t)}function Q5(r,t){let e=r.indexOf(t);if(e>-1)return r.splice(e,1),t}function Wk(r,t){let e;if(typeof t=="number"){let n=t;e=()=>{let o=Math.sin(n++)*179426549;return o-Math.floor(o)}}else e=Math.random;for(let n=r.length-1;n>0;n-=1){let o=Math.floor(e()*(n+1)),i=r[n];r[n]=r[o],r[o]=i}}function Ld(r,t){return Array.isArray(r)?r.map(t):t(r)}function Un(r){return Array.isArray(r)?r:[r]}var QO;(a=>{function r(l){return l<0}a.isLessThan=r;function t(l){return l<=0}a.isLessThanOrEqual=t;function e(l){return l>0}a.isGreaterThan=e;function n(l){return l===0}a.isNeitherLessOrGreaterThan=n,a.greaterThan=1,a.lessThan=-1,a.neitherLessOrGreaterThan=0})(QO||={});function JO(r,t){return(e,n)=>t(r(e),r(n))}var YO=(r,t)=>r-t;var zO=class r{constructor(t){this.iterate=t}static{this.empty=new r(t=>{})}forEach(t){this.iterate(e=>(t(e),!0))}toArray(){let t=[];return this.iterate(e=>(t.push(e),!0)),t}filter(t){return new r(e=>this.iterate(n=>t(n)?e(n):!0))}map(t){return new r(e=>this.iterate(n=>e(t(n))))}some(t){let e=!1;return this.iterate(n=>(e=t(n),!e)),e}findFirst(t){let e;return this.iterate(n=>t(n)?(e=n,!1):!0),e}findLast(t){let e;return this.iterate(n=>(t(n)&&(e=n),!0)),e}findLastMaxBy(t){let e,n=!0;return this.iterate(o=>((n||QO.isGreaterThan(t(o,e)))&&(n=!1,e=o),!0)),e}};function zk(r,t,e){let n=r.get(t);return n===void 0&&(n=e,r.set(t,n)),n}var Vk=class{constructor(t,e){this.uri=t;this.value=e}};function J5(r){return Array.isArray(r)}var XO,Ge=class r{constructor(t,e){this[XO]="ResourceMap";if(t instanceof r)this.map=new Map(t.map),this.toKey=e??r.defaultToKey;else if(J5(t)){this.map=new Map,this.toKey=e??r.defaultToKey;for(let[n,o]of t)this.set(n,o)}else this.map=new Map,this.toKey=t??r.defaultToKey}static{this.defaultToKey=t=>t.toString()}set(t,e){return this.map.set(this.toKey(t),new Vk(t,e)),this}get(t){return this.map.get(this.toKey(t))?.value}has(t){return this.map.has(this.toKey(t))}get size(){return this.map.size}clear(){this.map.clear()}delete(t){return this.map.delete(this.toKey(t))}forEach(t,e){typeof e<"u"&&(t=t.bind(e));for(let[n,o]of this.map)t(o.value,o.uri,this)}*values(){for(let t of this.map.values())yield t.value}*keys(){for(let t of this.map.values())yield t.uri}*entries(){for(let t of this.map.values())yield[t.uri,t.value]}*[(XO=Symbol.toStringTag,Symbol.iterator)](){for(let[,t]of this.map)yield[t.uri,t.value]}},ZO,Rr=class{constructor(t,e){this[ZO]="ResourceSet";!t||typeof t=="function"?this._map=new Ge(t):(this._map=new Ge(e),t.forEach(this.add,this))}get size(){return this._map.size}add(t){return this._map.set(t,t),this}clear(){this._map.clear()}delete(t){return this._map.delete(t)}forEach(t,e){this._map.forEach((n,o)=>t.call(e,o,o,this))}has(t){return this._map.has(t)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(ZO=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var eN,Bk=class{constructor(){this[eN]="LinkedMap";this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(t){return this._map.has(t)}get(t,e=0){let n=this._map.get(t);if(n)return e!==0&&this.touch(n,e),n.value}set(t,e,n=0){let o=this._map.get(t);if(o)o.value=e,n!==0&&this.touch(o,n);else{switch(o={key:t,value:e,next:void 0,previous:void 0},n){case 0:this.addItemLast(o);break;case 1:this.addItemFirst(o);break;case 2:this.addItemLast(o);break;default:this.addItemLast(o);break}this._map.set(t,o),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){let e=this._map.get(t);if(e)return this._map.delete(t),this.removeItem(e),this._size--,e.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,e){let n=this._state,o=this._head;for(;o;){if(e?t.bind(e)(o.value,o.key,this):t(o.value,o.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");o=o.next}}keys(){let t=this,e=this._state,n=this._head,o={[Symbol.iterator](){return o},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let i={value:n.key,done:!1};return n=n.next,i}else return{value:void 0,done:!0}}};return o}values(){let t=this,e=this._state,n=this._head,o={[Symbol.iterator](){return o},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let i={value:n.value,done:!1};return n=n.next,i}else return{value:void 0,done:!0}}};return o}entries(){let t=this,e=this._state,n=this._head,o={[Symbol.iterator](){return o},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let i={value:[n.key,n.value],done:!1};return n=n.next,i}else return{value:void 0,done:!0}}};return o}[(eN=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let e=this._head,n=this.size;for(;e&&n>t;)this._map.delete(e.key),e=e.next,n--;this._head=e,this._size=n,e&&(e.previous=void 0),this._state++}trimNew(t){if(t>=this.size)return;if(t===0){this.clear();return}let e=this._tail,n=this.size;for(;e&&n>t;)this._map.delete(e.key),e=e.previous,n--;this._tail=e,this._size=n,e&&(e.next=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{let e=t.next,n=t.previous;if(!e||!n)throw new Error("Invalid list");e.previous=n,n.next=e}t.next=void 0,t.previous=void 0,this._state++}touch(t,e){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(e!==1&&e!==2)){if(e===1){if(t===this._head)return;let n=t.next,o=t.previous;t===this._tail?(o.next=void 0,this._tail=o):(n.previous=o,o.next=n),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(e===2){if(t===this._tail)return;let n=t.next,o=t.previous;t===this._head?(n.previous=void 0,this._head=n):(n.previous=o,o.next=n),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){let t=[];return this.forEach((e,n)=>{t.push([n,e])}),t}fromJSON(t){this.clear();for(let[e,n]of t)this.set(e,n)}},$k=class extends Bk{constructor(t,e=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,e),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get ratio(){return this._ratio}set ratio(t){this._ratio=Math.min(Math.max(0,t),1),this.checkTrim()}get(t,e=2){return super.get(t,e)}peek(t){return super.get(t,0)}set(t,e){return super.set(t,e,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}},Ar=class extends $k{constructor(t,e=1){super(t,e)}trim(t){this.trimOld(t)}set(t,e){return super.set(t,e),this.checkTrim(),this}};var fy=class{constructor(t){this._m1=new Map;this._m2=new Map;if(t)for(let[e,n]of t)this.set(e,n)}clear(){this._m1.clear(),this._m2.clear()}set(t,e){this._m1.set(t,e),this._m2.set(e,t)}get(t){return this._m1.get(t)}getKey(t){return this._m2.get(t)}delete(t){let e=this._m1.get(t);return e===void 0?!1:(this._m1.delete(t),this._m2.delete(e),!0)}forEach(t,e){this._m1.forEach((n,o)=>{t.call(e,n,o,this)})}keys(){return this._m1.keys()}values(){return this._m1.values()}},Fu=class{constructor(){this.map=new Map}add(t,e){let n=this.map.get(t);n||(n=new Set,this.map.set(t,n)),n.add(e)}delete(t,e){let n=this.map.get(t);n&&(n.delete(e),n.size===0&&this.map.delete(t))}forEach(t,e){let n=this.map.get(t);n&&n.forEach(e)}get(t){let e=this.map.get(t);return e||new Set}};function Fn(r,t){if(!r)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}function Hu(r,t="Unreachable"){throw new Error(t)}function Wu(r,t="unexpected state"){if(!r)throw typeof t=="string"?new Dt(`Assertion Failed: ${t}`):t}function jf(r){if(!r()){debugger;r(),$e(new Dt("Assertion Failed"))}}function Pe(r){return typeof r=="string"}function nN(r){return Y5(r,Pe)}function Y5(r,t){return Array.isArray(r)&&r.every(t)}function ot(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)&&!(r instanceof RegExp)&&!(r instanceof Date)}function oN(r){let t=Object.getPrototypeOf(Uint8Array);return typeof r=="object"&&r instanceof t}function Rn(r){return typeof r=="number"&&!isNaN(r)}function rN(r){return!!r&&typeof r[Symbol.iterator]=="function"}function hy(r){return r===!0||r===!1}function Vu(r){return typeof r>"u"}function uo(r){return!At(r)}function At(r){return Vu(r)||r===null}function Bu(r,t){if(!r)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}function oi(r){return Wu(r!=null,"Argument is `undefined` or `null`."),r}var X5=Object.prototype.hasOwnProperty;function $u(r){if(!ot(r))return!1;for(let t in r)if(X5.call(r,t))return!1;return!0}function vy(r){return typeof r=="function"}function iN(r,t){let e=Math.min(r.length,t.length);for(let n=0;n<e;n++)qk(r[n],t[n])}function qk(r,t){if(Pe(t)){if(typeof r!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(vy(t)){try{if(r instanceof t)return}catch{}if(!At(r)&&r.constructor===t||t.length===1&&t.call(void 0,r)===!0)return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function Qo(r,t){for(let e in t)if(!(e in r))return!1;return!0}var Mt;(F=>{function r(z){return!!z&&typeof z=="object"&&typeof z[Symbol.iterator]=="function"}F.is=r;let t=Object.freeze([]);function e(){return t}F.empty=e;function*n(z){yield z}F.single=n;function o(z){return r(z)?z:n(z)}F.wrap=o;function i(z){return z??t}F.from=i;function*s(z){for(let J=z.length-1;J>=0;J--)yield z[J]}F.reverse=s;function a(z){return!z||z[Symbol.iterator]().next().done===!0}F.isEmpty=a;function l(z){return z[Symbol.iterator]().next().value}F.first=l;function d(z,J){let Y=0;for(let X of z)if(J(X,Y++))return!0;return!1}F.some=d;function c(z,J){let Y=0;for(let X of z)if(!J(X,Y++))return!1;return!0}F.every=c;function u(z,J){for(let Y of z)if(J(Y))return Y}F.find=u;function*m(z,J){for(let Y of z)J(Y)&&(yield Y)}F.filter=m;function*g(z,J){let Y=0;for(let X of z)yield J(X,Y++)}F.map=g;function*h(z,J){let Y=0;for(let X of z)yield*J(X,Y++)}F.flatMap=h;function*f(...z){for(let J of z)rN(J)?yield*J:yield J}F.concat=f;function I(z,J,Y){let X=Y;for(let q of z)X=J(X,q);return X}F.reduce=I;function S(z){let J=0;for(let Y of z)J++;return J}F.length=S;function*E(z,J,Y=z.length){for(J<-z.length&&(J=0),J<0&&(J+=z.length),Y<0?Y+=z.length:Y>z.length&&(Y=z.length);J<Y;J++)yield z[J]}F.slice=E;function P(z,J=Number.POSITIVE_INFINITY){let Y=[];if(J===0)return[Y,z];let X=z[Symbol.iterator]();for(let q=0;q<J;q++){let He=X.next();if(He.done)return[Y,F.empty()];Y.push(He.value)}return[Y,{[Symbol.iterator](){return X}}]}F.consume=P;async function L(z){let J=[];for await(let Y of z)J.push(Y);return J}F.asyncToArray=L;async function j(z){let J=[];for await(let Y of z)J=J.concat(Y);return J}F.asyncToArrayFlat=j})(Mt||={});var Z5=!1,Od=null;var sN=class r{constructor(){this.livingDisposables=new Map}static{this.idx=0}getDisposableData(t){let e=this.livingDisposables.get(t);return e||(e={parent:null,source:null,isSingleton:!1,value:t,idx:r.idx++},this.livingDisposables.set(t,e)),e}trackDisposable(t){let e=this.getDisposableData(t);e.source||(e.source=new Error().stack)}setParent(t,e){let n=this.getDisposableData(t);n.parent=e}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,e){let n=e.get(t);if(n)return n;let o=t.parent?this.getRootParent(this.getDisposableData(t.parent),e):t;return e.set(t,o),o}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,n])=>n.source!==null&&!this.getRootParent(n,t).isSingleton).flatMap(([n])=>n)}computeLeakingDisposables(t=10,e){let n;if(e)n=e;else{let l=new Map,d=[...this.livingDisposables.values()].filter(u=>u.source!==null&&!this.getRootParent(u,l).isSingleton);if(d.length===0)return;let c=new Set(d.map(u=>u.value));if(n=d.filter(u=>!(u.parent&&c.has(u.parent))),n.length===0)throw new Error("There are cyclic diposable chains!")}if(!n)return;function o(l){function d(u,m){for(;u.length>0&&m.some(g=>typeof g=="string"?g===u[0]:u[0].match(g));)u.shift()}let c=l.source.split(`
`).map(u=>u.trim().replace("at ","")).filter(u=>u!=="");return d(c,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),c.reverse()}let i=new Fu;for(let l of n){let d=o(l);for(let c=0;c<=d.length;c++)i.add(d.slice(0,c).join(`
`),l)}n.sort(JO(l=>l.idx,YO));let s="",a=0;for(let l of n.slice(0,t)){a++;let d=o(l),c=[];for(let u=0;u<d.length;u++){let m=d[u];m=`(shared with ${i.get(d.slice(0,u+1).join(`
`)).size}/${n.length} leaks) at ${m}`;let h=i.get(d.slice(0,u).join(`
`)),f=Ou([...h].map(I=>o(I)[u]),I=>I);delete f[d[u]];for(let[I,S]of Object.entries(f))S&&c.unshift(`    - stacktraces of ${S.length} other leaks continue with ${I}`);c.unshift(m)}s+=`


==================== Leaking disposable ${a}/${n.length}: ${l.value.constructor.name} ====================
${c.join(`
`)}
============================================================

`}return n.length>t&&(s+=`


... and ${n.length-t} more leaking disposables

`),{leaks:n,details:s}}};function e$(r){Od=r}if(Z5){let r="__is_disposable_tracked__";e$(new class{trackDisposable(t){let e=new Error("Potentially leaked disposable").stack;setTimeout(()=>{t[r]||console.log(e)},3e3)}setParent(t,e){if(t&&t!==O.None)try{t[r]=!0}catch{}}markAsDisposed(t){if(t&&t!==O.None)try{t[r]=!0}catch{}}markAsSingleton(t){}})}function Ga(r){return Od?.trackDisposable(r),r}function Qa(r){Od?.markAsDisposed(r)}function Nd(r,t){Od?.setParent(r,t)}function t$(r,t){if(Od)for(let e of r)Od.setParent(e,t)}function Gf(r){return Od?.markAsSingleton(r),r}function yy(r){return typeof r=="object"&&r!==null&&typeof r.dispose=="function"&&r.dispose.length===0}function bn(r){if(Mt.is(r)){let t=[];for(let e of r)if(e)try{e.dispose()}catch(n){t.push(n)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(r)?[]:r}else if(r)return r.dispose(),r}function zu(...r){let t=G(()=>bn(r));return t$(r,t),t}var Kk=class{constructor(t){this._isDisposed=!1,this._fn=t,Ga(this)}dispose(){if(!this._isDisposed){if(!this._fn)throw new Error("Unbound disposable context: Need to use an arrow function to preserve the value of this");this._isDisposed=!0,Qa(this),this._fn()}}};function G(r){return new Kk(r)}var $=class r{constructor(){this._toDispose=new Set;this._isDisposed=!1;Ga(this)}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(Qa(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{bn(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t||t===O.None)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return Nd(t,this),this._isDisposed?r.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.delete(t)&&Nd(t,null)}assertNotDisposed(){this._isDisposed&&$e(new Dt("Object disposed"))}},O=class{constructor(){this._store=new $;Ga(this),Nd(this._store,this)}static{this.None=Object.freeze({dispose(){}})}dispose(){Qa(this),this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}},En=class{constructor(){this._isDisposed=!1;Ga(this)}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),t&&Nd(t,this),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Qa(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t&&Nd(t,null),t}};var jn=class{constructor(t=new Map){this._isDisposed=!1;this._store=t,Ga(this)}dispose(){Qa(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{bn(this._store.values())}finally{this._store.clear()}}has(t){return this._store.has(t)}get size(){return this._store.size}get(t){return this._store.get(t)}set(t,e,n=!1){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),n||this._store.get(t)?.dispose(),this._store.set(t,e),Nd(e,this)}deleteAndDispose(t){this._store.get(t)?.dispose(),this._store.delete(t)}deleteAndLeak(t){let e=this._store.get(t);return e&&Nd(e,null),this._store.delete(t),e}keys(){return this._store.keys()}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}};function aN(r,t){return r.then(e=>(t.isDisposed?e.dispose():t.add(e),e))}var by=class extends jn{constructor(){super(new Ge)}};var nn=class r{static{this.Undefined=new r(void 0)}constructor(t){this.element=t,this.next=r.Undefined,this.prev=r.Undefined}},po=class{constructor(){this._first=nn.Undefined;this._last=nn.Undefined;this._size=0}get size(){return this._size}isEmpty(){return this._first===nn.Undefined}clear(){let t=this._first;for(;t!==nn.Undefined;){let e=t.next;t.prev=nn.Undefined,t.next=nn.Undefined,t=e}this._first=nn.Undefined,this._last=nn.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,e){let n=new nn(t);if(this._first===nn.Undefined)this._first=n,this._last=n;else if(e){let i=this._last;this._last=n,n.prev=i,i.next=n}else{let i=this._first;this._first=n,n.next=i,i.prev=n}this._size+=1;let o=!1;return()=>{o||(o=!0,this._remove(n))}}shift(){if(this._first!==nn.Undefined){let t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==nn.Undefined){let t=this._last.element;return this._remove(this._last),t}}peek(){if(this._last!==nn.Undefined)return this._last.element}_remove(t){if(t.prev!==nn.Undefined&&t.next!==nn.Undefined){let e=t.prev;e.next=t.next,t.next.prev=e}else t.prev===nn.Undefined&&t.next===nn.Undefined?(this._first=nn.Undefined,this._last=nn.Undefined):t.next===nn.Undefined?(this._last=this._last.prev,this._last.next=nn.Undefined):t.prev===nn.Undefined&&(this._first=this._first.next,this._first.prev=nn.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==nn.Undefined;)yield t.element,t=t.next}};function n$(){return globalThis._VSCODE_NLS_MESSAGES}function jk(){return globalThis._VSCODE_NLS_LANGUAGE}var o$=jk()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function Iy(r,t){let e;return t.length===0?e=r:e=r.replace(/\{(\d+)\}/g,(n,o)=>{let i=o[0],s=t[i],a=n;return typeof s=="string"?a=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(a=String(s)),a}),o$&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function p(r,t,...e){return Iy(typeof r=="number"?lN(r,t):t,e)}function lN(r,t){let e=n$()?.[r];if(typeof e!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${r} !!!`)}return e}function Ud(r,t,...e){let n;typeof r=="number"?n=lN(r,t):n=t;let o=Iy(n,e);return{value:o,original:t===n?o:Iy(t,e)}}var zi="en",Jf=!1,Yf=!1,Qf=!1,r$=!1,pN=!1,Gk=!1,i$=!1,Qk=!1,mN=!1,gN=!1,xy,Sy=zi,dN=zi,s$,Vs,Bs=globalThis,Jo;typeof Bs.vscode<"u"&&typeof Bs.vscode.process<"u"?Jo=Bs.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(Jo=process);var fN=typeof Jo?.versions?.electron=="string",a$=fN&&Jo?.type==="renderer";if(typeof Jo=="object"){Jf=Jo.platform==="win32",Yf=Jo.platform==="darwin",Qf=Jo.platform==="linux",r$=Qf&&!!Jo.env.SNAP&&!!Jo.env.SNAP_REVISION,i$=fN,mN=!!Jo.env.CI||!!Jo.env.BUILD_ARTIFACTSTAGINGDIRECTORY||!!Jo.env.GITHUB_WORKSPACE,xy=zi,Sy=zi;let r=Jo.env.VSCODE_NLS_CONFIG;if(r)try{let t=JSON.parse(r);xy=t.userLocale,dN=t.osLocale,Sy=t.resolvedLanguage||zi,s$=t.languagePack?.translationsConfigFile}catch{}pN=!0}else typeof navigator=="object"&&!a$?(Vs=navigator.userAgent,Jf=Vs.indexOf("Windows")>=0,Yf=Vs.indexOf("Macintosh")>=0,Qk=(Vs.indexOf("Macintosh")>=0||Vs.indexOf("iPad")>=0||Vs.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,Qf=Vs.indexOf("Linux")>=0,gN=Vs?.indexOf("Mobi")>=0,Gk=!0,Sy=jk()||zi,xy=navigator.language.toLowerCase(),dN=xy):console.error("Unable to resolve platform.");function Jk(r){switch(r){case 0:return"Web";case 1:return"Mac";case 2:return"Linux";case 3:return"Windows"}}var Cy=0;Yf?Cy=1:Jf?Cy=3:Qf&&(Cy=2);var Ie=Jf,ut=Yf,Qe=Qf;var Ty=pN;var hr=Gk,l$=Gk&&typeof Bs.importScripts=="function",hN=l$?Bs.origin:void 0,vN=Qk,bN=gN,Ya=mN,Ey=Cy,qi=Vs,Ja=Sy,d$;(n=>{function r(){return Ja}n.value=r;function t(){return Ja.length===2?Ja==="en":Ja.length>=3?Ja[0]==="e"&&Ja[1]==="n"&&Ja[2]==="-":!1}n.isDefaultVariant=t;function e(){return Ja==="en"}n.isDefault=e})(d$||={});var c$=typeof Bs.postMessage=="function"&&!Bs.importScripts,wy=(()=>{if(c$){let r=[];Bs.addEventListener("message",e=>{if(e.data&&e.data.vscodeScheduleAsyncWork)for(let n=0,o=r.length;n<o;n++){let i=r[n];if(i.id===e.data.vscodeScheduleAsyncWork){r.splice(n,1),i.callback();return}}});let t=0;return e=>{let n=++t;r.push({id:n,callback:e}),Bs.postMessage({vscodeScheduleAsyncWork:n},"*")}}return r=>setTimeout(r)})();var Yo=Yf||Qk?2:Jf?1:3,cN=!0,uN=!1;function ky(){if(!uN){uN=!0;let r=new Uint8Array(2);r[0]=1,r[1]=2,cN=new Uint16Array(r.buffer)[0]===513}return cN}var Xf=!!(qi&&qi.indexOf("Chrome")>=0),yN=!!(qi&&qi.indexOf("Firefox")>=0),IN=!!(!Xf&&qi&&qi.indexOf("Safari")>=0),Py=!!(qi&&qi.indexOf("Edg/")>=0),PJ=!!(qi&&qi.indexOf("Android")>=0);var Fd,Yk=globalThis.vscode;if(typeof Yk<"u"&&typeof Yk.process<"u"){let r=Yk.process;Fd={get platform(){return r.platform},get arch(){return r.arch},get env(){return r.env},cwd(){return r.cwd()}}}else typeof process<"u"&&typeof process?.versions?.node=="string"?Fd={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:Fd={get platform(){return Ie?"win32":ut?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};var ri=Fd.cwd,Co=Fd.env,Xk=Fd.platform,u$=Fd.arch;var p$=globalThis.performance.now.bind(globalThis.performance),Zt=class r{static create(t){return new r(t)}constructor(t){this._now=t===!1?Date.now:p$,this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}};var xN=!1,m$=!1,g$=100,SN=6e4;function CN(){return!!Co.VSCODE_DEV}var fe;(et=>{et.None=()=>O.None;function t(ne){if(m$){let{onDidAddListener:ee}=ne,ae=Ku.create(),re=0;ne.onDidAddListener=()=>{++re===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),ae.print()),ee?.()}}}function e(ne,ee,ae){return g(ne,()=>{},0,void 0,ee??!0,void 0,ae)}et.defer=e;function n(ne){return(ee,ae=null,re)=>{let ce=!1,ve;return ve=ne(Me=>{if(!ce)return ve?ve.dispose():ce=!0,ee.call(ae,Me)},null,re),ce&&ve.dispose(),ve}}et.once=n;function o(ne,ee){return et.once(et.filter(ne,ee))}et.onceIf=o;function i(ne,ee,ae){return u((re,ce=null,ve)=>ne(Me=>re.call(ce,ee(Me)),null,ve),ae)}et.map=i;function s(ne,ee,ae){return u((re,ce=null,ve)=>ne(Me=>{ee(Me),re.call(ce,Me)},null,ve),ae)}et.forEach=s;function a(ne,ee,ae){return u((re,ce=null,ve)=>ne(Me=>ee(Me)&&re.call(ce,Me),null,ve),ae)}et.filter=a;function l(ne){return ne}et.signal=l;function d(...ne){return(ee,ae=null,re)=>{let ce=zu(...ne.map(ve=>ve(Me=>ee.call(ae,Me))));return m(ce,re)}}et.any=d;function c(ne,ee,ae,re){let ce=ae;return i(ne,ve=>(ce=ee(ce,ve),ce),re)}et.reduce=c;function u(ne,ee){let ae,re={onWillAddFirstListener(){ae=ne(ce.fire,ce)},onDidRemoveLastListener(){ae?.dispose()}};ee||t(re);let ce=new T(re);return ee?.add(ce),ce.event}function m(ne,ee){return ee instanceof Array?ee.push(ne):ee&&ee.add(ne),ne}function g(ne,ee,ae=100,re=!1,ce=!1,ve,Me){let It,Ne,Ct,Ot=0,je,Tn={leakWarningThreshold:ve,onWillAddFirstListener(){It=ne(Hi=>{Ot++,Ne=ee(Ne,Hi),re&&!Ct&&(So.fire(Ne),Ne=void 0),je=()=>{let Ha=Ne;Ne=void 0,Ct=void 0,(!re||Ot>1)&&So.fire(Ha),Ot=0},typeof ae=="number"?(Ct&&clearTimeout(Ct),Ct=setTimeout(je,ae)):Ct===void 0&&(Ct=null,queueMicrotask(je))})},onWillRemoveListener(){ce&&Ot>0&&je?.()},onDidRemoveLastListener(){je=void 0,It.dispose()}};Me||t(Tn);let So=new T(Tn);return Me?.add(So),So.event}et.debounce=g;function h(ne,ee=0,ae,re){return et.debounce(ne,(ce,ve)=>ce?(ce.push(ve),ce):[ve],ee,void 0,ae??!0,void 0,re)}et.accumulate=h;function f(ne,ee,ae=100,re=!0,ce=!0,ve,Me){let It,Ne,Ct,Ot=0,je={leakWarningThreshold:ve,onWillAddFirstListener(){It=ne(So=>{Ot++,Ne=ee(Ne,So),Ct===void 0&&(re&&(Tn.fire(Ne),Ne=void 0,Ot=0),typeof ae=="number"?Ct=setTimeout(()=>{ce&&Ot>0&&Tn.fire(Ne),Ne=void 0,Ct=void 0,Ot=0},ae):(Ct=0,queueMicrotask(()=>{ce&&Ot>0&&Tn.fire(Ne),Ne=void 0,Ct=void 0,Ot=0})))})},onDidRemoveLastListener(){It.dispose()}};Me||t(je);let Tn=new T(je);return Me?.add(Tn),Tn.event}et.throttle=f;function I(ne,ee=(re,ce)=>re===ce,ae){let re=!0,ce;return a(ne,ve=>{let Me=re||!ee(ve,ce);return re=!1,ce=ve,Me},ae)}et.latch=I;function S(ne,ee,ae){return[et.filter(ne,ee,ae),et.filter(ne,re=>!ee(re),ae)]}et.split=S;function E(ne,ee,ae=!1,re=[],ce){let ve=re.slice(),Me;CN()&&(Me={stack:Ku.create(),timerId:setTimeout(()=>{ve&&ve.length>0&&Me&&!Me.warned&&(Me.warned=!0,console.warn(`[Event.buffer][${ee}] potential LEAK detected: ${ve.length} events buffered for ${SN/1e3}s without being consumed. Buffered here:`),Me.stack.print())},SN),warned:!1},ce&&ce.add(G(()=>clearTimeout(Me.timerId))));let It=()=>{Me&&clearTimeout(Me.timerId)},Ne=ne(je=>{ve?(ve.push(je),CN()&&Me&&!Me.warned&&ve.length>=g$&&(Me.warned=!0,console.warn(`[Event.buffer][${ee}] potential LEAK detected: ${ve.length} events buffered without being consumed. Buffered here:`),Me.stack.print())):Ot.fire(je)});ce&&ce.add(Ne);let Ct=()=>{ve?.forEach(je=>Ot.fire(je)),ve=null,It()},Ot=new T({onWillAddFirstListener(){Ne||(Ne=ne(je=>Ot.fire(je)),ce&&ce.add(Ne))},onDidAddFirstListener(){ve&&(ae?setTimeout(Ct):Ct())},onDidRemoveLastListener(){Ne&&Ne.dispose(),Ne=null,It()}});return ce&&ce.add(Ot),Ot.event}et.buffer=E;function P(ne,ee){return(re,ce,ve)=>{let Me=ee(new j);return ne(function(It){let Ne=Me.evaluate(It);Ne!==L&&re.call(ce,Ne)},void 0,ve)}}et.chain=P;let L=Symbol("HaltChainable");class j{constructor(){this.steps=[]}map(ee){return this.steps.push(ee),this}forEach(ee){return this.steps.push(ae=>(ee(ae),ae)),this}filter(ee){return this.steps.push(ae=>ee(ae)?ae:L),this}reduce(ee,ae){let re=ae;return this.steps.push(ce=>(re=ee(re,ce),re)),this}latch(ee=(ae,re)=>ae===re){let ae=!0,re;return this.steps.push(ce=>{let ve=ae||!ee(ce,re);return ae=!1,re=ce,ve?ce:L}),this}evaluate(ee){for(let ae of this.steps)if(ee=ae(ee),ee===L)break;return ee}}function F(ne,ee,ae=re=>re){let re=(...It)=>Me.fire(ae(...It)),ce=()=>ne.on(ee,re),ve=()=>ne.removeListener(ee,re),Me=new T({onWillAddFirstListener:ce,onDidRemoveLastListener:ve});return Me.event}et.fromNodeEventEmitter=F;function z(ne,ee,ae=re=>re){let re=(...It)=>Me.fire(ae(...It)),ce=()=>ne.addEventListener(ee,re),ve=()=>ne.removeEventListener(ee,re),Me=new T({onWillAddFirstListener:ce,onDidRemoveLastListener:ve});return Me.event}et.fromDOMEventEmitter=z;function J(ne,ee){let ae,re,ce=new Promise(ve=>{re=n(ne)(ve),rP(re,ee),ae=()=>{EN(re,ee)}});return ce.cancel=ae,ee&&ce.finally(()=>EN(re,ee)),ce}et.toPromise=J;function Y(ne,ee){return ne(ae=>ee.fire(ae))}et.forward=Y;function X(ne,ee,ae){return ee(ae),ne(re=>ee(re))}et.runAndSubscribe=X;class q{constructor(ee,ae){this._observable=ee;this._counter=0;this._hasChanged=!1;let re={onWillAddFirstListener:()=>{ee.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{ee.removeObserver(this)}};ae||t(re),this.emitter=new T(re),ae&&ae.add(this.emitter)}beginUpdate(ee){this._counter++}handlePossibleChange(ee){}handleChange(ee,ae){this._hasChanged=!0}endUpdate(ee){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function He(ne,ee){return new q(ne,ee).emitter.event}et.fromObservable=He;function ct(ne){return(ee,ae,re)=>{let ce=0,ve=!1,Me={beginUpdate(){ce++},endUpdate(){ce--,ce===0&&(ne.reportChanges(),ve&&(ve=!1,ee.call(ae)))},handlePossibleChange(){},handleChange(){ve=!0}};ne.addObserver(Me),ne.reportChanges();let It={dispose(){ne.removeObserver(Me)}};return rP(It,re),It}}et.fromObservableLight=ct})(fe||={});var Zk=class r{constructor(t){this.listenerCount=0;this.invocationCount=0;this.elapsedOverall=0;this.durations=[];this.name=`${t}_${r._idPool++}`,r.all.add(this)}static{this.all=new Set}static{this._idPool=0}start(t){this._stopWatch=new Zt,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}},TN=-1;var eP=class r{constructor(t,e,n=(r._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t;this.threshold=e;this.name=n;this._warnCountdown=0}static{this._idPool=1}dispose(){this._stacks?.clear()}check(t,e){let n=this.threshold;if(n<=0||e<n)return;this._stacks||(this._stacks=new Map);let o=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,o+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=n*.5;let[i,s]=this.getMostFrequentStack(),a=`[${this.name}] potential listener LEAK detected, having ${e} listeners already. MOST frequent listener (${s}):`;console.warn(a),console.warn(i);let l=new tP(a,i);this._errorHandler(l)}return()=>{let i=this._stacks.get(t.value)||0;this._stacks.set(t.value,i-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,e=0;for(let[n,o]of this._stacks)(!t||e<o)&&(t=[n,o],e=o);return t}},Ku=class r{constructor(t){this.value=t}static create(){let t=new Error;return new r(t.stack??"")}print(){console.warn(this.value.split(`
`).slice(2).join(`
`))}},tP=class extends Error{constructor(t,e){super(t),this.name="ListenerLeakError",this.stack=e}},nP=class extends Error{constructor(t,e){super(t),this.name="ListenerRefusalError",this.stack=e}},f$=0,qu=class{constructor(t){this.value=t;this.id=f$++}},h$=2,wN=(r,t)=>{if(r instanceof qu)t(r);else for(let e=0;e<r.length;e++){let n=r[e];n&&t(n)}},T=class{constructor(t){this._size=0;this._options=t,this._leakageMon=TN>0||this._options?.leakWarningThreshold?new eP(t?.onListenerError??$e,this._options?.leakWarningThreshold??TN):void 0,this._perfMon=this._options?._profName?new Zk(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(xN){let t=this._listeners;queueMicrotask(()=>{wN(t,e=>e.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(t,e,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let l=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(l);let d=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],c=new nP(`${l}. HINT: Stack shows most frequent listener (${d[1]}-times)`,d[0]);return(this._options?.onListenerError||$e)(c),O.None}if(this._disposed)return O.None;e&&(t=t.bind(e));let o=new qu(t),i,s;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(o.stack=Ku.create(),i=this._leakageMon.check(o.stack,this._size+1)),xN&&(o.stack=s??Ku.create()),this._listeners?this._listeners instanceof qu?(this._deliveryQueue??=new oP,this._listeners=[this._listeners,o]):this._listeners.push(o):(this._options?.onWillAddFirstListener?.(this),this._listeners=o,this._options?.onDidAddFirstListener?.(this)),this._options?.onDidAddListener?.(this),this._size++;let a=G(()=>{i?.(),this._removeListener(o)});return rP(a,n),a},this._event}_removeListener(t){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let e=this._listeners,n=e.indexOf(t);if(n===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,e[n]=void 0;let o=this._deliveryQueue.current===this;if(this._size*h$<=e.length){let i=0;for(let s=0;s<e.length;s++)e[s]?e[i++]=e[s]:o&&i<this._deliveryQueue.end&&(this._deliveryQueue.end--,i<this._deliveryQueue.i&&this._deliveryQueue.i--);e.length=i}}_deliver(t,e){if(!t)return;let n=this._options?.onListenerError||$e;if(!n){t.value(e);return}try{t.value(e)}catch(o){n(o)}}_deliverQueue(t){let e=t.current._listeners;for(;t.i<t.end;)this._deliver(e[t.i++],t.value);t.reset()}fire(t){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof qu)this._deliver(this._listeners,t);else{let e=this._deliveryQueue;e.enqueue(this,t,this._listeners.length),this._deliverQueue(e)}this._perfMon?.stop()}hasListeners(){return this._size>0}};var oP=class{constructor(){this.i=-1;this.end=0}enqueue(t,e,n){this.i=0,this.end=n,this.current=t,this.value=e}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},Ki=class extends T{async fireAsync(t,e,n){if(this._listeners)for(this._asyncDeliveryQueue||(this._asyncDeliveryQueue=new po),wN(this._listeners,o=>this._asyncDeliveryQueue.push([o.value,t]));this._asyncDeliveryQueue.size>0&&!e.isCancellationRequested;){let[o,i]=this._asyncDeliveryQueue.shift(),s=[],a={...i,token:e,waitUntil:l=>{if(Object.isFrozen(s))throw new Error("waitUntil can NOT be called asynchronous");n&&(l=n(l,o)),s.push(l)}};try{o(a)}catch(l){$e(l);continue}Object.freeze(s),await Promise.allSettled(s).then(l=>{for(let d of l)d.status==="rejected"&&$e(d.reason)})}}},ji=class extends T{constructor(e){super(e);this._isPaused=0;this._eventQueue=new po;this._mergeFn=e?.merge}get isPaused(){return this._isPaused!==0}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){let e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}},Dy=class extends ji{constructor(t){super(t),this._delay=t.delay??100}fire(t){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(t)}},Ry=class extends T{constructor(e){super(e);this._queuedEvents=[];this._mergeFn=e?.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(n=>super.fire(n)),this._queuedEvents=[]}))}};var Ay=class{constructor(){this.listening=!1;this.inputEvent=fe.None;this.inputEventListener=O.None;this.emitter=new T({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}});this.event=this.emitter.event}set input(t){this.inputEvent=t,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=t(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}};function rP(r,t){t instanceof $?t.add(r):Array.isArray(t)&&t.push(r)}function EN(r,t){if(t instanceof $)t.delete(r);else if(Array.isArray(t)){let e=t.indexOf(r);e!==-1&&t.splice(e,1)}r.dispose()}var kN=Object.freeze(function(r,t){let e=setTimeout(r.bind(t),0);return{dispose(){clearTimeout(e)}}}),he;(n=>{function r(o){return o===n.None||o===n.Cancelled||o instanceof ju?!0:!o||typeof o!="object"?!1:typeof o.isCancellationRequested=="boolean"&&typeof o.onCancellationRequested=="function"}n.isCancellationToken=r,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:fe.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:kN})})(he||={});var ju=class{constructor(){this._isCancelled=!1;this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?kN:(this._emitter||(this._emitter=new T),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},Ce=class{constructor(t){this._token=void 0;this._parentListener=void 0;this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new ju),this._token}cancel(){this._token?this._token instanceof ju&&this._token.cancel():this._token=he.Cancelled}dispose(t=!1){t&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof ju&&this._token.dispose():this._token=he.None}};var v$=65,b$=97,y$=90,I$=122,Hd=46,eo=47,Zo=92,$s=58,x$=63,My=class extends Error{constructor(t,e,n){let o;typeof e=="string"&&e.indexOf("not ")===0?(o="must not be",e=e.replace(/^not /,"")):o="must be";let i=t.indexOf(".")!==-1?"property":"argument",s=`The "${t}" ${i} ${o} of type ${e}`;s+=`. Received type ${typeof n}`,super(s),this.code="ERR_INVALID_ARG_TYPE"}};function S$(r,t){if(r===null||typeof r!="object")throw new My(t,"Object",r)}function wn(r,t){if(typeof r!="string")throw new My(t,"string",r)}var er=Xk==="win32";function st(r){return r===eo||r===Zo}function iP(r){return r===eo}function zs(r){return r>=v$&&r<=y$||r>=b$&&r<=I$}function Ly(r,t,e,n){let o="",i=0,s=-1,a=0,l=0;for(let d=0;d<=r.length;++d){if(d<r.length)l=r.charCodeAt(d);else{if(n(l))break;l=eo}if(n(l)){if(!(s===d-1||a===1))if(a===2){if(o.length<2||i!==2||o.charCodeAt(o.length-1)!==Hd||o.charCodeAt(o.length-2)!==Hd){if(o.length>2){let c=o.lastIndexOf(e);c===-1?(o="",i=0):(o=o.slice(0,c),i=o.length-1-o.lastIndexOf(e)),s=d,a=0;continue}else if(o.length!==0){o="",i=0,s=d,a=0;continue}}t&&(o+=o.length>0?`${e}..`:"..",i=2)}else o.length>0?o+=`${e}${r.slice(s+1,d)}`:o=r.slice(s+1,d),i=d-s-1;s=d,a=0}else l===Hd&&a!==-1?++a:a=-1}return o}function C$(r){return r?`${r[0]==="."?"":"."}${r}`:""}function PN(r,t){S$(t,"pathObject");let e=t.dir||t.root,n=t.base||`${t.name||""}${C$(t.ext)}`;return e?e===t.root?`${e}${n}`:`${e}${r}${n}`:n}var un={resolve(...r){let t="",e="",n=!1;for(let o=r.length-1;o>=-1;o--){let i;if(o>=0){if(i=r[o],wn(i,`paths[${o}]`),i.length===0)continue}else t.length===0?i=ri():(i=Co[`=${t}`]||ri(),(i===void 0||i.slice(0,2).toLowerCase()!==t.toLowerCase()&&i.charCodeAt(2)===Zo)&&(i=`${t}\\`));let s=i.length,a=0,l="",d=!1,c=i.charCodeAt(0);if(s===1)st(c)&&(a=1,d=!0);else if(st(c))if(d=!0,st(i.charCodeAt(1))){let u=2,m=u;for(;u<s&&!st(i.charCodeAt(u));)u++;if(u<s&&u!==m){let g=i.slice(m,u);for(m=u;u<s&&st(i.charCodeAt(u));)u++;if(u<s&&u!==m){for(m=u;u<s&&!st(i.charCodeAt(u));)u++;(u===s||u!==m)&&(l=`\\\\${g}\\${i.slice(m,u)}`,a=u)}}}else a=1;else zs(c)&&i.charCodeAt(1)===$s&&(l=i.slice(0,2),a=2,s>2&&st(i.charCodeAt(2))&&(d=!0,a=3));if(l.length>0)if(t.length>0){if(l.toLowerCase()!==t.toLowerCase())continue}else t=l;if(n){if(t.length>0)break}else if(e=`${i.slice(a)}\\${e}`,n=d,d&&t.length>0)break}return e=Ly(e,!n,"\\",st),n?`${t}\\${e}`:`${t}${e}`||"."},normalize(r){wn(r,"path");let t=r.length;if(t===0)return".";let e=0,n,o=!1,i=r.charCodeAt(0);if(t===1)return iP(i)?"\\":r;if(st(i))if(o=!0,st(r.charCodeAt(1))){let a=2,l=a;for(;a<t&&!st(r.charCodeAt(a));)a++;if(a<t&&a!==l){let d=r.slice(l,a);for(l=a;a<t&&st(r.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!st(r.charCodeAt(a));)a++;if(a===t)return`\\\\${d}\\${r.slice(l)}\\`;a!==l&&(n=`\\\\${d}\\${r.slice(l,a)}`,e=a)}}}else e=1;else zs(i)&&r.charCodeAt(1)===$s&&(n=r.slice(0,2),e=2,t>2&&st(r.charCodeAt(2))&&(o=!0,e=3));let s=e<t?Ly(r.slice(e),!o,"\\",st):"";if(s.length===0&&!o&&(s="."),s.length>0&&st(r.charCodeAt(t-1))&&(s+="\\"),!o&&n===void 0&&r.includes(":")){if(s.length>=2&&zs(s.charCodeAt(0))&&s.charCodeAt(1)===$s)return`.\\${s}`;let a=r.indexOf(":");do if(a===t-1||st(r.charCodeAt(a+1)))return`.\\${s}`;while((a=r.indexOf(":",a+1))!==-1)}return n===void 0?o?`\\${s}`:s:o?`${n}\\${s}`:`${n}${s}`},isAbsolute(r){wn(r,"path");let t=r.length;if(t===0)return!1;let e=r.charCodeAt(0);return st(e)||t>2&&zs(e)&&r.charCodeAt(1)===$s&&st(r.charCodeAt(2))},join(...r){if(r.length===0)return".";let t,e;for(let i=0;i<r.length;++i){let s=r[i];wn(s,"path"),s.length>0&&(t===void 0?t=e=s:t+=`\\${s}`)}if(t===void 0)return".";let n=!0,o=0;if(typeof e=="string"&&st(e.charCodeAt(0))){++o;let i=e.length;i>1&&st(e.charCodeAt(1))&&(++o,i>2&&(st(e.charCodeAt(2))?++o:n=!1))}if(n){for(;o<t.length&&st(t.charCodeAt(o));)o++;o>=2&&(t=`\\${t.slice(o)}`)}return un.normalize(t)},relative(r,t){if(wn(r,"from"),wn(t,"to"),r===t)return"";let e=un.resolve(r),n=un.resolve(t);if(e===n||(r=e.toLowerCase(),t=n.toLowerCase(),r===t))return"";if(e.length!==r.length||n.length!==t.length){let h=e.split("\\"),f=n.split("\\");h[h.length-1]===""&&h.pop(),f[f.length-1]===""&&f.pop();let I=h.length,S=f.length,E=I<S?I:S,P;for(P=0;P<E&&h[P].toLowerCase()===f[P].toLowerCase();P++);return P===0?n:P===E?S>E?f.slice(P).join("\\"):I>E?"..\\".repeat(I-1-P)+"..":"":"..\\".repeat(I-P)+f.slice(P).join("\\")}let o=0;for(;o<r.length&&r.charCodeAt(o)===Zo;)o++;let i=r.length;for(;i-1>o&&r.charCodeAt(i-1)===Zo;)i--;let s=i-o,a=0;for(;a<t.length&&t.charCodeAt(a)===Zo;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===Zo;)l--;let d=l-a,c=s<d?s:d,u=-1,m=0;for(;m<c;m++){let h=r.charCodeAt(o+m);if(h!==t.charCodeAt(a+m))break;h===Zo&&(u=m)}if(m!==c){if(u===-1)return n}else{if(d>c){if(t.charCodeAt(a+m)===Zo)return n.slice(a+m+1);if(m===2)return n.slice(a+m)}s>c&&(r.charCodeAt(o+m)===Zo?u=m:m===2&&(u=3)),u===-1&&(u=0)}let g="";for(m=o+u+1;m<=i;++m)(m===i||r.charCodeAt(m)===Zo)&&(g+=g.length===0?"..":"\\..");return a+=u,g.length>0?`${g}${n.slice(a,l)}`:(n.charCodeAt(a)===Zo&&++a,n.slice(a,l))},toNamespacedPath(r){if(typeof r!="string"||r.length===0)return r;let t=un.resolve(r);if(t.length<=2)return r;if(t.charCodeAt(0)===Zo){if(t.charCodeAt(1)===Zo){let e=t.charCodeAt(2);if(e!==x$&&e!==Hd)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(zs(t.charCodeAt(0))&&t.charCodeAt(1)===$s&&t.charCodeAt(2)===Zo)return`\\\\?\\${t}`;return t},dirname(r){wn(r,"path");let t=r.length;if(t===0)return".";let e=-1,n=0,o=r.charCodeAt(0);if(t===1)return st(o)?r:".";if(st(o)){if(e=n=1,st(r.charCodeAt(1))){let a=2,l=a;for(;a<t&&!st(r.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&st(r.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!st(r.charCodeAt(a));)a++;if(a===t)return r;a!==l&&(e=n=a+1)}}}}else zs(o)&&r.charCodeAt(1)===$s&&(e=t>2&&st(r.charCodeAt(2))?3:2,n=e);let i=-1,s=!0;for(let a=t-1;a>=n;--a)if(st(r.charCodeAt(a))){if(!s){i=a;break}}else s=!1;if(i===-1){if(e===-1)return".";i=e}return r.slice(0,i)},basename(r,t){t!==void 0&&wn(t,"suffix"),wn(r,"path");let e=0,n=-1,o=!0,i;if(r.length>=2&&zs(r.charCodeAt(0))&&r.charCodeAt(1)===$s&&(e=2),t!==void 0&&t.length>0&&t.length<=r.length){if(t===r)return"";let s=t.length-1,a=-1;for(i=r.length-1;i>=e;--i){let l=r.charCodeAt(i);if(st(l)){if(!o){e=i+1;break}}else a===-1&&(o=!1,a=i+1),s>=0&&(l===t.charCodeAt(s)?--s===-1&&(n=i):(s=-1,n=a))}return e===n?n=a:n===-1&&(n=r.length),r.slice(e,n)}for(i=r.length-1;i>=e;--i)if(st(r.charCodeAt(i))){if(!o){e=i+1;break}}else n===-1&&(o=!1,n=i+1);return n===-1?"":r.slice(e,n)},extname(r){wn(r,"path");let t=0,e=-1,n=0,o=-1,i=!0,s=0;r.length>=2&&r.charCodeAt(1)===$s&&zs(r.charCodeAt(0))&&(t=n=2);for(let a=r.length-1;a>=t;--a){let l=r.charCodeAt(a);if(st(l)){if(!i){n=a+1;break}continue}o===-1&&(i=!1,o=a+1),l===Hd?e===-1?e=a:s!==1&&(s=1):e!==-1&&(s=-1)}return e===-1||o===-1||s===0||s===1&&e===o-1&&e===n+1?"":r.slice(e,o)},format:PN.bind(null,"\\"),parse(r){wn(r,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return t;let e=r.length,n=0,o=r.charCodeAt(0);if(e===1)return st(o)?(t.root=t.dir=r,t):(t.base=t.name=r,t);if(st(o)){if(n=1,st(r.charCodeAt(1))){let u=2,m=u;for(;u<e&&!st(r.charCodeAt(u));)u++;if(u<e&&u!==m){for(m=u;u<e&&st(r.charCodeAt(u));)u++;if(u<e&&u!==m){for(m=u;u<e&&!st(r.charCodeAt(u));)u++;u===e?n=u:u!==m&&(n=u+1)}}}}else if(zs(o)&&r.charCodeAt(1)===$s){if(e<=2)return t.root=t.dir=r,t;if(n=2,st(r.charCodeAt(2))){if(e===3)return t.root=t.dir=r,t;n=3}}n>0&&(t.root=r.slice(0,n));let i=-1,s=n,a=-1,l=!0,d=r.length-1,c=0;for(;d>=n;--d){if(o=r.charCodeAt(d),st(o)){if(!l){s=d+1;break}continue}a===-1&&(l=!1,a=d+1),o===Hd?i===-1?i=d:c!==1&&(c=1):i!==-1&&(c=-1)}return a!==-1&&(i===-1||c===0||c===1&&i===a-1&&i===s+1?t.base=t.name=r.slice(s,a):(t.name=r.slice(s,i),t.base=r.slice(s,a),t.ext=r.slice(i,a))),s>0&&s!==n?t.dir=r.slice(0,s-1):t.dir=t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},T$=(()=>{if(er){let r=/\\/g;return()=>{let t=ri().replace(r,"/");return t.slice(t.indexOf("/"))}}return()=>ri()})(),ze={resolve(...r){let t="",e=!1;for(let n=r.length-1;n>=0&&!e;n--){let o=r[n];wn(o,`paths[${n}]`),o.length!==0&&(t=`${o}/${t}`,e=o.charCodeAt(0)===eo)}if(!e){let n=T$();t=`${n}/${t}`,e=n.charCodeAt(0)===eo}return t=Ly(t,!e,"/",iP),e?`/${t}`:t.length>0?t:"."},normalize(r){if(wn(r,"path"),r.length===0)return".";let t=r.charCodeAt(0)===eo,e=r.charCodeAt(r.length-1)===eo;return r=Ly(r,!t,"/",iP),r.length===0?t?"/":e?"./":".":(e&&(r+="/"),t?`/${r}`:r)},isAbsolute(r){return wn(r,"path"),r.length>0&&r.charCodeAt(0)===eo},join(...r){if(r.length===0)return".";let t=[];for(let e=0;e<r.length;++e){let n=r[e];wn(n,"path"),n.length>0&&t.push(n)}return t.length===0?".":ze.normalize(t.join("/"))},relative(r,t){if(wn(r,"from"),wn(t,"to"),r===t||(r=ze.resolve(r),t=ze.resolve(t),r===t))return"";let e=1,n=r.length,o=n-e,i=1,s=t.length-i,a=o<s?o:s,l=-1,d=0;for(;d<a;d++){let u=r.charCodeAt(e+d);if(u!==t.charCodeAt(i+d))break;u===eo&&(l=d)}if(d===a)if(s>a){if(t.charCodeAt(i+d)===eo)return t.slice(i+d+1);if(d===0)return t.slice(i+d)}else o>a&&(r.charCodeAt(e+d)===eo?l=d:d===0&&(l=0));let c="";for(d=e+l+1;d<=n;++d)(d===n||r.charCodeAt(d)===eo)&&(c+=c.length===0?"..":"/..");return`${c}${t.slice(i+l)}`},toNamespacedPath(r){return r},dirname(r){if(wn(r,"path"),r.length===0)return".";let t=r.charCodeAt(0)===eo,e=-1,n=!0;for(let o=r.length-1;o>=1;--o)if(r.charCodeAt(o)===eo){if(!n){e=o;break}}else n=!1;return e===-1?t?"/":".":t&&e===1?"//":r.slice(0,e)},basename(r,t){t!==void 0&&wn(t,"suffix"),wn(r,"path");let e=0,n=-1,o=!0,i;if(t!==void 0&&t.length>0&&t.length<=r.length){if(t===r)return"";let s=t.length-1,a=-1;for(i=r.length-1;i>=0;--i){let l=r.charCodeAt(i);if(l===eo){if(!o){e=i+1;break}}else a===-1&&(o=!1,a=i+1),s>=0&&(l===t.charCodeAt(s)?--s===-1&&(n=i):(s=-1,n=a))}return e===n?n=a:n===-1&&(n=r.length),r.slice(e,n)}for(i=r.length-1;i>=0;--i)if(r.charCodeAt(i)===eo){if(!o){e=i+1;break}}else n===-1&&(o=!1,n=i+1);return n===-1?"":r.slice(e,n)},extname(r){wn(r,"path");let t=-1,e=0,n=-1,o=!0,i=0;for(let s=r.length-1;s>=0;--s){let a=r[s];if(a==="/"){if(!o){e=s+1;break}continue}n===-1&&(o=!1,n=s+1),a==="."?t===-1?t=s:i!==1&&(i=1):t!==-1&&(i=-1)}return t===-1||n===-1||i===0||i===1&&t===n-1&&t===e+1?"":r.slice(t,n)},format:PN.bind(null,"/"),parse(r){wn(r,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return t;let e=r.charCodeAt(0)===eo,n;e?(t.root="/",n=1):n=0;let o=-1,i=0,s=-1,a=!0,l=r.length-1,d=0;for(;l>=n;--l){let c=r.charCodeAt(l);if(c===eo){if(!a){i=l+1;break}continue}s===-1&&(a=!1,s=l+1),c===Hd?o===-1?o=l:d!==1&&(d=1):o!==-1&&(d=-1)}if(s!==-1){let c=i===0&&e?1:i;o===-1||d===0||d===1&&o===s-1&&o===i+1?t.base=t.name=r.slice(c,s):(t.name=r.slice(c,o),t.base=r.slice(c,s),t.ext=r.slice(o,s))}return i>0?t.dir=r.slice(0,i-1):e&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};ze.win32=un.win32=un;ze.posix=un.posix=ze;var mo=er?un.normalize:ze.normalize,In=er?un.isAbsolute:ze.isAbsolute,Oe=er?un.join:ze.join,sP=er?un.resolve:ze.resolve,ii=er?un.relative:ze.relative,on=er?un.dirname:ze.dirname,at=er?un.basename:ze.basename,Xa=er?un.extname:ze.extname,KJ=er?un.format:ze.format,jJ=er?un.parse:ze.parse,GJ=er?un.toNamespacedPath:ze.toNamespacedPath,bt=er?un.sep:ze.sep,Gu=er?un.delimiter:ze.delimiter;function E$(r){return r}var Oy=class{constructor(t,e){this.lastCache=void 0;this.lastArgKey=void 0;typeof t=="function"?(this._fn=t,this._computeKey=E$):(this._fn=e,this._computeKey=t.getCacheKey)}get(t){let e=this._computeKey(t);return this.lastArgKey!==e&&(this.lastArgKey=e,this.lastCache=this._fn(t)),this.lastCache}};var pt=class{constructor(t){this.executor=t;this._state=0}get hasValue(){return this._state===2}get value(){if(this._state===0){this._state=1;try{this._value=this.executor()}catch(t){this._error=t}finally{this._state=2}}else if(this._state===1)throw new Error("Cannot read the value of a lazy that is being initialized");if(this._error)throw this._error;return this._value}get rawValue(){return this._value}};function aP(r){return r<0?0:r>255?255:r|0}function Wd(r){return r<0?0:r>4294967295?4294967295:r|0}function Gi(r){return!r||typeof r!="string"?!0:r.trim().length===0}var k$=/{(\d+)}/g;function MN(r,...t){return t.length===0?r:r.replace(k$,function(e,n){let o=parseInt(n,10);return isNaN(o)||o<0||o>=t.length?e:t[o]})}var P$=/{([^}]+)}/g;function uP(r,t){return Object.keys(t).length===0?r:r.replace(P$,(e,n)=>t[n]??e)}function tr(r){return r.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function LN(r,t){let e=0,n=r.indexOf(t);for(;n!==-1;)e++,n=r.indexOf(t,n+t.length);return e}function pP(r,t){if(!r||!t)return r;let e=t.length,n=0;if(e===1){let o=t.charCodeAt(0);for(;n<r.length&&r.charCodeAt(n)===o;)n++}else for(;r.startsWith(t,n);)n+=e;return r.substring(n)}function nr(r,t){if(!r||!t)return r;let e=t.length,n=r.length;if(e===1){let i=n,s=t.charCodeAt(0);for(;i>0&&r.charCodeAt(i-1)===s;)i--;return r.substring(0,i)}let o=n;for(;o>0&&r.endsWith(t,o);)o-=e;return r.substring(0,o)}function Uy(r,t,e={}){if(!r)throw new Error("Cannot create regex from empty string");t||(r=tr(r)),e.wholeWord&&(/\B/.test(r.charAt(0))||(r="\\b"+r),/\B/.test(r.charAt(r.length-1))||(r=r+"\\b"));let n="";return e.global&&(n+="g"),e.matchCase||(n+="i"),e.multiline&&(n+="m"),e.unicode&&(n+="u"),new RegExp(r,n)}function Fy(r){return r.source==="^"||r.source==="^$"||r.source==="$"||r.source==="^\\s*$"?!1:!!(r.exec("")&&r.lastIndex===0)}function Hy(r){return r.split(/\r\n|\r|\n/)}function Wy(r){for(let t=0,e=r.length;t<e;t++){let n=r.charCodeAt(t);if(n!==32&&n!==9)return t}return-1}function ON(r,t=r.length-1){for(let e=t;e>=0;e--){let n=r.charCodeAt(e);if(n!==32&&n!==9)return e}return-1}function si(r,t){return r<t?-1:r>t?1:0}function Vy(r,t,e=0,n=r.length,o=0,i=t.length){for(;e<n&&o<i;e++,o++){let l=r.charCodeAt(e),d=t.charCodeAt(o);if(l<d)return-1;if(l>d)return 1}let s=n-e,a=i-o;return s<a?-1:s>a?1:0}function Zf(r,t){return Vd(r,t,0,r.length,0,t.length)}function Vd(r,t,e=0,n=r.length,o=0,i=t.length){for(;e<n&&o<i;e++,o++){let l=r.charCodeAt(e),d=t.charCodeAt(o);if(l===d)continue;if(l>=128||d>=128)return Vy(r.toLowerCase(),t.toLowerCase(),e,n,o,i);_N(l)&&(l-=32),_N(d)&&(d-=32);let c=l-d;if(c!==0)return c}let s=n-e,a=i-o;return s<a?-1:s>a?1:0}function _N(r){return r>=97&&r<=122}function mP(r){return r>=65&&r<=90}function xn(r,t){return r.length===t.length&&Vd(r,t)===0}function Qi(r,t,e){return r===t||!!e&&r!==void 0&&t!==void 0&&xn(r,t)}function qs(r,t){let e=t.length;return e<=r.length&&Vd(r,t,0,e)===0}function NN(r,t){let e=r.length,n=e-t.length;return n>=0&&Vd(r,t,n,e)===0}function UN(r,t){let e=Math.min(r.length,t.length),n;for(n=0;n<e;n++)if(r.charCodeAt(n)!==t.charCodeAt(n))return n;return e}function Bd(r){return 55296<=r&&r<=56319}function eh(r){return 56320<=r&&r<=57343}function By(r,t){return(r-55296<<10)+(t-56320)+65536}function gP(r,t,e){let n=r.charCodeAt(e);if(Bd(n)&&e+1<t){let o=r.charCodeAt(e+1);if(eh(o))return By(n,o)}return n}function _$(r,t){let e=r.charCodeAt(t-1);if(eh(e)&&t>1){let n=r.charCodeAt(t-2);if(Bd(n))return By(n,e)}return e}var dP=class{get offset(){return this._offset}constructor(t,e=0){this._str=t,this._len=t.length,this._offset=e}setOffset(t){this._offset=t}prevCodePoint(){let t=_$(this._str,this._offset);return this._offset-=t>=65536?2:1,t}nextCodePoint(){let t=gP(this._str,this._len,this._offset);return this._offset+=t>=65536?2:1,t}eol(){return this._offset>=this._len}},cP=class{get offset(){return this._iterator.offset}constructor(t,e=0){this._iterator=new dP(t,e)}nextGraphemeLength(){let t=Ny.getInstance(),e=this._iterator,n=e.offset,o=t.getGraphemeBreakType(e.nextCodePoint());for(;!e.eol();){let i=e.offset,s=t.getGraphemeBreakType(e.nextCodePoint());if(DN(o,s)){e.setOffset(i);break}o=s}return e.offset-n}prevGraphemeLength(){let t=Ny.getInstance(),e=this._iterator,n=e.offset,o=t.getGraphemeBreakType(e.prevCodePoint());for(;e.offset>0;){let i=e.offset,s=t.getGraphemeBreakType(e.prevCodePoint());if(DN(s,o)){e.setOffset(i);break}o=s}return n-e.offset}eol(){return this._iterator.eol()}};function fP(r,t){return new cP(r,t).nextGraphemeLength()}var lP;function D$(){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 $y(r){return lP||(lP=D$()),lP.test(r)}var R$=/^[\t\n\r\x20-\x7E]*$/;function FN(r){return R$.test(r)}var A$=/[\u2028\u2029]/;function zy(r){return A$.test(r)}var M$=/(?:\x1b\[|\x9b)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/,L$=/(?:\x1b\]|\x9d).*?(?:\x1b\\|\x07|\x9c)/,O$=/\x1b(?:[ #%\(\)\*\+\-\.\/]?[a-zA-Z0-9\|}~@])/,rY=new RegExp("(?:"+[M$.source,L$.source,O$.source].join("|")+")","g");var HN=String.fromCharCode(65279);function WN(r){return!!(r&&r.length>0&&r.charCodeAt(0)===65279)}function VN(r,t){if(!r||!t||r.length<t.length)return!1;let e=t.length,n=r.toLowerCase(),o=0,i=-1;for(;o<e;){let s=n.indexOf(t[o],i+1);if(s<0)return!1;i=s,o++}return!0}function hP(r,t=!1){return r?(t&&(r=r.replace(/\\./g,"")),r.toLowerCase()!==r):!1}function BN(r){return r.charAt(0).toUpperCase()+r.slice(1)}function $N(r,t=1){if(t===0)return"";let e=-1;do e=r.indexOf(`
`,e+1),t--;while(t>0&&e>=0);return e===-1?r:(r[e-1]==="\r"&&e--,r.substr(0,e))}function DN(r,t){return r===0?t!==5&&t!==7:r===2&&t===3?!1:r===4||r===2||r===3||t===4||t===2||t===3?!0:!(r===8&&(t===8||t===9||t===11||t===12)||(r===11||r===9)&&(t===9||t===10)||(r===12||r===10)&&t===10||t===5||t===13||t===7||r===1||r===13&&t===14||r===6&&t===6)}var Ny=class r{static{this._INSTANCE=null}static getInstance(){return r._INSTANCE||(r._INSTANCE=new r),r._INSTANCE}constructor(){this._data=N$()}getGraphemeBreakType(t){if(t<32)return t===10?3:t===13?2:4;if(t<127)return 0;let e=this._data,n=e.length/3,o=1;for(;o<=n;)if(t<e[3*o])o=2*o;else if(t>e[3*o+1])o=2*o+1;else return e[3*o+2];return 0}};function N$(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}var RN=class r{constructor(t){this.confusableDictionary=t}static{this.ambiguousCharacterData=new pt(()=>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,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,1523,96,8242,96,1370,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,118002,50,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,118003,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,118004,52,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,118005,53,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,118006,54,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,118007,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,118008,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,118009,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,117974,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,117975,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,71913,67,71922,67,65315,67,8557,67,8450,67,8493,67,117976,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,117977,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,117978,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,117979,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,117980,71,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,117981,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,117983,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,117984,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,118001,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,117982,108,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,117985,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,117986,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,117987,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,118000,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,117988,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,117989,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,117990,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,117991,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,117992,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,117993,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,117994,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,117995,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,71910,87,71919,87,117996,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,117997,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,117998,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,71909,90,66293,90,65338,90,8484,90,8488,90,117999,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,65283,35,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,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,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"cs":[65374,126,8218,44,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,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"de":[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,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"es":[8211,45,65374,126,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"fr":[65374,126,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"it":[160,32,8211,45,65374,126,8218,44,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,65292,44,65297,49,65307,59,65311,63],"ja":[8211,45,8218,44,65281,33,8216,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,65292,44,65297,49,65307,59],"ko":[8211,45,65374,126,8218,44,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,65292,44,65297,49,65307,59,65311,63],"pl":[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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pt-BR":[65374,126,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,8218,44,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,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ru":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"zh-hans":[160,32,65374,126,8218,44,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,65297,49],"zh-hant":[8211,45,65374,126,8218,44,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]}'))}static{this.cache=new Oy(t=>{let e=t.split(",");function n(u){let m=new Map;for(let g=0;g<u.length;g+=2)m.set(u[g],u[g+1]);return m}function o(u,m){let g=new Map(u);for(let[h,f]of m)g.set(h,f);return g}function i(u,m){if(!u)return m;let g=new Map;for(let[h,f]of u)m.has(h)&&g.set(h,f);return g}let s=this.ambiguousCharacterData.value,a=e.filter(u=>!u.startsWith("_")&&Object.hasOwn(s,u));a.length===0&&(a=["_default"]);let l;for(let u of a){let m=n(s[u]);l=i(l,m)}let d=n(s._common),c=o(d,l);return new r(c)})}static getInstance(t){return r.cache.get(Array.from(t).join(","))}static{this._locales=new pt(()=>Object.keys(r.ambiguousCharacterData.value).filter(t=>!t.startsWith("_")))}static getLocales(){return r._locales.value}isAmbiguous(t){return this.confusableDictionary.has(t)}containsAmbiguousCharacter(t){for(let e=0;e<t.length;e++){let n=t.codePointAt(e);if(typeof n=="number"&&this.isAmbiguous(n))return!0}return!1}getPrimaryConfusable(t){return this.confusableDictionary.get(t)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}},AN=class r{static getRawData(){return JSON.parse('{"_common":[11,12,13,127,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,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,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],"cs":[173,8203,12288],"de":[173,8203,12288],"es":[8203,12288],"fr":[173,8203,12288],"it":[160,173,12288],"ja":[173],"ko":[173,12288],"pl":[173,8203,12288],"pt-BR":[173,8203,12288],"qps-ploc":[160,173,8203,12288],"ru":[173,12288],"tr":[160,173,8203,12288],"zh-hans":[160,173,8203,12288],"zh-hant":[173,12288]}')}static{this._data=void 0}static getData(){return this._data||(this._data=new Set([...Object.values(r.getRawData())].flat())),this._data}static isInvisibleCharacter(t){return r.getData().has(t)}static containsInvisibleCharacter(t){for(let e=0;e<t.length;e++){let n=t.codePointAt(e);if(typeof n=="number"&&(r.isInvisibleCharacter(n)||n===32))return!0}return!1}static get codePoints(){return r.getData()}};function Za(r){return r===47||r===92}function qy(r){return r.replace(/[\\/]/g,ze.sep)}function zN(r){return r.indexOf("/")===-1&&(r=qy(r)),/^[a-zA-Z]:(\/|$)/.test(r)&&(r="/"+r),r}function th(r,t=ze.sep){if(!r)return"";let e=r.length,n=r.charCodeAt(0);if(Za(n)){if(Za(r.charCodeAt(1))&&!Za(r.charCodeAt(2))){let i=3,s=i;for(;i<e&&!Za(r.charCodeAt(i));i++);if(s!==i&&!Za(r.charCodeAt(i+1))){for(i+=1;i<e;i++)if(Za(r.charCodeAt(i)))return r.slice(0,i+1).replace(/[\\/]/g,t)}}return t}else if(KN(n)&&r.charCodeAt(1)===58)return Za(r.charCodeAt(2))?r.slice(0,2)+t:r.slice(0,2);let o=r.indexOf("://");if(o!==-1){for(o+=3;o<e;o++)if(Za(r.charCodeAt(o)))return r.slice(0,o+1)}return""}var U$=/[\\/:\*\?"<>\|]/g,F$=/[/]/g,H$=/^(con|prn|aux|clock\$|nul|lpt[0-9]|com[0-9])(\.(.*?))?$/i;function qN(r,t=Ie){let e=t?U$:F$;return!(!r||r.length===0||/^\s+$/.test(r)||(e.lastIndex=0,e.test(r))||t&&H$.test(r)||r==="."||r===".."||t&&r[r.length-1]==="."||t&&r.length!==r.trim().length||r.length>255)}function Qu(r,t,e){let n=r===t;return!e||n?n:!r||!t?!1:xn(r,t)}function vr(r,t,e,n=bt){if(r===t)return!0;if(!r||!t||t.length>r.length)return!1;if(e){if(!qs(r,t))return!1;if(t.length===r.length)return!0;let i=t.length;return t.charAt(t.length-1)===n&&i--,r.charAt(i)===n}return t.charAt(t.length-1)!==n&&(t+=n),r.indexOf(t)===0}function KN(r){return r>=65&&r<=90||r>=97&&r<=122}function jN(r){return Ie?(r=nr(r,bt),r.endsWith(":")&&(r+=bt)):(r=nr(r,bt),r||(r=bt)),r}function vP(r){let t=mo(r);return Ie?r.length>3?!1:Ky(t)&&(r.length===2||t.charCodeAt(2)===92):t===ze.sep}function Ky(r,t=Ie){return t?KN(r.charCodeAt(0))&&r.charCodeAt(1)===58:!1}function bP(r,t=Ie){return Ky(r,t)?r[0]:void 0}var W$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",V$="BDEFGHIJKMOQRSTUVWXYZbdefghijkmoqrstuvwxyz0123456789";function GN(r,t,e=8){let n="";for(let i=0;i<e;i++){let s;i===0&&Ie&&!t&&(e===3||e===4)?s=V$:s=W$,n+=s.charAt(Math.floor(Math.random()*s.length))}let o;return t?o=`${t}-${n}`:o=n,r?Oe(r,o):o}var B$=/^\w[\w\d+.-]*$/,$$=/^\//,z$=/^\/\//;function q$(r,t){if(!r.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${r.authority}", path: "${r.path}", query: "${r.query}", fragment: "${r.fragment}"}`);if(r.scheme&&!B$.test(r.scheme)){let e=[...r.scheme.matchAll(/[^\w\d+.-]/gu)],n=e.length>0?` Found '${e[0][0]}' at index ${e[0].index} (${e.length} total)`:"";throw new Error(`[UriError]: Scheme contains illegal characters.${n} (len:${r.scheme.length})`)}if(r.path){if(r.authority){if(!$$.test(r.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(z$.test(r.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function K$(r,t){return!r&&!t?"file":r}function j$(r,t){switch(r){case"https":case"http":case"file":t?t[0]!==ai&&(t=ai+t):t=ai;break}return t}var en="",ai="/",G$=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,y=class r{static isUri(t){return t instanceof r?!0:!t||typeof t!="object"?!1:typeof t.authority=="string"&&typeof t.fragment=="string"&&typeof t.path=="string"&&typeof t.query=="string"&&typeof t.scheme=="string"&&typeof t.fsPath=="string"&&typeof t.with=="function"&&typeof t.toString=="function"}constructor(t,e,n,o,i,s=!1){typeof t=="object"?(this.scheme=t.scheme||en,this.authority=t.authority||en,this.path=t.path||en,this.query=t.query||en,this.fragment=t.fragment||en):(this.scheme=K$(t,s),this.authority=e||en,this.path=j$(this.scheme,n||en),this.query=o||en,this.fragment=i||en,q$(this,s))}get fsPath(){return nh(this,!1)}with(t){if(!t)return this;let{scheme:e,authority:n,path:o,query:i,fragment:s}=t;return e===void 0?e=this.scheme:e===null&&(e=en),n===void 0?n=this.authority:n===null&&(n=en),o===void 0?o=this.path:o===null&&(o=en),i===void 0?i=this.query:i===null&&(i=en),s===void 0?s=this.fragment:s===null&&(s=en),e===this.scheme&&n===this.authority&&o===this.path&&i===this.query&&s===this.fragment?this:new el(e,n,o,i,s)}static parse(t,e=!1){let n=G$.exec(t);return n?new el(n[2]||en,jy(n[4]||en),jy(n[5]||en),jy(n[7]||en),jy(n[9]||en),e):new el(en,en,en,en,en)}static file(t){let e=en;if(Ie&&(t=t.replace(/\\/g,ai)),t[0]===ai&&t[1]===ai){let n=t.indexOf(ai,2);n===-1?(e=t.substring(2),t=ai):(e=t.substring(2,n),t=t.substring(n)||ai)}return new el("file",e,t,en,en)}static from(t,e){return new el(t.scheme,t.authority,t.path,t.query,t.fragment,e)}static joinPath(t,...e){if(!t.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let n;return Ie&&t.scheme==="file"?n=r.file(un.join(nh(t,!0),...e)).path:n=ze.join(t.path,...e),t.with({path:n})}toString(t=!1){return IP(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof r)return t;{let e=new el(t);return e._formatted=t.external??null,e._fsPath=t._sep===YN?t.fsPath??null:null,e}}else return t}[Symbol.for("debug.description")](){return`URI(${this.toString()})`}};function tl(r){return!r||typeof r!="object"?!1:typeof r.scheme=="string"&&(typeof r.authority=="string"||typeof r.authority>"u")&&(typeof r.path=="string"||typeof r.path>"u")&&(typeof r.query=="string"||typeof r.query>"u")&&(typeof r.fragment=="string"||typeof r.fragment>"u")}var YN=Ie?1:void 0,el=class extends y{constructor(){super(...arguments);this._formatted=null;this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=nh(this,!1)),this._fsPath}toString(e=!1){return e?IP(this,!0):(this._formatted||(this._formatted=IP(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=YN),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}},XN={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function QN(r,t,e){let n,o=-1;for(let i=0;i<r.length;i++){let s=r.charCodeAt(i);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||s===45||s===46||s===95||s===126||t&&s===47||e&&s===91||e&&s===93||e&&s===58)o!==-1&&(n+=encodeURIComponent(r.substring(o,i)),o=-1),n!==void 0&&(n+=r.charAt(i));else{n===void 0&&(n=r.substr(0,i));let a=XN[s];a!==void 0?(o!==-1&&(n+=encodeURIComponent(r.substring(o,i)),o=-1),n+=a):o===-1&&(o=i)}}return o!==-1&&(n+=encodeURIComponent(r.substring(o))),n!==void 0?n:r}function Q$(r){let t;for(let e=0;e<r.length;e++){let n=r.charCodeAt(e);n===35||n===63?(t===void 0&&(t=r.substr(0,e)),t+=XN[n]):t!==void 0&&(t+=r[e])}return t!==void 0?t:r}function nh(r,t){let e;return r.authority&&r.path.length>1&&r.scheme==="file"?e=`//${r.authority}${r.path}`:r.path.charCodeAt(0)===47&&(r.path.charCodeAt(1)>=65&&r.path.charCodeAt(1)<=90||r.path.charCodeAt(1)>=97&&r.path.charCodeAt(1)<=122)&&r.path.charCodeAt(2)===58?t?e=r.path.substr(1):e=r.path[1].toLowerCase()+r.path.substr(2):e=r.path,Ie&&(e=e.replace(/\//g,"\\")),e}function IP(r,t){let e=t?Q$:QN,n="",{scheme:o,authority:i,path:s,query:a,fragment:l}=r;if(o&&(n+=o,n+=":"),(i||o==="file")&&(n+=ai,n+=ai),i){let d=i.indexOf("@");if(d!==-1){let c=i.substr(0,d);i=i.substr(d+1),d=c.lastIndexOf(":"),d===-1?n+=e(c,!1,!1):(n+=e(c.substr(0,d),!1,!1),n+=":",n+=e(c.substr(d+1),!1,!0)),n+="@"}i=i.toLowerCase(),d=i.lastIndexOf(":"),d===-1?n+=e(i,!1,!0):(n+=e(i.substr(0,d),!1,!0),n+=i.substr(d))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){let d=s.charCodeAt(1);d>=65&&d<=90&&(s=`/${String.fromCharCode(d+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){let d=s.charCodeAt(0);d>=65&&d<=90&&(s=`${String.fromCharCode(d+32)}:${s.substr(2)}`)}n+=e(s,!0,!1)}return a&&(n+="?",n+=e(a,!1,!1)),l&&(n+="#",n+=t?l:QN(l,!1,!1)),n}function ZN(r){try{return decodeURIComponent(r)}catch{return r.length>3?r.substr(0,3)+ZN(r.substr(3)):r}}var JN=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function jy(r){return r.match(JN)?r.replace(JN,t=>ZN(t)):r}var V;(ye=>(ye.inMemory="inmemory",ye.vscode="vscode",ye.internal="private",ye.walkThrough="walkThrough",ye.walkThroughSnippet="walkThroughSnippet",ye.http="http",ye.https="https",ye.file="file",ye.mailto="mailto",ye.untitled="untitled",ye.data="data",ye.command="command",ye.vscodeRemote="vscode-remote",ye.vscodeRemoteResource="vscode-remote-resource",ye.vscodeManagedRemoteResource="vscode-managed-remote-resource",ye.vscodeUserData="vscode-userdata",ye.vscodeCustomEditor="vscode-custom-editor",ye.vscodeNotebookCell="vscode-notebook-cell",ye.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",ye.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",ye.vscodeNotebookCellOutput="vscode-notebook-cell-output",ye.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",ye.vscodeNotebookMetadata="vscode-notebook-metadata",ye.vscodeInteractiveInput="vscode-interactive-input",ye.vscodeSettings="vscode-settings",ye.vscodeWorkspaceTrust="vscode-workspace-trust",ye.vscodeTerminal="vscode-terminal",ye.vscodeImageCarousel="vscode-image-carousel",ye.vscodeChatCodeBlock="vscode-chat-code-block",ye.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",ye.vscodeChatEditor="vscode-chat-editor",ye.vscodeChatInput="chatSessionInput",ye.vscodeLocalChatSession="vscode-chat-session",ye.webviewPanel="webview-panel",ye.vscodeWebview="vscode-webview",ye.vscodeBrowser="vscode-browser",ye.extension="extension",ye.vscodeFileResource="vscode-file",ye.tmp="tmp",ye.vsls="vsls",ye.vscodeSourceControl="vscode-scm",ye.commentsInput="comment",ye.codeSetting="code-setting",ye.outputChannel="output",ye.accessibleView="accessible-view",ye.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",ye.chatEditingModel="chat-editing-text-model",ye.copilotPr="copilot-pr"))(V||={});function Gy(r,t){return y.isUri(r)?xn(r.scheme,t):qs(r,t+":")}function eU(r,...t){return t.some(e=>Gy(r,e))}var J$="tkn",xP=class{constructor(){this._hosts=Object.create(null);this._ports=Object.create(null);this._connectionTokens=Object.create(null);this._preferredWebSchema="http";this._delegate=null;this._serverRootPath="/"}setPreferredWebSchema(t){this._preferredWebSchema=t}setDelegate(t){this._delegate=t}setServerRootPath(t,e){this._serverRootPath=ze.join(e??"/",Y$(t))}getServerRootPath(){return this._serverRootPath}get _remoteResourcesPath(){return ze.join(this._serverRootPath,V.vscodeRemoteResource)}set(t,e,n){this._hosts[t]=e,this._ports[t]=n}setConnectionToken(t,e){this._connectionTokens[t]=e}getPreferredWebSchema(){return this._preferredWebSchema}rewrite(t){if(this._delegate)try{return this._delegate(t)}catch(a){return $e(a),t}let e=t.authority,n=this._hosts[e];n&&n.indexOf(":")!==-1&&n.indexOf("[")===-1&&(n=`[${n}]`);let o=this._ports[e],i=this._connectionTokens[e],s=`path=${encodeURIComponent(t.path)}`;return typeof i=="string"&&(s+=`&${J$}=${encodeURIComponent(i)}`),y.from({scheme:hr?this._preferredWebSchema:V.vscodeRemoteResource,authority:`${n}:${o}`,path:this._remoteResourcesPath,query:s})}},CP=new xP;function Y$(r){return`${r.quality??"oss"}-${r.commit??"dev"}`}var tU="vs/../../node_modules",nU="vs/../../node_modules.asar";var TP="vscode-app",SP=class r{static{this.FALLBACK_AUTHORITY=TP}asBrowserUri(t){let e=this.toUri(t);return this.uriToBrowserUri(e)}uriToBrowserUri(t){return t.scheme===V.vscodeRemote?CP.rewrite(t):t.scheme===V.file&&(Ty||hN===`${V.vscodeFileResource}://${r.FALLBACK_AUTHORITY}`)?t.with({scheme:V.vscodeFileResource,authority:t.authority||r.FALLBACK_AUTHORITY,query:null,fragment:null}):t}asFileUri(t){let e=this.toUri(t);return this.uriToFileUri(e)}uriToFileUri(t){return t.scheme===V.vscodeFileResource?t.with({scheme:V.file,authority:t.authority!==r.FALLBACK_AUTHORITY?t.authority:null,query:null,fragment:null}):t}toUri(t){if(y.isUri(t))return t;if(globalThis._VSCODE_FILE_ROOT){let e=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(e))return y.joinPath(y.parse(e,!0),t);let n=Oe(e,t);return y.file(n)}throw new Error("Cannot determine URI for module id!")}},nl=new SP,vY=Object.freeze({"Cache-Control":"no-cache, no-store"}),bY=Object.freeze({"Document-Policy":"include-js-call-stacks-in-crash-reports"}),X$;(i=>{let r=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"}]]);i.CoopAndCoep=Object.freeze(r.get("3"));let e="vscode-coi";function n(s){let a;typeof s=="string"?a=new URL(s).searchParams:s instanceof URL?a=s.searchParams:y.isUri(s)&&(a=new URL(s.toString(!0)).searchParams);let l=a?.get(e);if(l)return r.get(l)}i.getHeadersFromQuery=n;function o(s,a,l){if(!globalThis.crossOriginIsolated)return;let d=a&&l?"3":l?"2":"1";s instanceof URLSearchParams?s.set(e,d):s[e]=d}i.addSearchParam=o})(X$||={});function Mr(r){return nh(r,!0)}var Ji=class{constructor(t){this._ignorePathCasing=t}compare(t,e,n=!1){return t===e?0:si(this.getComparisonKey(t,n),this.getComparisonKey(e,n))}isEqual(t,e,n=!1){return t===e?!0:!t||!e?!1:this.getComparisonKey(t,n)===this.getComparisonKey(e,n)}getComparisonKey(t,e=!1){return t.with({path:this._ignorePathCasing(t)?t.path.toLowerCase():void 0,fragment:e?null:void 0}).toString()}ignorePathCasing(t){return this._ignorePathCasing(t)}isEqualOrParent(t,e,n=!1){if(t.scheme===e.scheme){if(t.scheme===V.file)return vr(Mr(t),Mr(e),this._ignorePathCasing(t))&&t.query===e.query&&(n||t.fragment===e.fragment);if(oU(t.authority,e.authority))return vr(t.path,e.path,this._ignorePathCasing(t),"/")&&t.query===e.query&&(n||t.fragment===e.fragment)}return!1}joinPath(t,...e){return y.joinPath(t,...e)}basenameOrAuthority(t){return qt(t)||t.authority}basename(t){return ze.basename(t.path)}extname(t){return ze.extname(t.path)}dirname(t){if(t.path.length===0)return t;let e;return t.scheme===V.file?e=y.file(on(Mr(t))).path:(e=ze.dirname(t.path),t.authority&&e.length&&e.charCodeAt(0)!==47&&(console.error(`dirname("${t.toString})) resulted in a relative path`),e="/")),t.with({path:e})}normalizePath(t){if(!t.path.length)return t;let e;return t.scheme===V.file?e=y.file(mo(Mr(t))).path:e=ze.normalize(t.path),t.with({path:e})}relativePath(t,e){if(t.scheme!==e.scheme||!oU(t.authority,e.authority))return;if(t.scheme===V.file){let i=ii(Mr(t),Mr(e));return Ie?qy(i):i}let n=t.path||"/",o=e.path||"/";if(this._ignorePathCasing(t)){let i=0;for(let s=Math.min(n.length,o.length);i<s&&!(n.charCodeAt(i)!==o.charCodeAt(i)&&n.charAt(i).toLowerCase()!==o.charAt(i).toLowerCase());i++);n=o.substr(0,i)+n.substr(i)}return ze.relative(n,o)}resolvePath(t,e){if(t.scheme===V.file){let n=y.file(sP(Mr(t),e));return t.with({authority:n.authority,path:n.path})}return e=zN(e),t.with({path:ze.resolve(t.path,e)})}isAbsolutePath(t){return!!t.path&&t.path[0]==="/"}isEqualAuthority(t,e){return t===e||t!==void 0&&e!==void 0&&xn(t,e)}hasTrailingPathSeparator(t,e=bt){if(t.scheme===V.file){let n=Mr(t);return n.length>th(n).length&&n[n.length-1]===e}else{let n=t.path;return n.length>1&&n.charCodeAt(n.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(t.fsPath)}}removeTrailingPathSeparator(t,e=bt){return rU(t,e)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,e=bt){let n=!1;if(t.scheme===V.file){let o=Mr(t);n=o!==void 0&&o.length===th(o).length&&o[o.length-1]===e}else{e="/";let o=t.path;n=o.length===1&&o.charCodeAt(o.length-1)===47}return!n&&!rU(t,e)?t.with({path:t.path+"/"}):t}},mt=new Ji(()=>!1),$d=new Ji(r=>r.scheme===V.file?!Qe:!0),EP=new Ji(r=>!0),yr=mt.isEqual.bind(mt),Z$=mt.isEqualOrParent.bind(mt),EY=mt.getComparisonKey.bind(mt),oh=mt.basenameOrAuthority.bind(mt),qt=mt.basename.bind(mt),Qy=mt.extname.bind(mt),li=mt.dirname.bind(mt),St=mt.joinPath.bind(mt),wY=mt.normalizePath.bind(mt),rh=mt.relativePath.bind(mt),kY=mt.resolvePath.bind(mt),iU=mt.isAbsolutePath.bind(mt),oU=mt.isEqualAuthority.bind(mt),rU=mt.hasTrailingPathSeparator.bind(mt),PY=mt.removeTrailingPathSeparator.bind(mt),_Y=mt.addTrailingPathSeparator.bind(mt);var e9;(i=>{i.META_DATA_LABEL="label",i.META_DATA_DESCRIPTION="description",i.META_DATA_SIZE="size",i.META_DATA_MIME="mime";function o(s){let a=new Map;s.path.substring(s.path.indexOf(";")+1,s.path.lastIndexOf(";")).split(";").forEach(c=>{let[u,m]=c.split(":");u&&m&&a.set(u,m)});let d=s.path.substring(0,s.path.indexOf(";"));return d&&a.set(i.META_DATA_MIME,d),a}i.parseMetaData=o})(e9||={});var sU=Symbol("MicrotaskDelay");function Lr(r){return!!r&&typeof r.then=="function"}function rr(r){let t=new Ce,e=r(t.token),n=!1,o=new Promise((i,s)=>{let a=t.token.onCancellationRequested(()=>{n=!0,a.dispose(),s(new Be)});Promise.resolve(e).then(l=>{a.dispose(),t.dispose(),n?yy(l)&&l.dispose():i(l)},l=>{a.dispose(),t.dispose(),s(l)})});return new class{cancel(){t.cancel(),t.dispose()}then(i,s){return o.then(i,s)}catch(i){return this.then(void 0,i)}finally(i){return o.finally(i)}}}function np(r,t,e){return new Promise((n,o)=>{let i=t.onCancellationRequested(()=>{i.dispose(),n(e)});r.then(n,o).finally(()=>i.dispose())})}function rl(r,t){return new Promise((e,n)=>{let o=t.onCancellationRequested(()=>{o.dispose(),n(new Be)});r.then(e,n).finally(()=>o.dispose())})}function pn(r){return new Promise((t,e)=>{let n=r();Lr(n)?n.then(t,e):t(n)})}function lh(){let r,t;return{promise:new Promise((n,o)=>{r=n,t=o}),resolve:r,reject:t}}var wP=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new Ce}queue(t){if(this.cancellationTokenSource.token.isCancellationRequested)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=t,!this.queuedPromise){let e=()=>{if(this.queuedPromise=null,this.cancellationTokenSource.token.isCancellationRequested)return;let n=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,n};this.queuedPromise=new Promise(n=>{this.activePromise.then(e,e).then(n)})}return new Promise((e,n)=>{this.queuedPromise.then(e,n)})}return this.activePromise=t(this.cancellationTokenSource.token),new Promise((e,n)=>{this.activePromise.then(o=>{this.activePromise=null,e(o)},o=>{this.activePromise=null,n(o)})})}dispose(){this.cancellationTokenSource.cancel()}},Yy=class{constructor(){this.current=Promise.resolve(null)}queue(t){return this.current=this.current.then(()=>t(),()=>t())}},ol=class{constructor(){this.promiseMap=new Map}queue(t,e){let o=(this.promiseMap.get(t)??Promise.resolve()).catch(()=>{}).then(e).finally(()=>{this.promiseMap.get(t)===o&&this.promiseMap.delete(t)});return this.promiseMap.set(t,o),o}peek(t){return this.promiseMap.get(t)||void 0}keys(){return this.promiseMap.keys()}},t9=(r,t)=>{let e=!0,n=setTimeout(()=>{e=!1,t()},r);return{isTriggered:()=>e,dispose:()=>{clearTimeout(n),e=!1}}},n9=r=>{let t=!0;return queueMicrotask(()=>{t&&(t=!1,r())}),{isTriggered:()=>t,dispose:()=>{t=!1}}},ih=class{constructor(t){this.defaultDelay=t;this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(t,e=this.defaultDelay){this.task=t,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((o,i)=>{this.doResolve=o,this.doReject=i}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){let o=this.task;return this.task=null,o()}}));let n=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=e===sU?n9(n):t9(e,n),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new Be),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}},di=class{constructor(t){this.delayer=new ih(t),this.throttler=new wP}trigger(t,e){return this.delayer.trigger(()=>this.throttler.queue(t),e)}isTriggered(){return this.delayer.isTriggered()}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}},hn=class{constructor(){this._isOpen=!1,this._promise=new Promise((t,e)=>{this._completePromise=t})}isOpen(){return this._isOpen}open(){this._isOpen=!0,this._completePromise(!0)}wait(){return this._promise}};function Lt(r,t){return t?new Promise((e,n)=>{let o=setTimeout(()=>{i.dispose(),e()},r),i=t.onCancellationRequested(()=>{clearTimeout(o),i.dispose(),n(new Be)})}):rr(e=>Lt(r,e))}function dh(r,t=0,e){let n=setTimeout(()=>{r(),e&&o.dispose()},t),o=G(()=>{clearTimeout(n),e?.delete(o)});return e?.add(o),o}function aU(r,t=n=>!!n,e=null){if(r.length===0)return Promise.resolve(e);let n=r.length,o=()=>{n=-1;for(let i of r)i.cancel?.()};return new Promise((i,s)=>{for(let a of r)a.then(l=>{--n>=0&&t(l)?(o(),i(l)):n===0&&i(e)}).catch(l=>{--n>=0&&(o(),s(l))})})}var kP=class{constructor(t){this._size=0;this._isDisposed=!1;this.maxDegreeOfParalellism=t,this.outstandingPromises=[],this.runningPromises=0,this._onDrained=new T}whenIdle(){return this.size>0?fe.toPromise(this.onDrained):Promise.resolve()}get onDrained(){return this._onDrained.event}get size(){return this._size}queue(t){if(this._isDisposed)throw new Error("Object has been disposed");return this._size++,new Promise((e,n)=>{this.outstandingPromises.push({factory:t,c:e,e:n}),this.consume()})}consume(){for(;this.outstandingPromises.length&&this.runningPromises<this.maxDegreeOfParalellism;){let t=this.outstandingPromises.shift();this.runningPromises++;let e=t.factory();e.then(t.c,t.e),e.then(()=>this.consumed(),()=>this.consumed())}}consumed(){this._isDisposed||(this.runningPromises--,--this._size===0&&this._onDrained.fire(),this.outstandingPromises.length>0&&this.consume())}clear(){if(this._isDisposed)throw new Error("Object has been disposed");this.outstandingPromises.length=0,this._size=this.runningPromises}dispose(){this._isDisposed=!0,this.outstandingPromises.length=0,this._size=0,this._onDrained.dispose()}},PP=class extends kP{constructor(){super(1)}};var Yu=class{constructor(){this.queues=new Map;this.drainers=new Set;this.drainListeners=void 0;this.drainListenerCount=0}async whenDrained(){if(this.isDrained())return;let t=new Kt;return this.drainers.add(t),t.p}isDrained(){for(let[,t]of this.queues)if(t.size>0)return!1;return!0}queueSize(t,e=mt){let n=e.getComparisonKey(t);return this.queues.get(n)?.size??0}queueFor(t,e,n=mt){let o=n.getComparisonKey(t),i=this.queues.get(o);if(!i){i=new PP;let s=this.drainListenerCount++,a=fe.once(i.onDrained)(()=>{i?.dispose(),this.queues.delete(o),this.onDidQueueDrain(),this.drainListeners?.deleteAndDispose(s),this.drainListeners?.size===0&&(this.drainListeners.dispose(),this.drainListeners=void 0)});this.drainListeners||(this.drainListeners=new jn),this.drainListeners.set(s,a),this.queues.set(o,i)}return i.queue(e)}onDidQueueDrain(){this.isDrained()&&this.releaseDrainers()}releaseDrainers(){for(let t of this.drainers)t.complete();this.drainers.clear()}dispose(){for(let[,t]of this.queues)t.dispose();this.queues.clear(),this.releaseDrainers(),this.drainListeners?.dispose()}};var sh=class{constructor(t,e){this._isDisposed=!1;this._token=void 0,typeof t=="function"&&typeof e=="number"&&this.setIfNotSet(t,e)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==void 0&&(clearTimeout(this._token),this._token=void 0)}cancelAndSet(t,e){if(this._isDisposed)throw new Dt("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=void 0,t()},e)}setIfNotSet(t,e){if(this._isDisposed)throw new Dt("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===void 0&&(this._token=setTimeout(()=>{this._token=void 0,t()},e))}},Xu=class{constructor(){this.disposable=void 0;this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(t,e,n=globalThis){if(this.isDisposed)throw new Dt("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();let o=n.setInterval(()=>{t()},e);this.disposable=G(()=>{n.clearInterval(o),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}},Wn=class{constructor(t,e){this.timeoutToken=void 0,this.runner=t,this.timeout=e,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=void 0)}schedule(t=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,t)}get delay(){return this.timeout}set delay(t){this.timeout=t}isScheduled(){return this.timeoutToken!==void 0}flush(){this.isScheduled()&&(this.cancel(),this.doRun())}onTimeout(){this.timeoutToken=void 0,this.runner&&this.doRun()}doRun(){this.runner?.()}},ah=class{constructor(t,e){e%1e3!==0&&console.warn(`ProcessTimeRunOnceScheduler resolution is 1s, ${e}ms is not a multiple of 1000ms.`),this.runner=t,this.timeout=e,this.counter=0,this.intervalToken=void 0,this.intervalHandler=this.onInterval.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearInterval(this.intervalToken),this.intervalToken=void 0)}schedule(t=this.timeout){t%1e3!==0&&console.warn(`ProcessTimeRunOnceScheduler resolution is 1s, ${t}ms is not a multiple of 1000ms.`),this.cancel(),this.counter=Math.ceil(t/1e3),this.intervalToken=setInterval(this.intervalHandler,1e3)}isScheduled(){return this.intervalToken!==void 0}onInterval(){this.counter--,!(this.counter>0)&&(clearInterval(this.intervalToken),this.intervalToken=void 0,this.runner?.())}},Xy=class extends Wn{constructor(e,n){super(e,n);this.units=[]}work(e){this.units.push(e),this.isScheduled()||this.schedule()}doRun(){let e=this.units;this.units=[],this.runner?.(e)}dispose(){this.units=[],super.dispose()}},Zu=class extends O{constructor(e,n){super();this.options=e;this.handler=n;this.pendingWork=[];this.throttler=this._register(new En);this.disposed=!1;this.lastExecutionTime=0}get pending(){return this.pendingWork.length}work(e){if(this.disposed)return!1;if(typeof this.options.maxBufferedWork=="number"){if(this.throttler.value){if(this.pending+e.length>this.options.maxBufferedWork)return!1}else if(this.pending+e.length-this.options.maxWorkChunkSize>this.options.maxBufferedWork)return!1}for(let o of e)this.pendingWork.push(o);let n=Date.now()-this.lastExecutionTime;return!this.throttler.value&&(!this.options.waitThrottleDelayBetweenWorkUnits||n>=this.options.throttleDelay)?this.doWork():!this.throttler.value&&this.options.waitThrottleDelayBetweenWorkUnits&&this.scheduleThrottler(Math.max(this.options.throttleDelay-n,0)),!0}doWork(){this.lastExecutionTime=Date.now(),this.handler(this.pendingWork.splice(0,this.options.maxWorkChunkSize)),this.pendingWork.length>0&&this.scheduleThrottler()}scheduleThrottler(e=this.options.throttleDelay){this.throttler.value=new Wn(()=>{this.throttler.clear(),this.doWork()},e),this.throttler.value.schedule()}dispose(){super.dispose(),this.pendingWork.length=0,this.disposed=!0}},RP,Jy;(function(){let r=globalThis;typeof r.requestIdleCallback!="function"||typeof r.cancelIdleCallback!="function"?Jy=(t,e,n)=>{wy(()=>{if(o)return;let i=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,i-Date.now())}}))});let o=!1;return{dispose(){o||(o=!0)}}}:Jy=(t,e,n)=>{let o=t.requestIdleCallback(e,typeof n=="number"?{timeout:n}:void 0),i=!1;return{dispose(){i||(i=!0,t.cancelIdleCallback(o))}}},RP=(t,e)=>Jy(globalThis,t,e)})();var _P=class{constructor(t,e){this._didRun=!1;this._executor=()=>{try{this._value=e()}catch(n){this._error=n}finally{this._didRun=!0}},this._handle=Jy(t,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}},Zy=class extends _P{constructor(t){super(globalThis,t)}};async function lU(r,t,e){let n;for(let o=0;o<e;o++)try{return await r()}catch(i){n=i,await Lt(t)}throw n}var Kt=class r{static fromPromise(t){let e=new r;return e.settleWith(t),e}get isRejected(){return this.outcome?.outcome===1}get isResolved(){return this.outcome?.outcome===0}get isSettled(){return!!this.outcome}get value(){return this.outcome?.outcome===0?this.outcome?.value:void 0}constructor(){this.p=new Promise((t,e)=>{this.completeCallback=t,this.errorCallback=e})}complete(t){return this.isSettled?Promise.resolve():new Promise(e=>{this.completeCallback(t),this.outcome={outcome:0,value:t},e()})}error(t){return this.isSettled?Promise.resolve():new Promise(e=>{this.errorCallback(t),this.outcome={outcome:1,value:t},e()})}settleWith(t){return t.then(e=>this.complete(e),e=>this.error(e))}cancel(){return this.error(new Be)}},Or;(e=>{async function r(n){let o,i=await Promise.all(n.map(s=>s.then(a=>a,a=>{o||(o=a)})));if(typeof o<"u")throw o;return i}e.settled=r;function t(n){return new Promise(async(o,i)=>{try{await n(o,i)}catch(s){i(s)}})}e.withAsyncBody=t})(Or||={});var ep=class r{static fromArray(t){return new r(e=>{e.emitMany(t)})}static fromPromise(t){return new r(async e=>{e.emitMany(await t)})}static fromPromisesResolveOrder(t){return new r(async e=>{await Promise.all(t.map(async n=>e.emitOne(await n)))})}static merge(t){return new r(async e=>{await Promise.all(t.map(async n=>{for await(let o of n)e.emitOne(o)}))})}static{this.EMPTY=r.fromArray([])}constructor(t,e){this._state=0,this._results=[],this._error=null,this._onReturn=e,this._onStateChanged=new T,queueMicrotask(async()=>{let n={emitOne:o=>this.emitOne(o),emitMany:o=>this.emitMany(o),reject:o=>this.reject(o)};try{await Promise.resolve(t(n)),this.resolve()}catch(o){this.reject(o)}finally{n.emitOne=void 0,n.emitMany=void 0,n.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await fe.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,e){return new r(async n=>{for await(let o of t)n.emitOne(e(o))})}map(t){return r.map(this,t)}static filter(t,e){return new r(async n=>{for await(let o of t)e(o)&&n.emitOne(o)})}filter(t){return r.filter(this,t)}static coalesce(t){return r.filter(t,e=>!!e)}coalesce(){return r.coalesce(this)}static async toPromise(t){let e=[];for await(let n of t)e.push(n);return e}toPromise(){return r.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};var eI=class{constructor(t){this._deferred=new Kt;this._asyncIterable=new ep(o=>{if(e){o.reject(e);return}return n&&o.emitMany(n),this._errorFn=i=>o.reject(i),this._emitOneFn=i=>o.emitOne(i),this._emitManyFn=i=>o.emitMany(i),this._deferred.p},t);let e,n;this._errorFn=o=>{e||(e=o)},this._emitOneFn=o=>{n||(n=[]),n.push(o)},this._emitManyFn=o=>{n?o.forEach(i=>n.push(i)):n=o.slice()}}get asyncIterable(){return this._asyncIterable}resolve(){this._deferred.complete()}reject(t){this._errorFn(t),this._deferred.complete()}emitOne(t){this._emitOneFn(t)}emitMany(t){this._emitManyFn(t)}};var DP=class{constructor(){this._unsatisfiedConsumers=[];this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(t){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){let e=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(e,t)}else this._unconsumedValues.push(t)}produceFinal(t){this._ensureNoFinalValue(),this._finalValue=t;for(let e of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(e,t);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new Dt("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(t,e){e.ok?t.complete(e.value):t.error(e.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){let t=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;return t.ok?Promise.resolve(t.value):Promise.reject(t.error)}else{let t=new Kt;return this._unsatisfiedConsumers.push(t),t.p}}},tp=class r{constructor(t,e){this._onReturn=e;this._producerConsumer=new DP;this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async t=>(this._finishError(t),{done:!0,value:void 0})};queueMicrotask(async()=>{let n=t({emitOne:o=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:o}}),emitMany:o=>{for(let i of o)this._producerConsumer.produce({ok:!0,value:{done:!1,value:i}})},reject:o=>this._finishError(o)});if(!this._producerConsumer.hasFinalValue)try{await n,this._finishOk()}catch(o){this._finishError(o)}})}static fromArray(t){return new r(e=>{e.emitMany(t)})}static fromPromise(t){return new r(async e=>{e.emitMany(await t)})}static fromPromisesResolveOrder(t){return new r(async e=>{await Promise.all(t.map(async n=>e.emitOne(await n)))})}static merge(t){return new r(async e=>{await Promise.all(t.map(async n=>{for await(let o of n)e.emitOne(o)}))})}static{this.EMPTY=r.fromArray([])}static map(t,e){return new r(async n=>{for await(let o of t)n.emitOne(e(o))})}static tee(t){let e,n,o=new Kt,i=async()=>{if(!(!e||!n))try{for await(let l of t)e.emitOne(l),n.emitOne(l)}catch(l){e.reject(l),n.reject(l)}finally{o.complete()}},s=new r(async l=>(e=l,i(),o.p)),a=new r(async l=>(n=l,i(),o.p));return[s,a]}map(t){return r.map(this,t)}static coalesce(t){return r.filter(t,e=>!!e)}coalesce(){return r.coalesce(this)}static filter(t,e){return new r(async n=>{for await(let o of t)e(o)&&n.emitOne(o)})}filter(t){return r.filter(this,t)}_finishOk(){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(t){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!1,error:t})}[Symbol.asyncIterator](){return this._iterator}};function zd(r,t){return new AP(r,t)}var AP=class{constructor(t,e){this.reducer=t;this.options=e;this.state={flowing:!1,ended:!1,destroyed:!1};this.buffer={data:[],error:[]};this.listeners={data:[],error:[],end:[]};this.pendingWritePromises=[]}pause(){this.state.destroyed||(this.state.flowing=!1)}resume(){this.state.destroyed||this.state.flowing||(this.state.flowing=!0,this.flowData(),this.flowErrors(),this.flowEnd())}write(t){if(!this.state.destroyed){if(this.state.flowing)this.emitData(t);else if(this.buffer.data.push(t),typeof this.options?.highWaterMark=="number"&&this.buffer.data.length>this.options.highWaterMark)return new Promise(e=>this.pendingWritePromises.push(e))}}error(t){this.state.destroyed||(this.state.flowing?this.emitError(t):this.buffer.error.push(t))}end(t){this.state.destroyed||(typeof t<"u"&&this.write(t),this.state.flowing?(this.emitEnd(),this.destroy()):this.state.ended=!0)}emitData(t){this.listeners.data.slice(0).forEach(e=>e(t))}emitError(t){this.listeners.error.length===0?$e(t):this.listeners.error.slice(0).forEach(e=>e(t))}emitEnd(){this.listeners.end.slice(0).forEach(t=>t())}on(t,e){if(!this.state.destroyed)switch(t){case"data":this.listeners.data.push(e),this.resume();break;case"end":this.listeners.end.push(e),this.state.flowing&&this.flowEnd()&&this.destroy();break;case"error":this.listeners.error.push(e),this.state.flowing&&this.flowErrors();break}}removeListener(t,e){if(this.state.destroyed)return;let n;switch(t){case"data":n=this.listeners.data;break;case"end":n=this.listeners.end;break;case"error":n=this.listeners.error;break}if(n){let o=n.indexOf(e);o>=0&&n.splice(o,1)}}flowData(){if(this.buffer.data.length===0)return;if(typeof this.reducer=="function"){let e=this.reducer(this.buffer.data);this.emitData(e)}else for(let e of this.buffer.data)this.emitData(e);this.buffer.data.length=0;let t=[...this.pendingWritePromises];this.pendingWritePromises.length=0,t.forEach(e=>e())}flowErrors(){if(this.listeners.error.length>0){for(let t of this.buffer.error)this.emitError(t);this.buffer.error.length=0}}flowEnd(){return this.state.ended?(this.emitEnd(),this.listeners.end.length>0):!1}destroy(){this.state.destroyed||(this.state.destroyed=!0,this.state.ended=!0,this.buffer.data.length=0,this.buffer.error.length=0,this.listeners.data.length=0,this.listeners.error.length=0,this.listeners.end.length=0,this.pendingWritePromises.length=0)}};function dU(r,t){let e=[],n;for(;(n=r.read())!==null;)e.push(n);return t(e)}function tI(r,t){return new Promise((e,n)=>{let o=[];nI(r,{onData:i=>{t&&o.push(i)},onError:i=>{t?n(i):e(void 0)},onEnd:()=>{e(t?t(o):void 0)}})})}function nI(r,t,e){r.on("error",n=>{e?.isCancellationRequested||t.onError(n)}),r.on("end",()=>{e?.isCancellationRequested||t.onEnd()}),r.on("data",n=>{e?.isCancellationRequested||t.onData(n)})}function cU(r,t){let e=zd(t);return e.end(r),e}function uU(r,t,e){let n=zd(e);return nI(r,{onData:o=>n.write(t.data(o)),onError:o=>n.error(t.error?t.error(o):o),onEnd:()=>n.end()}),n}var ch=typeof Buffer<"u",r9=new pt(()=>new Uint8Array(256)),MP,LP,W=class r{static alloc(t){return ch?new r(Buffer.allocUnsafe(t)):new r(new Uint8Array(t))}static wrap(t){return ch&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new r(t)}static fromString(t,e){return!(e?.dontUseNodeBuffer||!1)&&ch?new r(Buffer.from(t)):(MP||(MP=new TextEncoder),new r(MP.encode(t)))}static fromByteArray(t){let e=r.alloc(t.length);for(let n=0,o=t.length;n<o;n++)e.buffer[n]=t[n];return e}static concat(t,e){if(typeof e>"u"){e=0;for(let i=0,s=t.length;i<s;i++)e+=t[i].byteLength}let n=r.alloc(e),o=0;for(let i=0,s=t.length;i<s;i++){let a=t[i];n.set(a,o),o+=a.byteLength}return n}static isNativeBuffer(t){return ch&&Buffer.isBuffer(t)}constructor(t){this.buffer=t,this.byteLength=this.buffer.byteLength}clone(){let t=r.alloc(this.byteLength);return t.set(this),t}toString(){return ch?this.buffer.toString():(LP||(LP=new TextDecoder(void 0,{ignoreBOM:!0})),LP.decode(this.buffer))}slice(t,e){return new r(this.buffer.subarray(t,e))}set(t,e){if(t instanceof r)this.buffer.set(t.buffer,e);else if(t instanceof Uint8Array)this.buffer.set(t,e);else if(t instanceof ArrayBuffer)this.buffer.set(new Uint8Array(t),e);else if(ArrayBuffer.isView(t))this.buffer.set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),e);else throw new Error("Unknown argument 'array'")}readUInt32BE(t){return uh(this.buffer,t)}writeUInt32BE(t,e){ph(this.buffer,t,e)}readUInt32LE(t){return i9(this.buffer,t)}writeUInt32LE(t,e){s9(this.buffer,t,e)}readUInt8(t){return a9(this.buffer,t)}writeUInt8(t,e){l9(this.buffer,t,e)}indexOf(t,e=0){return OP(this.buffer,t instanceof r?t.buffer:t,e)}equals(t){return this===t?!0:this.byteLength!==t.byteLength?!1:this.buffer.every((e,n)=>e===t.buffer[n])}};function OP(r,t,e=0){let n=t.byteLength,o=r.byteLength;if(n===0)return 0;if(n===1)return r.indexOf(t[0],e);if(n>o-e)return-1;let i=r9.value;i.fill(t.length);for(let d=0;d<t.length;d++)i[t[d]]=t.length-d-1;let s=e+t.length-1,a=s,l=-1;for(;s<o;)if(r[s]===t[a]){if(a===0){l=s;break}s--,a--}else s+=Math.max(t.length-a,i[r[s]]),a=t.length-1;return l}function gU(r,t){return r[t+0]<<0>>>0|r[t+1]<<8>>>0}function fU(r,t,e){r[e+0]=t&255,t=t>>>8,r[e+1]=t&255}function uh(r,t){return r[t]*2**24+r[t+1]*2**16+r[t+2]*2**8+r[t+3]}function ph(r,t,e){r[e+3]=t,t=t>>>8,r[e+2]=t,t=t>>>8,r[e+1]=t,t=t>>>8,r[e]=t}function i9(r,t){return r[t+0]<<0>>>0|r[t+1]<<8>>>0|r[t+2]<<16>>>0|r[t+3]<<24>>>0}function s9(r,t,e){r[e+0]=t&255,t=t>>>8,r[e+1]=t&255,t=t>>>8,r[e+2]=t&255,t=t>>>8,r[e+3]=t&255}function a9(r,t){return r[t]}function l9(r,t,e){r[e]=t}function hU(r){return dU(r,t=>W.concat(t))}function NP(r){return tI(r,t=>W.concat(t))}function vU(r){return cU(r,t=>W.concat(t))}function bU(r){return uU(r,{data:t=>typeof t=="string"?W.fromString(t):W.wrap(t)},t=>W.concat(t))}function Ir(r){let t=0,e=0,n=0,o=new Uint8Array(Math.floor(r.length/4*3)),i=a=>{switch(e){case 3:o[n++]=t|a,e=0;break;case 2:o[n++]=t|a>>>2,t=a<<6,e=3;break;case 1:o[n++]=t|a>>>4,t=a<<4,e=2;break;default:t=a<<2,e=1}};for(let a=0;a<r.length;a++){let l=r.charCodeAt(a);if(l>=65&&l<=90)i(l-65);else if(l>=97&&l<=122)i(l-97+26);else if(l>=48&&l<=57)i(l-48+52);else if(l===43||l===45)i(62);else if(l===47||l===95)i(63);else{if(l===61)break;throw new SyntaxError(`Unexpected base64 character ${r[a]}`)}}let s=n;for(;e>0;)i(0);return W.wrap(o).slice(0,s)}var d9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function ir({buffer:r},t=!0,e=!1){let n=e?c9:d9,o="",i=r.byteLength%3,s=0;for(;s<r.byteLength-i;s+=3){let a=r[s+0],l=r[s+1],d=r[s+2];o+=n[a>>>2],o+=n[(a<<4|l>>>4)&63],o+=n[(l<<2|d>>>6)&63],o+=n[d&63]}if(i===1){let a=r[s+0];o+=n[a>>>2],o+=n[a<<4&63],t&&(o+="==")}else if(i===2){let a=r[s+0],l=r[s+1];o+=n[a>>>2],o+=n[(a<<4|l>>>4)&63],o+=n[l<<2&63],t&&(o+="=")}return o}var pU="0123456789abcdef";function mh({buffer:r}){let t="";for(let e=0;e<r.length;e++){let n=r[e];t+=pU[n>>>4],t+=pU[n&15]}return t}function yU(r){if(r.length%2!==0)throw new SyntaxError("Hex string must have an even length");let t=new Uint8Array(r.length>>1);for(let e=0;e<r.length;)t[e>>1]=mU(r,e++)<<4|mU(r,e++);return W.wrap(t)}function mU(r,t){let e=r.charCodeAt(t);if(e>=48&&e<=57)return e-48;if(e>=97&&e<=102)return e-87;if(e>=65&&e<=70)return e-55;throw new SyntaxError(`Invalid hex character at position ${t}`)}function UP(r){let t=[];typeof r=="number"&&t.push("code/timeOrigin",r);function e(o,i){t.push(o,i?.startTime??Date.now())}function n(){let o=[];for(let i=0;i<t.length;i+=2)o.push({name:t[i],startTime:t[i+1]});return o}return{mark:e,getMarks:n}}function u9(){if(typeof performance=="object"&&typeof performance.mark=="function"&&!performance.nodeTiming)return typeof performance.timeOrigin!="number"&&!performance.timing?UP():{mark(r,t){performance.mark(r,t)},getMarks(){let r=performance.timeOrigin;typeof r!="number"&&(r=(performance.timing.navigationStart||performance.timing.redirectStart||performance.timing.fetchStart)??0);let t=[{name:"code/timeOrigin",startTime:Math.round(r)}];for(let e of performance.getEntriesByType("mark"))t.push({name:e.name,startTime:Math.round(r+e.startTime)});return t}};if(typeof process=="object"){let r=performance?.timeOrigin;return UP(r)}else return console.trace("perf-util loaded in UNKNOWN environment"),UP()}function p9(r){return r.MonacoPerformanceMarks||(r.MonacoPerformanceMarks=u9()),r.MonacoPerformanceMarks}var xU=p9(globalThis),Ft=xU.mark,SU=xU.getMarks;var ci={};z5(ci,{Promises:()=>rt,RimRafMode:()=>WP,SymlinkSupport:()=>To,configureFlushOnWrite:()=>BP,realcase:()=>HP,realpathSync:()=>$P,whenDeleted:()=>C9,writeFileSync:()=>k9});import*as Re from"fs";import{tmpdir as b9}from"os";import{promisify as gh}from"util";var m9=new Ar(1e4);function qd(r){return CU(r,"NFC",m9)}var g9=new Ar(1e4);function oI(r){return CU(r,"NFD",g9)}var f9=/[^\u0000-\u0080]/;function CU(r,t,e){if(!r)return r;let n=e.get(r);if(n)return n;let o;return f9.test(r)?o=r.normalize(t):o=r,e.set(r,o),o}var h9=(function(){let r=new Ar(1e4),t=/[\u0300-\u036f]/g;return function(e){let n=r.get(e);if(n)return n;let o=oI(e).replace(t,""),i=(o.length===e.length?o:e).toLowerCase();return r.set(e,i),i}})();var WP=(e=>(e[e.UNLINK=0]="UNLINK",e[e.MOVE=1]="MOVE",e))(WP||{});async function wU(r,t=0,e){if(vP(r))throw new Error("rimraf - will refuse to recursively delete root");return t===0?FP(r):y9(r,e)}async function y9(r,t=GN(b9())){try{try{await Re.promises.rename(r,t)}catch(e){return e.code==="ENOENT"?void 0:FP(r)}FP(t).catch(()=>{})}catch(e){if(e.code!=="ENOENT")throw e}}async function FP(r){return Re.promises.rm(r,{recursive:!0,force:!0,maxRetries:3})}async function rI(r,t){try{return await TU(r,t)}catch(e){if(e.code==="ENOENT"&&Ie&&vP(r))try{return await TU(`${r}.`,t)}catch{}throw e}}async function TU(r,t){return x9(await(t?I9(r):Re.promises.readdir(r)))}async function I9(r){try{return await Re.promises.readdir(r,{withFileTypes:!0})}catch(n){n.code!=="ENOENT"&&console.warn("[node.js fs] readdir with filetypes failed with error: ",n)}let t=[],e=await rI(r);for(let n of e){let o=!1,i=!1,s=!1;try{let a=await Re.promises.lstat(Oe(r,n));o=a.isFile(),i=a.isDirectory(),s=a.isSymbolicLink()}catch(a){a.code!=="ENOENT"&&console.warn("[node.js fs] unexpected error from lstat after readdir: ",a)}t.push({name:n,isFile:()=>o,isDirectory:()=>i,isSymbolicLink:()=>s})}return t}function x9(r){return r.map(t=>typeof t=="string"?ut?qd(t):t:(t.name=ut?qd(t.name):t.name,t))}async function S9(r){let t=await rI(r),e=[];for(let n of t)await To.existsDirectory(Oe(r,n))&&e.push(n);return e}function C9(r,t=1e3){return new Promise(e=>{let n=!1,o=setInterval(()=>{n||(n=!0,Re.access(r,i=>{n=!1,i&&(clearInterval(o),e(void 0))}))},t)})}var To;(n=>{async function r(o){let i;try{if(i=await Re.promises.lstat(o),!i.isSymbolicLink())return{stat:i}}catch{}try{return{stat:await Re.promises.stat(o),symbolicLink:i?.isSymbolicLink()?{dangling:!1}:void 0}}catch(s){if(s.code==="ENOENT"&&i)return{stat:i,symbolicLink:{dangling:!0}};if(Ie&&s.code==="EACCES")try{return{stat:await Re.promises.stat(await Re.promises.readlink(o)),symbolicLink:{dangling:!1}}}catch(a){if(a.code==="ENOENT"&&i)return{stat:i,symbolicLink:{dangling:!0}};throw a}throw s}}n.stat=r;async function t(o){try{let{stat:i,symbolicLink:s}=await n.stat(o);return i.isFile()&&s?.dangling!==!0}catch{}return!1}n.existsFile=t;async function e(o){try{let{stat:i,symbolicLink:s}=await n.stat(o);return i.isDirectory()&&s?.dangling!==!0}catch{}return!1}n.existsDirectory=e})(To||={});var T9=new Yu;function E9(r,t,e){return T9.queueFor(y.file(r),()=>{let n=kU(e);return new Promise((o,i)=>w9(r,t,n,s=>s?i(s):o()))},$d)}var VP=!0;function BP(r){VP=r}function w9(r,t,e,n){if(!VP)return Re.writeFile(r,t,{mode:e.mode,flag:e.flag},n);Re.open(r,e.flag,e.mode,(o,i)=>{if(o)return n(o);Re.writeFile(i,t,s=>{if(s)return Re.close(i,()=>n(s));Re.fdatasync(i,a=>(a&&(console.warn("[node.js fs] fdatasync is now disabled for this session because it failed: ",a),BP(!1)),Re.close(i,l=>n(l))))})})}function k9(r,t,e){let n=kU(e);if(!VP)return Re.writeFileSync(r,t,{mode:n.mode,flag:n.flag});let o=Re.openSync(r,n.flag,n.mode);try{Re.writeFileSync(o,t);try{Re.fdatasyncSync(o)}catch(i){console.warn("[node.js fs] fdatasyncSync is now disabled for this session because it failed: ",i),BP(!1)}}finally{Re.closeSync(o)}}function kU(r){return r?{mode:typeof r.mode=="number"?r.mode:438,flag:typeof r.flag=="string"?r.flag:"w"}:{mode:438,flag:"w"}}async function P9(r,t,e=6e4){if(r!==t)try{Ie&&typeof e=="number"?await PU(r,t,Date.now(),e):await Re.promises.rename(r,t)}catch(n){if(r.toLowerCase()!==t.toLowerCase()&&n.code==="EXDEV"||r.endsWith("."))await _U(r,t,{preserveSymlinks:!1}),await wU(r,1);else throw n}}async function PU(r,t,e,n,o=0){try{return await Re.promises.rename(r,t)}catch(i){if(i.code!=="EACCES"&&i.code!=="EPERM"&&i.code!=="EBUSY")throw i;if(Date.now()-e>=n)throw console.error(`[node.js fs] rename failed after ${o} retries with error: ${i}`),i;if(o===0){let s=!1;try{let{stat:a}=await To.stat(t);a.isFile()||(s=!0)}catch{}if(s)throw i}return await Lt(Math.min(100,o*10)),PU(r,t,e,n,o+1)}}async function _U(r,t,e){return DU(r,t,{root:{source:r,target:t},options:e,handledSourcePaths:new Set})}var EU=511;async function DU(r,t,e){if(e.handledSourcePaths.has(r))return;e.handledSourcePaths.add(r);let{stat:n,symbolicLink:o}=await To.stat(r);if(o){if(e.options.preserveSymlinks)try{return await R9(r,t,e)}catch{}if(o.dangling)return}return n.isDirectory()?_9(r,t,n.mode&EU,e):D9(r,t,n.mode&EU)}async function _9(r,t,e,n){await Re.promises.mkdir(t,{recursive:!0,mode:e});let o=await rI(r);for(let i of o)await DU(Oe(r,i),Oe(t,i),n)}async function D9(r,t,e){await Re.promises.copyFile(r,t),await Re.promises.chmod(t,e)}async function R9(r,t,e){let n=await Re.promises.readlink(r);vr(n,e.root.source,!Qe)&&(n=Oe(e.root.target,n.substr(e.root.source.length+1))),await Re.promises.symlink(n,t)}async function HP(r,t){if(Qe)return r;let e=on(r);if(r===e)return r;let n=(at(r)||r).toLowerCase();try{if(t?.isCancellationRequested)return null;let i=(await rt.readdir(e)).filter(s=>s.toLowerCase()===n);if(i.length===1){let s=await HP(e,t);if(s)return Oe(s,i[0])}else if(i.length>1){let s=i.indexOf(n);if(s>=0){let a=await HP(e,t);if(a)return Oe(a,i[s])}}}catch{}return null}async function A9(r){try{return await gh(Re.realpath)(r)}catch{let t=RU(r);return await Re.promises.access(t,Re.constants.R_OK),t}}function $P(r){try{return Re.realpathSync(r)}catch{let t=RU(r);return Re.accessSync(t,Re.constants.R_OK),t}}function RU(r){return nr(mo(r),bt)}var rt=new class{get read(){return(r,t,e,n,o)=>new Promise((i,s)=>{Re.read(r,t,e,n,o,(a,l,d)=>a?s(a):i({bytesRead:l,buffer:d}))})}get write(){return(r,t,e,n,o)=>new Promise((i,s)=>{Re.write(r,t,e,n,o,(a,l,d)=>a?s(a):i({bytesWritten:l,buffer:d}))})}get fdatasync(){return gh(Re.fdatasync)}get open(){return gh(Re.open)}get close(){return gh(Re.close)}get ftruncate(){return gh(Re.ftruncate)}async exists(r){try{return await Re.promises.access(r),!0}catch{return!1}}get readdir(){return rI}get readDirsInDir(){return S9}get writeFile(){return E9}get rm(){return wU}get rename(){return P9}get copy(){return _U}get realpath(){return A9}};function AU(r){return(t,e,n)=>{let o=null,i=null;if(typeof n.value=="function"?(o="value",i=n.value):typeof n.get=="function"&&(o="get",i=n.get),!i||typeof e=="symbol")throw new Error("not supported");n[o]=r(i,e)}}function iI(r,t,e){let n=null,o=null;if(typeof e.value=="function"?(n="value",o=e.value,o.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof e.get=="function"&&(n="get",o=e.get),!o)throw new Error("not supported");let i=`$memoize$${t}`;e[n]=function(...s){return this.hasOwnProperty(i)||Object.defineProperty(this,i,{configurable:!1,enumerable:!1,writable:!1,value:o.apply(this,s)}),this[i]}}function Kd(r,t,e){return AU((n,o)=>{let i=`$debounce$${o}`,s=`$debounce$result$${o}`;return function(...a){this[s]||(this[s]=e?e():void 0),clearTimeout(this[i]),t&&(this[s]=t(this[s],...a),a=[this[s]]),this[i]=setTimeout(()=>{n.apply(this,a),this[s]=e?e():void 0},r)}})}function MU(r,t,e){return AU((n,o)=>{let i=`$throttle$timer$${o}`,s=`$throttle$result$${o}`,a=`$throttle$lastRun$${o}`,l=`$throttle$pending$${o}`;return function(...d){if(this[s]||(this[s]=e?e():void 0),(this[a]===null||this[a]===void 0)&&(this[a]=-Number.MAX_VALUE),t&&(this[s]=t(this[s],...d)),this[l])return;let c=this[a]+r;c<=Date.now()?(this[a]=Date.now(),n.apply(this,[this[s]]),this[s]=e?e():void 0):(this[l]=!0,this[i]=setTimeout(()=>{this[l]=!1,this[a]=Date.now(),n.apply(this,[this[s]]),this[s]=e?e():void 0},c-Date.now()))}})}function LU(r){return JSON.stringify(r,M9)}function sI(r){let t=JSON.parse(r);return t=Ht(t),t}function M9(r,t){return t instanceof RegExp?{$mid:2,source:t.source,flags:t.flags}:t}function Ht(r,t=0){if(!r||t>200)return r;if(typeof r=="object"){switch(r.$mid){case 1:return y.revive(r);case 2:return new RegExp(r.source,r.flags);case 17:return new Date(r.source)}if(r instanceof W||r instanceof Uint8Array)return r;if(Array.isArray(r))for(let e=0;e<r.length;++e)r[e]=Ht(r[e],t+1);else for(let e in r)Object.hasOwnProperty.call(r,e)&&(r[e]=Ht(r[e],t+1))}return r}function OU(r){switch(r){case 100:return"req";case 101:return"cancel";case 102:return"subscribe";case 103:return"unsubscribe"}}function NU(r){switch(r){case 200:return"init";case 201:return"reply:";case 202:case 203:return"replyErr:";case 204:return"event:"}}function rp(r){let t=0;for(let e=0;;e+=7){let n=r.read(1);if(t|=(n.buffer[0]&127)<<e,!(n.buffer[0]&128))return t}}var L9=il(0);function ip(r,t){if(t===0){r.write(L9);return}let e=0;for(let o=t;o!==0;o=o>>>7)e++;let n=W.alloc(e);for(let o=0;t!==0;o++)n.buffer[o]=t&127,t=t>>>7,t>0&&(n.buffer[o]|=128);r.write(n)}var zP=class{constructor(t){this.buffer=t;this.pos=0}read(t){let e=this.buffer.slice(this.pos,this.pos+t);return this.pos+=e.byteLength,e}},qP=class{constructor(){this.buffers=[]}get buffer(){return W.concat(this.buffers)}write(t){this.buffers.push(t)}};function il(r){let t=W.alloc(1);return t.writeUInt8(r,0),t}var jd={Undefined:il(0),String:il(1),Buffer:il(2),VSBuffer:il(3),Array:il(4),Object:il(5),Uint:il(6)};function KP(r,t){if(typeof t>"u")r.write(jd.Undefined);else if(typeof t=="string"){let e=W.fromString(t);r.write(jd.String),ip(r,e.byteLength),r.write(e)}else if(W.isNativeBuffer(t)){let e=W.wrap(t);r.write(jd.Buffer),ip(r,e.byteLength),r.write(e)}else if(t instanceof W)r.write(jd.VSBuffer),ip(r,t.byteLength),r.write(t);else if(Array.isArray(t)){r.write(jd.Array),ip(r,t.length);for(let e of t)KP(r,e)}else if(typeof t=="number"&&(t|0)===t)r.write(jd.Uint),ip(r,t);else{let e=W.fromString(JSON.stringify(t));r.write(jd.Object),ip(r,e.byteLength),r.write(e)}}function jP(r){switch(r.read(1).readUInt8(0)){case 0:return;case 1:return r.read(rp(r)).toString();case 2:return r.read(rp(r)).buffer;case 3:return r.read(rp(r));case 4:{let e=rp(r),n=[];for(let o=0;o<e;o++)n.push(jP(r));return n}case 5:return JSON.parse(r.read(rp(r)).toString());case 6:return rp(r)}}var fh=class{constructor(t,e=null){this.protocol=t;this.isDisposed=!1;this.state=0;this.activeRequests=new Set;this.handlers=new Map;this.lastRequestId=0;this._onDidInitialize=new T;this.onDidInitialize=this._onDidInitialize.event;this.protocolListener=this.protocol.onMessage(n=>this.onBuffer(n)),this.logger=e}getChannel(t){let e=this;return{call(n,o,i){return e.isDisposed?Promise.reject(new Be):e.requestPromise(t,n,o,i)},listen(n,o){return e.isDisposed?fe.None:e.requestEvent(t,n,o)}}}requestPromise(t,e,n,o=he.None){let i=this.lastRequestId++,a={id:i,type:100,channelName:t,name:e,arg:n};if(o.isCancellationRequested)return Promise.reject(new Be);let l,d;return new Promise((u,m)=>{if(o.isCancellationRequested)return m(new Be);let g=()=>{let I=S=>{switch(S.type){case 201:this.handlers.delete(i),u(S.data);break;case 202:{this.handlers.delete(i);let E=new Error(S.data.message);E.stack=Array.isArray(S.data.stack)?S.data.stack.join(`
`):S.data.stack,E.name=S.data.name,m(E);break}case 203:this.handlers.delete(i),m(S.data);break}};this.handlers.set(i,I),this.sendRequest(a)},h=null;this.state===1?g():(h=rr(I=>this.whenInitialized()),h.then(()=>{h=null,g()}));let f=()=>{h?(h.cancel(),h=null):this.sendRequest({id:i,type:101}),m(new Be)};l=o.onCancellationRequested(f),d={dispose:qa(()=>{f(),l.dispose()})},this.activeRequests.add(d)}).finally(()=>{l?.dispose(),this.activeRequests.delete(d)})}requestEvent(t,e,n){let o=this.lastRequestId++,s={id:o,type:102,channelName:t,name:e,arg:n},a=null,l=new T({onWillAddFirstListener:()=>{let c=()=>{this.activeRequests.add(l),this.sendRequest(s)};this.state===1?c():(a=rr(u=>this.whenInitialized()),a.then(()=>{a=null,c()}))},onDidRemoveLastListener:()=>{a?(a.cancel(),a=null):(this.activeRequests.delete(l),this.sendRequest({id:o,type:103})),this.handlers.delete(o)}}),d=c=>l.fire(c.data);return this.handlers.set(o,d),l.event}sendRequest(t){switch(t.type){case 100:case 102:{let e=this.send([t.type,t.id,t.channelName,t.name],t.arg);this.logger?.logOutgoing(e,t.id,0,`${OU(t.type)}: ${t.channelName}.${t.name}`,t.arg);return}case 101:case 103:{let e=this.send([t.type,t.id]);this.logger?.logOutgoing(e,t.id,0,OU(t.type));return}}}send(t,e=void 0){let n=new qP;return KP(n,t),KP(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onBuffer(t){let e=new zP(t),n=jP(e),o=jP(e),i=n[0];switch(i){case 200:return this.logger?.logIncoming(t.byteLength,0,0,NU(i)),this.onResponse({type:n[0]});case 201:case 202:case 204:case 203:return this.logger?.logIncoming(t.byteLength,n[1],0,NU(i),o),this.onResponse({type:n[0],id:n[1],data:o})}}onResponse(t){if(t.type===200){this.state=1,this._onDidInitialize.fire();return}this.handlers.get(t.id)?.(t)}get onDidInitializePromise(){return fe.toPromise(this.onDidInitialize)}whenInitialized(){return this.state===1?Promise.resolve():this.onDidInitializePromise}dispose(){this.isDisposed=!0,this.protocolListener&&(this.protocolListener.dispose(),this.protocolListener=null),bn(this.activeRequests.values()),this.activeRequests.clear(),this._onDidInitialize.dispose()}};_([iI],fh.prototype,"onDidInitializePromise",1);function UU(r){let t=!1;return{call(e,n,o){return t?r.call(e,n,o):Lt(0).then(()=>t=!0).then(()=>r.call(e,n,o))},listen(e,n){if(t)return r.listen(e,n);let o=new Ay;return Lt(0).then(()=>t=!0).then(()=>o.input=r.listen(e,n)),o.event}}}var GP;(o=>{function r(i,s,a){let l=i,d=a?.disableMarshalling,c=new Map;for(let u in l)e(u)&&c.set(u,fe.buffer(l[u],u,!0,void 0,s));return new class{listen(u,m,g){let h=c.get(m);if(h)return h;let f=l[m];if(typeof f=="function"){if(n(m))return f.call(l,g);if(e(m))return c.set(m,fe.buffer(l[m],m,!0,void 0,s)),c.get(m)}throw new co(`Event not found: ${m}`)}call(u,m,g){let h=l[m];if(typeof h=="function"){if(!d&&Array.isArray(g))for(let I=0;I<g.length;I++)g[I]=Ht(g[I]);let f=h.apply(l,g);return f instanceof Promise||(f=Promise.resolve(f)),f}throw new co(`Method not found: ${m}`)}}}o.fromService=r;function t(i,s){let a=s?.disableMarshalling;return new Proxy({},{get(l,d){if(typeof d=="string")return s?.properties?.has(d)?s.properties.get(d):n(d)?function(c){return i.listen(d,c)}:e(d)?i.listen(d):async function(...c){let u;s&&!At(s.context)?u=[s.context,...c]:u=c;let m=await i.call(d,u);return a?m:Ht(m)};throw new co(`Property not found: ${String(d)}`)}})}o.toService=t;function e(i){return i[0]==="o"&&i[1]==="n"&&mP(i.charCodeAt(2))}function n(i){return/^onDynamic/.test(i)&&mP(i.charCodeAt(9))}})(GP||={});var vh;(s=>{s.enableDiagnostics=!1,s.records=[];let e=new WeakMap,n=0;function o(a,l){if(!e.has(a)){let d=String(++n);e.set(a,d)}return e.get(a)}function i(a,l,d,c){}s.traceSocketEvent=i})(vh||={});var QP=null;function sl(){return QP||(QP=W.alloc(0)),QP}var hh=class{get byteLength(){return this._totalLength}constructor(){this._chunks=[],this._totalLength=0}acceptChunk(t){this._chunks.push(t),this._totalLength+=t.byteLength}read(t){return this._read(t,!0)}peek(t){return this._read(t,!1)}_read(t,e){if(t===0)return sl();if(t>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===t){let s=this._chunks[0];return e&&(this._chunks.shift(),this._totalLength-=t),s}if(this._chunks[0].byteLength>t){let s=this._chunks[0].slice(0,t);return e&&(this._chunks[0]=this._chunks[0].slice(t),this._totalLength-=t),s}let n=W.alloc(t),o=0,i=0;for(;t>0;){let s=this._chunks[i];if(s.byteLength>t){let a=s.slice(0,t);n.set(a,o),o+=t,e&&(this._chunks[i]=s.slice(t),this._totalLength-=t),t-=t}else n.set(s,o),o+=s.byteLength,e?(this._chunks.shift(),this._totalLength-=s.byteLength):i++,t-=s.byteLength}return n}};function FU(r){switch(r){case 0:return"None";case 1:return"Regular";case 2:return"Control";case 3:return"Ack";case 5:return"Disconnect";case 6:return"ReplayRequest";case 7:return"PauseWriting";case 8:return"ResumeWriting";case 9:return"KeepAlive"}}var Nr=class{constructor(t,e,n,o){this.type=t;this.id=e;this.ack=n;this.data=o;this.writtenTime=0}get size(){return this.data.byteLength}},aI=class extends O{constructor(e){super();this._onMessage=this._register(new T);this.onMessage=this._onMessage.event;this._state={readHead:!0,readLen:13,messageType:0,id:0,ack:0};this._socket=e,this._isDisposed=!1,this._incomingData=new hh,this._register(this._socket.onData(n=>this.acceptChunk(n))),this.lastReadTime=Date.now()}acceptChunk(e){if(!(!e||e.byteLength===0))for(this.lastReadTime=Date.now(),this._incomingData.acceptChunk(e);this._incomingData.byteLength>=this._state.readLen;){let n=this._incomingData.read(this._state.readLen);if(this._state.readHead)this._state.readHead=!1,this._state.readLen=n.readUInt32BE(9),this._state.messageType=n.readUInt8(0),this._state.id=n.readUInt32BE(1),this._state.ack=n.readUInt32BE(5),this._socket.traceSocketEvent("protocolHeaderRead",{messageType:FU(this._state.messageType),id:this._state.id,ack:this._state.ack,messageSize:this._state.readLen});else{let o=this._state.messageType,i=this._state.id,s=this._state.ack;if(this._state.readHead=!0,this._state.readLen=13,this._state.messageType=0,this._state.id=0,this._state.ack=0,this._socket.traceSocketEvent("protocolMessageRead",n),this._onMessage.fire(new Nr(o,i,s,n)),this._isDisposed)break}}}readEntireBuffer(){return this._incomingData.read(this._incomingData.byteLength)}dispose(){this._isDisposed=!0,super.dispose()}},lI=class{constructor(t){this._writeNowTimeout=null;this._isDisposed=!1,this._isPaused=!1,this._socket=t,this._data=[],this._totalLength=0,this.lastWriteTime=0}dispose(){try{this.flush()}catch{}this._isDisposed=!0}drain(){return this.flush(),this._socket.drain()}flush(){this._writeNow()}pause(){this._isPaused=!0}resume(){this._isPaused=!1,this._scheduleWriting()}write(t){if(this._isDisposed)return;t.writtenTime=Date.now(),this.lastWriteTime=Date.now();let e=W.alloc(13);e.writeUInt8(t.type,0),e.writeUInt32BE(t.id,1),e.writeUInt32BE(t.ack,5),e.writeUInt32BE(t.data.byteLength,9),this._socket.traceSocketEvent("protocolHeaderWrite",{messageType:FU(t.type),id:t.id,ack:t.ack,messageSize:t.data.byteLength}),this._socket.traceSocketEvent("protocolMessageWrite",t.data),this._writeSoon(e,t.data)}_bufferAdd(t,e){let n=this._totalLength===0;return this._data.push(t,e),this._totalLength+=t.byteLength+e.byteLength,n}_bufferTake(){let t=W.concat(this._data,this._totalLength);return this._data.length=0,this._totalLength=0,t}_writeSoon(t,e){this._bufferAdd(t,e)&&this._scheduleWriting()}_scheduleWriting(){this._writeNowTimeout||(this._writeNowTimeout=setTimeout(()=>{this._writeNowTimeout=null,this._writeNow()}))}_writeNow(){if(this._totalLength===0||this._isPaused)return;let t=this._bufferTake();this._socket.traceSocketEvent("protocolWrite",{byteLength:t.byteLength}),this._socket.write(t)}};var Yi=class{constructor(){this._hasListeners=!1;this._isDeliveringMessages=!1;this._bufferedMessages=[];this._emitter=new T({onWillAddFirstListener:()=>{this._hasListeners=!0,queueMicrotask(()=>this._deliverMessages())},onDidRemoveLastListener:()=>{this._hasListeners=!1}}),this.event=this._emitter.event}_deliverMessages(){if(!this._isDeliveringMessages){for(this._isDeliveringMessages=!0;this._hasListeners&&this._bufferedMessages.length>0;)this._emitter.fire(this._bufferedMessages.shift());this._isDeliveringMessages=!1}}fire(t){this._hasListeners?this._bufferedMessages.length>0?this._bufferedMessages.push(t):this._emitter.fire(t):this._bufferedMessages.push(t)}flushBuffer(){this._bufferedMessages=[]}},JP=class{constructor(t){this.data=t,this.next=null}},YP=class{constructor(){this._first=null,this._last=null}length(){let t=0,e=this._first;for(;e;)e=e.next,t++;return t}peek(){return this._first?this._first.data:null}toArray(){let t=[],e=0,n=this._first;for(;n;)t[e++]=n.data,n=n.next;return t}pop(){if(this._first){if(this._first===this._last){this._first=null,this._last=null;return}this._first=this._first.next}}push(t){let e=new JP(t);if(!this._first){this._first=e,this._last=e;return}this._last.next=e,this._last=e}},XP=class r{static{this._HISTORY_LENGTH=10}static{this._INSTANCE=null}static getInstance(){return r._INSTANCE||(r._INSTANCE=new r),r._INSTANCE}constructor(){this.lastRuns=[];let t=Date.now();for(let e=0;e<r._HISTORY_LENGTH;e++)this.lastRuns[e]=t-1e3*e;setInterval(()=>{for(let e=r._HISTORY_LENGTH;e>=1;e--)this.lastRuns[e]=this.lastRuns[e-1];this.lastRuns[0]=Date.now()},1e3)}load(){let t=Date.now(),e=(1+r._HISTORY_LENGTH)*1e3,n=0;for(let o=0;o<r._HISTORY_LENGTH;o++)t-this.lastRuns[o]<=e&&n++;return 1-n/r._HISTORY_LENGTH}hasHighLoad(){return this.load()>=.5}},Gd=class{constructor(t){this._onControlMessage=new Yi;this.onControlMessage=this._onControlMessage.event;this._onMessage=new Yi;this.onMessage=this._onMessage.event;this._onDidDispose=new Yi;this.onDidDispose=this._onDidDispose.event;this._onSocketClose=new Yi;this.onSocketClose=this._onSocketClose.event;this._onSocketTimeout=new Yi;this.onSocketTimeout=this._onSocketTimeout.event;this._loadEstimator=t.loadEstimator??XP.getInstance(),this._shouldSendKeepAlive=t.sendKeepAlive??!0,this._isReconnecting=!1,this._outgoingUnackMsg=new YP,this._outgoingMsgId=0,this._outgoingAckId=0,this._outgoingAckTimeout=null,this._incomingMsgId=0,this._incomingAckId=0,this._incomingMsgLastTime=0,this._incomingAckTimeout=null,this._lastReplayRequestTime=0,this._lastSocketTimeoutTime=Date.now(),this._socketDisposables=new $,this._socket=t.socket,this._socketWriter=this._socketDisposables.add(new lI(this._socket)),this._socketReader=this._socketDisposables.add(new aI(this._socket)),this._socketDisposables.add(this._socketReader.onMessage(e=>this._receiveMessage(e))),this._socketDisposables.add(this._socket.onClose(e=>this._onSocketClose.fire(e))),t.initialChunk&&this._socketReader.acceptChunk(t.initialChunk),this._shouldSendKeepAlive?this._keepAliveInterval=setInterval(()=>{this._sendKeepAlive()},5e3):this._keepAliveInterval=null}get unacknowledgedCount(){return this._outgoingMsgId-this._outgoingAckId}dispose(){this._outgoingAckTimeout&&(clearTimeout(this._outgoingAckTimeout),this._outgoingAckTimeout=null),this._incomingAckTimeout&&(clearTimeout(this._incomingAckTimeout),this._incomingAckTimeout=null),this._keepAliveInterval&&(clearInterval(this._keepAliveInterval),this._keepAliveInterval=null),this._socketDisposables.dispose()}drain(){return this._socketWriter.drain()}sendDisconnect(){if(!this._didSendDisconnect){this._didSendDisconnect=!0;let t=new Nr(5,0,0,sl());this._socketWriter.write(t),this._socketWriter.flush()}}sendPause(){let t=new Nr(7,0,0,sl());this._socketWriter.write(t)}sendResume(){let t=new Nr(8,0,0,sl());this._socketWriter.write(t)}pauseSocketWriting(){this._socketWriter.pause()}getSocket(){return this._socket}getMillisSinceLastIncomingData(){return Date.now()-this._socketReader.lastReadTime}beginAcceptReconnection(t,e){this._isReconnecting=!0,this._socketDisposables.dispose(),this._socketDisposables=new $,this._onControlMessage.flushBuffer(),this._onSocketClose.flushBuffer(),this._onSocketTimeout.flushBuffer(),this._socket.dispose(),this._lastReplayRequestTime=0,this._lastSocketTimeoutTime=Date.now(),this._socket=t,this._socketWriter=this._socketDisposables.add(new lI(this._socket)),this._socketReader=this._socketDisposables.add(new aI(this._socket)),this._socketDisposables.add(this._socketReader.onMessage(n=>this._receiveMessage(n))),this._socketDisposables.add(this._socket.onClose(n=>this._onSocketClose.fire(n))),this._socketReader.acceptChunk(e)}endAcceptReconnection(){this._isReconnecting=!1,this._incomingAckId=this._incomingMsgId;let t=new Nr(3,0,this._incomingAckId,sl());this._socketWriter.write(t);let e=this._outgoingUnackMsg.toArray();for(let n=0,o=e.length;n<o;n++)this._socketWriter.write(e[n]);this._recvAckCheck()}acceptDisconnect(){this._onDidDispose.fire()}_receiveMessage(t){if(t.ack>this._outgoingAckId){this._outgoingAckId=t.ack;do{let e=this._outgoingUnackMsg.peek();if(e&&e.id<=t.ack)this._outgoingUnackMsg.pop();else break}while(!0)}switch(t.type){case 0:break;case 1:{if(t.id>this._incomingMsgId)if(t.id!==this._incomingMsgId+1){let e=Date.now();e-this._lastReplayRequestTime>1e4&&(this._lastReplayRequestTime=e,this._socketWriter.write(new Nr(6,0,0,sl())))}else this._incomingMsgId=t.id,this._incomingMsgLastTime=Date.now(),this._sendAckCheck(),this._onMessage.fire(t.data);break}case 2:{this._onControlMessage.fire(t.data);break}case 3:break;case 5:{this._onDidDispose.fire();break}case 6:{let e=this._outgoingUnackMsg.toArray();for(let n=0,o=e.length;n<o;n++)this._socketWriter.write(e[n]);this._recvAckCheck();break}case 7:{this._socketWriter.pause();break}case 8:{this._socketWriter.resume();break}case 9:break}}readEntireBuffer(){return this._socketReader.readEntireBuffer()}flush(){this._socketWriter.flush()}send(t){let e=++this._outgoingMsgId;this._incomingAckId=this._incomingMsgId;let n=new Nr(1,e,this._incomingAckId,t);this._outgoingUnackMsg.push(n),this._isReconnecting||(this._socketWriter.write(n),this._recvAckCheck())}sendControl(t){let e=new Nr(2,0,0,t);this._socketWriter.write(e)}_sendAckCheck(){if(this._incomingMsgId<=this._incomingAckId||this._incomingAckTimeout)return;let t=Date.now()-this._incomingMsgLastTime;if(t>=2e3){this._sendAck();return}this._incomingAckTimeout=setTimeout(()=>{this._incomingAckTimeout=null,this._sendAckCheck()},2e3-t+5)}_recvAckCheck(){if(this._outgoingMsgId<=this._outgoingAckId||this._outgoingAckTimeout||this._isReconnecting)return;let t=this._outgoingUnackMsg.peek(),e=Date.now()-t.writtenTime,n=Date.now()-this._socketReader.lastReadTime,o=Date.now()-this._lastSocketTimeoutTime;if(e>=2e4&&n>=2e4&&o>=2e4&&!this._loadEstimator.hasHighLoad()){this._lastSocketTimeoutTime=Date.now(),this._onSocketTimeout.fire({unacknowledgedMsgCount:this._outgoingUnackMsg.length(),timeSinceOldestUnacknowledgedMsg:e,timeSinceLastReceivedSomeData:n});return}let i=Math.max(2e4-e,2e4-n,2e4-o,500);this._outgoingAckTimeout=setTimeout(()=>{this._outgoingAckTimeout=null,this._recvAckCheck()},i)}_sendAck(){if(this._incomingMsgId<=this._incomingAckId)return;this._incomingAckId=this._incomingMsgId;let t=new Nr(3,0,this._incomingAckId,sl());this._socketWriter.write(t)}_sendKeepAlive(){this._incomingAckId=this._incomingMsgId;let t=new Nr(9,0,this._incomingAckId,sl());this._socketWriter.write(t)}};import{createHash as nZ}from"crypto";import{createConnection as sZ,createServer as aZ}from"net";import{tmpdir as N9}from"os";import{createDeflateRaw as U9,createInflateRaw as F9}from"zlib";var Le=(function(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let r=new Uint8Array(16),t=[];for(let e=0;e<256;e++)t.push(e.toString(16).padStart(2,"0"));return function(){crypto.getRandomValues(r),r[6]=r[6]&15|64,r[8]=r[8]&63|128;let n=0,o="";return o+=t[r[n++]],o+=t[r[n++]],o+=t[r[n++]],o+=t[r[n++]],o+="-",o+=t[r[n++]],o+=t[r[n++]],o+="-",o+=t[r[n++]],o+=t[r[n++]],o+="-",o+=t[r[n++]],o+=t[r[n++]],o+="-",o+=t[r[n++]],o+=t[r[n++]],o+=t[r[n++]],o+=t[r[n++]],o+=t[r[n++]],o+=t[r[n++]],o}})();var H9=3e4,Ks=class{constructor(t,e=""){this._canWrite=!0;this.debugLabel=e,this.socket=t,this.traceSocketEvent("created",{type:"NodeSocket"}),this._errorListener=o=>{if(this.traceSocketEvent("error",{code:o?.code,message:o?.message}),o){if(o.code==="EPIPE")return;$e(o)}},this.socket.on("error",this._errorListener);let n;this._closeListener=o=>{this.traceSocketEvent("close",{hadError:o}),this._canWrite=!1,n&&clearTimeout(n)},this.socket.on("close",this._closeListener),this._endListener=()=>{this.traceSocketEvent("nodeEndReceived"),this._canWrite=!1,n=setTimeout(()=>t.destroy(),H9)},this.socket.on("end",this._endListener)}traceSocketEvent(t,e){vh.traceSocketEvent(this.socket,this.debugLabel,t,e)}dispose(){this.socket.off("error",this._errorListener),this.socket.off("close",this._closeListener),this.socket.off("end",this._endListener),this.socket.destroy()}onData(t){let e=n=>{this.traceSocketEvent("read",n),t(W.wrap(n))};return this.socket.on("data",e),{dispose:()=>this.socket.off("data",e)}}onClose(t){let e=n=>{t({type:0,hadError:n,error:void 0})};return this.socket.on("close",e),{dispose:()=>this.socket.off("close",e)}}onEnd(t){let e=()=>{t()};return this.socket.on("end",e),{dispose:()=>this.socket.off("end",e)}}write(t){if(!(this.socket.destroyed||!this._canWrite))try{this.traceSocketEvent("write",t),this.socket.write(t.buffer,e=>{if(e){if(e.code==="EPIPE")return;$e(e)}})}catch(e){if(e.code==="EPIPE")return;$e(e)}}end(){this.traceSocketEvent("nodeEndSent"),this.socket.end()}drain(){return this.traceSocketEvent("nodeDrainBegin"),new Promise((t,e)=>{if(this.socket.bufferSize===0){this.traceSocketEvent("nodeDrainEnd"),t();return}let n=()=>{this.socket.off("close",n),this.socket.off("end",n),this.socket.off("error",n),this.socket.off("timeout",n),this.socket.off("drain",n),this.traceSocketEvent("nodeDrainEnd"),t()};this.socket.on("close",n),this.socket.on("end",n),this.socket.on("error",n),this.socket.on("timeout",n),this.socket.on("drain",n)})}};var dI=class extends O{constructor(e,n,o,i,s=!0){super();this._onData=this._register(new T);this._onClose=this._register(new T);this._isEnded=!1;this._state={state:1,readLen:2,fin:0,compressed:!1,firstFrameOfMessage:!0,mask:0,opcode:0};this.socket=e,this._maxSocketMessageLength=s?262144:1/0,this.traceSocketEvent("created",{type:"WebSocketNodeSocket",permessageDeflate:n,inflateBytesLength:o?.byteLength||0,recordInflateBytes:i}),this._flowManager=this._register(new ZP(this,n,o,i,this._onData,(a,l)=>this._write(a,l))),this._register(this._flowManager.onError(a=>{console.error(a),$e(a),this._onClose.fire({type:0,hadError:!0,error:a})})),this._incomingData=new hh,this._register(this.socket.onData(a=>this._acceptChunk(a))),this._register(this.socket.onClose(async a=>{this._flowManager.isProcessingReadQueue()&&await fe.toPromise(this._flowManager.onDidFinishProcessingReadQueue),this._onClose.fire(a)}))}get permessageDeflate(){return this._flowManager.permessageDeflate}get recordedInflateBytes(){return this._flowManager.recordedInflateBytes}setRecordInflateBytes(e){this._flowManager.setRecordInflateBytes(e)}traceSocketEvent(e,n){this.socket.traceSocketEvent(e,n)}dispose(){this._flowManager.isProcessingWriteQueue()?this._register(this._flowManager.onDidFinishProcessingWriteQueue(()=>{this.dispose()})):(this.socket.dispose(),super.dispose())}onData(e){return this._onData.event(e)}onClose(e){return this._onClose.event(e)}onEnd(e){return this.socket.onEnd(e)}write(e){let n=0;for(;n<e.byteLength;)this._flowManager.writeMessage(e.slice(n,Math.min(n+this._maxSocketMessageLength,e.byteLength)),{compressed:!0,opcode:2}),n+=this._maxSocketMessageLength}_write(e,{compressed:n,opcode:o}){if(this._isEnded)return;this.traceSocketEvent("webSocketNodeSocketWrite",e);let i=2;e.byteLength<126?i+=0:e.byteLength<2**16?i+=2:i+=8;let s=W.alloc(i),a=n?64:0,l=o&15;if(s.writeUInt8(128|a|l,0),e.byteLength<126)s.writeUInt8(e.byteLength,1);else if(e.byteLength<2**16){s.writeUInt8(126,1);let d=1;s.writeUInt8(e.byteLength>>>8&255,++d),s.writeUInt8(e.byteLength>>>0&255,++d)}else{s.writeUInt8(127,1);let d=1;s.writeUInt8(0,++d),s.writeUInt8(0,++d),s.writeUInt8(0,++d),s.writeUInt8(0,++d),s.writeUInt8(e.byteLength>>>24&255,++d),s.writeUInt8(e.byteLength>>>16&255,++d),s.writeUInt8(e.byteLength>>>8&255,++d),s.writeUInt8(e.byteLength>>>0&255,++d)}this.socket.write(W.concat([s,e]))}end(){this._isEnded=!0,this.socket.end()}_acceptChunk(e){if(e.byteLength!==0){for(this._incomingData.acceptChunk(e);this._incomingData.byteLength>=this._state.readLen;)if(this._state.state===1){let n=this._incomingData.peek(this._state.readLen),o=n.readUInt8(0),i=(o&128)>>>7,s=(o&64)>>>6,a=o&15,l=n.readUInt8(1),d=(l&128)>>>7,c=l&127;this._state.state=2,this._state.readLen=2+(d?4:0)+(c===126?2:0)+(c===127?8:0),this._state.fin=i,this._state.firstFrameOfMessage&&(this._state.compressed=!!s),this._state.firstFrameOfMessage=!!i,this._state.mask=0,this._state.opcode=a,this.traceSocketEvent("webSocketNodeSocketPeekedHeader",{headerSize:this._state.readLen,compressed:this._state.compressed,fin:this._state.fin,opcode:this._state.opcode})}else if(this._state.state===2){let n=this._incomingData.read(this._state.readLen),o=n.readUInt8(1),i=(o&128)>>>7,s=o&127,a=1;s===126?s=n.readUInt8(++a)*2**8+n.readUInt8(++a):s===127&&(s=n.readUInt8(++a)*0+n.readUInt8(++a)*0+n.readUInt8(++a)*0+n.readUInt8(++a)*0+n.readUInt8(++a)*2**24+n.readUInt8(++a)*2**16+n.readUInt8(++a)*2**8+n.readUInt8(++a));let l=0;i&&(l=n.readUInt8(++a)*2**24+n.readUInt8(++a)*2**16+n.readUInt8(++a)*2**8+n.readUInt8(++a)),this._state.state=3,this._state.readLen=s,this._state.mask=l,this.traceSocketEvent("webSocketNodeSocketPeekedHeader",{bodySize:this._state.readLen,compressed:this._state.compressed,fin:this._state.fin,mask:this._state.mask,opcode:this._state.opcode})}else if(this._state.state===3){let n=this._incomingData.read(this._state.readLen);this.traceSocketEvent("webSocketNodeSocketReadData",n),W9(n,this._state.mask),this.traceSocketEvent("webSocketNodeSocketUnmaskedData",n),this._state.state=1,this._state.readLen=2,this._state.mask=0,this._state.opcode<=2?this._flowManager.acceptFrame(n,this._state.compressed,!!this._state.fin):this._state.opcode===9&&this._flowManager.writeMessage(n,{compressed:!1,opcode:10})}}}async drain(){this.traceSocketEvent("webSocketNodeSocketDrainBegin"),this._flowManager.isProcessingWriteQueue()&&await fe.toPromise(this._flowManager.onDidFinishProcessingWriteQueue),await this.socket.drain(),this.traceSocketEvent("webSocketNodeSocketDrainEnd")}},ZP=class extends O{constructor(e,n,o,i,s,a){super();this._tracer=e;this._onData=s;this._writeFn=a;this._onError=this._register(new T);this.onError=this._onError.event;this._writeQueue=[];this._readQueue=[];this._onDidFinishProcessingReadQueue=this._register(new T);this.onDidFinishProcessingReadQueue=this._onDidFinishProcessingReadQueue.event;this._onDidFinishProcessingWriteQueue=this._register(new T);this.onDidFinishProcessingWriteQueue=this._onDidFinishProcessingWriteQueue.event;this._isProcessingWriteQueue=!1;this._isProcessingReadQueue=!1;n?(this._zlibInflateStream=this._register(new e_(this._tracer,i,o,{windowBits:15})),this._zlibDeflateStream=this._register(new t_(this._tracer,{windowBits:15})),this._register(this._zlibInflateStream.onError(l=>this._onError.fire(l))),this._register(this._zlibDeflateStream.onError(l=>this._onError.fire(l)))):(this._zlibInflateStream=null,this._zlibDeflateStream=null)}get permessageDeflate(){return!!(this._zlibInflateStream&&this._zlibDeflateStream)}get recordedInflateBytes(){return this._zlibInflateStream?this._zlibInflateStream.recordedInflateBytes:W.alloc(0)}setRecordInflateBytes(e){this._zlibInflateStream?.setRecordInflateBytes(e)}writeMessage(e,n){this._writeQueue.push({data:e,options:n}),this._processWriteQueue()}async _processWriteQueue(){if(!this._isProcessingWriteQueue){for(this._isProcessingWriteQueue=!0;this._writeQueue.length>0;){let{data:e,options:n}=this._writeQueue.shift();if(this._zlibDeflateStream&&n.compressed){let o=await this._deflateMessage(this._zlibDeflateStream,e);this._writeFn(o,n)}else this._writeFn(e,{...n,compressed:!1})}this._isProcessingWriteQueue=!1,this._onDidFinishProcessingWriteQueue.fire()}}isProcessingWriteQueue(){return this._isProcessingWriteQueue}_deflateMessage(e,n){return new Promise((o,i)=>{e.write(n),e.flush(s=>o(s))})}acceptFrame(e,n,o){this._readQueue.push({data:e,isCompressed:n,isLastFrameOfMessage:o}),this._processReadQueue()}async _processReadQueue(){if(!this._isProcessingReadQueue){for(this._isProcessingReadQueue=!0;this._readQueue.length>0;){let e=this._readQueue.shift();if(this._zlibInflateStream&&e.isCompressed){let n=await this._inflateFrame(this._zlibInflateStream,e.data,e.isLastFrameOfMessage);this._onData.fire(n)}else this._onData.fire(e.data)}this._isProcessingReadQueue=!1,this._onDidFinishProcessingReadQueue.fire()}}isProcessingReadQueue(){return this._isProcessingReadQueue}_inflateFrame(e,n,o){return new Promise((i,s)=>{e.write(n),o&&e.write(W.fromByteArray([0,0,255,255])),e.flush(a=>i(a))})}},e_=class extends O{constructor(e,n,o,i){super();this._tracer=e;this._onError=this._register(new T);this.onError=this._onError.event;this._recordedInflateBytes=[];this._pendingInflateData=[];this._recordInflateBytes=n,this._zlibInflate=F9(i),this._zlibInflate.on("error",s=>{this._tracer.traceSocketEvent("zlibInflateError",{message:s?.message,code:s?.code}),this._onError.fire(s)}),this._zlibInflate.on("data",s=>{this._tracer.traceSocketEvent("zlibInflateData",s),this._pendingInflateData.push(W.wrap(s))}),o&&(this._tracer.traceSocketEvent("zlibInflateInitialWrite",o.buffer),this._zlibInflate.write(o.buffer),this._zlibInflate.flush(()=>{this._tracer.traceSocketEvent("zlibInflateInitialFlushFired"),this._pendingInflateData.length=0}))}get recordedInflateBytes(){return this._recordInflateBytes?W.concat(this._recordedInflateBytes):W.alloc(0)}write(e){this._recordInflateBytes&&this._recordedInflateBytes.push(e.clone()),this._tracer.traceSocketEvent("zlibInflateWrite",e),this._zlibInflate.write(e.buffer)}setRecordInflateBytes(e){this._recordInflateBytes=e,e||(this._recordedInflateBytes.length=0)}flush(e){this._zlibInflate.flush(()=>{this._tracer.traceSocketEvent("zlibInflateFlushFired");let n=W.concat(this._pendingInflateData);this._pendingInflateData.length=0,e(n)})}dispose(){this._recordedInflateBytes.length=0,this._pendingInflateData.length=0;try{this._zlibInflate.close()}catch{}super.dispose()}},t_=class extends O{constructor(e,n){super();this._tracer=e;this._onError=this._register(new T);this.onError=this._onError.event;this._pendingDeflateData=[];this._zlibDeflate=U9({windowBits:15}),this._zlibDeflate.on("error",o=>{this._tracer.traceSocketEvent("zlibDeflateError",{message:o?.message,code:o?.code}),this._onError.fire(o)}),this._zlibDeflate.on("data",o=>{this._tracer.traceSocketEvent("zlibDeflateData",o),this._pendingDeflateData.push(W.wrap(o))})}write(e){this._tracer.traceSocketEvent("zlibDeflateWrite",e.buffer),this._zlibDeflate.write(e.buffer)}flush(e){this._zlibDeflate.flush(2,()=>{this._tracer.traceSocketEvent("zlibDeflateFlushFired");let n=W.concat(this._pendingDeflateData);this._pendingDeflateData.length=0,n=n.slice(0,n.byteLength-4),e(n)})}dispose(){this._pendingDeflateData.length=0;try{this._zlibDeflate.close()}catch{}super.dispose()}};function W9(r,t){if(t===0)return;let e=r.byteLength>>>2;for(let l=0;l<e;l++){let d=r.readUInt32BE(l*4);r.writeUInt32BE(d^t,l*4)}let n=e*4,o=r.byteLength-n,i=t>>>24&255,s=t>>>16&255,a=t>>>8&255;o>=1&&r.writeUInt8(r.readUInt8(n)^i,n),o>=2&&r.writeUInt8(r.readUInt8(n+1)^s,n+1),o>=3&&r.writeUInt8(r.readUInt8(n+2)^a,n+2)}var HU=process.env.XDG_RUNTIME_DIR,V9={2:107,1:103};function VU(){let r=Le();if(process.platform==="win32")return`\\\\.\\pipe\\vscode-ipc-${r}-sock`;let t=process.platform!=="darwin"&&HU?HU:N9(),e=Oe(t,`vscode-ipc-${r}.sock`);return B9(e),e}function B9(r){let t=V9[Ey];typeof t=="number"&&r.length>=t&&console.warn(`WARNING: IPC handle "${r}" is longer than ${t} chars, try a shorter --user-data-dir`)}function it(r){if(!r||typeof r!="object"||r instanceof RegExp)return r;let t=Array.isArray(r)?[]:{};return Object.entries(r).forEach(([e,n])=>{t[e]=n&&typeof n=="object"?it(n):n}),t}function bh(r){if(!r||typeof r!="object")return r;let t=[r];for(;t.length>0;){let e=t.shift();Object.freeze(e);for(let n in e)if(BU.call(e,n)){let o=e[n];typeof o=="object"&&!Object.isFrozen(o)&&!oN(o)&&t.push(o)}}return r}var BU=Object.prototype.hasOwnProperty;function js(r,t){return o_(r,t,new Set)}function o_(r,t,e){if(At(r))return r;let n=t(r);if(typeof n<"u")return n;if(Array.isArray(r)){let o=[];for(let i of r)o.push(o_(i,t,e));return o}if(ot(r)){if(e.has(r))throw new Error("Cannot clone recursive data-structure");e.add(r);let o={};for(let i in r)BU.call(r,i)&&(o[i]=o_(r[i],t,e));return e.delete(r),o}return r}function Uo(r,t,e=!0){return ot(r)?(ot(t)&&Object.keys(t).forEach(n=>{n in r?e&&(ot(r[n])&&ot(t[n])?Uo(r[n],t[n],e):r[n]=t[n]):r[n]=t[n]}),r):t}function tn(r,t){if(r===t)return!0;if(r==null||t===null||t===void 0||typeof r!=typeof t||typeof r!="object"||Array.isArray(r)!==Array.isArray(t))return!1;let e,n;if(Array.isArray(r)){if(r.length!==t.length)return!1;for(e=0;e<r.length;e++)if(!tn(r[e],t[e]))return!1}else{let o=[];for(n in r)o.push(n);o.sort();let i=[];for(n in t)i.push(n);if(i.sort(),!tn(o,i))return!1;for(e=0;e<o.length;e++)if(!tn(r[o[e]],t[o[e]]))return!1}return!0}function r_(r){let t=new Set;return JSON.stringify(r,(e,n)=>{if(ot(n)||Array.isArray(n)){if(t.has(n))return"[Circular]";t.add(n)}return typeof n=="bigint"?`[BigInt ${n.toString()}]`:n})}function i_(r,t){let e=t.toLowerCase(),n=Object.keys(r).find(o=>o.toLowerCase()===e);return n?r[n]:r[t]}function s_(r,t){let e=Object.create(null);for(let[n,o]of Object.entries(r))t(n,o)&&(e[n]=o);return e}var $U=new class{constructor(){this._zoomLevel=0;this._onDidChangeZoomLevel=new T;this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(r){r=Math.min(Math.max(-5,r),20),this._zoomLevel!==r&&(this._zoomLevel=r,this._onDidChangeZoomLevel.fire(this._zoomLevel))}};var $9=ut?1.5:1.35,a_=8,l_=class r{constructor(t){this._bareFontInfoBrand=void 0;this.pixelRatio=t.pixelRatio,this.fontFamily=String(t.fontFamily),this.fontWeight=String(t.fontWeight),this.fontSize=t.fontSize,this.fontFeatureSettings=t.fontFeatureSettings,this.fontVariationSettings=t.fontVariationSettings,this.lineHeight=t.lineHeight|0,this.letterSpacing=t.letterSpacing}static _create(t,e,n,o,i,s,a,l,d){s===0?s=$9*n:s<a_&&(s=s*n),s=Math.round(s),s<a_&&(s=a_);let c=1+(d?0:$U.getZoomLevel()*.1);return n*=c,s*=c,i===c_&&(e==="normal"||e==="bold"?i=d_:(i=`'wght' ${parseInt(e,10)}`,e="normal")),new r({pixelRatio:l,fontFamily:t,fontWeight:e,fontSize:n,fontFeatureSettings:o,fontVariationSettings:i,lineHeight:s,letterSpacing:a})}getId(){return`${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`}getMassagedFontFamily(){let t=ui.fontFamily,e=r._wrapInQuotes(this.fontFamily);return t&&this.fontFamily!==t?`${e}, ${t}`:e}static _wrapInQuotes(t){return/[,"']/.test(t)?t:/[+ ]/.test(t)?`"${t}"`:t}},z9=2,cI=class extends l_{constructor(e,n){super(e);this._editorStylingBrand=void 0;this.version=z9;this.isTrusted=n,this.isMonospace=e.isMonospace,this.typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this.typicalFullwidthCharacterWidth=e.typicalFullwidthCharacterWidth,this.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,this.spaceWidth=e.spaceWidth,this.middotWidth=e.middotWidth,this.wsmiddotWidth=e.wsmiddotWidth,this.maxDigitWidth=e.maxDigitWidth}equals(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.fontVariationSettings===e.fontVariationSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.maxDigitWidth===e.maxDigitWidth}},d_="normal",c_="translate",q9="Consolas, 'Courier New', monospace",K9="Menlo, Monaco, 'Courier New', monospace",j9="'Droid Sans Mono', monospace",ui={fontFamily:ut?K9:Ie?q9:j9,fontWeight:"normal",fontSize:ut?12:14,lineHeight:0,letterSpacing:0};var u_={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var p_="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function G9(r=""){let t="(-?\\d*\\.\\d\\w*)|([^";for(let e of p_)r.indexOf(e)>=0||(t+="\\"+e);return t+="\\s]+)",new RegExp(t,"g")}var Q9=G9();function m_(r){let t=Q9;if(r&&r instanceof RegExp)if(r.global)t=r;else{let e="g";r.ignoreCase&&(e+="i"),r.multiline&&(e+="m"),r.unicode&&(e+="u"),t=new RegExp(r.source,e)}return t.lastIndex=0,t}var zU=new po;zU.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function g_(r,t,e,n,o){if(t=m_(t),o||(o=Mt.first(zU)),e.length>o.maxLen){let d=r-o.maxLen/2;return d<0?d=0:n+=d,e=e.substring(d,r+o.maxLen/2),g_(r,t,e,n,o)}let i=Date.now(),s=r-1-n,a=-1,l=null;for(let d=1;!(Date.now()-i>=o.timeBudget);d++){let c=s-o.windowSize*d;t.lastIndex=Math.max(0,c);let u=J9(t,e,s,a);if(!u&&l||(l=u,c<=0))break;a=c}if(l){let d={word:l[0],startColumn:n+1+l.index,endColumn:n+1+l.index+l[0].length};return t.lastIndex=0,d}return null}function J9(r,t,e,n){let o;for(;o=r.exec(t);){let i=o.index||0;if(i<=e&&r.lastIndex>=e)return o;if(n>0&&i>n)return null}return null}function f_(...r){switch(r.length){case 1:return p(1879,null,r[0]);case 2:return p(1880,null,r[0],r[1]);case 3:return p(1881,null,r[0],r[1],r[2]);default:return}}var Y9=p(1878,null),X9=p(1877,null),ll=class r{constructor(){this._input="";this._start=0;this._current=0;this._tokens=[];this._errors=[];this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(t){switch(t.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return t.isTripleEq?"===":"==";case 4:return t.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return t.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 t.lexeme;case 18:return t.lexeme;case 19:return t.lexeme;case 20:return"EOF";default:throw Uu(`unhandled token type: ${JSON.stringify(t)}; have you forgotten to add a case?`)}}static{this._regexFlags=new Set(["i","g","s","m","y","u"].map(t=>t.charCodeAt(0)))}static{this._keywords=new Map([["not",14],["in",13],["false",12],["true",11]])}get errors(){return this._errors}reset(t){return this._input=t,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){let e=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:e})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){let e=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:e})}else this._match(126)?this._addToken(9):this._error(f_("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(f_("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(f_("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(t){return this._isAtEnd()||this._input.charCodeAt(this._current)!==t?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(t){this._tokens.push({type:t,offset:this._start})}_error(t){let e=this._start,n=this._input.substring(this._start,this._current),o={type:19,offset:this._start,lexeme:n};this._errors.push({offset:e,lexeme:n,additionalInfo:t}),this._tokens.push(o)}_string(){this.stringRe.lastIndex=this._start;let t=this.stringRe.exec(this._input);if(t){this._current=this._start+t[0].length;let e=this._input.substring(this._start,this._current),n=r._keywords.get(e);n?this._addToken(n):this._tokens.push({type:17,lexeme:e,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(Y9);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let t=this._current,e=!1,n=!1;for(;;){if(t>=this._input.length){this._current=t,this._error(X9);return}let i=this._input.charCodeAt(t);if(e)e=!1;else if(i===47&&!n){t++;break}else i===91?n=!0:i===92?e=!0:i===93&&(n=!1);t++}for(;t<this._input.length&&r._regexFlags.has(this._input.charCodeAt(t));)t++;this._current=t;let o=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:o,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}};var pi;(o=>{o.serviceIds=new Map,o.DI_TARGET="$di$target",o.DI_DEPENDENCIES="$di$dependencies";function n(i){return i[o.DI_DEPENDENCIES]||[]}o.getServiceDependencies=n})(pi||={});var Fo=R("instantiationService");function Z9(r,t,e){t[pi.DI_TARGET]===t?t[pi.DI_DEPENDENCIES].push({id:r,index:e}):(t[pi.DI_DEPENDENCIES]=[{id:r,index:e}],t[pi.DI_TARGET]=t)}function R(r){if(pi.serviceIds.has(r))return pi.serviceIds.get(r);let t=function(e,n,o){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");Z9(t,e,o)};return t.toString=()=>r,pi.serviceIds.set(r,t),t}var Qn=new Map;Qn.set("false",!1);Qn.set("true",!0);Qn.set("isMac",ut);Qn.set("isLinux",Qe);Qn.set("isWindows",Ie);Qn.set("isWeb",hr);Qn.set("isMacNative",ut&&!hr);Qn.set("isEdge",Py);Qn.set("isFirefox",yN);Qn.set("isChrome",Xf);Qn.set("isSafari",IN);var e8=Object.prototype.hasOwnProperty;var t8={regexParsingWithErrorRecovery:!0},n8=p(1858,null),o8=p(1859,null),r8=p(1861,null),qU=p(1857,null),i8=p(1864,null),s8=p(1865,null),a8=p(1862,null),l8=p(1863,null),uI=class r{constructor(t=t8){this._config=t;this._scanner=new ll;this._tokens=[];this._current=0;this._parsingErrors=[];this._flagsGYRe=/g|y/g}static{this._parseError=new Error}get lexingErrors(){return this._scanner.errors}get parsingErrors(){return this._parsingErrors}parse(t){if(t===""){this._parsingErrors.push({message:n8,offset:0,lexeme:"",additionalInfo:o8});return}this._tokens=this._scanner.reset(t).scan(),this._current=0,this._parsingErrors=[];try{let e=this._expr();if(!this._isAtEnd()){let n=this._peek(),o=n.type===17?s8:void 0;throw this._parsingErrors.push({message:i8,offset:n.offset,lexeme:ll.getLexeme(n),additionalInfo:o}),r._parseError}return e}catch(e){if(e!==r._parseError)throw e;return}}_expr(){return this._or()}_or(){let t=[this._and()];for(;this._matchOne(16);){let e=this._and();t.push(e)}return t.length===1?t[0]:Nt.or(...t)}_and(){let t=[this._term()];for(;this._matchOne(15);){let e=this._term();t.push(e)}return t.length===1?t[0]:Nt.and(...t)}_term(){if(this._matchOne(2)){let t=this._peek();switch(t.type){case 11:return this._advance(),go.INSTANCE;case 12:return this._advance(),Eo.INSTANCE;case 0:{this._advance();let e=this._expr();return this._consume(1,qU),e?.negate()}case 17:return this._advance(),Jd.create(t.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",t)}}return this._primary()}_primary(){let t=this._peek();switch(t.type){case 11:return this._advance(),Nt.true();case 12:return this._advance(),Nt.false();case 0:{this._advance();let e=this._expr();return this._consume(1,qU),e}case 17:{let e=t.lexeme;if(this._advance(),this._matchOne(9)){let o=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),o.type!==10)throw this._errExpectedButGot("REGEX",o);let i=o.lexeme,s=i.lastIndexOf("/"),a=s===i.length-1?void 0:this._removeFlagsGY(i.substring(s+1)),l;try{l=new RegExp(i.substring(1,s),a)}catch{throw this._errExpectedButGot("REGEX",o)}return Eh.create(e,l)}switch(o.type){case 10:case 19:{let i=[o.lexeme];this._advance();let s=this._peek(),a=0;for(let m=0;m<o.lexeme.length;m++)o.lexeme.charCodeAt(m)===40?a++:o.lexeme.charCodeAt(m)===41&&a--;for(;!this._isAtEnd()&&s.type!==15&&s.type!==16;){switch(s.type){case 0:a++;break;case 1:a--;break;case 10:case 18:for(let m=0;m<s.lexeme.length;m++)s.lexeme.charCodeAt(m)===40?a++:o.lexeme.charCodeAt(m)===41&&a--}if(a<0)break;i.push(ll.getLexeme(s)),this._advance(),s=this._peek()}let l=i.join(""),d=l.lastIndexOf("/"),c=d===l.length-1?void 0:this._removeFlagsGY(l.substring(d+1)),u;try{u=new RegExp(l.substring(1,d),c)}catch{throw this._errExpectedButGot("REGEX",o)}return Nt.regex(e,u)}case 18:{let i=o.lexeme;this._advance();let s=null;if(!Gi(i)){let a=i.indexOf("/"),l=i.lastIndexOf("/");if(a!==l&&a>=0){let d=i.slice(a+1,l),c=i[l+1]==="i"?"i":"";try{s=new RegExp(d,c)}catch{throw this._errExpectedButGot("REGEX",o)}}}if(s===null)throw this._errExpectedButGot("REGEX",o);return Eh.create(e,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,r8);let o=this._value();return Nt.notIn(e,o)}switch(this._peek().type){case 3:{this._advance();let o=this._value();if(this._previous().type===18)return Nt.equals(e,o);switch(o){case"true":return Nt.has(e);case"false":return Nt.not(e);default:return Nt.equals(e,o)}}case 4:{this._advance();let o=this._value();if(this._previous().type===18)return Nt.notEquals(e,o);switch(o){case"true":return Nt.not(e);case"false":return Nt.has(e);default:return Nt.notEquals(e,o)}}case 5:return this._advance(),Ch.create(e,this._value());case 6:return this._advance(),Th.create(e,this._value());case 7:return this._advance(),sp.create(e,this._value());case 8:return this._advance(),Sh.create(e,this._value());case 13:return this._advance(),Nt.in(e,this._value());default:return Nt.has(e)}}case 20:throw this._parsingErrors.push({message:a8,offset:t.offset,lexeme:"",additionalInfo:l8}),r._parseError;default:throw this._errExpectedButGot(`true | false | KEY 
	| KEY '=~' REGEX 
	| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){let t=this._peek();switch(t.type){case 17:case 18:return this._advance(),t.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(t){return t.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(t){return this._check(t)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(t,e){if(this._check(t))return this._advance();throw this._errExpectedButGot(e,this._peek())}_errExpectedButGot(t,e,n){let o=p(1860,null,t,ll.getLexeme(e)),i=e.offset,s=ll.getLexeme(e);return this._parsingErrors.push({message:o,offset:i,lexeme:s,additionalInfo:n}),r._parseError}_check(t){return this._peek().type===t}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}},Nt=class{static false(){return go.INSTANCE}static true(){return Eo.INSTANCE}static has(t){return Qd.create(t)}static equals(t,e){return Ih.create(t,e)}static notEquals(t,e){return xh.create(t,e)}static regex(t,e){return Eh.create(t,e)}static in(t,e){return pI.create(t,e)}static notIn(t,e){return mI.create(t,e)}static not(t){return Jd.create(t)}static and(...t){return gI.create(t,null,!0)}static or(...t){return wh.create(t,null,!0)}static greater(t,e){return sp.create(t,e)}static greaterEquals(t,e){return Sh.create(t,e)}static smaller(t,e){return Ch.create(t,e)}static smallerEquals(t,e){return Th.create(t,e)}static{this._parser=new uI({regexParsingWithErrorRecovery:!1})}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};function jU(r){let t=new uI({regexParsingWithErrorRecovery:!1});return r.map(e=>(t.parse(e),t.lexingErrors.length>0?t.lexingErrors.map(n=>({errorMessage:n.additionalInfo?p(1867,null,n.additionalInfo):p(1866,null),offset:n.offset,length:n.lexeme.length})):t.parsingErrors.length>0?t.parsingErrors.map(n=>({errorMessage:n.additionalInfo?`${n.message}. ${n.additionalInfo}`:n.message,offset:n.offset,length:n.lexeme.length})):[]))}function yh(r,t){return r.cmp(t)}var go=class r{constructor(){this.type=0}static{this.INSTANCE=new r}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!1}serialize(){return"false"}keys(){return[]}map(t){return this}negate(){return Eo.INSTANCE}},Eo=class r{constructor(){this.type=1}static{this.INSTANCE=new r}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!0}serialize(){return"true"}keys(){return[]}map(t){return this}negate(){return go.INSTANCE}},Qd=class r{constructor(t,e){this.key=t;this.negated=e;this.type=2}static create(t,e=null){let n=Qn.get(t);return typeof n=="boolean"?n?Eo.INSTANCE:go.INSTANCE:new r(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:QU(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=Qn.get(this.key);return typeof t=="boolean"?t?Eo.INSTANCE:go.INSTANCE:this}evaluate(t){return!!t.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}map(t){return t.mapDefined(this.key)}negate(){return this.negated||(this.negated=Jd.create(this.key,this)),this.negated}},Ih=class r{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=4}static create(t,e,n=null){if(typeof e=="boolean")return e?Qd.create(t,n):Jd.create(t,n);let o=Qn.get(t);return typeof o=="boolean"?e===(o?"true":"false")?Eo.INSTANCE:go.INSTANCE:new r(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:Yd(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){let t=Qn.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?Eo.INSTANCE:go.INSTANCE}return this}evaluate(t){return t.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}map(t){return t.mapEquals(this.key,this.value)}negate(){return this.negated||(this.negated=xh.create(this.key,this.value,this)),this.negated}},pI=class r{constructor(t,e){this.key=t;this.valueKey=e;this.type=10;this.negated=null}static create(t,e){return new r(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:Yd(this.key,this.valueKey,t.key,t.valueKey)}equals(t){return t.type===this.type?this.key===t.key&&this.valueKey===t.valueKey:!1}substituteConstants(){return this}evaluate(t){let e=t.getValue(this.valueKey),n=t.getValue(this.key);if(Array.isArray(e)){if(e.includes(n))return!0;if(Ie&&typeof n=="string"&&n.startsWith("file:///")){let o=n.toLowerCase();return e.some(i=>typeof i=="string"&&i.toLowerCase()===o)}return!1}if(typeof n=="string"&&typeof e=="object"&&e!==null){if(e8.call(e,n))return!0;if(Ie&&n.startsWith("file:///")){let o=n.toLowerCase();return Object.keys(e).some(i=>i.toLowerCase()===o)}return!1}return!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}map(t){return t.mapIn(this.key,this.valueKey)}negate(){return this.negated||(this.negated=mI.create(this.key,this.valueKey)),this.negated}},mI=class r{constructor(t,e){this.key=t;this.valueKey=e;this.type=11;this._negated=pI.create(t,e)}static create(t,e){return new r(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:this._negated.cmp(t._negated)}equals(t){return t.type===this.type?this._negated.equals(t._negated):!1}substituteConstants(){return this}evaluate(t){return!this._negated.evaluate(t)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}map(t){return t.mapNotIn(this.key,this.valueKey)}negate(){return this._negated}},xh=class r{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=5}static create(t,e,n=null){if(typeof e=="boolean")return e?Jd.create(t,n):Qd.create(t,n);let o=Qn.get(t);return typeof o=="boolean"?e===(o?"true":"false")?go.INSTANCE:Eo.INSTANCE:new r(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:Yd(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){let t=Qn.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?go.INSTANCE:Eo.INSTANCE}return this}evaluate(t){return t.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}map(t){return t.mapNotEquals(this.key,this.value)}negate(){return this.negated||(this.negated=Ih.create(this.key,this.value,this)),this.negated}},Jd=class r{constructor(t,e){this.key=t;this.negated=e;this.type=3}static create(t,e=null){let n=Qn.get(t);return typeof n=="boolean"?n?go.INSTANCE:Eo.INSTANCE:new r(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:QU(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=Qn.get(this.key);return typeof t=="boolean"?t?go.INSTANCE:Eo.INSTANCE:this}evaluate(t){return!t.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}map(t){return t.mapNot(this.key)}negate(){return this.negated||(this.negated=Qd.create(this.key,this)),this.negated}};function fI(r,t){if(typeof r=="string"){let e=parseFloat(r);isNaN(e)||(r=e)}return typeof r=="string"||typeof r=="number"?t(r):go.INSTANCE}var sp=class r{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=12}static create(t,e,n=null){return fI(e,o=>new r(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Yd(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}map(t){return t.mapGreater(this.key,this.value)}negate(){return this.negated||(this.negated=Th.create(this.key,this.value,this)),this.negated}},Sh=class r{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=13}static create(t,e,n=null){return fI(e,o=>new r(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Yd(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}map(t){return t.mapGreaterEquals(this.key,this.value)}negate(){return this.negated||(this.negated=Ch.create(this.key,this.value,this)),this.negated}},Ch=class r{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=14}static create(t,e,n=null){return fI(e,o=>new r(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Yd(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))<this.value}serialize(){return`${this.key} < ${this.value}`}keys(){return[this.key]}map(t){return t.mapSmaller(this.key,this.value)}negate(){return this.negated||(this.negated=Sh.create(this.key,this.value,this)),this.negated}},Th=class r{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=15}static create(t,e,n=null){return fI(e,o=>new r(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Yd(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}map(t){return t.mapSmallerEquals(this.key,this.value)}negate(){return this.negated||(this.negated=sp.create(this.key,this.value,this)),this.negated}},Eh=class r{constructor(t,e){this.key=t;this.regexp=e;this.type=7;this.negated=null}static create(t,e){return new r(t,e)}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.key<t.key)return-1;if(this.key>t.key)return 1;let e=this.regexp?this.regexp.source:"",n=t.regexp?t.regexp.source:"";return e<n?-1:e>n?1:0}equals(t){if(t.type===this.type){let e=this.regexp?this.regexp.source:"",n=t.regexp?t.regexp.source:"";return this.key===t.key&&e===n}return!1}substituteConstants(){return this}evaluate(t){let e=t.getValue(this.key);return this.regexp?this.regexp.test(e):!1}serialize(){let t=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${t}`}keys(){return[this.key]}map(t){return t.mapRegex(this.key,this.regexp)}negate(){return this.negated||(this.negated=h_.create(this)),this.negated}},h_=class r{constructor(t){this._actual=t;this.type=8}static create(t){return new r(t)}cmp(t){return t.type!==this.type?this.type-t.type:this._actual.cmp(t._actual)}equals(t){return t.type===this.type?this._actual.equals(t._actual):!1}substituteConstants(){return this}evaluate(t){return!this._actual.evaluate(t)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}map(t){return new r(this._actual.map(t))}negate(){return this._actual}};function GU(r){let t=null;for(let e=0,n=r.length;e<n;e++){let o=r[e].substituteConstants();if(r[e]!==o&&t===null){t=[];for(let i=0;i<e;i++)t[i]=r[i]}t!==null&&(t[e]=o)}return t===null?r:t}var gI=class r{constructor(t,e){this.expr=t;this.negated=e;this.type=6}static create(t,e,n){return r._normalizeArr(t,e,n)}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.length<t.expr.length)return-1;if(this.expr.length>t.expr.length)return 1;for(let e=0,n=this.expr.length;e<n;e++){let o=yh(this.expr[e],t.expr[e]);if(o!==0)return o}return 0}equals(t){if(t.type===this.type){if(this.expr.length!==t.expr.length)return!1;for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].equals(t.expr[e]))return!1;return!0}return!1}substituteConstants(){let t=GU(this.expr);return t===this.expr?this:r.create(t,this.negated,!1)}evaluate(t){for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].evaluate(t))return!1;return!0}static _normalizeArr(t,e,n){let o=[],i=!1;for(let s of t)if(s){if(s.type===1){i=!0;continue}if(s.type===0)return go.INSTANCE;if(s.type===6){o.push(...s.expr);continue}o.push(s)}if(o.length===0&&i)return Eo.INSTANCE;if(o.length!==0){if(o.length===1)return o[0];o.sort(yh);for(let s=1;s<o.length;s++)o[s-1].equals(o[s])&&(o.splice(s,1),s--);if(o.length===1)return o[0];for(;o.length>1;){let s=o[o.length-1];if(s.type!==9)break;o.pop();let a=o.pop(),l=o.length===0,d=wh.create(s.expr.map(c=>r.create([c,a],null,n)),null,l);d&&(o.push(d),o.sort(yh))}if(o.length===1)return o[0];if(n){for(let s=0;s<o.length;s++)for(let a=s+1;a<o.length;a++)if(o[s].negate().equals(o[a]))return go.INSTANCE;if(o.length===1)return o[0]}return new r(o,e)}}serialize(){return this.expr.map(t=>t.serialize()).join(" && ")}keys(){let t=[];for(let e of this.expr)t.push(...e.keys());return t}map(t){return new r(this.expr.map(e=>e.map(t)),null)}negate(){if(!this.negated){let t=[];for(let e of this.expr)t.push(e.negate());this.negated=wh.create(t,this,!0)}return this.negated}},wh=class r{constructor(t,e){this.expr=t;this.negated=e;this.type=9}static create(t,e,n){return r._normalizeArr(t,e,n)}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.length<t.expr.length)return-1;if(this.expr.length>t.expr.length)return 1;for(let e=0,n=this.expr.length;e<n;e++){let o=yh(this.expr[e],t.expr[e]);if(o!==0)return o}return 0}equals(t){if(t.type===this.type){if(this.expr.length!==t.expr.length)return!1;for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].equals(t.expr[e]))return!1;return!0}return!1}substituteConstants(){let t=GU(this.expr);return t===this.expr?this:r.create(t,this.negated,!1)}evaluate(t){for(let e=0,n=this.expr.length;e<n;e++)if(this.expr[e].evaluate(t))return!0;return!1}static _normalizeArr(t,e,n){let o=[],i=!1;if(t){for(let s=0,a=t.length;s<a;s++){let l=t[s];if(l){if(l.type===0){i=!0;continue}if(l.type===1)return Eo.INSTANCE;if(l.type===9){o=o.concat(l.expr);continue}o.push(l)}}if(o.length===0&&i)return go.INSTANCE;o.sort(yh)}if(o.length!==0){if(o.length===1)return o[0];for(let s=1;s<o.length;s++)o[s-1].equals(o[s])&&(o.splice(s,1),s--);if(o.length===1)return o[0];if(n){for(let s=0;s<o.length;s++)for(let a=s+1;a<o.length;a++)if(o[s].negate().equals(o[a]))return Eo.INSTANCE;if(o.length===1)return o[0]}return new r(o,e)}}serialize(){return this.expr.map(t=>t.serialize()).join(" || ")}keys(){let t=[];for(let e of this.expr)t.push(...e.keys());return t}map(t){return new r(this.expr.map(e=>e.map(t)),null)}negate(){if(!this.negated){let t=[];for(let e of this.expr)t.push(e.negate());for(;t.length>1;){let e=t.shift(),n=t.shift(),o=[];for(let i of KU(e))for(let s of KU(n))o.push(gI.create([i,s],null,!1));t.unshift(r.create(o,null,!1))}this.negated=r.create(t,this,!0)}return this.negated}},w=class r extends Qd{static{this._info=[]}static all(){return r._info.values()}constructor(t,e,n){super(t,null),this._defaultValue=e,typeof n=="object"?r._info.push({...n,key:t}):n!==!0&&r._info.push({key:t,description:n,type:e!=null?typeof e:void 0})}bindTo(t){return t.createKey(this.key,this._defaultValue)}getValue(t){return t.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(t){return Ih.create(this.key,t)}notEqualsTo(t){return xh.create(this.key,t)}greater(t){return sp.create(this.key,t)}},wo=R("contextKeyService");function QU(r,t){return r<t?-1:r>t?1:0}function Yd(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function KU(r){return r.type===9?r.expr:[r]}var JU=R("accessibilityService");var lee=new w("accessibilityModeEnabled",!1);var d8=8;var v_=class{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}},Pt=class{constructor(t,e,n,o){this.id=t,this.name=e,this.defaultValue=n,this.schema=o}applyUpdate(t,e){return hI(t,e)}compute(t,e,n){return n}},ap=class{constructor(t,e){this.newValue=t;this.didChange=e}};function hI(r,t){if(typeof r!="object"||typeof t!="object"||!r||!t)return new ap(t,r!==t);if(Array.isArray(r)||Array.isArray(t)){let n=Array.isArray(r)&&Array.isArray(t)&&Xt(r,t);return new ap(t,!n)}let e=!1;for(let n in t)if(t.hasOwnProperty(n)){let o=hI(r[n],t[n]);o.didChange&&(r[n]=o.newValue,e=!0)}return new ap(r,e)}var Xi=class{constructor(t,e){this.schema=void 0;this.id=t,this.name="_never_",this.defaultValue=e}applyUpdate(t,e){return hI(t,e)}validate(t){return this.defaultValue}},dl=class{constructor(t,e,n,o){this.id=t,this.name=e,this.defaultValue=n,this.schema=o}applyUpdate(t,e){return hI(t,e)}compute(t,e,n){return n}};function se(r,t){return typeof r>"u"?t:r==="false"?!1:!!r}var Te=class extends dl{constructor(t,e,n,o=void 0){typeof o<"u"&&(o.type="boolean",o.default=n),super(t,e,n,o)}validate(t){return se(t,this.defaultValue)}};function c8(r,t,e,n){if(typeof r=="string"&&(r=parseInt(r,10)),typeof r!="number"||isNaN(r))return t;let o=r;return o=Math.max(e,o),o=Math.min(n,o),o|0}var lt=class r extends dl{static clampedInt(t,e,n,o){return c8(t,e,n,o)}constructor(t,e,n,o,i,s=void 0){typeof s<"u"&&(s.type="integer",s.default=n,s.minimum=o,s.maximum=i),super(t,e,n,s),this.minimum=o,this.maximum=i}validate(t){return r.clampedInt(t,this.defaultValue,this.minimum,this.maximum)}};var sr=class r extends dl{static clamp(t,e,n){return t<e?e:t>n?n:t}static float(t,e){return typeof t=="string"&&(t=parseFloat(t)),typeof t!="number"||isNaN(t)?e:t}constructor(t,e,n,o,i,s,a){typeof i<"u"&&(i.type="number",i.default=n,i.minimum=s,i.maximum=a),super(t,e,n,i),this.validationFn=o,this.minimum=s,this.maximum=a}validate(t){return this.validationFn(r.float(t,this.defaultValue))}},to=class r extends dl{static string(t,e){return typeof t!="string"?e:t}constructor(t,e,n,o=void 0){typeof o<"u"&&(o.type="string",o.default=n),super(t,e,n,o)}validate(t){return r.string(t,this.defaultValue)}};function kt(r,t,e,n){return typeof r!="string"?t:n&&r in n?n[r]:e.indexOf(r)===-1?t:r}var wt=class extends dl{constructor(t,e,n,o,i=void 0){typeof i<"u"&&(i.type="string",i.enum=o.slice(0),i.default=n),super(t,e,n,i),this._allowedValues=o}validate(t){return kt(t,this.defaultValue,this._allowedValues)}},Zd=class extends Pt{constructor(t,e,n,o,i,s,a=void 0){typeof a<"u"&&(a.type="string",a.enum=i,a.default=o),super(t,e,n,a),this._allowedValues=i,this._convert=s}validate(t){return typeof t!="string"?this.defaultValue:this._allowedValues.indexOf(t)===-1?this.defaultValue:this._convert(t)}};function u8(r){switch(r){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}var b_=class extends Pt{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[p(315,null),p(317,null),p(316,null)],default:"auto",tags:["accessibility"],description:p(314,null)})}validate(t){switch(t){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(t,e,n){return n===0?t.accessibilitySupport:n}},y_=class extends Pt{constructor(){let t={insertSpace:!0,ignoreEmptyLines:!0};super(29,"comments",t,{"editor.comments.insertSpace":{type:"boolean",default:t.insertSpace,description:p(345,null)},"editor.comments.ignoreEmptyLines":{type:"boolean",default:t.ignoreEmptyLines,description:p(344,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{insertSpace:se(e.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:se(e.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}};function p8(r){switch(r){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var aD=(s=>(s[s.Line=1]="Line",s[s.Block=2]="Block",s[s.Underline=3]="Underline",s[s.LineThin=4]="LineThin",s[s.BlockOutline=5]="BlockOutline",s[s.UnderlineThin=6]="UnderlineThin",s))(aD||{});function YU(r){switch(r){case"line":return 1;case"block":return 2;case"underline":return 3;case"line-thin":return 4;case"block-outline":return 5;case"underline-thin":return 6}}var I_=class extends Xi{constructor(){super(162,"")}compute(t,e,n){let o=["monaco-editor"];return e.get(48)&&o.push(e.get(48)),t.extraEditorClassName&&o.push(t.extraEditorClassName),e.get(82)==="default"?o.push("mouse-default"):e.get(82)==="copy"&&o.push("mouse-copy"),e.get(127)&&o.push("showUnused"),e.get(157)&&o.push("showDeprecated"),o.join(" ")}},x_=class extends Te{constructor(){super(45,"emptySelectionClipboard",!0,{description:p(468,null)})}compute(t,e,n){return n&&t.emptySelectionClipboard}},S_=class extends Pt{constructor(){let t={cursorMoveOnType:!0,findOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0,closeOnResult:!1,history:"workspace",replaceHistory:"workspace"};super(50,"find",t,{"editor.find.cursorMoveOnType":{type:"boolean",default:t.cursorMoveOnType,description:p(481,null)},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:t.seedSearchStringFromSelection,enumDescriptions:[p(404,null),p(403,null),p(405,null)],description:p(487,null)},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:t.autoFindInSelection,enumDescriptions:[p(398,null),p(396,null),p(397,null)],description:p(479,null)},"editor.find.globalFindClipboard":{type:"boolean",default:t.globalFindClipboard,description:p(483,null),included:ut},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:t.addExtraSpaceOnTop,description:p(478,null)},"editor.find.loop":{type:"boolean",default:t.loop,description:p(485,null)},"editor.find.closeOnResult":{type:"boolean",default:t.closeOnResult,description:p(480,null)},"editor.find.history":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[p(399,null),p(400,null)],description:p(484,null)},"editor.find.replaceHistory":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[p(401,null),p(402,null)],description:p(486,null)},"editor.find.findOnType":{type:"boolean",default:t.findOnType,description:p(482,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{cursorMoveOnType:se(e.cursorMoveOnType,this.defaultValue.cursorMoveOnType),findOnType:se(e.findOnType,this.defaultValue.findOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection=="boolean"?e.seedSearchStringFromSelection?"always":"never":kt(e.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof e.autoFindInSelection=="boolean"?e.autoFindInSelection?"always":"never":kt(e.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:se(e.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:se(e.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:se(e.loop,this.defaultValue.loop),closeOnResult:se(e.closeOnResult,this.defaultValue.closeOnResult),history:kt(e.history,this.defaultValue.history,["never","workspace"]),replaceHistory:kt(e.replaceHistory,this.defaultValue.replaceHistory,["never","workspace"])}}},C_=class r extends Pt{static{this.OFF='"liga" off, "calt" off'}static{this.ON='"liga" on, "calt" on'}constructor(){super(60,"fontLigatures",r.OFF,{anyOf:[{type:"boolean",description:p(497,null)},{type:"string",description:p(496,null)}],description:p(498,null),default:!1})}validate(t){return typeof t>"u"?this.defaultValue:typeof t=="string"?t==="false"||t.length===0?r.OFF:t==="true"?r.ON:t:t?r.ON:r.OFF}},T_=class r extends Pt{static{this.OFF=d_}static{this.TRANSLATE=c_}constructor(){super(63,"fontVariations",r.OFF,{anyOf:[{type:"boolean",description:p(500,null)},{type:"string",description:p(501,null)}],description:p(502,null),default:!1})}validate(t){return typeof t>"u"?this.defaultValue:typeof t=="string"?t==="false"?r.OFF:t==="true"?r.TRANSLATE:t:t?r.TRANSLATE:r.OFF}compute(t,e,n){return t.fontInfo.fontVariationSettings}},E_=class extends Xi{constructor(){super(59,new cI({pixelRatio:0,fontFamily:"",fontWeight:"",fontSize:0,fontFeatureSettings:"",fontVariationSettings:"",lineHeight:0,letterSpacing:0,isMonospace:!1,typicalHalfwidthCharacterWidth:0,typicalFullwidthCharacterWidth:0,canUseHalfwidthRightwardsArrow:!1,spaceWidth:0,middotWidth:0,wsmiddotWidth:0,maxDigitWidth:0},!1))}compute(t,e,n){return t.fontInfo}},w_=class extends Xi{constructor(){super(161,1)}compute(t,e,n){return t.inputMode==="overtype"?e.get(92):e.get(34)}},k_=class extends Xi{constructor(){super(170,!1)}compute(t,e){return t.editContextSupported&&e.get(44)}},P_=class extends Xi{constructor(){super(172,!1)}compute(t,e){return t.accessibilitySupport===2?e.get(7):e.get(6)}},__=class extends dl{constructor(){super(61,"fontSize",ui.fontSize,{type:"number",minimum:6,maximum:100,default:ui.fontSize,description:p(499,null)})}validate(t){let e=sr.float(t,this.defaultValue);return e===0?ui.fontSize:sr.clamp(e,6,100)}compute(t,e,n){return t.fontInfo.fontSize}},D_=class r extends Pt{static{this.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"]}static{this.MINIMUM_VALUE=1}static{this.MAXIMUM_VALUE=1e3}constructor(){super(62,"fontWeight",ui.fontWeight,{anyOf:[{type:"number",minimum:r.MINIMUM_VALUE,maximum:r.MAXIMUM_VALUE,errorMessage:p(504,null)},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:r.SUGGESTION_VALUES}],default:ui.fontWeight,description:p(503,null)})}validate(t){return t==="normal"||t==="bold"?t:String(lt.clampedInt(t,ui.fontWeight,r.MINIMUM_VALUE,r.MAXIMUM_VALUE))}},R_=class extends Pt{constructor(){let t={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",multipleTests:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:"",alternativeTestsCommand:""},e={type:"string",enum:["peek","gotoAndPeek","goto"],default:t.multiple,enumDescriptions:[p(409,null),p(408,null),p(407,null)]},n=["","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(67,"gotoLocation",t,{"editor.gotoLocation.multiple":{deprecationMessage:p(406,null)},"editor.gotoLocation.multipleDefinitions":{description:p(392,null),...e},"editor.gotoLocation.multipleTypeDefinitions":{description:p(395,null),...e},"editor.gotoLocation.multipleDeclarations":{description:p(391,null),...e},"editor.gotoLocation.multipleImplementations":{description:p(393,null),...e},"editor.gotoLocation.multipleReferences":{description:p(394,null),...e},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:t.alternativeDefinitionCommand,enum:n,description:p(322,null)},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:t.alternativeTypeDefinitionCommand,enum:n,description:p(325,null)},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:t.alternativeDeclarationCommand,enum:n,description:p(321,null)},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:t.alternativeImplementationCommand,enum:n,description:p(323,null)},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:t.alternativeReferenceCommand,enum:n,description:p(324,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{multiple:kt(e.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:kt(e.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:kt(e.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:kt(e.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:kt(e.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:kt(e.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:kt(e.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:to.string(e.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:to.string(e.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:to.string(e.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:to.string(e.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:to.string(e.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:to.string(e.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}},A_=class extends Pt{constructor(){let t={enabled:"on",delay:300,hidingDelay:300,sticky:!0,above:!0,showLongLineWarning:!0};super(69,"hover",t,{"editor.hover.enabled":{type:"string",enum:["on","off","onKeyboardModifier"],default:t.enabled,markdownEnumDescriptions:[p(513,null),p(512,null),p(514,null,ut?"Command":"Control")],description:p(511,null)},"editor.hover.delay":{type:"number",default:t.delay,minimum:0,maximum:1e4,description:p(510,null)},"editor.hover.sticky":{type:"boolean",default:t.sticky,description:p(517,null)},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:t.hidingDelay,markdownDescription:p(515,null)},"editor.hover.above":{type:"boolean",default:t.above,description:p(509,null)},"editor.hover.showLongLineWarning":{type:"boolean",default:t.showLongLineWarning,description:p(516,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:kt(e.enabled,this.defaultValue.enabled,["on","off","onKeyboardModifier"]),delay:lt.clampedInt(e.delay,this.defaultValue.delay,0,1e4),sticky:se(e.sticky,this.defaultValue.sticky),hidingDelay:lt.clampedInt(e.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:se(e.above,this.defaultValue.above),showLongLineWarning:se(e.showLongLineWarning,this.defaultValue.showLongLineWarning)}}};var M_=class r extends Xi{constructor(){super(165,{width:0,height:0,glyphMarginLeft:0,glyphMarginWidth:0,glyphMarginDecorationLaneCount:0,lineNumbersLeft:0,lineNumbersWidth:0,decorationsLeft:0,decorationsWidth:0,contentLeft:0,contentWidth:0,minimap:{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:0,minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:0},viewportColumn:0,isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1,verticalScrollbarWidth:0,horizontalScrollbarHeight:0,overviewRuler:{top:0,width:0,height:0,right:0}})}compute(t,e,n){return r.computeLayout(e,{memory:t.memory,outerWidth:t.outerWidth,outerHeight:t.outerHeight,isDominatedByLongLines:t.isDominatedByLongLines,lineHeight:t.fontInfo.lineHeight,viewLineCount:t.viewLineCount,lineNumbersDigitCount:t.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:t.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:t.fontInfo.maxDigitWidth,pixelRatio:t.pixelRatio,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(t){let e=t.height/t.lineHeight,n=Math.floor(t.paddingTop/t.lineHeight),o=Math.floor(t.paddingBottom/t.lineHeight);t.scrollBeyondLastLine&&(o=Math.max(o,e-1));let i=(n+t.viewLineCount+o)/(t.pixelRatio*t.height),s=Math.floor(t.viewLineCount/i);return{typicalViewportLineCount:e,extraLinesBeforeFirstLine:n,extraLinesBeyondLastLine:o,desiredRatio:i,minimapLineCount:s}}static _computeMinimapLayout(t,e){let n=t.outerWidth,o=t.outerHeight,i=t.pixelRatio;if(!t.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(i*o),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:o};let s=e.stableMinimapLayoutInput,a=s&&t.outerHeight===s.outerHeight&&t.lineHeight===s.lineHeight&&t.typicalHalfwidthCharacterWidth===s.typicalHalfwidthCharacterWidth&&t.pixelRatio===s.pixelRatio&&t.scrollBeyondLastLine===s.scrollBeyondLastLine&&t.paddingTop===s.paddingTop&&t.paddingBottom===s.paddingBottom&&t.minimap.enabled===s.minimap.enabled&&t.minimap.side===s.minimap.side&&t.minimap.size===s.minimap.size&&t.minimap.showSlider===s.minimap.showSlider&&t.minimap.renderCharacters===s.minimap.renderCharacters&&t.minimap.maxColumn===s.minimap.maxColumn&&t.minimap.scale===s.minimap.scale&&t.verticalScrollbarWidth===s.verticalScrollbarWidth&&t.isViewportWrapping===s.isViewportWrapping,l=t.lineHeight,d=t.typicalHalfwidthCharacterWidth,c=t.scrollBeyondLastLine,u=t.minimap.renderCharacters,m=i>=2?Math.round(t.minimap.scale*2):t.minimap.scale,g=t.minimap.maxColumn,h=t.minimap.size,f=t.minimap.side,I=t.verticalScrollbarWidth,S=t.viewLineCount,E=t.remainingWidth,P=t.isViewportWrapping,L=u?2:3,j=Math.floor(i*o),F=j/i,z=!1,J=!1,Y=L*m,X=m/i,q=1;if(h==="fill"||h==="fit"){let{typicalViewportLineCount:re,extraLinesBeforeFirstLine:ce,extraLinesBeyondLastLine:ve,desiredRatio:Me,minimapLineCount:It}=r.computeContainedMinimapLineCount({viewLineCount:S,scrollBeyondLastLine:c,paddingTop:t.paddingTop,paddingBottom:t.paddingBottom,height:o,lineHeight:l,pixelRatio:i});if(S/It>1)z=!0,J=!0,m=1,Y=1,X=m/i;else{let Ct=!1,Ot=m+1;if(h==="fit"){let je=Math.ceil((ce+S+ve)*Y);P&&a&&E<=e.stableFitRemainingWidth?(Ct=!0,Ot=e.stableFitMaxMinimapScale):Ct=je>j}if(h==="fill"||Ct){z=!0;let je=m;Y=Math.min(l*i,Math.max(1,Math.floor(1/Me))),P&&a&&E<=e.stableFitRemainingWidth&&(Ot=e.stableFitMaxMinimapScale),m=Math.min(Ot,Math.max(1,Math.floor(Y/L))),m>je&&(q=Math.min(2,m/je)),X=m/i/q,j=Math.ceil(Math.max(re,ce+S+ve)*Y),P?(e.stableMinimapLayoutInput=t,e.stableFitRemainingWidth=E,e.stableFitMaxMinimapScale=m):(e.stableMinimapLayoutInput=null,e.stableFitRemainingWidth=0)}}}let He=Math.floor(g*X),ct=Math.min(He,Math.max(0,Math.floor((E-I-2)*X/(d+X)))+d8),et=Math.floor(i*ct),ne=et/i;et=Math.floor(et*q);let ee=u?1:2,ae=f==="left"?0:n-ct-I;return{renderMinimap:ee,minimapLeft:ae,minimapWidth:ct,minimapHeightIsEditorHeight:z,minimapIsSampling:J,minimapScale:m,minimapLineHeight:Y,minimapCanvasInnerWidth:et,minimapCanvasInnerHeight:j,minimapCanvasOuterWidth:ne,minimapCanvasOuterHeight:F}}static computeLayout(t,e){let n=e.outerWidth|0,o=e.outerHeight|0,i=e.lineHeight|0,s=e.lineNumbersDigitCount|0,a=e.typicalHalfwidthCharacterWidth,l=e.maxDigitWidth,d=e.pixelRatio,c=e.viewLineCount,u=t.get(154),m=u==="inherit"?t.get(153):u,g=m==="inherit"?t.get(149):m,h=t.get(152),f=e.isDominatedByLongLines,I=t.get(66),S=t.get(76).renderType!==0,E=t.get(77),P=t.get(119),L=t.get(96),j=t.get(81),F=t.get(117),z=F.verticalScrollbarSize,J=F.verticalHasArrows,Y=F.arrowSize,X=F.horizontalScrollbarSize,q=t.get(52),He=t.get(126)!=="never",ct=t.get(74);q&&He&&(ct+=16);let et=0;if(S){let So=Math.max(s,E);et=Math.round(So*l)}let ne=0;I&&(ne=i*e.glyphMarginDecorationLaneCount);let ee=0,ae=ee+ne,re=ae+et,ce=re+ct,ve=n-ne-et-ct,Me=!1,It=!1,Ne=-1;t.get(2)===2&&m==="inherit"&&f?(Me=!0,It=!0):g==="on"||g==="bounded"?It=!0:g==="wordWrapColumn"&&(Ne=h);let Ct=r._computeMinimapLayout({outerWidth:n,outerHeight:o,lineHeight:i,typicalHalfwidthCharacterWidth:a,pixelRatio:d,scrollBeyondLastLine:P,paddingTop:L.top,paddingBottom:L.bottom,minimap:j,verticalScrollbarWidth:z,viewLineCount:c,remainingWidth:ve,isViewportWrapping:It},e.memory||new v_);Ct.renderMinimap!==0&&Ct.minimapLeft===0&&(ee+=Ct.minimapWidth,ae+=Ct.minimapWidth,re+=Ct.minimapWidth,ce+=Ct.minimapWidth);let Ot=ve-Ct.minimapWidth,je=Math.max(1,Math.floor((Ot-z-2)/a)),Tn=J?Y:0;return It&&(Ne=Math.max(1,je),g==="bounded"&&(Ne=Math.min(Ne,h))),{width:n,height:o,glyphMarginLeft:ee,glyphMarginWidth:ne,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount,lineNumbersLeft:ae,lineNumbersWidth:et,decorationsLeft:re,decorationsWidth:ct,contentLeft:ce,contentWidth:Ot,minimap:Ct,viewportColumn:je,isWordWrapMinified:Me,isViewportWrapping:It,wrappingColumn:Ne,verticalScrollbarWidth:z,horizontalScrollbarHeight:X,overviewRuler:{top:Tn,width:z,height:o-2*Tn,right:0}}}},L_=class extends Pt{constructor(){super(156,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[p(730,null),p(729,null)],type:"string",enum:["simple","advanced"],default:"simple",description:p(728,null)}})}validate(t){return kt(t,"simple",["simple","advanced"])}compute(t,e,n){return e.get(2)===2?"advanced":n}};var O_=class extends Pt{constructor(){let t={enabled:"onCode"};super(73,"lightbulb",t,{"editor.lightbulb.enabled":{type:"string",enum:["off","onCode","on"],default:t.enabled,enumDescriptions:[p(430,null),p(432,null),p(431,null)],description:p(469,null)}})}validate(t){return!t||typeof t!="object"?this.defaultValue:{enabled:kt(t.enabled,this.defaultValue.enabled,["off","onCode","on"])}}},N_=class extends Pt{constructor(){let t={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(131,"stickyScroll",t,{"editor.stickyScroll.enabled":{type:"boolean",default:t.enabled,description:p(434,null)},"editor.stickyScroll.maxLineCount":{type:"number",default:t.maxLineCount,minimum:1,maximum:20,description:p(435,null)},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:t.defaultModel,description:p(433,null)},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:t.scrollWithEditor,description:p(436,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:se(e.enabled,this.defaultValue.enabled),maxLineCount:lt.clampedInt(e.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:kt(e.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:se(e.scrollWithEditor,this.defaultValue.scrollWithEditor)}}},U_=class extends Pt{constructor(){let t={enabled:"on",fontSize:0,fontFamily:"",padding:!1,maximumLength:43};super(159,"inlayHints",t,{"editor.inlayHints.enabled":{type:"string",default:t.enabled,description:p(519,null),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[p(426,null),p(427,null,ut?"Ctrl+Option":"Ctrl+Alt"),p(425,null,ut?"Ctrl+Option":"Ctrl+Alt"),p(424,null)]},"editor.inlayHints.fontSize":{type:"number",default:t.fontSize,markdownDescription:p(521,null,"`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:t.fontFamily,markdownDescription:p(520,null,"`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:t.padding,description:p(523,null)},"editor.inlayHints.maximumLength":{type:"number",default:t.maximumLength,markdownDescription:p(522,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return typeof e.enabled=="boolean"&&(e.enabled=e.enabled?"on":"off"),{enabled:kt(e.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:lt.clampedInt(e.fontSize,this.defaultValue.fontSize,0,100),fontFamily:to.string(e.fontFamily,this.defaultValue.fontFamily),padding:se(e.padding,this.defaultValue.padding),maximumLength:lt.clampedInt(e.maximumLength,this.defaultValue.maximumLength,0,Number.MAX_SAFE_INTEGER)}}},F_=class extends Pt{constructor(){super(74,"lineDecorationsWidth",10)}validate(t){return typeof t=="string"&&/^\d+(\.\d+)?ch$/.test(t)?-parseFloat(t.substring(0,t.length-2)):lt.clampedInt(t,this.defaultValue,0,1e3)}compute(t,e,n){return n<0?lt.clampedInt(-n*t.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):n}},H_=class extends sr{constructor(){super(75,"lineHeight",ui.lineHeight,t=>sr.clamp(t,0,150),{markdownDescription:p(545,null)},0,150)}compute(t,e,n){return t.fontInfo.lineHeight}},W_=class extends Pt{constructor(){let t={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:"none",renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,markSectionHeaderRegex:"\\bMARK:\\s*(?<separator>-?)\\s*(?<label>.*)$",sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(81,"minimap",t,{"editor.minimap.enabled":{type:"boolean",default:t.enabled,description:p(558,null)},"editor.minimap.autohide":{type:"string",enum:["none","mouseover","scroll"],enumDescriptions:[p(556,null),p(555,null),p(557,null)],default:t.autohide,description:p(554,null)},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[p(572,null),p(570,null),p(571,null)],default:t.size,description:p(569,null)},"editor.minimap.side":{type:"string",enum:["left","right"],default:t.side,description:p(568,null)},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:t.showSlider,description:p(567,null)},"editor.minimap.scale":{type:"number",default:t.scale,minimum:1,maximum:3,enum:[1,2,3],description:p(562,null)},"editor.minimap.renderCharacters":{type:"boolean",default:t.renderCharacters,description:p(561,null)},"editor.minimap.maxColumn":{type:"number",default:t.maxColumn,description:p(560,null)},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:t.showRegionSectionHeaders,description:p(566,null)},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:t.showMarkSectionHeaders,description:p(565,null)},"editor.minimap.markSectionHeaderRegex":{type:"string",default:t.markSectionHeaderRegex,description:p(559,null)},"editor.minimap.sectionHeaderFontSize":{type:"number",default:t.sectionHeaderFontSize,description:p(563,null)},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:t.sectionHeaderLetterSpacing,description:p(564,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t,n=this.defaultValue.markSectionHeaderRegex,o=e.markSectionHeaderRegex;if(typeof o=="string")try{new RegExp(o,"d"),n=o}catch{}return{enabled:se(e.enabled,this.defaultValue.enabled),autohide:kt(e.autohide,this.defaultValue.autohide,["none","mouseover","scroll"]),size:kt(e.size,this.defaultValue.size,["proportional","fill","fit"]),side:kt(e.side,this.defaultValue.side,["right","left"]),showSlider:kt(e.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:se(e.renderCharacters,this.defaultValue.renderCharacters),scale:lt.clampedInt(e.scale,1,1,3),maxColumn:lt.clampedInt(e.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:se(e.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:se(e.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),markSectionHeaderRegex:n,sectionHeaderFontSize:sr.clamp(sr.float(e.sectionHeaderFontSize,this.defaultValue.sectionHeaderFontSize),4,32),sectionHeaderLetterSpacing:sr.clamp(sr.float(e.sectionHeaderLetterSpacing,this.defaultValue.sectionHeaderLetterSpacing),0,5)}}};function m8(r){return r==="ctrlCmd"?ut?"metaKey":"ctrlKey":"altKey"}var V_=class extends Pt{constructor(){super(96,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:p(597,null)},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:p(596,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{top:lt.clampedInt(e.top,0,0,1e3),bottom:lt.clampedInt(e.bottom,0,0,1e3)}}},B_=class extends Pt{constructor(){let t={enabled:!0,cycle:!0};super(98,"parameterHints",t,{"editor.parameterHints.enabled":{type:"boolean",default:t.enabled,description:p(599,null)},"editor.parameterHints.cycle":{type:"boolean",default:t.cycle,description:p(598,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:se(e.enabled,this.defaultValue.enabled),cycle:se(e.cycle,this.defaultValue.cycle)}}},$_=class extends Xi{constructor(){super(163,1)}compute(t,e,n){return t.pixelRatio}},z_=class extends Pt{constructor(){super(100,"placeholder",void 0)}validate(t){return typeof t>"u"?this.defaultValue:typeof t=="string"?t:this.defaultValue}},q_=class extends Pt{constructor(){let t={other:"on",comments:"off",strings:"off"},e=[{type:"boolean"},{type:"string",enum:["on","inline","off","offWhenInlineCompletions"],enumDescriptions:[p(592,null),p(524,null),p(590,null),p(591,null)]}];super(102,"quickSuggestions",t,{anyOf:[{type:"boolean"},{type:"string",enum:["on","inline","off","offWhenInlineCompletions"],enumDescriptions:[p(614,null),p(611,null),p(612,null),p(613,null)]},{type:"object",additionalProperties:!1,properties:{strings:{anyOf:e,default:t.strings,description:p(610,null)},comments:{anyOf:e,default:t.comments,description:p(608,null)},other:{anyOf:e,default:t.other,description:p(609,null)}}}],default:t,markdownDescription:p(607,null,"`#editor.suggestOnTriggerCharacters#`"),experiment:{mode:"auto"}}),this.defaultValue=t}validate(t){if(typeof t=="boolean"){let d=t?"on":"off";return{comments:d,strings:d,other:d}}if(typeof t=="string"){let d=["on","inline","off","offWhenInlineCompletions"],c=kt(t,this.defaultValue.other,d);return{comments:c,strings:c,other:c}}if(!t||typeof t!="object")return this.defaultValue;let{other:e,comments:n,strings:o}=t,i=["on","inline","off","offWhenInlineCompletions"],s,a,l;return typeof e=="boolean"?s=e?"on":"off":s=kt(e,this.defaultValue.other,i),typeof n=="boolean"?a=n?"on":"off":a=kt(n,this.defaultValue.comments,i),typeof o=="boolean"?l=o?"on":"off":l=kt(o,this.defaultValue.strings,i),{other:s,comments:a,strings:l}}};var K_=class extends Pt{constructor(){super(76,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[p(548,null),p(549,null),p(550,null),p(547,null)],default:"on",description:p(546,null)})}validate(t){let e=this.defaultValue.renderType,n=this.defaultValue.renderFn;return typeof t<"u"&&(typeof t=="function"?(e=4,n=t):t==="interval"?e=3:t==="relative"?e=2:t==="on"?e=1:e=0),{renderType:e,renderFn:n}}};var j_=class extends Pt{constructor(){let t=[],e={type:"number",description:p(631,null)};super(116,"rulers",t,{type:"array",items:{anyOf:[e,{type:["object"],properties:{column:e,color:{type:"string",description:p(630,null),format:"color-hex"}}}]},default:t,description:p(629,null)})}validate(t){if(Array.isArray(t)){let e=[];for(let n of t)if(typeof n=="number")e.push({column:lt.clampedInt(n,0,0,1e4),color:null});else if(n&&typeof n=="object"){let o=n;e.push({column:lt.clampedInt(o.column,0,0,1e4),color:o.color})}return e.sort((n,o)=>n.column-o.column),e}return this.defaultValue}},G_=class extends Pt{constructor(){super(105,"readOnlyMessage",void 0)}validate(t){return!t||typeof t!="object"?this.defaultValue:t}};function XU(r,t){if(typeof r!="string")return t;switch(r){case"hidden":return 2;case"visible":return 3;default:return 1}}var Q_=class extends Pt{constructor(){let t={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(117,"scrollbar",t,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p(641,null),p(643,null),p(642,null)],default:"auto",description:p(640,null)},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p(634,null),p(636,null),p(635,null)],default:"auto",description:p(633,null)},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:t.verticalScrollbarSize,description:p(644,null)},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:t.horizontalScrollbarSize,description:p(637,null)},"editor.scrollbar.scrollByPage":{type:"boolean",default:t.scrollByPage,description:p(639,null)},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:t.ignoreHorizontalScrollbarInContentHeight,description:p(638,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t,n=lt.clampedInt(e.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),o=lt.clampedInt(e.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:lt.clampedInt(e.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:XU(e.vertical,this.defaultValue.vertical),horizontal:XU(e.horizontal,this.defaultValue.horizontal),useShadows:se(e.useShadows,this.defaultValue.useShadows),verticalHasArrows:se(e.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:se(e.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:se(e.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:se(e.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:n,horizontalSliderSize:lt.clampedInt(e.horizontalSliderSize,n,0,1e3),verticalScrollbarSize:o,verticalSliderSize:lt.clampedInt(e.verticalSliderSize,o,0,1e3),scrollByPage:se(e.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:se(e.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}},mi="inUntrustedWorkspace",Xd={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"},J_=class extends Pt{constructor(){let t={nonBasicASCII:mi,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:mi,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(142,"unicodeHighlight",t,{[Xd.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,mi],default:t.nonBasicASCII,description:p(705,null)},[Xd.invisibleCharacters]:{restricted:!0,type:"boolean",default:t.invisibleCharacters,description:p(704,null)},[Xd.ambiguousCharacters]:{restricted:!0,type:"boolean",default:t.ambiguousCharacters,description:p(701,null)},[Xd.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,mi],default:t.includeComments,description:p(702,null)},[Xd.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,mi],default:t.includeStrings,description:p(703,null)},[Xd.allowedCharacters]:{restricted:!0,type:"object",default:t.allowedCharacters,description:p(699,null),additionalProperties:{type:"boolean"}},[Xd.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:t.allowedLocales,description:p(700,null)}})}applyUpdate(t,e){let n=!1;e.allowedCharacters&&t&&(tn(t.allowedCharacters,e.allowedCharacters)||(t={...t,allowedCharacters:e.allowedCharacters},n=!0)),e.allowedLocales&&t&&(tn(t.allowedLocales,e.allowedLocales)||(t={...t,allowedLocales:e.allowedLocales},n=!0));let o=super.applyUpdate(t,e);return n?new ap(o.newValue,!0):o}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{nonBasicASCII:lp(e.nonBasicASCII,mi,[!0,!1,mi]),invisibleCharacters:se(e.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:se(e.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:lp(e.includeComments,mi,[!0,!1,mi]),includeStrings:lp(e.includeStrings,mi,[!0,!1,mi]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(t,e){if(typeof t!="object"||!t)return e;let n={};for(let[o,i]of Object.entries(t))i===!0&&(n[o]=!0);return n}},Y_=class extends Pt{constructor(){let t={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default",syntaxHighlightingEnabled:!0,minShowDelay:0,suppressInSnippetMode:!0,edits:{enabled:!0,showCollapsed:!1,renderSideBySide:"auto",allowCodeShifting:"always",showLongDistanceHint:!0},triggerCommandOnProviderChange:!1,experimental:{suppressInlineSuggestions:"",showOnSuggestConflict:"never",emptyResponseInformation:!0}};super(71,"inlineSuggest",t,{"editor.inlineSuggest.enabled":{type:"boolean",default:t.enabled,description:p(531,null)},"editor.inlineSuggest.showToolbar":{type:"string",default:t.showToolbar,enum:["always","onHover","never"],enumDescriptions:[p(536,null),p(538,null),p(537,null)],description:p(535,null)},"editor.inlineSuggest.syntaxHighlightingEnabled":{type:"boolean",default:t.syntaxHighlightingEnabled,description:p(542,null)},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:t.suppressSuggestions,description:p(541,null)},"editor.inlineSuggest.suppressInSnippetMode":{type:"boolean",default:t.suppressInSnippetMode,description:p(540,null)},"editor.inlineSuggest.minShowDelay":{type:"number",default:0,minimum:0,maximum:1e4,description:p(533,null)},"editor.inlineSuggest.experimental.suppressInlineSuggestions":{type:"string",default:t.experimental.suppressInlineSuggestions,tags:["experimental"],description:p(539,null),experiment:{mode:"auto"}},"editor.inlineSuggest.experimental.emptyResponseInformation":{type:"boolean",default:t.experimental.emptyResponseInformation,tags:["experimental"],description:p(530,null),experiment:{mode:"auto"}},"editor.inlineSuggest.triggerCommandOnProviderChange":{type:"boolean",default:t.triggerCommandOnProviderChange,tags:["experimental"],description:p(543,null),experiment:{mode:"auto"}},"editor.inlineSuggest.experimental.showOnSuggestConflict":{type:"string",default:t.experimental.showOnSuggestConflict,tags:["experimental"],enum:["always","never","whenSuggestListIsIncomplete"],description:p(534,null),experiment:{mode:"auto"}},"editor.inlineSuggest.fontFamily":{type:"string",default:t.fontFamily,description:p(532,null)},"editor.inlineSuggest.edits.allowCodeShifting":{type:"string",default:t.edits.allowCodeShifting,description:p(526,null),enum:["always","horizontal","never"],tags:["nextEditSuggestions"]},"editor.inlineSuggest.edits.showLongDistanceHint":{type:"boolean",default:t.edits.showLongDistanceHint,description:p(529,null),tags:["nextEditSuggestions","experimental"]},"editor.inlineSuggest.edits.renderSideBySide":{type:"string",default:t.edits.renderSideBySide,description:p(527,null),enum:["auto","never"],enumDescriptions:[p(428,null),p(429,null)],tags:["nextEditSuggestions"]},"editor.inlineSuggest.edits.showCollapsed":{type:"boolean",default:t.edits.showCollapsed,description:p(528,null),tags:["nextEditSuggestions"]}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:se(e.enabled,this.defaultValue.enabled),mode:kt(e.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:kt(e.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:se(e.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:se(e.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:to.string(e.fontFamily,this.defaultValue.fontFamily),syntaxHighlightingEnabled:se(e.syntaxHighlightingEnabled,this.defaultValue.syntaxHighlightingEnabled),minShowDelay:lt.clampedInt(e.minShowDelay,0,0,1e4),suppressInSnippetMode:se(e.suppressInSnippetMode,this.defaultValue.suppressInSnippetMode),edits:this._validateEdits(e.edits),triggerCommandOnProviderChange:se(e.triggerCommandOnProviderChange,this.defaultValue.triggerCommandOnProviderChange),experimental:this._validateExperimental(e.experimental)}}_validateEdits(t){if(!t||typeof t!="object")return this.defaultValue.edits;let e=t;return{enabled:se(e.enabled,this.defaultValue.edits.enabled),showCollapsed:se(e.showCollapsed,this.defaultValue.edits.showCollapsed),allowCodeShifting:kt(e.allowCodeShifting,this.defaultValue.edits.allowCodeShifting,["always","horizontal","never"]),showLongDistanceHint:se(e.showLongDistanceHint,this.defaultValue.edits.showLongDistanceHint),renderSideBySide:kt(e.renderSideBySide,this.defaultValue.edits.renderSideBySide,["never","auto"])}}_validateExperimental(t){if(!t||typeof t!="object")return this.defaultValue.experimental;let e=t;return{suppressInlineSuggestions:to.string(e.suppressInlineSuggestions,this.defaultValue.experimental.suppressInlineSuggestions),showOnSuggestConflict:kt(e.showOnSuggestConflict,this.defaultValue.experimental.showOnSuggestConflict,["always","never","whenSuggestListIsIncomplete"]),emptyResponseInformation:se(e.emptyResponseInformation,this.defaultValue.experimental.emptyResponseInformation)}}},X_=class extends Pt{constructor(){let t={enabled:u_.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:u_.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(21,"bracketPairColorization",t,{"editor.bracketPairColorization.enabled":{type:"boolean",default:t.enabled,markdownDescription:p(335,null,"`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:t.independentColorPoolPerBracketType,description:p(336,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:se(e.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:se(e.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}},Z_=class extends Pt{constructor(){let t={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(22,"guides",t,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[p(413,null),p(411,null),p(412,null)],default:t.bracketPairs,description:p(410,null)},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[p(417,null),p(415,null),p(416,null)],default:t.bracketPairsHorizontal,description:p(414,null)},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:t.highlightActiveBracketPair,description:p(418,null)},"editor.guides.indentation":{type:"boolean",default:t.indentation,description:p(423,null)},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[p(422,null),p(420,null),p(421,null)],default:t.highlightActiveIndentation,description:p(419,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{bracketPairs:lp(e.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:lp(e.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:se(e.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:se(e.indentation,this.defaultValue.indentation),highlightActiveIndentation:lp(e.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}};function lp(r,t,e){let n=e.indexOf(r);return n===-1?t:e[n]}var eD=class extends Pt{constructor(){let t={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(134,"suggest",t,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[p(671,null),p(673,null)],default:t.insertMode,description:p(669,null)},"editor.suggest.filterGraceful":{type:"boolean",default:t.filterGraceful,description:p(668,null)},"editor.suggest.localityBonus":{type:"boolean",default:t.localityBonus,description:p(676,null)},"editor.suggest.shareSuggestSelections":{type:"boolean",default:t.shareSuggestSelections,markdownDescription:p(680,null)},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[p(670,null),p(672,null),p(675,null),p(674,null)],default:t.selectionMode,markdownDescription:p(679,null,"`#editor.quickSuggestions#`","`#editor.suggestOnTriggerCharacters#`")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:t.snippetsPreventQuickSuggestions,description:p(684,null)},"editor.suggest.showIcons":{type:"boolean",default:t.showIcons,description:p(681,null)},"editor.suggest.showStatusBar":{type:"boolean",default:t.showStatusBar,description:p(683,null)},"editor.suggest.preview":{type:"boolean",default:t.preview,description:p(678,null)},"editor.suggest.showInlineDetails":{type:"boolean",default:t.showInlineDetails,description:p(682,null)},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:p(677,null)},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:p(361,null)},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:p(454,null)},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:p(450,null)},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:p(441,null)},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:p(443,null)},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:p(437,null)},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:p(447,null)},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:p(466,null)},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:p(438,null)},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:p(460,null)},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:p(451,null)},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:p(455,null)},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:p(457,null)},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:p(446,null)},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:p(456,null)},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:p(463,null)},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:p(465,null)},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:p(440,null)},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:p(445,null)},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:p(444,null)},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:p(453,null)},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:p(461,null)},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:p(439,null)},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:p(448,null)},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:p(458,null)},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:p(442,null)},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:p(449,null)},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:p(462,null)},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:p(459,null)},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:p(464,null)},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:p(452,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{insertMode:kt(e.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:se(e.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:se(e.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:se(e.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:se(e.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:kt(e.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:se(e.showIcons,this.defaultValue.showIcons),showStatusBar:se(e.showStatusBar,this.defaultValue.showStatusBar),preview:se(e.preview,this.defaultValue.preview),previewMode:kt(e.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:se(e.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:se(e.showMethods,this.defaultValue.showMethods),showFunctions:se(e.showFunctions,this.defaultValue.showFunctions),showConstructors:se(e.showConstructors,this.defaultValue.showConstructors),showDeprecated:se(e.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:se(e.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:se(e.showFields,this.defaultValue.showFields),showVariables:se(e.showVariables,this.defaultValue.showVariables),showClasses:se(e.showClasses,this.defaultValue.showClasses),showStructs:se(e.showStructs,this.defaultValue.showStructs),showInterfaces:se(e.showInterfaces,this.defaultValue.showInterfaces),showModules:se(e.showModules,this.defaultValue.showModules),showProperties:se(e.showProperties,this.defaultValue.showProperties),showEvents:se(e.showEvents,this.defaultValue.showEvents),showOperators:se(e.showOperators,this.defaultValue.showOperators),showUnits:se(e.showUnits,this.defaultValue.showUnits),showValues:se(e.showValues,this.defaultValue.showValues),showConstants:se(e.showConstants,this.defaultValue.showConstants),showEnums:se(e.showEnums,this.defaultValue.showEnums),showEnumMembers:se(e.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:se(e.showKeywords,this.defaultValue.showKeywords),showWords:se(e.showWords,this.defaultValue.showWords),showColors:se(e.showColors,this.defaultValue.showColors),showFiles:se(e.showFiles,this.defaultValue.showFiles),showReferences:se(e.showReferences,this.defaultValue.showReferences),showFolders:se(e.showFolders,this.defaultValue.showFolders),showTypeParameters:se(e.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:se(e.showSnippets,this.defaultValue.showSnippets),showUsers:se(e.showUsers,this.defaultValue.showUsers),showIssues:se(e.showIssues,this.defaultValue.showIssues)}}},tD=class extends Pt{constructor(){super(129,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:p(653,null),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:p(654,null),default:!0,type:"boolean"}})}validate(t){return!t||typeof t!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:se(t.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:se(t.selectSubwords,this.defaultValue.selectSubwords)}}},nD=class extends Pt{constructor(){let t=[];super(147,"wordSegmenterLocales",t,{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}],description:p(714,null),type:"array",items:{type:"string"},default:t})}validate(t){if(typeof t=="string"&&(t=[t]),Array.isArray(t)){let e=[];for(let n of t)if(typeof n=="string")try{Intl.Segmenter.supportedLocalesOf(n).length>0&&e.push(n)}catch{}return e}return this.defaultValue}};var oD=class extends Pt{constructor(){super(155,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[p(726,null),p(727,null),p(725,null),p(724,null)],description:p(723,null),default:"same"}})}validate(t){switch(t){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(t,e,n){return e.get(2)===2?0:n}},rD=class extends Xi{constructor(){super(166,{isDominatedByLongLines:!1,isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1})}compute(t,e,n){let o=e.get(165);return{isDominatedByLongLines:t.isDominatedByLongLines,isWordWrapMinified:o.isWordWrapMinified,isViewportWrapping:o.isViewportWrapping,wrappingColumn:o.wrappingColumn}}},iD=class extends Pt{constructor(){let t={enabled:!0,showDropSelector:"afterDrop"};super(43,"dropIntoEditor",t,{"editor.dropIntoEditor.enabled":{type:"boolean",default:t.enabled,markdownDescription:p(364,null)},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:p(365,null),enum:["afterDrop","never"],enumDescriptions:[p(366,null),p(367,null)],default:"afterDrop"}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:se(e.enabled,this.defaultValue.enabled),showDropSelector:kt(e.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}},sD=class extends Pt{constructor(){let t={enabled:!0,showPasteSelector:"afterPaste"};super(97,"pasteAs",t,{"editor.pasteAs.enabled":{type:"boolean",default:t.enabled,markdownDescription:p(600,null)},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:p(601,null),enum:["afterPaste","never"],enumDescriptions:[p(602,null),p(603,null)],default:"afterPaste"}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:se(e.enabled,this.defaultValue.enabled),showPasteSelector:kt(e.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}},g8=[];function N(r){return g8[r.id]=r,r}var bee={acceptSuggestionOnCommitCharacter:N(new Te(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:p(310,null)})),acceptSuggestionOnEnter:N(new wt(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",p(312,null),""],markdownDescription:p(311,null)})),accessibilitySupport:N(new b_),accessibilityPageSize:N(new lt(3,"accessibilityPageSize",500,1,1073741824,{description:p(313,null),tags:["accessibility"]})),allowOverflow:N(new Te(4,"allowOverflow",!0)),allowVariableLineHeights:N(new Te(5,"allowVariableLineHeights",!0,{description:p(320,null)})),allowVariableFonts:N(new Te(6,"allowVariableFonts",!0,{description:p(318,null)})),allowVariableFontsInAccessibilityMode:N(new Te(7,"allowVariableFontsInAccessibilityMode",!1,{description:p(319,null),tags:["accessibility"]})),ariaLabel:N(new to(8,"ariaLabel",p(467,null))),ariaRequired:N(new Te(9,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:N(new Te(12,"screenReaderAnnounceInlineSuggestion",!0,{description:p(632,null),tags:["accessibility"]})),autoClosingBrackets:N(new wt(10,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(370,null),p(369,null),""],description:p(326,null)})),autoClosingComments:N(new wt(11,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(372,null),p(371,null),""],description:p(327,null)})),autoClosingDelete:N(new wt(13,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",p(373,null),""],description:p(328,null)})),autoClosingOvertype:N(new wt(14,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",p(374,null),""],description:p(329,null)})),autoClosingQuotes:N(new wt(15,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(376,null),p(375,null),""],description:p(330,null)})),autoIndent:N(new Zd(16,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],u8,{enumDescriptions:[p(381,null),p(380,null),p(378,null),p(377,null),p(379,null)],description:p(331,null)})),autoIndentOnPaste:N(new Te(17,"autoIndentOnPaste",!1,{description:p(332,null)})),autoIndentOnPasteWithinString:N(new Te(18,"autoIndentOnPasteWithinString",!0,{description:p(333,null)})),automaticLayout:N(new Te(19,"automaticLayout",!1)),autoSurround:N(new wt(20,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[p(383,null),p(384,null),p(382,null),""],description:p(334,null)})),bracketPairColorization:N(new X_),bracketPairGuides:N(new Z_),stickyTabStops:N(new Te(132,"stickyTabStops",!1,{description:p(667,null)})),codeLens:N(new Te(23,"codeLens",!0,{description:p(337,null)})),codeLensFontFamily:N(new to(24,"codeLensFontFamily","",{description:p(338,null)})),codeLensFontSize:N(new lt(25,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:p(339,null)})),colorDecorators:N(new Te(26,"colorDecorators",!0,{description:p(341,null)})),colorDecoratorActivatedOn:N(new wt(168,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[p(386,null),p(387,null),p(385,null)],description:p(340,null)})),colorDecoratorsLimit:N(new lt(27,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:p(342,null)})),columnSelection:N(new Te(28,"columnSelection",!1,{description:p(343,null)})),comments:N(new y_),contextmenu:N(new Te(30,"contextmenu",!0)),copyWithSyntaxHighlighting:N(new Te(31,"copyWithSyntaxHighlighting",!0,{description:p(346,null)})),cursorBlinking:N(new Zd(32,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],p8,{description:p(347,null)})),cursorSmoothCaretAnimation:N(new wt(33,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[p(351,null),p(350,null),p(352,null)],description:p(349,null)})),cursorStyle:N(new Zd(34,"cursorStyle",1,"line",["line","block","underline","line-thin","block-outline","underline-thin"],YU,{description:p(353,null)})),overtypeCursorStyle:N(new Zd(92,"overtypeCursorStyle",2,"block",["line","block","underline","line-thin","block-outline","underline-thin"],YU,{description:p(593,null)})),cursorSurroundingLines:N(new lt(35,"cursorSurroundingLines",0,0,1073741824,{description:p(354,null)})),cursorSurroundingLinesStyle:N(new wt(36,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[p(357,null),p(356,null)],markdownDescription:p(355,null)})),cursorWidth:N(new lt(37,"cursorWidth",0,0,1073741824,{markdownDescription:p(358,null)})),cursorHeight:N(new lt(38,"cursorHeight",0,0,1073741824,{markdownDescription:p(348,null)})),disableLayerHinting:N(new Te(39,"disableLayerHinting",!1)),disableMonospaceOptimizations:N(new Te(40,"disableMonospaceOptimizations",!1)),domReadOnly:N(new Te(41,"domReadOnly",!1)),doubleClickSelectsBlock:N(new Te(173,"doubleClickSelectsBlock",!0,{description:p(362,null)})),dragAndDrop:N(new Te(42,"dragAndDrop",!0,{description:p(363,null)})),emptySelectionClipboard:N(new x_),dropIntoEditor:N(new iD),editContext:N(new Te(44,"editContext",!0,{description:p(368,null),included:Xf||Py||Ty})),renderRichScreenReaderContent:N(new Te(107,"renderRichScreenReaderContent",!1,{markdownDescription:p(623,null)})),stickyScroll:N(new N_),experimentalGpuAcceleration:N(new wt(46,"experimentalGpuAcceleration","off",["off","on"],{tags:["experimental"],enumDescriptions:[p(471,null),p(472,null)],description:p(470,null)})),experimentalWhitespaceRendering:N(new wt(47,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[p(476,null),p(474,null),p(475,null)],description:p(473,null)})),extraEditorClassName:N(new to(48,"extraEditorClassName","")),fastScrollSensitivity:N(new sr(49,"fastScrollSensitivity",5,r=>r<=0?5:r,{markdownDescription:p(477,null)})),find:N(new S_),fixedOverflowWidgets:N(new Te(51,"fixedOverflowWidgets",!1)),folding:N(new Te(52,"folding",!0,{description:p(488,null)})),foldingStrategy:N(new wt(53,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[p(493,null),p(494,null)],description:p(492,null)})),foldingHighlight:N(new Te(54,"foldingHighlight",!0,{description:p(489,null)})),foldingImportsByDefault:N(new Te(55,"foldingImportsByDefault",!1,{description:p(490,null)})),foldingMaximumRegions:N(new lt(56,"foldingMaximumRegions",5e3,10,65e3,{description:p(491,null)})),unfoldOnClickAfterEndOfLine:N(new Te(57,"unfoldOnClickAfterEndOfLine",!1,{description:p(698,null)})),fontFamily:N(new to(58,"fontFamily",ui.fontFamily,{description:p(495,null)})),fontInfo:N(new E_),fontLigatures2:N(new C_),fontSize:N(new __),fontWeight:N(new D_),fontVariations:N(new T_),formatOnPaste:N(new Te(64,"formatOnPaste",!1,{description:p(505,null)})),formatOnType:N(new Te(65,"formatOnType",!1,{description:p(506,null)})),glyphMargin:N(new Te(66,"glyphMargin",!0,{description:p(507,null)})),gotoLocation:N(new R_),hideCursorInOverviewRuler:N(new Te(68,"hideCursorInOverviewRuler",!1,{description:p(508,null)})),hover:N(new A_),inDiffEditor:N(new Te(70,"inDiffEditor",!1)),inertialScroll:N(new Te(158,"inertialScroll",!1,{description:p(518,null)})),letterSpacing:N(new sr(72,"letterSpacing",ui.letterSpacing,r=>sr.clamp(r,-5,20),{description:p(544,null)})),lightbulb:N(new O_),lineDecorationsWidth:N(new F_),lineHeight:N(new H_),lineNumbers:N(new K_),lineNumbersMinChars:N(new lt(77,"lineNumbersMinChars",5,1,300)),linkedEditing:N(new Te(78,"linkedEditing",!1,{description:p(551,null)})),links:N(new Te(79,"links",!0,{description:p(552,null)})),matchBrackets:N(new wt(80,"matchBrackets","always",["always","near","never"],{description:p(553,null)})),minimap:N(new W_),mouseStyle:N(new wt(82,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:N(new sr(83,"mouseWheelScrollSensitivity",1,r=>r===0?1:r,{markdownDescription:p(574,null)})),mouseWheelZoom:N(new Te(84,"mouseWheelZoom",!1,{markdownDescription:ut?p(576,null):p(575,null)})),multiCursorMergeOverlapping:N(new Te(85,"multiCursorMergeOverlapping",!0,{description:p(578,null)})),multiCursorModifier:N(new Zd(86,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],m8,{markdownEnumDescriptions:[p(581,null),p(580,null)],markdownDescription:p(579,null)})),mouseMiddleClickAction:N(new wt(87,"mouseMiddleClickAction","default",["default","openLink","ctrlLeftClick"],{description:p(573,null)})),multiCursorPaste:N(new wt(88,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[p(584,null),p(583,null)],markdownDescription:p(582,null)})),multiCursorLimit:N(new lt(89,"multiCursorLimit",1e4,1,1e5,{markdownDescription:p(577,null)})),occurrencesHighlight:N(new wt(90,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[p(587,null),p(588,null),p(586,null)],markdownDescription:p(585,null)})),occurrencesHighlightDelay:N(new lt(91,"occurrencesHighlightDelay",0,0,2e3,{description:p(589,null),tags:["preview"]})),overtypeOnPaste:N(new Te(93,"overtypeOnPaste",!0,{description:p(594,null)})),overviewRulerBorder:N(new Te(94,"overviewRulerBorder",!0,{description:p(595,null)})),overviewRulerLanes:N(new lt(95,"overviewRulerLanes",3,0,3)),padding:N(new V_),pasteAs:N(new sD),parameterHints:N(new B_),peekWidgetDefaultFocus:N(new wt(99,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[p(606,null),p(605,null)],description:p(604,null)})),placeholder:N(new z_),definitionLinkOpensInPeek:N(new Te(101,"definitionLinkOpensInPeek",!1,{description:p(360,null)})),quickSuggestions:N(new q_),quickSuggestionsDelay:N(new lt(103,"quickSuggestionsDelay",10,0,1073741824,{description:p(615,null),experiment:{mode:"auto"}})),readOnly:N(new Te(104,"readOnly",!1)),readOnlyMessage:N(new G_),renameOnType:N(new Te(106,"renameOnType",!1,{description:p(616,null),markdownDeprecationMessage:p(617,null)})),renderControlCharacters:N(new Te(108,"renderControlCharacters",!0,{description:p(618,null),restricted:!0})),renderFinalNewline:N(new wt(109,"renderFinalNewline",Qe?"dimmed":"on",["off","on","dimmed"],{description:p(619,null)})),renderLineHighlight:N(new wt(110,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",p(621,null)],description:p(620,null)})),renderLineHighlightOnlyWhenFocus:N(new Te(111,"renderLineHighlightOnlyWhenFocus",!1,{description:p(622,null)})),renderValidationDecorations:N(new wt(112,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:N(new wt(113,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",p(625,null),p(626,null),p(627,null),""],description:p(624,null)})),revealHorizontalRightPadding:N(new lt(114,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:N(new Te(115,"roundedSelection",!0,{description:p(628,null)})),rulers:N(new j_),scrollbar:N(new Q_),scrollBeyondLastColumn:N(new lt(118,"scrollBeyondLastColumn",4,0,1073741824,{description:p(645,null)})),scrollBeyondLastLine:N(new Te(119,"scrollBeyondLastLine",!0,{description:p(646,null)})),scrollOnMiddleClick:N(new Te(171,"scrollOnMiddleClick",!1,{description:p(647,null)})),scrollPredominantAxis:N(new Te(120,"scrollPredominantAxis",!0,{description:p(648,null)})),selectionClipboard:N(new Te(121,"selectionClipboard",!0,{description:p(649,null),included:Qe})),selectionHighlight:N(new Te(122,"selectionHighlight",!0,{description:p(650,null)})),selectionHighlightMaxLength:N(new lt(123,"selectionHighlightMaxLength",200,0,1073741824,{description:p(651,null)})),selectionHighlightMultiline:N(new Te(124,"selectionHighlightMultiline",!1,{description:p(652,null)})),selectOnLineNumbers:N(new Te(125,"selectOnLineNumbers",!0)),showFoldingControls:N(new wt(126,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[p(657,null),p(659,null),p(658,null)],description:p(656,null)})),showUnused:N(new Te(127,"showUnused",!0,{description:p(660,null)})),showDeprecated:N(new Te(157,"showDeprecated",!0,{description:p(655,null)})),inlayHints:N(new U_),snippetSuggestions:N(new wt(128,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[p(666,null),p(663,null),p(664,null),p(665,null)],description:p(662,null)})),smartSelect:N(new tD),smoothScrolling:N(new Te(130,"smoothScrolling",!1,{description:p(661,null)})),stopRenderingLineAfter:N(new lt(133,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:N(new eD),inlineSuggest:N(new Y_),inlineCompletionsAccessibilityVerbose:N(new Te(169,"inlineCompletionsAccessibilityVerbose",!1,{description:p(525,null)})),suggestFontSize:N(new lt(135,"suggestFontSize",0,0,1e3,{markdownDescription:p(685,null,"`0`","`#editor.fontSize#`")})),suggestLineHeight:N(new lt(136,"suggestLineHeight",0,0,1e3,{markdownDescription:p(686,null,"`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:N(new Te(137,"suggestOnTriggerCharacters",!0,{description:p(687,null)})),suggestSelection:N(new wt(138,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[p(689,null),p(690,null),p(691,null)],description:p(688,null)})),tabCompletion:N(new wt(139,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[p(694,null),p(693,null),p(695,null)],description:p(692,null)})),tabIndex:N(new lt(140,"tabIndex",0,-1,1073741824)),trimWhitespaceOnDelete:N(new Te(141,"trimWhitespaceOnDelete",!1,{description:p(697,null)})),unicodeHighlight:N(new J_),unusualLineTerminators:N(new wt(143,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[p(707,null),p(708,null),p(709,null)],description:p(706,null)})),useShadowDOM:N(new Te(144,"useShadowDOM",!0)),useTabStops:N(new Te(145,"useTabStops",!0,{description:p(710,null)})),wordBreak:N(new wt(146,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[p(713,null),p(712,null)],description:p(711,null)})),wordSegmenterLocales:N(new nD),wordSeparators:N(new to(148,"wordSeparators",p_,{description:p(715,null)})),wordWrap:N(new wt(149,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[p(718,null),p(719,null),p(720,null),p(717,null)],description:p(716,null)})),wordWrapBreakAfterCharacters:N(new to(150,"wordWrapBreakAfterCharacters"," 	})]?|/&.,;\xA2\xB0\u2032\u2033\u2030\u2103\u3001\u3002\uFF61\uFF64\uFFE0\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF01\uFF05\u30FB\uFF65\u309D\u309E\u30FD\u30FE\u30FC\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u3095\u3096\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3005\u303B\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF70\u201D\u3009\u300B\u300D\u300F\u3011\u3015\uFF09\uFF3D\uFF5D\uFF63")),wordWrapBreakBeforeCharacters:N(new to(151,"wordWrapBreakBeforeCharacters","([{\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B\uFF62\xA3\xA5\uFF04\uFFE1\uFFE5+\uFF0B")),wordWrapColumn:N(new lt(152,"wordWrapColumn",80,1,1073741824,{markdownDescription:p(721,null)})),wordWrapOverride1:N(new wt(153,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:N(new wt(154,"wordWrapOverride2","inherit",["off","on","inherit"])),wrapOnEscapedLineFeeds:N(new Te(160,"wrapOnEscapedLineFeeds",!1,{markdownDescription:p(722,null)})),effectiveCursorStyle:N(new w_),editorClassName:N(new I_),defaultColorDecorators:N(new wt(167,"defaultColorDecorators","auto",["auto","always","never"],{enumDescriptions:[p(389,null),p(388,null),p(390,null)],description:p(359,null)})),pixelRatio:N(new $_),tabFocusMode:N(new Te(164,"tabFocusMode",!1,{markdownDescription:p(696,null)})),layoutInfo:N(new M_),wrappingInfo:N(new rD),wrappingIndent:N(new oD),wrappingStrategy:N(new L_),effectiveEditContextEnabled:N(new k_),effectiveAllowVariableFonts:N(new P_)};var ar,lD=globalThis.vscode;if(typeof lD<"u"&&typeof lD.context<"u"){let r=lD.context.configuration();if(r)ar=r.product;else throw new Error("Sandbox: unable to resolve product configuration from preload script.")}else if(globalThis._VSCODE_PRODUCT_JSON&&globalThis._VSCODE_PACKAGE_JSON){if(ar=globalThis._VSCODE_PRODUCT_JSON,Co.VSCODE_DEV&&Object.assign(ar,{nameShort:`${ar.nameShort} Dev`,nameLong:`${ar.nameLong} Dev`,dataFolderName:`${ar.dataFolderName}-dev`,serverDataFolderName:ar.serverDataFolderName?`${ar.serverDataFolderName}-dev`:void 0}),!ar.version){let r=globalThis._VSCODE_PACKAGE_JSON;Object.assign(ar,{version:r.version})}}else ar={quality:"stable",extensionsGallery:{serviceUrl:"https://open-vsx.org/vscode/gallery",itemUrl:"https://open-vsx.org/vscode/item"},linkProtectionTrustedDomains:["https://open-vsx.org"],documentationUrl:"https://code.visualstudio.com/docs",requestFeatureUrl:"https://github.com/Microsoft/vscode/issues",introductoryVideosUrl:"https://go.microsoft.com/fwlink/?linkid=832146",tipsAndTricksUrl:"https://go.microsoft.com/fwlink/?linkid=852118",keyboardShortcutsUrlLinux:"https://go.microsoft.com/fwlink/?linkid=832144",commit:"07ff9d6178ede9a1bd12ad3399074d726ebe6e43",date:"2026-03-17T18:09:23Z",nameShort:"Code - OSS",nameLong:"Code - OSS",applicationName:"code-oss",dataFolderName:".vscode-oss",win32MutexName:"vscodeoss",licenseName:"MIT",licenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",serverLicenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",serverGreeting:[],serverLicense:[],serverLicensePrompt:"",serverApplicationName:"code-server-oss",serverDataFolderName:".vscode-server-oss",tunnelApplicationName:"code-tunnel-oss",win32DirName:"Microsoft Code OSS",win32NameVersion:"Microsoft Code OSS",win32RegValueName:"CodeOSS",win32x64AppId:"{{D77B7E06-80BA-4137-BCF4-654B95CCEBC5}",win32arm64AppId:"{{D1ACE434-89C5-48D1-88D3-E2991DF85475}",win32x64UserAppId:"{{CC6B787D-37A0-49E8-AE24-8559A032BE0C}",win32arm64UserAppId:"{{3AEBF0C8-F733-4AD4-BADE-FDB816D53D7B}",win32AppUserModelId:"Microsoft.CodeOSS",win32ShellNameShort:"C&ode - OSS",win32TunnelServiceMutex:"vscodeoss-tunnelservice",win32TunnelMutex:"vscodeoss-tunnel",darwinBundleIdentifier:"com.visualstudio.code.oss",darwinProfileUUID:"47827DD9-4734-49A0-AF80-7E19B11495CC",darwinProfilePayloadUUID:"CF808BE7-53F3-46C6-A7E2-7EDB98A5E959",linuxIconName:"code-oss",licenseFileName:"LICENSE.txt",reportIssueUrl:"https://github.com/microsoft/vscode/issues/new",nodejsRepository:"https://nodejs.org",urlProtocol:"code-oss",webviewContentExternalBaseUrlTemplate:"https://{{uuid}}.vscode-cdn.net/insider/ef65ac1ba57f57f2a3961bfe94aa20481caca4c6/out/vs/workbench/contrib/webview/browser/pre/",builtInExtensions:[{name:"ms-vscode.js-debug-companion",version:"1.1.3",sha256:"7380a890787452f14b2db7835dfa94de538caf358ebc263f9d46dd68ac52de93",repo:"https://github.com/microsoft/vscode-js-debug-companion",metadata:{id:"99cb0b7f-7354-4278-b8da-6cc79972169d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.js-debug",version:"1.112.0",sha256:"c24322931434940938f8cf76ebc3dac1e95a5539b9625b165b6672d7f7eafea8",repo:"https://github.com/microsoft/vscode-js-debug",metadata:{id:"25629058-ddac-4e17-abba-74678e126c5d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.vscode-js-profile-table",version:"1.0.10",sha256:"7361748ddf9fd09d8a2ed1f2a2d7376a2cf9aae708692820b799708385c38e08",repo:"https://github.com/microsoft/vscode-js-profile-visualizer",metadata:{id:"7e52b41b-71ad-457b-ab7e-0620f1fc4feb",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}}],defaultChatAgent:{extensionId:"GitHub.copilot",chatExtensionId:"GitHub.copilot-chat",chatExtensionOutputId:"GitHub.copilot-chat.GitHub Copilot Chat.log",chatExtensionOutputExtensionStateCommand:"github.copilot.debug.extensionState",documentationUrl:"https://aka.ms/github-copilot-overview",termsStatementUrl:"https://aka.ms/github-copilot-terms-statement",privacyStatementUrl:"https://aka.ms/github-copilot-privacy-statement",skusDocumentationUrl:"https://aka.ms/github-copilot-plans",publicCodeMatchesUrl:"https://aka.ms/github-copilot-match-public-code",manageSettingsUrl:"https://aka.ms/github-copilot-settings",managePlanUrl:"https://aka.ms/github-copilot-manage-plan",manageOverageUrl:"https://aka.ms/github-copilot-manage-overage",upgradePlanUrl:"https://aka.ms/github-copilot-upgrade-plan",signUpUrl:"https://aka.ms/github-sign-up",provider:{default:{id:"github",name:"GitHub"},enterprise:{id:"github-enterprise",name:"GHE.com"},google:{id:"google",name:"Google"},apple:{id:"apple",name:"Apple"}},providerExtensionId:"vscode.github-authentication",providerUriSetting:"github-enterprise.uri",providerScopes:[["read:user","user:email","repo","workflow"],["user:email"],["read:user"]],entitlementUrl:"https://api.github.com/copilot_internal/user",entitlementSignupLimitedUrl:"https://api.github.com/copilot_internal/subscribe_limited_user",chatQuotaExceededContext:"github.copilot.chat.quotaExceeded",completionsQuotaExceededContext:"github.copilot.completions.quotaExceeded",walkthroughCommand:"github.copilot.open.walkthrough",completionsMenuCommand:"github.copilot.toggleStatusMenu",completionsRefreshTokenCommand:"github.copilot.signIn",chatRefreshTokenCommand:"github.copilot.refreshToken",generateCommitMessageCommand:"github.copilot.git.generateCommitMessage",resolveMergeConflictsCommand:"github.copilot.git.resolveMergeConflicts",completionsAdvancedSetting:"github.copilot.advanced",completionsEnablementSetting:"github.copilot.enable",nextEditSuggestionsSetting:"github.copilot.nextEditSuggestions.enabled",tokenEntitlementUrl:"https://api.github.com/copilot_internal/v2/token",mcpRegistryDataUrl:"https://api.github.com/copilot/mcp_registry"},trustedExtensionAuthAccess:{github:["GitHub.copilot-chat"],"github-enterprise":["GitHub.copilot-chat"]},version:"1.112.0"},Object.keys(ar).length===0&&Object.assign(ar,{version:"1.104.0-dev",nameShort:"Code - OSS Dev",nameLong:"Code - OSS Dev",applicationName:"code-oss",dataFolderName:".vscode-oss",urlProtocol:"code-oss",reportIssueUrl:"https://github.com/microsoft/vscode/issues/new",licenseName:"MIT",licenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",serverLicenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",defaultChatAgent:{extensionId:"GitHub.copilot",chatExtensionId:"GitHub.copilot-chat",provider:{default:{id:"github",name:"GitHub"},enterprise:{id:"github-enterprise",name:"GitHub Enterprise"}},providerScopes:[]}});var Ho=ar;var kh=class r{constructor(t){this._proxyIdentifierBrand=void 0;this.sid=t,this.nid=++r.count}static{this.count=0}},ZU=[];function H(r){let t=new kh(r);return ZU[t.nid]=t,t}function Ph(r){return ZU[r].sid}var $t=class{constructor(t){this.value=t}};var dD=(o=>(o[o.None=0]="None",o[o.Process=1]="Process",o[o.Output=2]="Output",o[o.Hybrid=3]="Hybrid",o))(dD||{}),eF=class r{static{this._n=0}static mixin(t){return t._id=r._n++,t}};var U={MainThreadAuthentication:H("MainThreadAuthentication"),MainThreadBulkEdits:H("MainThreadBulkEdits"),MainThreadLanguageModels:H("MainThreadLanguageModels"),MainThreadEmbeddings:H("MainThreadEmbeddings"),MainThreadChatAgents2:H("MainThreadChatAgents2"),MainThreadCodeMapper:H("MainThreadCodeMapper"),MainThreadLanguageModelTools:H("MainThreadChatSkills"),MainThreadGitExtension:H("MainThreadGitExtension"),MainThreadClipboard:H("MainThreadClipboard"),MainThreadCommands:H("MainThreadCommands"),MainThreadComments:H("MainThreadComments"),MainThreadConfiguration:H("MainThreadConfiguration"),MainThreadConsole:H("MainThreadConsole"),MainThreadDebugService:H("MainThreadDebugService"),MainThreadDecorations:H("MainThreadDecorations"),MainThreadDiagnostics:H("MainThreadDiagnostics"),MainThreadDialogs:H("MainThreadDiaglogs"),MainThreadDocuments:H("MainThreadDocuments"),MainThreadDocumentContentProviders:H("MainThreadDocumentContentProviders"),MainThreadTextEditors:H("MainThreadTextEditors"),MainThreadEditorInsets:H("MainThreadEditorInsets"),MainThreadEditorTabs:H("MainThreadEditorTabs"),MainThreadErrors:H("MainThreadErrors"),MainThreadTreeViews:H("MainThreadTreeViews"),MainThreadDownloadService:H("MainThreadDownloadService"),MainThreadLanguageFeatures:H("MainThreadLanguageFeatures"),MainThreadLanguages:H("MainThreadLanguages"),MainThreadLogger:H("MainThreadLogger"),MainThreadMessageService:H("MainThreadMessageService"),MainThreadOutputService:H("MainThreadOutputService"),MainThreadProgress:H("MainThreadProgress"),MainThreadQuickDiff:H("MainThreadQuickDiff"),MainThreadQuickOpen:H("MainThreadQuickOpen"),MainThreadStatusBar:H("MainThreadStatusBar"),MainThreadSecretState:H("MainThreadSecretState"),MainThreadStorage:H("MainThreadStorage"),MainThreadSpeech:H("MainThreadSpeechProvider"),MainThreadTelemetry:H("MainThreadTelemetry"),MainThreadMeteredConnection:H("MainThreadMeteredConnection"),MainThreadTerminalService:H("MainThreadTerminalService"),MainThreadTerminalShellIntegration:H("MainThreadTerminalShellIntegration"),MainThreadWebviews:H("MainThreadWebviews"),MainThreadWebviewPanels:H("MainThreadWebviewPanels"),MainThreadWebviewViews:H("MainThreadWebviewViews"),MainThreadCustomEditors:H("MainThreadCustomEditors"),MainThreadUrls:H("MainThreadUrls"),MainThreadUriOpeners:H("MainThreadUriOpeners"),MainThreadProfileContentHandlers:H("MainThreadProfileContentHandlers"),MainThreadWorkspace:H("MainThreadWorkspace"),MainThreadFileSystem:H("MainThreadFileSystem"),MainThreadFileSystemEventService:H("MainThreadFileSystemEventService"),MainThreadExtensionService:H("MainThreadExtensionService"),MainThreadSCM:H("MainThreadSCM"),MainThreadSearch:H("MainThreadSearch"),MainThreadShare:H("MainThreadShare"),MainThreadTask:H("MainThreadTask"),MainThreadWindow:H("MainThreadWindow"),MainThreadPower:H("MainThreadPower"),MainThreadLabelService:H("MainThreadLabelService"),MainThreadNotebook:H("MainThreadNotebook"),MainThreadNotebookDocuments:H("MainThreadNotebookDocumentsShape"),MainThreadNotebookEditors:H("MainThreadNotebookEditorsShape"),MainThreadNotebookKernels:H("MainThreadNotebookKernels"),MainThreadNotebookRenderers:H("MainThreadNotebookRenderers"),MainThreadInteractive:H("MainThreadInteractive"),MainThreadTheming:H("MainThreadTheming"),MainThreadTunnelService:H("MainThreadTunnelService"),MainThreadManagedSockets:H("MainThreadManagedSockets"),MainThreadTimeline:H("MainThreadTimeline"),MainThreadTesting:H("MainThreadTesting"),MainThreadLocalization:H("MainThreadLocalizationShape"),MainThreadMcp:H("MainThreadMcpShape"),MainThreadAiRelatedInformation:H("MainThreadAiRelatedInformation"),MainThreadAiEmbeddingVector:H("MainThreadAiEmbeddingVector"),MainThreadChatStatus:H("MainThreadChatStatus"),MainThreadAiSettingsSearch:H("MainThreadAiSettingsSearch"),MainThreadDataChannels:H("MainThreadDataChannels"),MainThreadChatSessions:H("MainThreadChatSessions"),MainThreadChatOutputRenderer:H("MainThreadChatOutputRenderer"),MainThreadChatContext:H("MainThreadChatContext"),MainThreadChatDebug:H("MainThreadChatDebug"),MainThreadBrowsers:H("MainThreadBrowsers")},ue={ExtHostCodeMapper:H("ExtHostCodeMapper"),ExtHostCommands:H("ExtHostCommands"),ExtHostConfiguration:H("ExtHostConfiguration"),ExtHostDiagnostics:H("ExtHostDiagnostics"),ExtHostDebugService:H("ExtHostDebugService"),ExtHostDecorations:H("ExtHostDecorations"),ExtHostDocumentsAndEditors:H("ExtHostDocumentsAndEditors"),ExtHostDocuments:H("ExtHostDocuments"),ExtHostDocumentContentProviders:H("ExtHostDocumentContentProviders"),ExtHostDocumentSaveParticipant:H("ExtHostDocumentSaveParticipant"),ExtHostEditors:H("ExtHostEditors"),ExtHostTreeViews:H("ExtHostTreeViews"),ExtHostFileSystem:H("ExtHostFileSystem"),ExtHostFileSystemInfo:H("ExtHostFileSystemInfo"),ExtHostFileSystemEventService:H("ExtHostFileSystemEventService"),ExtHostLanguages:H("ExtHostLanguages"),ExtHostLanguageFeatures:H("ExtHostLanguageFeatures"),ExtHostQuickOpen:H("ExtHostQuickOpen"),ExtHostQuickDiff:H("ExtHostQuickDiff"),ExtHostStatusBar:H("ExtHostStatusBar"),ExtHostShare:H("ExtHostShare"),ExtHostExtensionService:H("ExtHostExtensionService"),ExtHostLogLevelServiceShape:H("ExtHostLogLevelServiceShape"),ExtHostTerminalService:H("ExtHostTerminalService"),ExtHostTerminalShellIntegration:H("ExtHostTerminalShellIntegration"),ExtHostSCM:H("ExtHostSCM"),ExtHostSearch:H("ExtHostSearch"),ExtHostTask:H("ExtHostTask"),ExtHostWorkspace:H("ExtHostWorkspace"),ExtHostWindow:H("ExtHostWindow"),ExtHostPower:H("ExtHostPower"),ExtHostWebviews:H("ExtHostWebviews"),ExtHostWebviewPanels:H("ExtHostWebviewPanels"),ExtHostCustomEditors:H("ExtHostCustomEditors"),ExtHostWebviewViews:H("ExtHostWebviewViews"),ExtHostEditorInsets:H("ExtHostEditorInsets"),ExtHostEditorTabs:H("ExtHostEditorTabs"),ExtHostProgress:H("ExtHostProgress"),ExtHostComments:H("ExtHostComments"),ExtHostSecretState:H("ExtHostSecretState"),ExtHostStorage:H("ExtHostStorage"),ExtHostUrls:H("ExtHostUrls"),ExtHostUriOpeners:H("ExtHostUriOpeners"),ExtHostChatOutputRenderer:H("ExtHostChatOutputRenderer"),ExtHostProfileContentHandlers:H("ExtHostProfileContentHandlers"),ExtHostOutputService:H("ExtHostOutputService"),ExtHostLabelService:H("ExtHostLabelService"),ExtHostNotebook:H("ExtHostNotebook"),ExtHostNotebookDocuments:H("ExtHostNotebookDocuments"),ExtHostNotebookEditors:H("ExtHostNotebookEditors"),ExtHostNotebookKernels:H("ExtHostNotebookKernels"),ExtHostNotebookRenderers:H("ExtHostNotebookRenderers"),ExtHostNotebookDocumentSaveParticipant:H("ExtHostNotebookDocumentSaveParticipant"),ExtHostInteractive:H("ExtHostInteractive"),ExtHostChatAgents2:H("ExtHostChatAgents"),ExtHostLanguageModelTools:H("ExtHostChatSkills"),ExtHostChatProvider:H("ExtHostChatProvider"),ExtHostChatContext:H("ExtHostChatContext"),ExtHostChatDebug:H("ExtHostChatDebug"),ExtHostSpeech:H("ExtHostSpeech"),ExtHostEmbeddings:H("ExtHostEmbeddings"),ExtHostAiRelatedInformation:H("ExtHostAiRelatedInformation"),ExtHostAiEmbeddingVector:H("ExtHostAiEmbeddingVector"),ExtHostAiSettingsSearch:H("ExtHostAiSettingsSearch"),ExtHostTheming:H("ExtHostTheming"),ExtHostTunnelService:H("ExtHostTunnelService"),ExtHostManagedSockets:H("ExtHostManagedSockets"),ExtHostAuthentication:H("ExtHostAuthentication"),ExtHostTimeline:H("ExtHostTimeline"),ExtHostTesting:H("ExtHostTesting"),ExtHostTelemetry:H("ExtHostTelemetry"),ExtHostMeteredConnection:H("ExtHostMeteredConnection"),ExtHostLocalization:H("ExtHostLocalization"),ExtHostMcp:H("ExtHostMcp"),ExtHostDataChannels:H("ExtHostDataChannels"),ExtHostChatSessions:H("ExtHostChatSessions"),ExtHostGitExtension:H("ExtHostGitExtension"),ExtHostBrowsers:H("ExtHostBrowsers")};function tF(r){return r.toJSON()}var vI=class{constructor(t){this._uriTransformer=t}transformIncoming(t){let e=this._uriTransformer.transformIncoming(t);return e===t?t:tF(y.from(e))}transformOutgoing(t){let e=this._uriTransformer.transformOutgoing(t);return e===t?t:tF(y.from(e))}transformOutgoingURI(t){let e=this._uriTransformer.transformOutgoing(t);return e===t?t:y.from(e)}transformOutgoingScheme(t){return this._uriTransformer.transformOutgoingScheme(t)}},Ree=new class{transformIncoming(r){return r}transformOutgoing(r){return r}transformOutgoingURI(r){return r}transformOutgoingScheme(r){return r}};function nF(r,t,e,n){if(!r||n>200)return null;if(typeof r=="object"){if(r.$mid===1)return e?y.revive(t.transformIncoming(r)):t.transformIncoming(r);if(r instanceof W)return null;for(let o in r)if(Object.hasOwnProperty.call(r,o)){let i=nF(r[o],t,e,n+1);i!==null&&(r[o]=i)}}return null}function dp(r,t){let e=nF(r,t,!1,0);return e===null?r:e}var _h=class{constructor(){this._actual=null,this._actualOk=null,this._actualErr=null,this._hasValue=!1,this._value=null,this._hasErr=!1,this._err=null}get[Symbol.toStringTag](){return this.toString()}_ensureActual(){return this._actual||(this._actual=new Promise((t,e)=>{this._actualOk=t,this._actualErr=e,this._hasValue&&this._actualOk(this._value),this._hasErr&&this._actualErr(this._err)})),this._actual}resolveOk(t){this._hasValue||this._hasErr||(this._hasValue=!0,this._value=t,this._actual&&this._actualOk(t))}resolveErr(t){this._hasValue||this._hasErr||(this._hasErr=!0,this._err=t,this._actual?this._actualErr(t):$e(t))}then(t,e){return this._ensureActual().then(t,e)}catch(t){return this._ensureActual().then(void 0,t)}finally(t){return this._ensureActual().finally(t)}},bI=class extends _h{constructor(){super(),this._hasErr=!0,this._err=new Be}};function cD(r,t){try{return JSON.stringify(r,t)}catch{return"null"}}var pD="$$ref$$",f8={[pD]:-1};function oF(r,t=null,e=!1){let n=[];return{jsonString:(e?cD:JSON.stringify)(r,(i,s)=>{if(typeof s>"u")return f8;if(typeof s=="object"){if(s instanceof W){let a=n.push(s)-1;return{[pD]:a}}if(t)return t(i,s)}return s}),referencedBuffers:n}}function aF(r,t,e){return JSON.parse(r,(n,o)=>{if(o){let i=o[pD];if(typeof i=="number")return t[i];if(e&&o.$mid===1)return e.transformIncoming(o)}return o})}function rF(r,t){return JSON.stringify(r,t)}function h8(r){return r?(t,e)=>e&&e.$mid===1?r.transformOutgoing(e):e:null}var v8=()=>{},b8=Symbol.for("rpcProtocol"),y8=Symbol.for("rpcProxy"),iF,sF,yI=class r extends(sF=O,iF=b8,sF){constructor(e,n=null,o=null){super();this[iF]=!0;this._onDidChangeResponsiveState=this._register(new T);this.onDidChangeResponsiveState=this._onDidChangeResponsiveState.event;this._protocol=e,this._logger=n,this._uriTransformer=o,this._uriReplacer=h8(this._uriTransformer),this._isDisposed=!1,this._locals=[],this._proxies=[];for(let i=0,s=kh.count;i<s;i++)this._locals[i]=null,this._proxies[i]=null;this._lastMessageId=0,this._cancelInvokedHandlers=Object.create(null),this._pendingRPCReplies={},this._responsiveState=0,this._unacknowledgedCount=0,this._unresponsiveTime=0,this._asyncCheckUresponsive=this._register(new Wn(()=>this._checkUnresponsive(),1e3)),this._register(this._protocol.onMessage(i=>this._receiveOneMessage(i)))}static{this.UNRESPONSIVE_TIME=3*1e3}dispose(){this._isDisposed=!0,Object.keys(this._pendingRPCReplies).forEach(e=>{let n=this._pendingRPCReplies[e];delete this._pendingRPCReplies[e],n.resolveErr(Ws())}),super.dispose()}drain(){return typeof this._protocol.drain=="function"?this._protocol.drain():Promise.resolve()}_onWillSendRequest(e){this._unacknowledgedCount===0&&(this._unresponsiveTime=Date.now()+r.UNRESPONSIVE_TIME),this._unacknowledgedCount++,this._asyncCheckUresponsive.isScheduled()||this._asyncCheckUresponsive.schedule()}_onDidReceiveAcknowledge(e){this._unresponsiveTime=Date.now()+r.UNRESPONSIVE_TIME,this._unacknowledgedCount--,this._unacknowledgedCount===0&&this._asyncCheckUresponsive.cancel(),this._setResponsiveState(0)}_checkUnresponsive(){this._unacknowledgedCount!==0&&(Date.now()>this._unresponsiveTime?this._setResponsiveState(1):this._asyncCheckUresponsive.schedule())}_setResponsiveState(e){this._responsiveState!==e&&(this._responsiveState=e,this._onDidChangeResponsiveState.fire(this._responsiveState))}get responsiveState(){return this._responsiveState}transformIncomingURIs(e){return this._uriTransformer?dp(e,this._uriTransformer):e}getProxy(e){let{nid:n,sid:o}=e;return this._proxies[n]||(this._proxies[n]=this._createProxy(n,o)),this._proxies[n]}_createProxy(e,n){let o={get:(i,s)=>(typeof s=="string"&&!i[s]&&s.charCodeAt(0)===36&&(i[s]=(...a)=>this._remoteCall(e,s,a)),s===y8?n:i[s])};return new Proxy(Object.create(null),o)}set(e,n){return this._locals[e.nid]=n,n}assertRegistered(e){for(let n=0,o=e.length;n<o;n++){let i=e[n];if(!this._locals[i.nid])throw new Error(`Missing proxy instance ${i.sid}`)}}_receiveOneMessage(e){if(this._isDisposed)return;let n=e.byteLength,o=mn.read(e,0),i=o.readUInt8(),s=o.readUInt32();switch(i){case 1:case 2:{let{rpcId:a,method:l,args:d}=lr.deserializeRequestJSONArgs(o);this._uriTransformer&&(d=dp(d,this._uriTransformer)),this._receiveRequest(n,s,a,l,d,i===2);break}case 3:case 4:{let{rpcId:a,method:l,args:d}=lr.deserializeRequestMixedArgs(o);this._uriTransformer&&(d=dp(d,this._uriTransformer)),this._receiveRequest(n,s,a,l,d,i===4);break}case 5:{this._logger?.logIncoming(n,s,0,"ack"),this._onDidReceiveAcknowledge(s);break}case 6:{this._receiveCancel(n,s);break}case 7:{this._receiveReply(n,s,void 0);break}case 9:{let a=lr.deserializeReplyOKJSON(o);this._uriTransformer&&(a=dp(a,this._uriTransformer)),this._receiveReply(n,s,a);break}case 10:{let a=lr.deserializeReplyOKJSONWithBuffers(o,this._uriTransformer);this._receiveReply(n,s,a);break}case 8:{let a=lr.deserializeReplyOKVSBuffer(o);this._receiveReply(n,s,a);break}case 11:{let a=lr.deserializeReplyErrError(o);this._uriTransformer&&(a=dp(a,this._uriTransformer)),this._receiveReplyErr(n,s,a);break}case 12:{this._receiveReplyErr(n,s,void 0);break}default:console.error("received unexpected message"),console.error(e)}}_receiveRequest(e,n,o,i,s,a){this._logger?.logIncoming(e,n,1,`receiveRequest ${Ph(o)}.${i}(`,s);let l=String(n),d,c;if(a){let m=new Ce;s.push(m.token),d=this._invokeHandler(o,i,s),c=()=>m.cancel()}else d=this._invokeHandler(o,i,s),c=v8;this._cancelInvokedHandlers[l]=c;let u=lr.serializeAcknowledged(n);this._logger?.logOutgoing(u.byteLength,n,1,"ack"),this._protocol.send(u),d.then(m=>{delete this._cancelInvokedHandlers[l];let g=lr.serializeReplyOK(n,m,this._uriReplacer);this._logger?.logOutgoing(g.byteLength,n,1,"reply:",m),this._protocol.send(g)},m=>{delete this._cancelInvokedHandlers[l];let g=lr.serializeReplyErr(n,m);this._logger?.logOutgoing(g.byteLength,n,1,"replyErr:",m),this._protocol.send(g)})}_receiveCancel(e,n){this._logger?.logIncoming(e,n,1,"receiveCancel");let o=String(n);this._cancelInvokedHandlers[o]?.()}_receiveReply(e,n,o){this._logger?.logIncoming(e,n,0,"receiveReply:",o);let i=String(n);if(!this._pendingRPCReplies.hasOwnProperty(i))return;let s=this._pendingRPCReplies[i];delete this._pendingRPCReplies[i],s.resolveOk(o)}_receiveReplyErr(e,n,o){this._logger?.logIncoming(e,n,0,"receiveReplyErr:",o);let i=String(n);if(!this._pendingRPCReplies.hasOwnProperty(i))return;let s=this._pendingRPCReplies[i];delete this._pendingRPCReplies[i];let a;o&&(o.$isError?(a=new Error,a.name=o.name,a.message=o.message,a.stack=o.stack):a=o),s.resolveErr(a)}_invokeHandler(e,n,o){try{return Promise.resolve(this._doInvokeHandler(e,n,o))}catch(i){return Promise.reject(i)}}_doInvokeHandler(e,n,o){let i=this._locals[e];if(!i)throw new Error("Unknown actor "+Ph(e));let s=i[n];if(typeof s!="function")throw new Error("Unknown method "+n+" on actor "+Ph(e));return s.apply(i,o)}_remoteCall(e,n,o){if(this._isDisposed)return new bI;let i=null;if(o.length>0&&he.isCancellationToken(o[o.length-1])&&(i=o.pop()),i&&i.isCancellationRequested)return Promise.reject(Ws());let s=lr.serializeRequestArguments(o,this._uriReplacer),a=++this._lastMessageId,l=String(a),d=new _h,c=new $;i&&c.add(i.onCancellationRequested(()=>{let m=lr.serializeCancel(a);this._logger?.logOutgoing(m.byteLength,a,0,"cancel"),this._protocol.send(m)})),this._pendingRPCReplies[l]=new uD(d,c),this._onWillSendRequest(a);let u=lr.serializeRequest(a,e,n,s,!!i);return this._logger?.logOutgoing(u.byteLength,a,0,`request: ${Ph(e)}.${n}(`,o),this._protocol.send(u),d}},uD=class{constructor(t,e){this._promise=t;this._disposable=e}resolveOk(t){this._promise.resolveOk(t),this._disposable.dispose()}resolveErr(t){this._promise.resolveErr(t),this._disposable.dispose()}},mn=class r{static alloc(t,e,n){let o=new r(W.alloc(n+1+4),0);return o.writeUInt8(t),o.writeUInt32(e),o}static read(t,e){return new r(t,e)}get buffer(){return this._buff}constructor(t,e){this._buff=t,this._offset=e}static sizeUInt8(){return 1}static{this.sizeUInt32=4}writeUInt8(t){this._buff.writeUInt8(t,this._offset),this._offset+=1}readUInt8(){let t=this._buff.readUInt8(this._offset);return this._offset+=1,t}writeUInt32(t){this._buff.writeUInt32BE(t,this._offset),this._offset+=4}readUInt32(){let t=this._buff.readUInt32BE(this._offset);return this._offset+=4,t}static sizeShortString(t){return 1+t.byteLength}writeShortString(t){this._buff.writeUInt8(t.byteLength,this._offset),this._offset+=1,this._buff.set(t,this._offset),this._offset+=t.byteLength}readShortString(){let t=this._buff.readUInt8(this._offset);this._offset+=1;let n=this._buff.slice(this._offset,this._offset+t).toString();return this._offset+=t,n}static sizeLongString(t){return 4+t.byteLength}writeLongString(t){this._buff.writeUInt32BE(t.byteLength,this._offset),this._offset+=4,this._buff.set(t,this._offset),this._offset+=t.byteLength}readLongString(){let t=this._buff.readUInt32BE(this._offset);this._offset+=4;let n=this._buff.slice(this._offset,this._offset+t).toString();return this._offset+=t,n}writeBuffer(t){this._buff.writeUInt32BE(t.byteLength,this._offset),this._offset+=4,this._buff.set(t,this._offset),this._offset+=t.byteLength}static sizeVSBuffer(t){return 4+t.byteLength}writeVSBuffer(t){this._buff.writeUInt32BE(t.byteLength,this._offset),this._offset+=4,this._buff.set(t,this._offset),this._offset+=t.byteLength}readVSBuffer(){let t=this._buff.readUInt32BE(this._offset);this._offset+=4;let e=this._buff.slice(this._offset,this._offset+t);return this._offset+=t,e}static sizeMixedArray(t){let e=0;e+=1;for(let n=0,o=t.length;n<o;n++){let i=t[n];switch(e+=1,i.type){case 1:e+=this.sizeLongString(i.value);break;case 2:e+=this.sizeVSBuffer(i.value);break;case 3:e+=this.sizeUInt32,e+=this.sizeLongString(i.value);for(let s=0;s<i.buffers.length;++s)e+=this.sizeVSBuffer(i.buffers[s]);break;case 4:break}}return e}writeMixedArray(t){this._buff.writeUInt8(t.length,this._offset),this._offset+=1;for(let e=0,n=t.length;e<n;e++){let o=t[e];switch(o.type){case 1:this.writeUInt8(1),this.writeLongString(o.value);break;case 2:this.writeUInt8(2),this.writeVSBuffer(o.value);break;case 3:this.writeUInt8(3),this.writeUInt32(o.buffers.length),this.writeLongString(o.value);for(let i=0;i<o.buffers.length;++i)this.writeBuffer(o.buffers[i]);break;case 4:this.writeUInt8(4);break}}}readMixedArray(){let t=this._buff.readUInt8(this._offset);this._offset+=1;let e=new Array(t);for(let n=0;n<t;n++)switch(this.readUInt8()){case 1:e[n]=this.readLongString();break;case 2:e[n]=this.readVSBuffer();break;case 3:{let i=this.readUInt32(),s=this.readLongString(),a=[];for(let l=0;l<i;++l)a.push(this.readVSBuffer());e[n]=new $t(aF(s,a,null));break}case 4:e[n]=void 0;break}return e}};var lr=class{static _useMixedArgSerialization(t){for(let e=0,n=t.length;e<n;e++)if(t[e]instanceof W||t[e]instanceof $t||typeof t[e]>"u")return!0;return!1}static serializeRequestArguments(t,e){if(this._useMixedArgSerialization(t)){let n=[];for(let o=0,i=t.length;o<i;o++){let s=t[o];if(s instanceof W)n[o]={type:2,value:s};else if(typeof s>"u")n[o]={type:4};else if(s instanceof $t){let{jsonString:a,referencedBuffers:l}=oF(s.value,e);n[o]={type:3,value:W.fromString(a),buffers:l}}else n[o]={type:1,value:W.fromString(rF(s,e))}}return{type:1,args:n}}return{type:0,args:rF(t,e)}}static serializeRequest(t,e,n,o,i){switch(o.type){case 0:return this._requestJSONArgs(t,e,n,o.args,i);case 1:return this._requestMixedArgs(t,e,n,o.args,i)}}static _requestJSONArgs(t,e,n,o,i){let s=W.fromString(n),a=W.fromString(o),l=0;l+=mn.sizeUInt8(),l+=mn.sizeShortString(s),l+=mn.sizeLongString(a);let d=mn.alloc(i?2:1,t,l);return d.writeUInt8(e),d.writeShortString(s),d.writeLongString(a),d.buffer}static deserializeRequestJSONArgs(t){let e=t.readUInt8(),n=t.readShortString(),o=t.readLongString();return{rpcId:e,method:n,args:JSON.parse(o)}}static _requestMixedArgs(t,e,n,o,i){let s=W.fromString(n),a=0;a+=mn.sizeUInt8(),a+=mn.sizeShortString(s),a+=mn.sizeMixedArray(o);let l=mn.alloc(i?4:3,t,a);return l.writeUInt8(e),l.writeShortString(s),l.writeMixedArray(o),l.buffer}static deserializeRequestMixedArgs(t){let e=t.readUInt8(),n=t.readShortString(),o=t.readMixedArray(),i=new Array(o.length);for(let s=0,a=o.length;s<a;s++){let l=o[s];typeof l=="string"?i[s]=JSON.parse(l):i[s]=l}return{rpcId:e,method:n,args:i}}static serializeAcknowledged(t){return mn.alloc(5,t,0).buffer}static serializeCancel(t){return mn.alloc(6,t,0).buffer}static serializeReplyOK(t,e,n){if(typeof e>"u")return this._serializeReplyOKEmpty(t);if(e instanceof W)return this._serializeReplyOKVSBuffer(t,e);if(e instanceof $t){let{jsonString:o,referencedBuffers:i}=oF(e.value,n,!0);return this._serializeReplyOKJSONWithBuffers(t,o,i)}else return this._serializeReplyOKJSON(t,cD(e,n))}static _serializeReplyOKEmpty(t){return mn.alloc(7,t,0).buffer}static _serializeReplyOKVSBuffer(t,e){let n=0;n+=mn.sizeVSBuffer(e);let o=mn.alloc(8,t,n);return o.writeVSBuffer(e),o.buffer}static deserializeReplyOKVSBuffer(t){return t.readVSBuffer()}static _serializeReplyOKJSON(t,e){let n=W.fromString(e),o=0;o+=mn.sizeLongString(n);let i=mn.alloc(9,t,o);return i.writeLongString(n),i.buffer}static _serializeReplyOKJSONWithBuffers(t,e,n){let o=W.fromString(e),i=0;i+=mn.sizeUInt32,i+=mn.sizeLongString(o);for(let a of n)i+=mn.sizeVSBuffer(a);let s=mn.alloc(10,t,i);s.writeUInt32(n.length),s.writeLongString(o);for(let a of n)s.writeBuffer(a);return s.buffer}static deserializeReplyOKJSON(t){let e=t.readLongString();return JSON.parse(e)}static deserializeReplyOKJSONWithBuffers(t,e){let n=t.readUInt32(),o=t.readLongString(),i=[];for(let s=0;s<n;++s)i.push(t.readVSBuffer());return new $t(aF(o,i,e))}static serializeReplyErr(t,e){let n=e?cD(Vi(e),null):void 0;if(typeof n!="string")return this._serializeReplyErrEmpty(t);let o=W.fromString(n),i=0;i+=mn.sizeLongString(o);let s=mn.alloc(11,t,i);return s.writeLongString(o),s.buffer}static deserializeReplyErrError(t){let e=t.readLongString();return JSON.parse(e)}static _serializeReplyErrEmpty(t){return mn.alloc(12,t,0).buffer}};function Dh(r){if(!r)return;let t=r.indexOf("+");return t<0?r:r.substr(0,t)}var II=["AI","Azure","Chat","Data Science","Debuggers","Extension Packs","Education","Formatters","Keymaps","Language Packs","Linters","Machine Learning","Notebooks","Programming Languages","SCM Providers","Snippets","Testing","Themes","Visualization","Other"];var _e=class{constructor(t){this.value=t,this._lower=t.toLowerCase()}static equals(t,e){if(typeof t>"u"||t===null)return typeof e>"u"||e===null;if(typeof e>"u"||e===null)return!1;if(typeof t=="string"||typeof e=="string"){let n=typeof t=="string"?t:t.value,o=typeof e=="string"?e:e.value;return xn(n,o)}return t._lower===e._lower}static toKey(t){return typeof t=="string"?t.toLowerCase():t._lower}},ko=class{constructor(t){this._set=new Set;if(t)for(let e of t)this.add(e)}get size(){return this._set.size}add(t){this._set.add(_e.toKey(t))}delete(t){return this._set.delete(_e.toKey(t))}has(t){return this._set.has(_e.toKey(t))}},no=class{constructor(){this._map=new Map}clear(){this._map.clear()}delete(t){this._map.delete(_e.toKey(t))}get(t){return this._map.get(_e.toKey(t))}has(t){return this._map.has(_e.toKey(t))}set(t,e){this._map.set(_e.toKey(t),e)}values(){return this._map.values()}forEach(t){this._map.forEach(t)}[Symbol.iterator](){return this._map[Symbol.iterator]()}},cp=class extends Error{constructor(t,e,n){super(`Error in extension ${_e.toKey(t)}: ${n??e.message}`,{cause:e}),this.name="ExtensionError",this.extension=t}};var nte=R("IBuiltinExtensionsScannerService");function mD(r,t){return t&&(r.stack||r.stacktrace)?p(116,null,dF(r),lF(r.stack)||lF(r.stacktrace)):dF(r)}function lF(r){return Array.isArray(r)?r.join(`
`):r}function dF(r){return r.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${r.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof r.code=="string"&&typeof r.errno=="number"&&typeof r.syscall=="string"?p(115,null,r.message):r.message||p(113,null)}function fo(r=null,t=!1){if(!r)return p(113,null);if(Array.isArray(r)){let e=nt(r),n=fo(e[0],t);return e.length>1?p(114,null,n,e.length):n}if(Pe(r))return r;if(r.detail){let e=r.detail;if(e.error)return mD(e.error,t);if(e.exception)return mD(e.exception,t)}return r.stack?mD(r,t):r.message?r.message:p(113,null)}function oo(r){return fD(r,0)}function fD(r,t){switch(typeof r){case"object":return r===null?Qs(349,t):Array.isArray(r)?x8(r,t):S8(r,t);case"string":return xI(r,t);case"boolean":return I8(r,t);case"number":return Qs(r,t);case"undefined":return Qs(937,t);default:return Qs(617,t)}}function Qs(r,t){return(t<<5)-t+r|0}function I8(r,t){return Qs(r?433:863,t)}function xI(r,t){t=Qs(149417,t);for(let e=0,n=r.length;e<n;e++)t=Qs(r.charCodeAt(e),t);return t}function x8(r,t){return t=Qs(104579,t),r.reduce((e,n)=>fD(n,e),t)}function S8(r,t){return t=Qs(181387,t),Object.keys(r).sort().reduce((e,n)=>(e=xI(n,e),fD(r[n],e)),t)}function gD(r,t,e=32){let n=e-t,o=~((1<<n)-1);return(r<<t|(o&r)>>>n)>>>0}function Rh(r,t=32){return r instanceof ArrayBuffer?mh(W.wrap(new Uint8Array(r))):(r>>>0).toString(16).padStart(t/4,"0")}var cF=class r{constructor(){this._h0=1732584193;this._h1=4023233417;this._h2=2562383102;this._h3=271733878;this._h4=3285377520;this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}static{this._bigBlock32=new DataView(new ArrayBuffer(320))}update(t){let e=t.length;if(e===0)return;let n=this._buff,o=this._buffLen,i=this._leftoverHighSurrogate,s,a;for(i!==0?(s=i,a=-1,i=0):(s=t.charCodeAt(0),a=0);;){let l=s;if(Bd(s))if(a+1<e){let d=t.charCodeAt(a+1);eh(d)?(a++,l=By(s,d)):l=65533}else{i=s;break}else eh(s)&&(l=65533);if(o=this._push(n,o,l),a++,a<e)s=t.charCodeAt(a);else break}this._buffLen=o,this._leftoverHighSurrogate=i}_push(t,e,n){return n<128?t[e++]=n:n<2048?(t[e++]=192|(n&1984)>>>6,t[e++]=128|(n&63)>>>0):n<65536?(t[e++]=224|(n&61440)>>>12,t[e++]=128|(n&4032)>>>6,t[e++]=128|(n&63)>>>0):(t[e++]=240|(n&1835008)>>>18,t[e++]=128|(n&258048)>>>12,t[e++]=128|(n&4032)>>>6,t[e++]=128|(n&63)>>>0),e>=64&&(this._step(),e-=64,this._totalLen+=64,t[0]=t[64],t[1]=t[65],t[2]=t[66]),e}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),Rh(this._h0)+Rh(this._h1)+Rh(this._h2)+Rh(this._h3)+Rh(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,this._buff.subarray(this._buffLen).fill(0),this._buffLen>56&&(this._step(),this._buff.fill(0));let t=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(t/4294967296),!1),this._buffDV.setUint32(60,t%4294967296,!1),this._step()}_step(){let t=r._bigBlock32,e=this._buffDV;for(let u=0;u<64;u+=4)t.setUint32(u,e.getUint32(u,!1),!1);for(let u=64;u<320;u+=4)t.setUint32(u,gD(t.getUint32(u-12,!1)^t.getUint32(u-32,!1)^t.getUint32(u-56,!1)^t.getUint32(u-64,!1),1),!1);let n=this._h0,o=this._h1,i=this._h2,s=this._h3,a=this._h4,l,d,c;for(let u=0;u<80;u++)u<20?(l=o&i|~o&s,d=1518500249):u<40?(l=o^i^s,d=1859775393):u<60?(l=o&i|o&s|i&s,d=2400959708):(l=o^i^s,d=3395469782),c=gD(n,5)+l+a+d+t.getUint32(u*4,!1)&4294967295,a=s,s=i,i=gD(o,30),o=n,n=c;this._h0=this._h0+n&4294967295,this._h1=this._h1+o&4294967295,this._h2=this._h2+i&4294967295,this._h3=this._h3+s&4294967295,this._h4=this._h4+a&4294967295}};var oe=R("logService"),Wo=R("loggerService");var Js=(s=>(s[s.Off=0]="Off",s[s.Trace=1]="Trace",s[s.Debug=2]="Debug",s[s.Info=3]="Info",s[s.Warning=4]="Warning",s[s.Error=5]="Error",s))(Js||{}),C8=3;function EI(r,t){return r!==0&&r<=t}function uF(r,t,e){switch(t){case 1:r.trace(e);break;case 2:r.debug(e);break;case 3:r.info(e);break;case 4:r.warn(e);break;case 5:r.error(e);break;case 0:break;default:throw new Error(`Invalid log level ${t}`)}}function up(r,t=!1){let e="";for(let n=0;n<r.length;n++){let o=r[n];if(o instanceof Error&&(o=fo(o,t)),typeof o=="object")try{o=JSON.stringify(o)}catch{}e+=(n>0?" ":"")+o}return e}var SI=class extends O{constructor(){super(...arguments);this.level=C8;this._onDidChangeLogLevel=this._register(new T)}get onDidChangeLogLevel(){return this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return EI(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}},cl=class extends SI{constructor(e){super();this.logAlways=e}checkLogLevel(e){return this.logAlways||super.checkLogLevel(e)}trace(e,...n){this.canLog(1)&&this.log(1,up([e,...n],!0))}debug(e,...n){this.canLog(2)&&this.log(2,up([e,...n]))}info(e,...n){this.canLog(3)&&this.log(3,up([e,...n]))}warn(e,...n){this.canLog(4)&&this.log(4,up([e,...n]))}error(e,...n){if(this.canLog(5))if(e instanceof Error){let o=Array.prototype.slice.call(arguments);o[0]=e.stack,this.log(5,up(o))}else this.log(5,up([e,...n]))}flush(){}};var CI=class extends SI{constructor(e){super();this.loggers=e;e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(let n of this.loggers)n.setLevel(e);super.setLevel(e)}trace(e,...n){for(let o of this.loggers)o.trace(e,...n)}debug(e,...n){for(let o of this.loggers)o.debug(e,...n)}info(e,...n){for(let o of this.loggers)o.info(e,...n)}warn(e,...n){for(let o of this.loggers)o.warn(e,...n)}error(e,...n){for(let o of this.loggers)o.error(e,...n)}flush(){for(let e of this.loggers)e.flush()}dispose(){for(let e of this.loggers)e.dispose();super.dispose()}},TI=class extends O{constructor(e,n,o){super();this.logLevel=e;this.logsHome=n;this._loggers=new Ge;this._onDidChangeLoggers=this._register(new T);this.onDidChangeLoggers=this._onDidChangeLoggers.event;this._onDidChangeLogLevel=this._register(new T);this.onDidChangeLogLevel=this._onDidChangeLogLevel.event;this._onDidChangeVisibility=this._register(new T);this.onDidChangeVisibility=this._onDidChangeVisibility.event;if(o)for(let i of o)this._loggers.set(i.resource,{logger:void 0,info:i})}getLoggerEntry(e){return Pe(e)?[...this._loggers.values()].find(n=>n.info.id===e):this._loggers.get(e)}getLogger(e){return this.getLoggerEntry(e)?.logger}createLogger(e,n){let o=this.toResource(e),i=Pe(e)?e:n?.id??oo(o.toString()).toString(16),s=this._loggers.get(o)?.logger,a=n?.logLevel==="always"?1:n?.logLevel;s||(s=this.doCreateLogger(o,a??this.getLogLevel(o)??this.logLevel,{...n,id:i}));let l={logger:s,info:{resource:o,id:i,logLevel:a,name:n?.name,hidden:n?.hidden,group:n?.group,extensionId:n?.extensionId,when:n?.when}};return this.registerLogger(l.info),this._loggers.set(o,l),s}toResource(e){return Pe(e)?St(this.logsHome,`${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`):e}setLogLevel(e,n){if(y.isUri(e)){let o=e,i=n,s=this._loggers.get(o);s&&i!==s.info.logLevel&&(s.info.logLevel=i===this.logLevel?void 0:i,s.logger?.setLevel(i),this._loggers.set(s.info.resource,s),this._onDidChangeLogLevel.fire([o,i]))}else{this.logLevel=e;for(let[o,i]of this._loggers.entries())this._loggers.get(o)?.info.logLevel===void 0&&i.logger?.setLevel(this.logLevel);this._onDidChangeLogLevel.fire(this.logLevel)}}setVisibility(e,n){let o=this.getLoggerEntry(e);o&&n!==!o.info.hidden&&(o.info.hidden=!n,this._loggers.set(o.info.resource,o),this._onDidChangeVisibility.fire([o.info.resource,n]))}getLogLevel(e){let n;return e&&(n=this._loggers.get(e)?.info.logLevel),n??this.logLevel}registerLogger(e){let n=this._loggers.get(e.resource);n?n.info.hidden!==e.hidden&&this.setVisibility(e.resource,!e.hidden):(this._loggers.set(e.resource,{info:e,logger:void 0}),this._onDidChangeLoggers.fire({added:[e],removed:[]}))}deregisterLogger(e){let n=this.toResource(e),o=this._loggers.get(n);o&&(o.logger&&o.logger.dispose(),this._loggers.delete(n),this._onDidChangeLoggers.fire({added:[],removed:[o.info]}))}*getRegisteredLoggers(){for(let e of this._loggers.values())yield e.info}getRegisteredLogger(e){return this._loggers.get(e)?.info}dispose(){this._loggers.forEach(e=>e.logger?.dispose()),this._loggers.clear(),super.dispose()}};function T8(r){switch(r){case 1:return"trace";case 2:return"debug";case 3:return"info";case 4:return"warn";case 5:return"error";case 0:return"off"}}var xte=new w("logLevel",T8(3));var Vo=class{constructor(t,e=[],n=!1){this.ctor=t,this.staticArguments=e,this.supportsDelayedInstantiation=n}};var pF=[];function qe(r,t,e){t instanceof Vo||(t=new Vo(t,[],!!e)),pF.push([r,t])}function mF(){return pF}var ul=class{constructor(...t){this._entries=new Map;for(let[e,n]of t)this.set(e,n)}set(t,e){let n=this._entries.get(t);return this._entries.set(t,e),n}has(t){return this._entries.has(t)}get(t){return this._entries.get(t)}};var Ye=R("IExtHostInitDataService");var hD=class{constructor(t,e){this.key=t;this.data=e;this.incoming=new Map;this.outgoing=new Map}},Ah=class{constructor(t){this._hashFn=t;this._nodes=new Map}roots(){let t=[];for(let e of this._nodes.values())e.outgoing.size===0&&t.push(e);return t}insertEdge(t,e){let n=this.lookupOrInsertNode(t),o=this.lookupOrInsertNode(e);n.outgoing.set(o.key,o),o.incoming.set(n.key,n)}removeNode(t){let e=this._hashFn(t);this._nodes.delete(e);for(let n of this._nodes.values())n.outgoing.delete(e),n.incoming.delete(e)}lookupOrInsertNode(t){let e=this._hashFn(t),n=this._nodes.get(e);return n||(n=new hD(e,t),this._nodes.set(e,n)),n}lookup(t){return this._nodes.get(this._hashFn(t))}isEmpty(){return this._nodes.size===0}toString(){let t=[];for(let[e,n]of this._nodes)t.push(`${e}
	(-> incoming)[${[...n.incoming.keys()].join(", ")}]
	(outgoing ->)[${[...n.outgoing.keys()].join(",")}]
`);return t.join(`
`)}findCycleSlow(){for(let[t,e]of this._nodes){let n=new Set([t]),o=this._findCycle(e,n);if(o)return o}}_findCycle(t,e){for(let[n,o]of t.outgoing){if(e.has(n))return[...e,n].join(" -> ");e.add(n);let i=this._findCycle(o,e);if(i)return i;e.delete(n)}}};var E8=!1,wI=class extends Error{constructor(t){super("cyclic dependency between services"),this.message=t.findCycleSlow()??`UNABLE to detect cycle, dumping graph: 
${t.toString()}`}},kI=class r{constructor(t=new ul,e=!1,n,o=E8){this._services=t;this._strict=e;this._parent=n;this._enableTracing=o;this._isDisposed=!1;this._servicesToMaybeDispose=new Set;this._children=new Set;this._activeInstantiations=new Set;this._services.set(Fo,this),this._globalGraph=o?n?._globalGraph??new Ah(i=>i):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,bn(this._children),this._children.clear();for(let t of this._servicesToMaybeDispose)yy(t)&&t.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error("InstantiationService has been disposed")}createChild(t,e){this._throwIfDisposed();let n=this,o=new class extends r{dispose(){n._children.delete(o),super.dispose()}}(t,this._strict,this,this._enableTracing);return this._children.add(o),e?.add(o),o}invokeFunction(t,...e){this._throwIfDisposed();let n=Mh.traceInvocation(this._enableTracing,t),o=!1;try{return t({get:s=>{if(o)throw Uu("service accessor is only valid during the invocation of its target method");let a=this._getOrCreateServiceInstance(s,n);return a||this._throwIfStrict(`[invokeFunction] unknown service '${s}'`,!1),a}},...e)}finally{o=!0,n.stop()}}createInstance(t,...e){this._throwIfDisposed();let n,o;return t instanceof Vo?(n=Mh.traceCreation(this._enableTracing,t.ctor),o=this._createInstance(t.ctor,t.staticArguments.concat(e),n)):(n=Mh.traceCreation(this._enableTracing,t),o=this._createInstance(t,e,n)),n.stop(),o}_createInstance(t,e=[],n){let o=pi.getServiceDependencies(t).sort((a,l)=>a.index-l.index),i=[];for(let a of o){let l=this._getOrCreateServiceInstance(a.id,n);l||this._throwIfStrict(`[createInstance] ${t.name} depends on UNKNOWN service ${a.id}.`,!1),i.push(l)}let s=o.length>0?o[0].index:e.length;if(e.length!==s){console.trace(`[createInstance] First service dependency of ${t.name} at position ${s+1} conflicts with ${e.length} static arguments`);let a=s-e.length;a>0?e=e.concat(new Array(a)):e=e.slice(0,s)}return Reflect.construct(t,e.concat(i))}_setCreatedServiceInstance(t,e){if(this._services.get(t)instanceof Vo)this._services.set(t,e);else if(this._parent)this._parent._setCreatedServiceInstance(t,e);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(t){let e=this._services.get(t);return!e&&this._parent?this._parent._getServiceInstanceOrDescriptor(t):e}_getOrCreateServiceInstance(t,e){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(t));let n=this._getServiceInstanceOrDescriptor(t);return n instanceof Vo?this._safeCreateAndCacheServiceInstance(t,n,e.branch(t,!0)):(e.branch(t,!1),n)}_safeCreateAndCacheServiceInstance(t,e,n){if(this._activeInstantiations.has(t))throw new Error(`illegal state - RECURSIVELY instantiating service '${t}'`);this._activeInstantiations.add(t);try{return this._createAndCacheServiceInstance(t,e,n)}finally{this._activeInstantiations.delete(t)}}_createAndCacheServiceInstance(t,e,n){let o=new Ah(l=>l.id.toString()),i=0,s=[{id:t,desc:e,_trace:n}],a=new Set;for(;s.length;){let l=s.pop();if(!a.has(String(l.id))){if(a.add(String(l.id)),o.lookupOrInsertNode(l),i++>1e3)throw new wI(o);for(let d of pi.getServiceDependencies(l.desc.ctor)){let c=this._getServiceInstanceOrDescriptor(d.id);if(c||this._throwIfStrict(`[createInstance] ${t} depends on ${d.id} which is NOT registered.`,!0),this._globalGraph?.insertEdge(String(l.id),String(d.id)),c instanceof Vo){let u={id:d.id,desc:c,_trace:l._trace.branch(d.id,!0)};o.insertEdge(l,u),s.push(u)}}}}for(;;){let l=o.roots();if(l.length===0){if(!o.isEmpty())throw new wI(o);break}for(let{data:d}of l){if(this._getServiceInstanceOrDescriptor(d.id)instanceof Vo){let u=this._createServiceInstanceWithOwner(d.id,d.desc.ctor,d.desc.staticArguments,d.desc.supportsDelayedInstantiation,d._trace);this._setCreatedServiceInstance(d.id,u)}o.removeNode(d)}}return this._getServiceInstanceOrDescriptor(t)}_createServiceInstanceWithOwner(t,e,n=[],o,i){if(this._services.get(t)instanceof Vo)return this._createServiceInstance(t,e,n,o,i,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(t,e,n,o,i);throw new Error(`illegalState - creating UNKNOWN service instance ${e.name}`)}_createServiceInstance(t,e,n=[],o,i,s){if(o){let a=new r(void 0,this._strict,this,this._enableTracing);a._globalGraphImplicitDependency=String(t);let l=new Map,d=new Zy(()=>{let c=a._createInstance(e,n,i);for(let[u,m]of l){let g=c[u];if(typeof g=="function")for(let h of m)h.disposable=g.apply(c,h.listener)}return l.clear(),s.add(c),c});return new Proxy(Object.create(null),{get(c,u){if(!d.isInitialized&&typeof u=="string"&&(u.startsWith("onDid")||u.startsWith("onWill"))){let h=l.get(u);return h||(h=new po,l.set(u,h)),(I,S,E)=>{if(d.isInitialized)return d.value[u](I,S,E);{let P={listener:[I,S,E],disposable:void 0},L=h.push(P);return G(()=>{L(),P.disposable?.dispose()})}}}if(u in c)return c[u];let m=d.value,g=m[u];return typeof g!="function"||(g=g.bind(m),c[u]=g),g},set(c,u,m){return d.value[u]=m,!0},getPrototypeOf(c){return e.prototype}})}else{let a=this._createInstance(e,n,i);return s.add(a),a}}_throwIfStrict(t,e){if(e&&console.warn(t),this._strict)throw new Error(t)}};var Mh=class r{constructor(t,e){this.type=t;this.name=e;this._start=Date.now();this._dep=[]}static{this.all=new Set}static{this._None=new class extends r{constructor(){super(0,null)}stop(){}branch(){return this}}}static traceInvocation(t,e){return t?new r(2,e.name||new Error().stack.split(`
`).slice(3,4).join(`
`)):r._None}static traceCreation(t,e){return t?new r(1,e.name):r._None}static{this._totals=0}branch(t,e){let n=new r(3,t.toString());return this._dep.push([t,e,n]),n}stop(){let t=Date.now()-this._start;r._totals+=t;let e=!1;function n(i,s){let a=[],l=new Array(i+1).join("	");for(let[d,c,u]of s._dep)if(c&&u){e=!0,a.push(`${l}CREATES -> ${d}`);let m=n(i+1,u);m&&a.push(m)}else a.push(`${l}uses -> ${d}`);return a.join(`
`)}let o=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${n(1,this)}`,`DONE, took ${t.toFixed(2)}ms (grand total ${r._totals.toFixed(2)}ms)`];(t>2||e)&&r.all.add(o.join(`
`))}};var ie=R("IExtHostRpcService"),PI=class{constructor(t){this.getProxy=t.getProxy.bind(t),this.set=t.set.bind(t),this.dispose=t.dispose.bind(t),this.assertRegistered=t.assertRegistered.bind(t),this.drain=t.drain.bind(t)}};var Zi=R("IURITransformerService"),_I=class{constructor(t){t?(this.transformIncoming=t.transformIncoming.bind(t),this.transformOutgoing=t.transformOutgoing.bind(t),this.transformOutgoingURI=t.transformOutgoingURI.bind(t),this.transformOutgoingScheme=t.transformOutgoingScheme.bind(t)):(this.transformIncoming=e=>e,this.transformOutgoing=e=>e,this.transformOutgoingURI=e=>e,this.transformOutgoingScheme=e=>e)}};var vD=class{constructor(){this._value="";this._pos=0}reset(t){return this._value=t,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos<this._value.length-1}cmp(t){let e=t.charCodeAt(0),n=this._value.charCodeAt(this._pos);return e-n}value(){return this._value[this._pos]}},bD=class{constructor(t=!0){this._caseSensitive=t}reset(t){return this._value=t,this._from=0,this._to=0,this.next()}hasNext(){return this._to<this._value.length}next(){this._from=this._to;let t=!0;for(;this._to<this._value.length;this._to++)if(this._value.charCodeAt(this._to)===46)if(t)this._from++;else break;else t=!1;return this}cmp(t){return this._caseSensitive?Vy(t,this._value,0,t.length,this._from,this._to):Vd(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}},DI=class{constructor(t=!0,e=!0){this._splitOnBackslash=t;this._caseSensitive=e}reset(t){this._from=0,this._to=0,this._value=t,this._valueLen=t.length;for(let e=t.length-1;e>=0;e--,this._valueLen--){let n=this._value.charCodeAt(e);if(!(n===47||this._splitOnBackslash&&n===92))break}return this.next()}hasNext(){return this._to<this._valueLen}next(){this._from=this._to;let t=!0;for(;this._to<this._valueLen;this._to++){let e=this._value.charCodeAt(this._to);if(e===47||this._splitOnBackslash&&e===92)if(t)this._from++;else break;else t=!1}return this}cmp(t){return this._caseSensitive?Vy(t,this._value,0,t.length,this._from,this._to):Vd(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}};var Lh=class{constructor(t,e){this._ignorePathCasing=t;this._ignoreQueryAndFragment=e;this._states=[];this._stateIdx=0}reset(t){return this._value=t,this._states=[],this._value.scheme&&this._states.push(1),this._value.authority&&this._states.push(2),this._value.path&&(this._pathIterator=new DI(!1,!this._ignorePathCasing(t)),this._pathIterator.reset(t.path),this._pathIterator.value()&&this._states.push(3)),this._ignoreQueryAndFragment(t)||(this._value.query&&this._states.push(4),this._value.fragment&&this._states.push(5)),this._stateIdx=0,this}next(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()?this._pathIterator.next():this._stateIdx+=1,this}hasNext(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()||this._stateIdx<this._states.length-1}cmp(t){if(this._states[this._stateIdx]===1)return Zf(t,this._value.scheme);if(this._states[this._stateIdx]===2)return Zf(t,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(t);if(this._states[this._stateIdx]===4)return si(t,this._value.query);if(this._states[this._stateIdx]===5)return si(t,this._value.fragment);throw new Error}value(){if(this._states[this._stateIdx]===1)return this._value.scheme;if(this._states[this._stateIdx]===2)return this._value.authority;if(this._states[this._stateIdx]===3)return this._pathIterator.value();if(this._states[this._stateIdx]===4)return this._value.query;if(this._states[this._stateIdx]===5)return this._value.fragment;throw new Error}},Ys=class r{static{this.Val=Symbol("undefined_placeholder")}static wrap(t){return t===void 0?r.Val:t}static unwrap(t){return t===r.Val?void 0:t}},pp=class{constructor(){this.height=1;this.value=void 0;this.key=void 0;this.left=void 0;this.mid=void 0;this.right=void 0}isEmpty(){return!this.left&&!this.mid&&!this.right&&this.value===void 0}rotateLeft(){let t=this.right;return this.right=t.left,t.left=this,this.updateHeight(),t.updateHeight(),t}rotateRight(){let t=this.left;return this.left=t.right,t.right=this,this.updateHeight(),t.updateHeight(),t}updateHeight(){this.height=1+Math.max(this.heightLeft,this.heightRight)}balanceFactor(){return this.heightRight-this.heightLeft}get heightLeft(){return this.left?.height??0}get heightRight(){return this.right?.height??0}};var Bo=class r{static forUris(t=()=>!1,e=()=>!1){return new r(new Lh(t,e))}static forPaths(t=!1){return new r(new DI(void 0,!t))}static forStrings(){return new r(new vD)}static forConfigKeys(){return new r(new bD)}constructor(t){this._iter=t}clear(){this._root=void 0}fill(t,e){if(e){let n=e.slice(0);Wk(n);for(let o of n)this.set(o,t)}else{let n=t.slice(0);Wk(n);for(let o of n)this.set(o[0],o[1])}}set(t,e){let n=this._iter.reset(t),o;this._root||(this._root=new pp,this._root.segment=n.value());let i=[];for(o=this._root;;){let a=n.cmp(o.segment);if(a>0)o.left||(o.left=new pp,o.left.segment=n.value()),i.push([-1,o]),o=o.left;else if(a<0)o.right||(o.right=new pp,o.right.segment=n.value()),i.push([1,o]),o=o.right;else if(n.hasNext())n.next(),o.mid||(o.mid=new pp,o.mid.segment=n.value()),i.push([0,o]),o=o.mid;else break}let s=Ys.unwrap(o.value);o.value=Ys.wrap(e),o.key=t;for(let a=i.length-1;a>=0;a--){let l=i[a][1];l.updateHeight();let d=l.balanceFactor();if(d<-1||d>1){let c=i[a][0],u=i[a+1][0];if(c===1&&u===1)i[a][1]=l.rotateLeft();else if(c===-1&&u===-1)i[a][1]=l.rotateRight();else if(c===1&&u===-1)l.right=i[a+1][1]=i[a+1][1].rotateRight(),i[a][1]=l.rotateLeft();else if(c===-1&&u===1)l.left=i[a+1][1]=i[a+1][1].rotateLeft(),i[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(i[a-1][0]){case-1:i[a-1][1].left=i[a][1];break;case 1:i[a-1][1].right=i[a][1];break;case 0:i[a-1][1].mid=i[a][1];break}else this._root=i[0][1]}}return s}get(t){return Ys.unwrap(this._getNode(t)?.value)}_getNode(t){let e=this._iter.reset(t),n=this._root;for(;n;){let o=e.cmp(n.segment);if(o>0)n=n.left;else if(o<0)n=n.right;else if(e.hasNext())e.next(),n=n.mid;else break}return n}has(t){let e=this._getNode(t);return!(e?.value===void 0&&e?.mid===void 0)}delete(t){return this._delete(t,!1)}deleteSuperstr(t){return this._delete(t,!0)}_delete(t,e){let n=this._iter.reset(t),o=[],i=this._root;for(;i;){let s=n.cmp(i.segment);if(s>0)o.push([-1,i]),i=i.left;else if(s<0)o.push([1,i]),i=i.right;else if(n.hasNext())n.next(),o.push([0,i]),i=i.mid;else break}if(i){if(e?(i.left=void 0,i.mid=void 0,i.right=void 0,i.height=1):(i.key=void 0,i.value=void 0),!i.mid&&!i.value)if(i.left&&i.right){let s=[[1,i]],a=this._min(i.right,s);if(a.key){i.key=a.key,i.value=a.value,i.segment=a.segment;let l=a.right;if(s.length>1){let[c,u]=s[s.length-1];switch(c){case-1:u.left=l;break;case 0:Wu(!1);case 1:Wu(!1)}}else i.right=l;let d=this._balanceByStack(s);if(o.length>0){let[c,u]=o[o.length-1];switch(c){case-1:u.left=d;break;case 0:u.mid=d;break;case 1:u.right=d;break}}else this._root=d}}else{let s=i.left??i.right;if(o.length>0){let[a,l]=o[o.length-1];switch(a){case-1:l.left=s;break;case 0:l.mid=s;break;case 1:l.right=s;break}}else this._root=s}this._root=this._balanceByStack(o)??this._root}}_min(t,e){for(;t.left;)e.push([-1,t]),t=t.left;return t}_balanceByStack(t){for(let e=t.length-1;e>=0;e--){let n=t[e][1];n.updateHeight();let o=n.balanceFactor();if(o>1?(n.right.balanceFactor()>=0||(n.right=n.right.rotateRight()),t[e][1]=n.rotateLeft()):o<-1&&(n.left.balanceFactor()<=0||(n.left=n.left.rotateLeft()),t[e][1]=n.rotateRight()),e>0)switch(t[e-1][0]){case-1:t[e-1][1].left=t[e][1];break;case 1:t[e-1][1].right=t[e][1];break;case 0:t[e-1][1].mid=t[e][1];break}else return t[0][1]}}findSubstr(t){let e=this._iter.reset(t),n=this._root,o;for(;n;){let i=e.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else if(e.hasNext())e.next(),o=Ys.unwrap(n.value)||o,n=n.mid;else break}return n&&Ys.unwrap(n.value)||o}findSuperstr(t){return this._findSuperstrOrElement(t,!1)}_findSuperstrOrElement(t,e){let n=this._iter.reset(t),o=this._root;for(;o;){let i=n.cmp(o.segment);if(i>0)o=o.left;else if(i<0)o=o.right;else if(n.hasNext())n.next(),o=o.mid;else return o.mid?this._entries(o.mid):e?Ys.unwrap(o.value):void 0}}hasElementOrSubtree(t){return this._findSuperstrOrElement(t,!0)!==void 0}forEach(t){for(let[e,n]of this)t(n,e)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(t){let e=[];return this._dfsEntries(t,e),e[Symbol.iterator]()}_dfsEntries(t,e){t&&(t.left&&this._dfsEntries(t.left,e),t.value!==void 0&&e.push([t.key,Ys.unwrap(t.value)]),t.mid&&this._dfsEntries(t.mid,e),t.right&&this._dfsEntries(t.right,e))}_isBalanced(){let t=e=>{if(!e)return!0;let n=e.balanceFactor();return n<-1||n>1?!1:t(e.left)&&t(e.right)};return t(this._root)}};function gF(r,t,e){return Math.min(Math.max(r,t),e)}var RI=class{constructor(){this._next=0}getNext(){return this._next++}},AI=class{constructor(){this._n=1;this._val=0}update(t){return this._val=this._val+(t-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}};var tc=R("fileService");function nc(r){return r.create===!0}var oc=(o=>(o[o.Unknown=0]="Unknown",o[o.File=1]="File",o[o.Directory=2]="Directory",o[o.SymbolicLink=64]="SymbolicLink",o))(oc||{}),rc=(n=>(n[n.Readonly=1]="Readonly",n[n.Locked=2]="Locked",n[n.Executable=4]="Executable",n))(rc||{});var pl=class r extends Error{constructor(e,n){super(e);this.code=n}static create(e,n){let o=new r(e.toString(),n);return yD(o,n),o}};function gi(r,t){return pl.create(r,t)}function hF(r){return r||gi(p(2078,null),"Unknown")}function yD(r,t){return r.name=t?`${t} (FileSystemError)`:"FileSystemError",r}function mp(r){if(!r)return"Unknown";if(r instanceof pl)return r.code;let t=/^(.+) \(FileSystemError\)$/.exec(r.name);if(!t)return"Unknown";switch(t[1]){case"EntryExists":return"EntryExists";case"EntryIsADirectory":return"EntryIsADirectory";case"EntryNotADirectory":return"EntryNotADirectory";case"EntryNotFound":return"EntryNotFound";case"EntryTooLarge":return"EntryTooLarge";case"EntryWriteLocked":return"EntryWriteLocked";case"NoPermissions":return"NoPermissions";case"Unavailable":return"Unavailable"}return"Unknown"}function vF(r){if(r instanceof ml)return r.fileOperationResult;switch(mp(r)){case"EntryNotFound":return 1;case"EntryIsADirectory":return 0;case"EntryNotADirectory":return 9;case"EntryWriteLocked":return 5;case"NoPermissions":return 6;case"EntryExists":return 4;case"EntryTooLarge":return 7;default:return 10}}var fF=class r{constructor(t,e){this.ignorePathCasing=e;this.correlationId=void 0;this.added=new pt(()=>{let t=Bo.forUris(()=>this.ignorePathCasing);return t.fill(this.rawAdded.map(e=>[e,!0])),t});this.updated=new pt(()=>{let t=Bo.forUris(()=>this.ignorePathCasing);return t.fill(this.rawUpdated.map(e=>[e,!0])),t});this.deleted=new pt(()=>{let t=Bo.forUris(()=>this.ignorePathCasing);return t.fill(this.rawDeleted.map(e=>[e,!0])),t});this.rawAdded=[];this.rawUpdated=[];this.rawDeleted=[];for(let n of t){switch(n.type){case 1:this.rawAdded.push(n.resource);break;case 0:this.rawUpdated.push(n.resource);break;case 2:this.rawDeleted.push(n.resource);break}this.correlationId!==r.MIXED_CORRELATION&&(typeof n.cId=="number"?this.correlationId===void 0?this.correlationId=n.cId:this.correlationId!==n.cId&&(this.correlationId=r.MIXED_CORRELATION):this.correlationId!==void 0&&(this.correlationId=r.MIXED_CORRELATION))}}static{this.MIXED_CORRELATION=null}contains(t,...e){return this.doContains(t,{includeChildren:!1},...e)}affects(t,...e){return this.doContains(t,{includeChildren:!0},...e)}doContains(t,e,...n){if(!t)return!1;let o=n.length>0;return!!((!o||n.includes(1))&&(this.added.value.get(t)||e.includeChildren&&this.added.value.findSuperstr(t))||(!o||n.includes(0))&&(this.updated.value.get(t)||e.includeChildren&&this.updated.value.findSuperstr(t))||(!o||n.includes(2))&&(this.deleted.value.findSubstr(t)||e.includeChildren&&this.deleted.value.findSuperstr(t)))}gotAdded(){return this.rawAdded.length>0}gotDeleted(){return this.rawDeleted.length>0}gotUpdated(){return this.rawUpdated.length>0}correlates(t){return this.correlationId===t}hasCorrelation(){return typeof this.correlationId=="number"}};function bF(r,t,e){return!r||!t||r===t||t.length>r.length?!1:(t.charAt(t.length-1)!==bt&&(t+=bt),e?qs(r,t):r.indexOf(t)===0)}var ml=class extends Error{constructor(e,n,o){super(e);this.fileOperationResult=n;this.options=o}};var yF="";function ID(r){if(!(typeof r.size!="number"||typeof r.mtime!="number"))return r.mtime.toString(29)+r.size.toString(31)}var ec=class r{static{this.KB=1024}static{this.MB=r.KB*r.KB}static{this.GB=r.MB*r.KB}static{this.TB=r.GB*r.KB}static formatSize(t){return Rn(t)||(t=0),t<r.KB?p(2073,null,t.toFixed(0)):t<r.MB?p(2075,null,(t/r.KB).toFixed(2)):t<r.GB?p(2076,null,(t/r.MB).toFixed(2)):t<r.TB?p(2074,null,(t/r.GB).toFixed(2)):p(2077,null,(t/r.TB).toFixed(2))}};var LI=(o=>(o[o.Ignore=0]="Ignore",o[o.Info=1]="Info",o[o.Warning=2]="Warning",o[o.Error=3]="Error",o))(LI||{});(a=>{let r="error",t="warning",e="warn",n="info",o="ignore";function i(l){return l?xn(r,l)?3:xn(t,l)||xn(e,l)?2:xn(n,l)?1:0:0}a.fromValue=i;function s(l){switch(l){case 3:return r;case 2:return t;case 1:return n;default:return o}}a.toString=s})(LI||={});var Xe=LI;var IF=Xe,yne=R("notificationService");var es=R("contextService");function xF(r){let t=r;return typeof t?.id=="string"&&y.isUri(t.uri)}function SF(r){let t=r;return typeof t?.id=="string"&&y.isUri(t.configPath)}var OI=class{constructor(t,e,n,o,i){this._id=t;this._transient=n;this._configuration=o;this.ignorePathCasing=i;this.foldersMap=Bo.forUris(this.ignorePathCasing,()=>!0),this.folders=e}get folders(){return this._folders}set folders(t){this._folders=t,this.updateFoldersMap()}update(t){this._id=t.id,this._configuration=t.configuration,this._transient=t.transient,this.ignorePathCasing=t.ignorePathCasing,this.folders=t.folders}get id(){return this._id}get transient(){return this._transient}get configuration(){return this._configuration}set configuration(t){this._configuration=t}getFolder(t){return t&&this.foldersMap.findSubstr(t)||null}updateFoldersMap(){this.foldersMap=Bo.forUris(this.ignorePathCasing,()=>!0);for(let t of this.folders)this.foldersMap.set(t.uri,t)}toJSON(){return{id:this.id,folders:this.folders,transient:this.transient,configuration:this.configuration}}},ic=class{constructor(t,e){this.raw=e;this.uri=t.uri,this.index=t.index,this.name=t.name}toResource(t){return St(this.uri,t)}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}};function Oh(r){return new ic({uri:r,index:0,name:oh(r)},{uri:r.toString()})}var CF="code-workspace",w8=`.${CF}`,_ne=[{name:p(2749,null),extensions:[CF]}];function TF(r){return(typeof r=="string"?Xa(r):Qy(r))===w8}var NI=class{constructor(){this._systemSchemes=new Set(Object.keys(V));this._providerInfo=new Map;this.extUri=new Ji(t=>{let e=this._providerInfo.get(t.scheme);return!(e===void 0||e&1024)})}$acceptProviderInfos(t,e){e===null?this._providerInfo.delete(t.scheme):this._providerInfo.set(t.scheme,e)}isFreeScheme(t){return!this._providerInfo.has(t)&&!this._systemSchemes.has(t)}getCapabilities(t){return this._providerInfo.get(t)}},Ur=R("IExtHostFileSystemInfo");var UI=Object.freeze({create:r=>Dr(r.map(t=>t.toString())).join(`\r
`),split:r=>r.split(`\r
`),parse:r=>UI.split(r).filter(t=>!t.startsWith("#"))});var Vne=new Uint32Array(10);var Bne=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),$ne=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),zne=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),qne=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);function wF(...r){return function(t,e){for(let n=0,o=r.length;n<o;n++){let i=r[n](t,e);if(i)return i}return null}}var eoe=kF.bind(void 0,!1),HI=kF.bind(void 0,!0);function kF(r,t,e){if(!e||e.length<t.length)return null;let n;return r?n=qs(e,t):n=e.indexOf(t)===0,n?t.length>0?[{start:0,end:t.length}]:[]:null}function k8(r,t){if(r.length>t.length)return null;let e=t.toLowerCase().indexOf(r.toLowerCase());return e===-1?null:[{start:e,end:e+r.length}]}function P8(r,t){return r.length>t.length?null:xD(r.toLowerCase(),t.toLowerCase(),0,0)}function xD(r,t,e,n){if(e===r.length)return[];if(n===t.length)return null;if(r[e]===t[n]){let o=null;return(o=xD(r,t,e+1,n+1))?_F({start:n,end:n+1},o):null}return xD(r,t,e,n+1)}function CD(r){return 97<=r&&r<=122}function gp(r){return 65<=r&&r<=90}function TD(r){return 48<=r&&r<=57}function _8(r){return r===32||r===9||r===10||r===13}var D8=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(r=>D8.add(r.charCodeAt(0)));function PF(r){return CD(r)||gp(r)||TD(r)}function _F(r,t){return t.length===0?t=[r]:r.end===t[0].start?t[0].start=r.start:t.unshift(r),t}function DF(r,t){for(let e=t;e<r.length;e++){let n=r.charCodeAt(e);if(gp(n)||TD(n)||e>0&&!PF(r.charCodeAt(e-1)))return e}return r.length}function SD(r,t,e,n){if(e===r.length)return[];if(n===t.length)return null;if(r[e]!==t[n].toLowerCase())return null;{let o=null,i=n+1;for(o=SD(r,t,e+1,n+1);!o&&(i=DF(t,i))<t.length;)o=SD(r,t,e+1,i),i++;return o===null?null:_F({start:n,end:n+1},o)}}function R8(r){let t=0,e=0,n=0,o=0,i=0;for(let c=0;c<r.length;c++)i=r.charCodeAt(c),gp(i)&&t++,CD(i)&&e++,PF(i)&&n++,TD(i)&&o++;let s=t/r.length,a=e/r.length,l=n/r.length,d=o/r.length;return{upperPercent:s,lowerPercent:a,alphaPercent:l,numericPercent:d}}function A8(r){let{upperPercent:t,lowerPercent:e}=r;return e===0&&t>.6}function M8(r){let{upperPercent:t,lowerPercent:e,alphaPercent:n,numericPercent:o}=r;return e>.2&&t<.8&&n>.6&&o<.2}function L8(r){let t=0,e=0,n=0,o=0;for(let i=0;i<r.length;i++)n=r.charCodeAt(i),gp(n)&&t++,CD(n)&&e++,_8(n)&&o++;return(t===0||e===0)&&o===0?r.length<=30:t<=5}function RF(r,t){if(!t||(t=t.trim(),t.length===0)||!L8(r))return null;t.length>60&&(t=t.substring(0,60));let e=R8(t);if(!M8(e)){if(!A8(e))return null;t=t.toLowerCase()}let n=null,o=0;for(r=r.toLowerCase();o<t.length&&(n=SD(r,t,0,o))===null;)o=DF(t,o+1);return n}var toe=wF(HI,RF,k8),noe=wF(HI,RF,P8),ooe=new Ar(1e4);var FI=128;function ED(){let r=[],t=[];for(let e=0;e<=FI;e++)t[e]=0;for(let e=0;e<=FI;e++)r.push(t.slice(0));return r}function AF(r){let t=[];for(let e=0;e<=r;e++)t[e]=0;return t}var roe=AF(2*FI),ioe=AF(2*FI),soe=ED(),aoe=ED(),loe=ED();var O8;(e=>{e.Default=[-100,0];function t(n){return!n||n.length===2&&n[0]===-100&&n[1]===0}e.isDefault=t})(O8||={});var EF=class{constructor(t,e){this.firstMatchCanBeWeak=t;this.boostFullMatch=e}static{this.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}}};var wD=Object.create(null);function v(r,t){if(Pe(t)){let e=wD[t];if(e===void 0)throw new Error(`${r} references an unknown codicon: ${t}`);t=e}return wD[r]=t,{id:r}}function MF(){return wD}var LF={add:v("add",6e4),plus:v("plus",6e4),gistNew:v("gist-new",6e4),repoCreate:v("repo-create",6e4),lightbulb:v("lightbulb",60001),lightBulb:v("light-bulb",60001),repo:v("repo",60002),repoDelete:v("repo-delete",60002),gistFork:v("gist-fork",60003),repoForked:v("repo-forked",60003),gitPullRequest:v("git-pull-request",60004),gitPullRequestAbandoned:v("git-pull-request-abandoned",60004),recordKeys:v("record-keys",60005),keyboard:v("keyboard",60005),tag:v("tag",60006),gitPullRequestLabel:v("git-pull-request-label",60006),tagAdd:v("tag-add",60006),tagRemove:v("tag-remove",60006),person:v("person",60007),personFollow:v("person-follow",60007),personOutline:v("person-outline",60007),personFilled:v("person-filled",60007),sourceControl:v("source-control",60008),mirror:v("mirror",60009),mirrorPublic:v("mirror-public",60009),star:v("star",60010),starAdd:v("star-add",60010),starDelete:v("star-delete",60010),starEmpty:v("star-empty",60010),comment:v("comment",60011),commentAdd:v("comment-add",60011),alert:v("alert",60012),warning:v("warning",60012),search:v("search",60013),searchSave:v("search-save",60013),logOut:v("log-out",60014),signOut:v("sign-out",60014),logIn:v("log-in",60015),signIn:v("sign-in",60015),eye:v("eye",60016),eyeUnwatch:v("eye-unwatch",60016),eyeWatch:v("eye-watch",60016),circleFilled:v("circle-filled",60017),primitiveDot:v("primitive-dot",60017),closeDirty:v("close-dirty",60017),debugBreakpoint:v("debug-breakpoint",60017),debugBreakpointDisabled:v("debug-breakpoint-disabled",60017),debugHint:v("debug-hint",60017),terminalDecorationSuccess:v("terminal-decoration-success",60017),primitiveSquare:v("primitive-square",60018),edit:v("edit",60019),pencil:v("pencil",60019),info:v("info",60020),issueOpened:v("issue-opened",60020),gistPrivate:v("gist-private",60021),gitForkPrivate:v("git-fork-private",60021),lock:v("lock",60021),mirrorPrivate:v("mirror-private",60021),close:v("close",60022),removeClose:v("remove-close",60022),x:v("x",60022),repoSync:v("repo-sync",60023),sync:v("sync",60023),clone:v("clone",60024),desktopDownload:v("desktop-download",60024),beaker:v("beaker",60025),microscope:v("microscope",60025),vm:v("vm",60026),deviceDesktop:v("device-desktop",60026),file:v("file",60027),more:v("more",60028),ellipsis:v("ellipsis",60028),kebabHorizontal:v("kebab-horizontal",60028),mailReply:v("mail-reply",60029),reply:v("reply",60029),organization:v("organization",60030),organizationFilled:v("organization-filled",60030),organizationOutline:v("organization-outline",60030),newFile:v("new-file",60031),fileAdd:v("file-add",60031),newFolder:v("new-folder",60032),fileDirectoryCreate:v("file-directory-create",60032),trash:v("trash",60033),trashcan:v("trashcan",60033),history:v("history",60034),clock:v("clock",60034),folder:v("folder",60035),fileDirectory:v("file-directory",60035),symbolFolder:v("symbol-folder",60035),logoGithub:v("logo-github",60036),markGithub:v("mark-github",60036),github:v("github",60036),terminal:v("terminal",60037),console:v("console",60037),repl:v("repl",60037),zap:v("zap",60038),symbolEvent:v("symbol-event",60038),error:v("error",60039),stop:v("stop",60039),variable:v("variable",60040),symbolVariable:v("symbol-variable",60040),array:v("array",60042),symbolArray:v("symbol-array",60042),symbolModule:v("symbol-module",60043),symbolPackage:v("symbol-package",60043),symbolNamespace:v("symbol-namespace",60043),symbolObject:v("symbol-object",60043),symbolMethod:v("symbol-method",60044),symbolFunction:v("symbol-function",60044),symbolConstructor:v("symbol-constructor",60044),symbolBoolean:v("symbol-boolean",60047),symbolNull:v("symbol-null",60047),symbolNumeric:v("symbol-numeric",60048),symbolNumber:v("symbol-number",60048),symbolStructure:v("symbol-structure",60049),symbolStruct:v("symbol-struct",60049),symbolParameter:v("symbol-parameter",60050),symbolTypeParameter:v("symbol-type-parameter",60050),symbolKey:v("symbol-key",60051),symbolText:v("symbol-text",60051),symbolReference:v("symbol-reference",60052),goToFile:v("go-to-file",60052),symbolEnum:v("symbol-enum",60053),symbolValue:v("symbol-value",60053),symbolRuler:v("symbol-ruler",60054),symbolUnit:v("symbol-unit",60054),activateBreakpoints:v("activate-breakpoints",60055),archive:v("archive",60056),arrowBoth:v("arrow-both",60057),arrowDown:v("arrow-down",60058),arrowLeft:v("arrow-left",60059),arrowRight:v("arrow-right",60060),arrowSmallDown:v("arrow-small-down",60061),arrowSmallLeft:v("arrow-small-left",60062),arrowSmallRight:v("arrow-small-right",60063),arrowSmallUp:v("arrow-small-up",60064),arrowUp:v("arrow-up",60065),bell:v("bell",60066),bold:v("bold",60067),book:v("book",60068),bookmark:v("bookmark",60069),debugBreakpointConditionalUnverified:v("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:v("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:v("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:v("debug-breakpoint-data-unverified",60072),debugBreakpointData:v("debug-breakpoint-data",60073),debugBreakpointDataDisabled:v("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:v("debug-breakpoint-log-unverified",60074),debugBreakpointLog:v("debug-breakpoint-log",60075),debugBreakpointLogDisabled:v("debug-breakpoint-log-disabled",60075),briefcase:v("briefcase",60076),broadcast:v("broadcast",60077),browser:v("browser",60078),bug:v("bug",60079),calendar:v("calendar",60080),caseSensitive:v("case-sensitive",60081),check:v("check",60082),checklist:v("checklist",60083),chevronDown:v("chevron-down",60084),chevronLeft:v("chevron-left",60085),chevronRight:v("chevron-right",60086),chevronUp:v("chevron-up",60087),chromeClose:v("chrome-close",60088),chromeMaximize:v("chrome-maximize",60089),chromeMinimize:v("chrome-minimize",60090),chromeRestore:v("chrome-restore",60091),circleOutline:v("circle-outline",60092),circle:v("circle",60092),debugBreakpointUnverified:v("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:v("terminal-decoration-incomplete",60092),circleSlash:v("circle-slash",60093),circuitBoard:v("circuit-board",60094),clearAll:v("clear-all",60095),clippy:v("clippy",60096),closeAll:v("close-all",60097),cloudDownload:v("cloud-download",60098),cloudUpload:v("cloud-upload",60099),code:v("code",60100),collapseAll:v("collapse-all",60101),colorMode:v("color-mode",60102),commentDiscussion:v("comment-discussion",60103),creditCard:v("credit-card",60105),dash:v("dash",60108),dashboard:v("dashboard",60109),database:v("database",60110),debugContinue:v("debug-continue",60111),debugDisconnect:v("debug-disconnect",60112),debugPause:v("debug-pause",60113),debugRestart:v("debug-restart",60114),debugStart:v("debug-start",60115),debugStepInto:v("debug-step-into",60116),debugStepOut:v("debug-step-out",60117),debugStepOver:v("debug-step-over",60118),debugStop:v("debug-stop",60119),debug:v("debug",60120),deviceCameraVideo:v("device-camera-video",60121),deviceCamera:v("device-camera",60122),deviceMobile:v("device-mobile",60123),diffAdded:v("diff-added",60124),diffIgnored:v("diff-ignored",60125),diffModified:v("diff-modified",60126),diffRemoved:v("diff-removed",60127),diffRenamed:v("diff-renamed",60128),diff:v("diff",60129),diffSidebyside:v("diff-sidebyside",60129),discard:v("discard",60130),editorLayout:v("editor-layout",60131),emptyWindow:v("empty-window",60132),exclude:v("exclude",60133),extensions:v("extensions",60134),eyeClosed:v("eye-closed",60135),fileBinary:v("file-binary",60136),fileCode:v("file-code",60137),fileMedia:v("file-media",60138),filePdf:v("file-pdf",60139),fileSubmodule:v("file-submodule",60140),fileSymlinkDirectory:v("file-symlink-directory",60141),fileSymlinkFile:v("file-symlink-file",60142),fileZip:v("file-zip",60143),files:v("files",60144),filter:v("filter",60145),flame:v("flame",60146),foldDown:v("fold-down",60147),foldUp:v("fold-up",60148),fold:v("fold",60149),folderActive:v("folder-active",60150),folderOpened:v("folder-opened",60151),gear:v("gear",60152),gift:v("gift",60153),gistSecret:v("gist-secret",60154),gist:v("gist",60155),gitCommit:v("git-commit",60156),gitCompare:v("git-compare",60157),compareChanges:v("compare-changes",60157),gitMerge:v("git-merge",60158),githubAction:v("github-action",60159),githubAlt:v("github-alt",60160),globe:v("globe",60161),grabber:v("grabber",60162),graph:v("graph",60163),gripper:v("gripper",60164),heart:v("heart",60165),home:v("home",60166),horizontalRule:v("horizontal-rule",60167),hubot:v("hubot",60168),inbox:v("inbox",60169),issueReopened:v("issue-reopened",60171),issues:v("issues",60172),italic:v("italic",60173),jersey:v("jersey",60174),json:v("json",60175),bracket:v("bracket",60175),kebabVertical:v("kebab-vertical",60176),key:v("key",60177),law:v("law",60178),lightbulbAutofix:v("lightbulb-autofix",60179),linkExternal:v("link-external",60180),link:v("link",60181),listOrdered:v("list-ordered",60182),listUnordered:v("list-unordered",60183),liveShare:v("live-share",60184),loading:v("loading",60185),location:v("location",60186),mailRead:v("mail-read",60187),mail:v("mail",60188),markdown:v("markdown",60189),megaphone:v("megaphone",60190),mention:v("mention",60191),milestone:v("milestone",60192),gitPullRequestMilestone:v("git-pull-request-milestone",60192),mortarBoard:v("mortar-board",60193),move:v("move",60194),multipleWindows:v("multiple-windows",60195),mute:v("mute",60196),noNewline:v("no-newline",60197),note:v("note",60198),octoface:v("octoface",60199),openPreview:v("open-preview",60200),package:v("package",60201),paintcan:v("paintcan",60202),pin:v("pin",60203),play:v("play",60204),run:v("run",60204),plug:v("plug",60205),preserveCase:v("preserve-case",60206),preview:v("preview",60207),project:v("project",60208),pulse:v("pulse",60209),question:v("question",60210),quote:v("quote",60211),radioTower:v("radio-tower",60212),reactions:v("reactions",60213),references:v("references",60214),refresh:v("refresh",60215),regex:v("regex",60216),remoteExplorer:v("remote-explorer",60217),remote:v("remote",60218),remove:v("remove",60219),replaceAll:v("replace-all",60220),replace:v("replace",60221),repoClone:v("repo-clone",60222),repoForcePush:v("repo-force-push",60223),repoPull:v("repo-pull",60224),repoPush:v("repo-push",60225),report:v("report",60226),requestChanges:v("request-changes",60227),rocket:v("rocket",60228),rootFolderOpened:v("root-folder-opened",60229),rootFolder:v("root-folder",60230),rss:v("rss",60231),ruby:v("ruby",60232),saveAll:v("save-all",60233),saveAs:v("save-as",60234),save:v("save",60235),screenFull:v("screen-full",60236),screenNormal:v("screen-normal",60237),searchStop:v("search-stop",60238),server:v("server",60240),settingsGear:v("settings-gear",60241),settings:v("settings",60242),shield:v("shield",60243),smiley:v("smiley",60244),sortPrecedence:v("sort-precedence",60245),splitHorizontal:v("split-horizontal",60246),splitVertical:v("split-vertical",60247),squirrel:v("squirrel",60248),starFull:v("star-full",60249),starHalf:v("star-half",60250),symbolClass:v("symbol-class",60251),symbolColor:v("symbol-color",60252),symbolConstant:v("symbol-constant",60253),symbolEnumMember:v("symbol-enum-member",60254),symbolField:v("symbol-field",60255),symbolFile:v("symbol-file",60256),symbolInterface:v("symbol-interface",60257),symbolKeyword:v("symbol-keyword",60258),symbolMisc:v("symbol-misc",60259),symbolOperator:v("symbol-operator",60260),symbolProperty:v("symbol-property",60261),wrench:v("wrench",60261),wrenchSubaction:v("wrench-subaction",60261),symbolSnippet:v("symbol-snippet",60262),tasklist:v("tasklist",60263),telescope:v("telescope",60264),textSize:v("text-size",60265),threeBars:v("three-bars",60266),thumbsdown:v("thumbsdown",60267),thumbsup:v("thumbsup",60268),tools:v("tools",60269),triangleDown:v("triangle-down",60270),triangleLeft:v("triangle-left",60271),triangleRight:v("triangle-right",60272),triangleUp:v("triangle-up",60273),twitter:v("twitter",60274),unfold:v("unfold",60275),unlock:v("unlock",60276),unmute:v("unmute",60277),unverified:v("unverified",60278),verified:v("verified",60279),versions:v("versions",60280),vmActive:v("vm-active",60281),vmOutline:v("vm-outline",60282),vmRunning:v("vm-running",60283),watch:v("watch",60284),whitespace:v("whitespace",60285),wholeWord:v("whole-word",60286),window:v("window",60287),wordWrap:v("word-wrap",60288),zoomIn:v("zoom-in",60289),zoomOut:v("zoom-out",60290),listFilter:v("list-filter",60291),listFlat:v("list-flat",60292),listSelection:v("list-selection",60293),selection:v("selection",60293),listTree:v("list-tree",60294),debugBreakpointFunctionUnverified:v("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:v("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:v("debug-breakpoint-function-disabled",60296),debugStackframeActive:v("debug-stackframe-active",60297),circleSmallFilled:v("circle-small-filled",60298),debugStackframeDot:v("debug-stackframe-dot",60298),terminalDecorationMark:v("terminal-decoration-mark",60298),debugStackframe:v("debug-stackframe",60299),debugStackframeFocused:v("debug-stackframe-focused",60299),debugBreakpointUnsupported:v("debug-breakpoint-unsupported",60300),symbolString:v("symbol-string",60301),debugReverseContinue:v("debug-reverse-continue",60302),debugStepBack:v("debug-step-back",60303),debugRestartFrame:v("debug-restart-frame",60304),debugAlt:v("debug-alt",60305),callIncoming:v("call-incoming",60306),callOutgoing:v("call-outgoing",60307),menu:v("menu",60308),expandAll:v("expand-all",60309),feedback:v("feedback",60310),gitPullRequestReviewer:v("git-pull-request-reviewer",60310),groupByRefType:v("group-by-ref-type",60311),ungroupByRefType:v("ungroup-by-ref-type",60312),account:v("account",60313),gitPullRequestAssignee:v("git-pull-request-assignee",60313),bellDot:v("bell-dot",60314),debugConsole:v("debug-console",60315),library:v("library",60316),output:v("output",60317),runAll:v("run-all",60318),syncIgnored:v("sync-ignored",60319),pinned:v("pinned",60320),githubInverted:v("github-inverted",60321),serverProcess:v("server-process",60322),serverEnvironment:v("server-environment",60323),pass:v("pass",60324),issueClosed:v("issue-closed",60324),stopCircle:v("stop-circle",60325),playCircle:v("play-circle",60326),record:v("record",60327),debugAltSmall:v("debug-alt-small",60328),vmConnect:v("vm-connect",60329),cloud:v("cloud",60330),merge:v("merge",60331),export:v("export",60332),graphLeft:v("graph-left",60333),magnet:v("magnet",60334),notebook:v("notebook",60335),redo:v("redo",60336),checkAll:v("check-all",60337),pinnedDirty:v("pinned-dirty",60338),passFilled:v("pass-filled",60339),circleLargeFilled:v("circle-large-filled",60340),circleLarge:v("circle-large",60341),circleLargeOutline:v("circle-large-outline",60341),combine:v("combine",60342),gather:v("gather",60342),table:v("table",60343),variableGroup:v("variable-group",60344),typeHierarchy:v("type-hierarchy",60345),typeHierarchySub:v("type-hierarchy-sub",60346),typeHierarchySuper:v("type-hierarchy-super",60347),gitPullRequestCreate:v("git-pull-request-create",60348),runAbove:v("run-above",60349),runBelow:v("run-below",60350),notebookTemplate:v("notebook-template",60351),debugRerun:v("debug-rerun",60352),workspaceTrusted:v("workspace-trusted",60353),workspaceUntrusted:v("workspace-untrusted",60354),workspaceUnknown:v("workspace-unknown",60355),terminalCmd:v("terminal-cmd",60356),terminalDebian:v("terminal-debian",60357),terminalLinux:v("terminal-linux",60358),terminalPowershell:v("terminal-powershell",60359),terminalTmux:v("terminal-tmux",60360),terminalUbuntu:v("terminal-ubuntu",60361),terminalBash:v("terminal-bash",60362),arrowSwap:v("arrow-swap",60363),copy:v("copy",60364),personAdd:v("person-add",60365),filterFilled:v("filter-filled",60366),wand:v("wand",60367),debugLineByLine:v("debug-line-by-line",60368),inspect:v("inspect",60369),layers:v("layers",60370),layersDot:v("layers-dot",60371),layersActive:v("layers-active",60372),compass:v("compass",60373),compassDot:v("compass-dot",60374),compassActive:v("compass-active",60375),azure:v("azure",60376),issueDraft:v("issue-draft",60377),gitPullRequestClosed:v("git-pull-request-closed",60378),gitPullRequestDraft:v("git-pull-request-draft",60379),debugAll:v("debug-all",60380),debugCoverage:v("debug-coverage",60381),runErrors:v("run-errors",60382),folderLibrary:v("folder-library",60383),debugContinueSmall:v("debug-continue-small",60384),beakerStop:v("beaker-stop",60385),graphLine:v("graph-line",60386),graphScatter:v("graph-scatter",60387),pieChart:v("pie-chart",60388),bracketDot:v("bracket-dot",60389),bracketError:v("bracket-error",60390),lockSmall:v("lock-small",60391),azureDevops:v("azure-devops",60392),verifiedFilled:v("verified-filled",60393),newline:v("newline",60394),layout:v("layout",60395),layoutActivitybarLeft:v("layout-activitybar-left",60396),layoutActivitybarRight:v("layout-activitybar-right",60397),layoutPanelLeft:v("layout-panel-left",60398),layoutPanelCenter:v("layout-panel-center",60399),layoutPanelJustify:v("layout-panel-justify",60400),layoutPanelRight:v("layout-panel-right",60401),layoutPanel:v("layout-panel",60402),layoutSidebarLeft:v("layout-sidebar-left",60403),layoutSidebarRight:v("layout-sidebar-right",60404),layoutStatusbar:v("layout-statusbar",60405),layoutMenubar:v("layout-menubar",60406),layoutCentered:v("layout-centered",60407),target:v("target",60408),indent:v("indent",60409),recordSmall:v("record-small",60410),errorSmall:v("error-small",60411),terminalDecorationError:v("terminal-decoration-error",60411),arrowCircleDown:v("arrow-circle-down",60412),arrowCircleLeft:v("arrow-circle-left",60413),arrowCircleRight:v("arrow-circle-right",60414),arrowCircleUp:v("arrow-circle-up",60415),layoutSidebarRightOff:v("layout-sidebar-right-off",60416),layoutPanelOff:v("layout-panel-off",60417),layoutSidebarLeftOff:v("layout-sidebar-left-off",60418),blank:v("blank",60419),heartFilled:v("heart-filled",60420),map:v("map",60421),mapHorizontal:v("map-horizontal",60421),foldHorizontal:v("fold-horizontal",60421),mapFilled:v("map-filled",60422),mapHorizontalFilled:v("map-horizontal-filled",60422),foldHorizontalFilled:v("fold-horizontal-filled",60422),circleSmall:v("circle-small",60423),bellSlash:v("bell-slash",60424),bellSlashDot:v("bell-slash-dot",60425),commentUnresolved:v("comment-unresolved",60426),gitPullRequestGoToChanges:v("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:v("git-pull-request-new-changes",60428),searchFuzzy:v("search-fuzzy",60429),commentDraft:v("comment-draft",60430),send:v("send",60431),sparkle:v("sparkle",60432),insert:v("insert",60433),mic:v("mic",60434),thumbsdownFilled:v("thumbsdown-filled",60435),thumbsupFilled:v("thumbsup-filled",60436),coffee:v("coffee",60437),snake:v("snake",60438),game:v("game",60439),vr:v("vr",60440),chip:v("chip",60441),piano:v("piano",60442),music:v("music",60443),micFilled:v("mic-filled",60444),repoFetch:v("repo-fetch",60445),copilot:v("copilot",60446),lightbulbSparkle:v("lightbulb-sparkle",60447),robot:v("robot",60448),sparkleFilled:v("sparkle-filled",60449),diffSingle:v("diff-single",60450),diffMultiple:v("diff-multiple",60451),surroundWith:v("surround-with",60452),share:v("share",60453),gitStash:v("git-stash",60454),gitStashApply:v("git-stash-apply",60455),gitStashPop:v("git-stash-pop",60456),vscode:v("vscode",60457),vscodeInsiders:v("vscode-insiders",60458),codeOss:v("code-oss",60459),runCoverage:v("run-coverage",60460),runAllCoverage:v("run-all-coverage",60461),coverage:v("coverage",60462),githubProject:v("github-project",60463),mapVertical:v("map-vertical",60464),foldVertical:v("fold-vertical",60464),mapVerticalFilled:v("map-vertical-filled",60465),foldVerticalFilled:v("fold-vertical-filled",60465),goToSearch:v("go-to-search",60466),percentage:v("percentage",60467),sortPercentage:v("sort-percentage",60467),attach:v("attach",60468),goToEditingSession:v("go-to-editing-session",60469),editSession:v("edit-session",60470),codeReview:v("code-review",60471),copilotWarning:v("copilot-warning",60472),python:v("python",60473),copilotLarge:v("copilot-large",60474),copilotWarningLarge:v("copilot-warning-large",60475),keyboardTab:v("keyboard-tab",60476),copilotBlocked:v("copilot-blocked",60477),copilotNotConnected:v("copilot-not-connected",60478),flag:v("flag",60479),lightbulbEmpty:v("lightbulb-empty",60480),symbolMethodArrow:v("symbol-method-arrow",60481),copilotUnavailable:v("copilot-unavailable",60482),repoPinned:v("repo-pinned",60483),keyboardTabAbove:v("keyboard-tab-above",60484),keyboardTabBelow:v("keyboard-tab-below",60485),gitPullRequestDone:v("git-pull-request-done",60486),mcp:v("mcp",60487),extensionsLarge:v("extensions-large",60488),layoutPanelDock:v("layout-panel-dock",60489),layoutSidebarLeftDock:v("layout-sidebar-left-dock",60490),layoutSidebarRightDock:v("layout-sidebar-right-dock",60491),copilotInProgress:v("copilot-in-progress",60492),copilotError:v("copilot-error",60493),copilotSuccess:v("copilot-success",60494),chatSparkle:v("chat-sparkle",60495),searchSparkle:v("search-sparkle",60496),editSparkle:v("edit-sparkle",60497),copilotSnooze:v("copilot-snooze",60498),sendToRemoteAgent:v("send-to-remote-agent",60499),commentDiscussionSparkle:v("comment-discussion-sparkle",60500),chatSparkleWarning:v("chat-sparkle-warning",60501),chatSparkleError:v("chat-sparkle-error",60502),collection:v("collection",60503),newCollection:v("new-collection",60504),thinking:v("thinking",60505),build:v("build",60506),commentDiscussionQuote:v("comment-discussion-quote",60507),cursor:v("cursor",60508),eraser:v("eraser",60509),fileText:v("file-text",60510),quotes:v("quotes",60512),rename:v("rename",60513),runWithDeps:v("run-with-deps",60514),debugConnected:v("debug-connected",60515),strikethrough:v("strikethrough",60516),openInProduct:v("open-in-product",60517),indexZero:v("index-zero",60518),agent:v("agent",60519),editCode:v("edit-code",60520),repoSelected:v("repo-selected",60521),skip:v("skip",60522),mergeInto:v("merge-into",60523),gitBranchChanges:v("git-branch-changes",60524),gitBranchStagedChanges:v("git-branch-staged-changes",60525),gitBranchConflicts:v("git-branch-conflicts",60526),gitBranch:v("git-branch",60527),gitBranchCreate:v("git-branch-create",60527),gitBranchDelete:v("git-branch-delete",60527),searchLarge:v("search-large",60528),terminalGitBash:v("terminal-git-bash",60529),windowActive:v("window-active",60530),forward:v("forward",60531),download:v("download",60532),clockface:v("clockface",60533),unarchive:v("unarchive",60534),sessionInProgress:v("session-in-progress",60535),collectionSmall:v("collection-small",60536),vmSmall:v("vm-small",60537),cloudSmall:v("cloud-small",60538),addSmall:v("add-small",60539),removeSmall:v("remove-small",60540),worktreeSmall:v("worktree-small",60541),worktree:v("worktree",60542),screenCut:v("screen-cut",60543),ask:v("ask",60544),openai:v("openai",60545),claude:v("claude",60546),openInWindow:v("open-in-window",60547),newSession:v("new-session",60548)};var N8={dialogError:v("dialog-error","error"),dialogWarning:v("dialog-warning","warning"),dialogInfo:v("dialog-info","info"),dialogClose:v("dialog-close","close"),treeItemExpanded:v("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:v("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:v("tree-filter-on-type-off","list-selection"),treeFilterClear:v("tree-filter-clear","close"),treeItemLoading:v("tree-item-loading","loading"),menuSelection:v("menu-selection","check"),menuSubmenu:v("menu-submenu","chevron-right"),menuBarMore:v("menubar-more","more"),scrollbarButtonLeft:v("scrollbar-button-left","triangle-left"),scrollbarButtonRight:v("scrollbar-button-right","triangle-right"),scrollbarButtonUp:v("scrollbar-button-up","triangle-up"),scrollbarButtonDown:v("scrollbar-button-down","triangle-down"),toolBarMore:v("toolbar-more","more"),quickInputBack:v("quick-input-back","arrow-left"),dropDownButton:v("drop-down-button",60084),symbolCustomColor:v("symbol-customcolor",60252),exportIcon:v("export",60332),workspaceUnspecified:v("workspace-unspecified",60355),newLine:v("newline",60394),thumbsDownFilled:v("thumbsdown-filled",60435),thumbsUpFilled:v("thumbsup-filled",60436),gitFetch:v("git-fetch",60445),lightbulbSparkleAutofix:v("lightbulb-sparkle-autofix",60447),debugBreakpointPending:v("debug-breakpoint-pending",60377)},de={...LF,...N8};var fp;(t=>{function r(e){return!!e&&typeof e=="object"&&typeof e.id=="string"}t.isThemeColor=r})(fp||={});var Et;(S=>{S.iconNameSegment="[A-Za-z0-9]+",S.iconNameExpression="[A-Za-z0-9-]+",S.iconModifierExpression="~[A-Za-z]+",S.iconNameCharacter="[A-Za-z0-9~-]";let o=new RegExp(`^(${S.iconNameExpression})(${S.iconModifierExpression})?$`);function i(E){let P=o.exec(E.id);if(!P)return i(de.error);let[,L,j]=P,F=["codicon","codicon-"+L];return j&&F.push("codicon-modifier-"+j.substring(1)),F}S.asClassNameArray=i;function s(E){return i(E).join(" ")}S.asClassName=s;function a(E){return"."+i(E).join(".")}S.asCSSSelector=a;function l(E){return!!E&&typeof E=="object"&&typeof E.id=="string"&&(typeof E.color>"u"||fp.isThemeColor(E.color))}S.isThemeIcon=l;let d=new RegExp(`^\\$\\((${S.iconNameExpression}(?:${S.iconModifierExpression})?)\\)$`);function c(E){let P=d.exec(E);if(!P)return;let[,L]=P;return{id:L}}S.fromString=c;function u(E){return{id:E}}S.fromId=u;function m(E,P){let L=E.id,j=L.lastIndexOf("~");return j!==-1&&(L=L.substring(0,j)),P&&(L=`${L}~${P}`),{id:L}}S.modify=m;function g(E){let P=E.id.lastIndexOf("~");if(P!==-1)return E.id.substring(P+1)}S.getModifier=g;function h(E,P){return E.id===P.id&&E.color?.id===P.color?.id}S.isEqual=h;function f(E){return E?.id===de.file.id}S.isFile=f;function I(E){return E?.id===de.folder.id}S.isFolder=I})(Et||={});var kD=new RegExp(`\\$\\(${Et.iconNameExpression}(?:${Et.iconModifierExpression})?\\)`,"g"),U8=new RegExp(`(\\\\)?${kD.source}`,"g");function OF(r){return r.replace(U8,(t,e)=>e?t:`\\${t}`)}var Toe=new RegExp(`\\\\${kD.source}`,"g");var Eoe=new RegExp(`(\\s)?(\\\\)?${kD.source}(\\s)?`,"g");var woe=new RegExp(`\\$\\(${Et.iconNameCharacter}+\\)`,"g");var Vn=class r{static lift(t){let e=new r(t.value,t);return e.uris=t.uris,e.baseUri=t.baseUri?y.revive(t.baseUri):void 0,e}constructor(t="",e=!1){if(this.value=t,typeof this.value!="string")throw Ue("value");typeof e=="boolean"?(this.isTrusted=e,this.supportThemeIcons=!1,this.supportHtml=!1,this.supportAlertSyntax=!1):(this.isTrusted=e.isTrusted??void 0,this.supportThemeIcons=e.supportThemeIcons??!1,this.supportHtml=e.supportHtml??!1,this.supportAlertSyntax=e.supportAlertSyntax??!1)}appendText(t,e=0){return this.value+=F8(this.supportThemeIcons?OF(t):t).replace(/([ \t]+)/g,(n,o)=>"&nbsp;".repeat(o.length)).replace(/\>/gm,"\\>").replace(/\n/g,e===1?`\\
`:`

`),this}appendMarkdown(t){return this.value+=t,this}appendCodeblock(t,e){return this.value+=`
${H8(e,t)}
`,this}appendLink(t,e,n){return this.value+="[",this.value+=this._escape(e,"]"),this.value+="](",this.value+=this._escape(String(t),")"),n&&(this.value+=` "${this._escape(this._escape(n,'"'),")")}"`),this.value+=")",this}_escape(t,e){let n=new RegExp(tr(e),"g");return t.replace(n,(o,i)=>t.charAt(i-1)!=="\\"?`\\${o}`:o)}};function fi(r){return r instanceof Vn?!0:r&&typeof r=="object"?typeof r.value=="string"&&(typeof r.isTrusted=="boolean"||typeof r.isTrusted=="object"||r.isTrusted===void 0)&&(typeof r.supportThemeIcons=="boolean"||r.supportThemeIcons===void 0)&&(typeof r.supportAlertSyntax=="boolean"||r.supportAlertSyntax===void 0):!1}function F8(r){return r.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}function H8(r,t){let e=r.match(/^`+/gm)?.reduce((o,i)=>o.length>i.length?o:i).length??0,n=e>=3?e+1:3;return[`${"`".repeat(n)}${t}`,r,`${"`".repeat(n)}`].join(`
`)}function NF(r){let t=[],e=r.split("|").map(o=>o.trim());r=e[0];let n=e[1];if(n){let o=/height=(\d+)/.exec(n),i=/width=(\d+)/.exec(n),s=o?o[1]:"",a=i?i[1]:"",l=isFinite(parseInt(a)),d=isFinite(parseInt(s));l&&t.push(`width="${a}"`),d&&t.push(`height="${s}"`)}return{href:r,dimensions:t}}function DD(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ac=DD();function BF(r){ac=r}var $F=/[&<>"']/,V8=new RegExp($F.source,"g"),zF=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,B8=new RegExp(zF.source,"g"),$8={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},UF=r=>$8[r];function xr(r,t){if(t){if($F.test(r))return r.replace(V8,UF)}else if(zF.test(r))return r.replace(B8,UF);return r}var z8=/(^|[^\[])\^/g;function jt(r,t){let e=typeof r=="string"?r:r.source;t=t||"";let n={replace:(o,i)=>{let s=typeof i=="string"?i:i.source;return s=s.replace(z8,"$1"),e=e.replace(o,s),n},getRegex:()=>new RegExp(e,t)};return n}function FF(r){try{r=encodeURI(r).replace(/%25/g,"%")}catch{return null}return r}var Hh={exec:()=>null};function HF(r,t){let e=r.replace(/\|/g,(i,s,a)=>{let l=!1,d=s;for(;--d>=0&&a[d]==="\\";)l=!l;return l?"|":" |"}),n=e.split(/ \|/),o=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;o<n.length;o++)n[o]=n[o].trim().replace(/\\\|/g,"|");return n}function Uh(r,t,e){let n=r.length;if(n===0)return"";let o=0;for(;o<n;){let i=r.charAt(n-o-1);if(i===t&&!e)o++;else if(i!==t&&e)o++;else break}return r.slice(0,n-o)}function q8(r,t){if(r.indexOf(t[1])===-1)return-1;let e=0;for(let n=0;n<r.length;n++)if(r[n]==="\\")n++;else if(r[n]===t[0])e++;else if(r[n]===t[1]&&(e--,e<0))return n;return-1}function WF(r,t,e,n){let o=t.href,i=t.title?xr(t.title):null,s=r[1].replace(/\\([\[\]])/g,"$1");if(r[0].charAt(0)!=="!"){n.state.inLink=!0;let a={type:"link",raw:e,href:o,title:i,text:s,tokens:n.inlineTokens(s)};return n.state.inLink=!1,a}return{type:"image",raw:e,href:o,title:i,text:xr(s)}}function K8(r,t){let e=r.match(/^(\s+)(?:```)/);if(e===null)return t;let n=e[1];return t.split(`
`).map(o=>{let i=o.match(/^\s+/);if(i===null)return o;let[s]=i;return s.length>=n.length?o.slice(n.length):o}).join(`
`)}var vp=class{options;rules;lexer;constructor(t){this.options=t||ac}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let n=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?n:Uh(n,`
`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],o=K8(n,e[3]||"");return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:o}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(/#$/.test(n)){let o=Uh(n,"#");(this.options.pedantic||!o||/ $/.test(o))&&(n=o.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:Uh(e[0],`
`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=Uh(e[0],`
`).split(`
`),o="",i="",s=[];for(;n.length>0;){let a=!1,l=[],d;for(d=0;d<n.length;d++)if(/^ {0,3}>/.test(n[d]))l.push(n[d]),a=!0;else if(!a)l.push(n[d]);else break;n=n.slice(d);let c=l.join(`
`),u=c.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,`
    $1`).replace(/^ {0,3}>[ \t]?/gm,"");o=o?`${o}
${c}`:c,i=i?`${i}
${u}`:u;let m=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,s,!0),this.lexer.state.top=m,n.length===0)break;let g=s[s.length-1];if(g?.type==="code")break;if(g?.type==="blockquote"){let h=g,f=h.raw+`
`+n.join(`
`),I=this.blockquote(f);s[s.length-1]=I,o=o.substring(0,o.length-h.raw.length)+I.raw,i=i.substring(0,i.length-h.text.length)+I.text;break}else if(g?.type==="list"){let h=g,f=h.raw+`
`+n.join(`
`),I=this.list(f);s[s.length-1]=I,o=o.substring(0,o.length-g.raw.length)+I.raw,i=i.substring(0,i.length-h.raw.length)+I.raw,n=f.substring(s[s.length-1].raw.length).split(`
`);continue}}return{type:"blockquote",raw:o,tokens:s,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim(),o=n.length>1,i={type:"list",raw:"",ordered:o,start:o?+n.slice(0,-1):"",loose:!1,items:[]};n=o?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=o?n:"[*+-]");let s=new RegExp(`^( {0,3}${n})((?:[	 ][^\\n]*)?(?:\\n|$))`),a=!1;for(;t;){let l=!1,d="",c="";if(!(e=s.exec(t))||this.rules.block.hr.test(t))break;d=e[0],t=t.substring(d.length);let u=e[2].split(`
`,1)[0].replace(/^\t+/,S=>" ".repeat(3*S.length)),m=t.split(`
`,1)[0],g=!u.trim(),h=0;if(this.options.pedantic?(h=2,c=u.trimStart()):g?h=e[1].length+1:(h=e[2].search(/[^ ]/),h=h>4?1:h,c=u.slice(h),h+=e[1].length),g&&/^ *$/.test(m)&&(d+=m+`
`,t=t.substring(m.length+1),l=!0),!l){let S=new RegExp(`^ {0,${Math.min(3,h-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`),E=new RegExp(`^ {0,${Math.min(3,h-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),P=new RegExp(`^ {0,${Math.min(3,h-1)}}(?:\`\`\`|~~~)`),L=new RegExp(`^ {0,${Math.min(3,h-1)}}#`);for(;t;){let j=t.split(`
`,1)[0];if(m=j,this.options.pedantic&&(m=m.replace(/^ {1,4}(?=( {4})*[^ ])/g,"  ")),P.test(m)||L.test(m)||S.test(m)||E.test(t))break;if(m.search(/[^ ]/)>=h||!m.trim())c+=`
`+m.slice(h);else{if(g||u.search(/[^ ]/)>=4||P.test(u)||L.test(u)||E.test(u))break;c+=`
`+m}!g&&!m.trim()&&(g=!0),d+=j+`
`,t=t.substring(j.length+1),u=m.slice(h)}}i.loose||(a?i.loose=!0:/\n *\n *$/.test(d)&&(a=!0));let f=null,I;this.options.gfm&&(f=/^\[[ xX]\] /.exec(c),f&&(I=f[0]!=="[ ] ",c=c.replace(/^\[[ xX]\] +/,""))),i.items.push({type:"list_item",raw:d,task:!!f,checked:I,loose:!1,text:c,tokens:[]}),i.raw+=d}i.items[i.items.length-1].raw=i.items[i.items.length-1].raw.trimEnd(),i.items[i.items.length-1].text=i.items[i.items.length-1].text.trimEnd(),i.raw=i.raw.trimEnd();for(let l=0;l<i.items.length;l++)if(this.lexer.state.top=!1,i.items[l].tokens=this.lexer.blockTokens(i.items[l].text,[]),!i.loose){let d=i.items[l].tokens.filter(u=>u.type==="space"),c=d.length>0&&d.some(u=>/\n.*\n/.test(u.raw));i.loose=c}if(i.loose)for(let l=0;l<i.items.length;l++)i.items[l].loose=!0;return i}}html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:e[0]}}def(t){let e=this.rules.block.def.exec(t);if(e){let n=e[1].toLowerCase().replace(/\s+/g," "),o=e[2]?e[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:e[0],href:o,title:i}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!/[:|]/.test(e[2]))return;let n=HF(e[1]),o=e[2].replace(/^\||\| *$/g,"").split("|"),i=e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split(`
`):[],s={type:"table",raw:e[0],header:[],align:[],rows:[]};if(n.length===o.length){for(let a of o)/^ *-+: *$/.test(a)?s.align.push("right"):/^ *:-+: *$/.test(a)?s.align.push("center"):/^ *:-+ *$/.test(a)?s.align.push("left"):s.align.push(null);for(let a=0;a<n.length;a++)s.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:s.align[a]});for(let a of i)s.rows.push(HF(a,s.header.length).map((l,d)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:s.align[d]})));return s}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let n=e[1].charAt(e[1].length-1)===`
`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:xr(e[1])}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&/^<a /i.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let n=e[2].trim();if(!this.options.pedantic&&/^</.test(n)){if(!/>$/.test(n))return;let s=Uh(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=q8(e[2],"()");if(s>-1){let l=(e[0].indexOf("!")===0?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let o=e[2],i="";if(this.options.pedantic){let s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);s&&(o=s[1],i=s[3])}else i=e[3]?e[3].slice(1,-1):"";return o=o.trim(),/^</.test(o)&&(this.options.pedantic&&!/>$/.test(n)?o=o.slice(1):o=o.slice(1,-1)),WF(e,{href:o&&o.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let o=(n[2]||n[1]).replace(/\s+/g," "),i=e[o.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return WF(n,i,n[0],this.lexer)}}emStrong(t,e,n=""){let o=this.rules.inline.emStrongLDelim.exec(t);if(!o||o[3]&&n.match(/[\p{L}\p{N}]/u))return;if(!(o[1]||o[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let s=[...o[0]].length-1,a,l,d=s,c=0,u=o[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+s);(o=u.exec(e))!=null;){if(a=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!a)continue;if(l=[...a].length,o[3]||o[4]){d+=l;continue}else if((o[5]||o[6])&&s%3&&!((s+l)%3)){c+=l;continue}if(d-=l,d>0)continue;l=Math.min(l,l+d+c);let m=[...o[0]][0].length,g=t.slice(0,s+o.index+m+l);if(Math.min(s,l)%2){let f=g.slice(1,-1);return{type:"em",raw:g,text:f,tokens:this.lexer.inlineTokens(f)}}let h=g.slice(2,-2);return{type:"strong",raw:g,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(/\n/g," "),o=/[^ ]/.test(n),i=/^ /.test(n)&&/ $/.test(n);return o&&i&&(n=n.substring(1,n.length-1)),n=xr(n,!0),{type:"codespan",raw:e[0],text:n}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let n,o;return e[2]==="@"?(n=xr(e[1]),o="mailto:"+n):(n=xr(e[1]),o=n),{type:"link",raw:e[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let n,o;if(e[2]==="@")n=xr(e[0]),o="mailto:"+n;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);n=xr(e[0]),e[1]==="www."?o="http://"+e[0]:o=e[0]}return{type:"link",raw:e[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let n;return this.lexer.state.inRawBlock?n=e[0]:n=xr(e[0]),{type:"text",raw:e[0],text:n}}}},j8=/^(?: *(?:\n|$))+/,G8=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,Q8=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Vh=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,J8=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,qF=/(?:[*+-]|\d{1,9}[.)])/,KF=jt(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,qF).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),RD=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Y8=/^[^\n]+/,AD=/(?!\s*\])(?:\\.|[^\[\]\\])+/,X8=jt(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",AD).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Z8=jt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,qF).getRegex(),BI="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",MD=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,e7=jt("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",MD).replace("tag",BI).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),jF=jt(RD).replace("hr",Vh).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",BI).getRegex(),t7=jt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",jF).getRegex(),LD={blockquote:t7,code:G8,def:X8,fences:Q8,heading:J8,hr:Vh,html:e7,lheading:KF,list:Z8,newline:j8,paragraph:jF,table:Hh,text:Y8},VF=jt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Vh).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",BI).getRegex(),n7={...LD,table:VF,paragraph:jt(RD).replace("hr",Vh).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",VF).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",BI).getRegex()},o7={...LD,html:jt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",MD).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Hh,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:jt(RD).replace("hr",Vh).replace("heading",` *#{1,6} *[^
]`).replace("lheading",KF).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},GF=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,r7=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,QF=/^( {2,}|\\)\n(?!\s*$)/,i7=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Bh="\\p{P}\\p{S}",s7=jt(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,Bh).getRegex(),a7=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,l7=jt(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Bh).getRegex(),d7=jt("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Bh).getRegex(),c7=jt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Bh).getRegex(),u7=jt(/\\([punct])/,"gu").replace(/punct/g,Bh).getRegex(),p7=jt(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),m7=jt(MD).replace("(?:-->|$)","-->").getRegex(),g7=jt("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",m7).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),VI=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,f7=jt(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",VI).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),JF=jt(/^!?\[(label)\]\[(ref)\]/).replace("label",VI).replace("ref",AD).getRegex(),YF=jt(/^!?\[(ref)\](?:\[\])?/).replace("ref",AD).getRegex(),h7=jt("reflink|nolink(?!\\()","g").replace("reflink",JF).replace("nolink",YF).getRegex(),OD={_backpedal:Hh,anyPunctuation:u7,autolink:p7,blockSkip:a7,br:QF,code:r7,del:Hh,emStrongLDelim:l7,emStrongRDelimAst:d7,emStrongRDelimUnd:c7,escape:GF,link:f7,nolink:YF,punctuation:s7,reflink:JF,reflinkSearch:h7,tag:g7,text:i7,url:Hh},v7={...OD,link:jt(/^!?\[(label)\]\((.*?)\)/).replace("label",VI).getRegex(),reflink:jt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",VI).getRegex()},PD={...OD,escape:jt(GF).replace("])","~|])").getRegex(),url:jt(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},b7={...PD,br:jt(QF).replace("{2,}","*").getRegex(),text:jt(PD.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},WI={normal:LD,gfm:n7,pedantic:o7},Fh={normal:OD,gfm:PD,breaks:b7,pedantic:v7},Xs=class r{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||ac,this.options.tokenizer=this.options.tokenizer||new vp,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={block:WI.normal,inline:Fh.normal};this.options.pedantic?(e.block=WI.pedantic,e.inline=Fh.pedantic):this.options.gfm&&(e.block=WI.gfm,this.options.breaks?e.inline=Fh.breaks:e.inline=Fh.gfm),this.tokenizer.rules=e}static get rules(){return{block:WI,inline:Fh}}static lex(t,e){return new r(e).lex(t)}static lexInline(t,e){return new r(e).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,`
`),this.blockTokens(t,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let n=this.inlineQueue[e];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,e=[],n=!1){this.options.pedantic?t=t.replace(/\t/g,"    ").replace(/^ +$/gm,""):t=t.replace(/^( *)(\t+)/gm,(a,l,d)=>l+"    ".repeat(d.length));let o,i,s;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>(o=a.call({lexer:this},t,e))?(t=t.substring(o.raw.length),e.push(o),!0):!1))){if(o=this.tokenizer.space(t)){t=t.substring(o.raw.length),o.raw.length===1&&e.length>0?e[e.length-1].raw+=`
`:e.push(o);continue}if(o=this.tokenizer.code(t)){t=t.substring(o.raw.length),i=e[e.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=`
`+o.raw,i.text+=`
`+o.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text):e.push(o);continue}if(o=this.tokenizer.fences(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.heading(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.hr(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.blockquote(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.list(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.html(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.def(t)){t=t.substring(o.raw.length),i=e[e.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=`
`+o.raw,i.text+=`
`+o.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title});continue}if(o=this.tokenizer.table(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.lheading(t)){t=t.substring(o.raw.length),e.push(o);continue}if(s=t,this.options.extensions&&this.options.extensions.startBlock){let a=1/0,l=t.slice(1),d;this.options.extensions.startBlock.forEach(c=>{d=c.call({lexer:this},l),typeof d=="number"&&d>=0&&(a=Math.min(a,d))}),a<1/0&&a>=0&&(s=t.substring(0,a+1))}if(this.state.top&&(o=this.tokenizer.paragraph(s))){i=e[e.length-1],n&&i?.type==="paragraph"?(i.raw+=`
`+o.raw,i.text+=`
`+o.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):e.push(o),n=s.length!==t.length,t=t.substring(o.raw.length);continue}if(o=this.tokenizer.text(t)){t=t.substring(o.raw.length),i=e[e.length-1],i&&i.type==="text"?(i.raw+=`
`+o.raw,i.text+=`
`+o.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):e.push(o);continue}if(t){let a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let n,o,i,s=t,a,l,d;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(a=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(a=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(a=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,a.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(l||(d=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(n=c.call({lexer:this},t,e))?(t=t.substring(n.raw.length),e.push(n),!0):!1))){if(n=this.tokenizer.escape(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.tag(t)){t=t.substring(n.raw.length),o=e[e.length-1],o&&n.type==="text"&&o.type==="text"?(o.raw+=n.raw,o.text+=n.text):e.push(n);continue}if(n=this.tokenizer.link(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(n.raw.length),o=e[e.length-1],o&&n.type==="text"&&o.type==="text"?(o.raw+=n.raw,o.text+=n.text):e.push(n);continue}if(n=this.tokenizer.emStrong(t,s,d)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.codespan(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.br(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.del(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.autolink(t)){t=t.substring(n.raw.length),e.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(t))){t=t.substring(n.raw.length),e.push(n);continue}if(i=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0,u=t.slice(1),m;this.options.extensions.startInline.forEach(g=>{m=g.call({lexer:this},u),typeof m=="number"&&m>=0&&(c=Math.min(c,m))}),c<1/0&&c>=0&&(i=t.substring(0,c+1))}if(n=this.tokenizer.inlineText(i)){t=t.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(d=n.raw.slice(-1)),l=!0,o=e[e.length-1],o&&o.type==="text"?(o.raw+=n.raw,o.text+=n.text):e.push(n);continue}if(t){let c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return e}},bp=class{options;parser;constructor(t){this.options=t||ac}space(t){return""}code({text:t,lang:e,escaped:n}){let o=(e||"").match(/^\S*/)?.[0],i=t.replace(/\n$/,"")+`
`;return o?'<pre><code class="language-'+xr(o)+'">'+(n?i:xr(i,!0))+`</code></pre>
`:"<pre><code>"+(n?i:xr(i,!0))+`</code></pre>
`}blockquote({tokens:t}){return`<blockquote>
${this.parser.parse(t)}</blockquote>
`}html({text:t}){return t}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}>
`}hr(t){return`<hr>
`}list(t){let e=t.ordered,n=t.start,o="";for(let a=0;a<t.items.length;a++){let l=t.items[a];o+=this.listitem(l)}let i=e?"ol":"ul",s=e&&n!==1?' start="'+n+'"':"";return"<"+i+s+`>
`+o+"</"+i+`>
`}listitem(t){let e="";if(t.task){let n=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&t.tokens[0].type==="paragraph"?(t.tokens[0].text=n+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=n+" "+t.tokens[0].tokens[0].text)):t.tokens.unshift({type:"text",raw:n+" ",text:n+" "}):e+=n+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`<li>${e}</li>
`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
`}table(t){let e="",n="";for(let i=0;i<t.header.length;i++)n+=this.tablecell(t.header[i]);e+=this.tablerow({text:n});let o="";for(let i=0;i<t.rows.length;i++){let s=t.rows[i];n="";for(let a=0;a<s.length;a++)n+=this.tablecell(s[a]);o+=this.tablerow({text:n})}return o&&(o=`<tbody>${o}</tbody>`),`<table>
<thead>
`+e+`</thead>
`+o+`</table>
`}tablerow({text:t}){return`<tr>
${t}</tr>
`}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${t}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let o=this.parser.parseInline(n),i=FF(t);if(i===null)return o;t=i;let s='<a href="'+t+'"';return e&&(s+=' title="'+e+'"'),s+=">"+o+"</a>",s}image({href:t,title:e,text:n}){let o=FF(t);if(o===null)return n;t=o;let i=`<img src="${t}" alt="${n}"`;return e&&(i+=` title="${e}"`),i+=">",i}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):t.text}},Wh=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}},Zs=class r{options;renderer;textRenderer;constructor(t){this.options=t||ac,this.options.renderer=this.options.renderer||new bp,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Wh}static parse(t,e){return new r(e).parse(t)}static parseInline(t,e){return new r(e).parseInline(t)}parse(t,e=!0){let n="";for(let o=0;o<t.length;o++){let i=t[o];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let a=i,l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(a.type)){n+=l||"";continue}}let s=i;switch(s.type){case"space":{n+=this.renderer.space(s);continue}case"hr":{n+=this.renderer.hr(s);continue}case"heading":{n+=this.renderer.heading(s);continue}case"code":{n+=this.renderer.code(s);continue}case"table":{n+=this.renderer.table(s);continue}case"blockquote":{n+=this.renderer.blockquote(s);continue}case"list":{n+=this.renderer.list(s);continue}case"html":{n+=this.renderer.html(s);continue}case"paragraph":{n+=this.renderer.paragraph(s);continue}case"text":{let a=s,l=this.renderer.text(a);for(;o+1<t.length&&t[o+1].type==="text";)a=t[++o],l+=`
`+this.renderer.text(a);e?n+=this.renderer.paragraph({type:"paragraph",raw:l,text:l,tokens:[{type:"text",raw:l,text:l}]}):n+=l;continue}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(t,e){e=e||this.renderer;let n="";for(let o=0;o<t.length;o++){let i=t[o];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){n+=a||"";continue}}let s=i;switch(s.type){case"escape":{n+=e.text(s);break}case"html":{n+=e.html(s);break}case"link":{n+=e.link(s);break}case"image":{n+=e.image(s);break}case"strong":{n+=e.strong(s);break}case"em":{n+=e.em(s);break}case"codespan":{n+=e.codespan(s);break}case"br":{n+=e.br(s);break}case"del":{n+=e.del(s);break}case"text":{n+=e.text(s);break}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}},hp=class{options;constructor(t){this.options=t||ac}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}},_D=class{defaults=DD();options=this.setOptions;parse=this.parseMarkdown(Xs.lex,Zs.parse);parseInline=this.parseMarkdown(Xs.lexInline,Zs.parseInline);Parser=Zs;Renderer=bp;TextRenderer=Wh;Lexer=Xs;Tokenizer=vp;Hooks=hp;constructor(...t){this.use(...t)}walkTokens(t,e){let n=[];for(let o of t)switch(n=n.concat(e.call(this,o)),o.type){case"table":{let i=o;for(let s of i.header)n=n.concat(this.walkTokens(s.tokens,e));for(let s of i.rows)for(let a of s)n=n.concat(this.walkTokens(a.tokens,e));break}case"list":{let i=o;n=n.concat(this.walkTokens(i.items,e));break}default:{let i=o;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let a=i[s].flat(1/0);n=n.concat(this.walkTokens(a,e))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let o={...n};if(o.async=this.defaults.async||o.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=e.renderers[i.name];s?e.renderers[i.name]=function(...a){let l=i.renderer.apply(this,a);return l===!1&&(l=s.apply(this,a)),l}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=e[i.level];s?s.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),o.extensions=e),n.renderer){let i=this.defaults.renderer||new bp(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,l=n.renderer[a],d=i[a];i[a]=(...c)=>{let u=l.apply(i,c);return u===!1&&(u=d.apply(i,c)),u||""}}o.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new vp(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,l=n.tokenizer[a],d=i[a];i[a]=(...c)=>{let u=l.apply(i,c);return u===!1&&(u=d.apply(i,c)),u}}o.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new hp;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;let a=s,l=n.hooks[a],d=i[a];hp.passThroughHooks.has(s)?i[a]=c=>{if(this.defaults.async)return Promise.resolve(l.call(i,c)).then(m=>d.call(i,m));let u=l.call(i,c);return d.call(i,u)}:i[a]=(...c)=>{let u=l.apply(i,c);return u===!1&&(u=d.apply(i,c)),u}}o.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;o.walkTokens=function(a){let l=[];return l.push(s.call(this,a)),i&&(l=l.concat(i.call(this,a))),l}}this.defaults={...this.defaults,...o}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Xs.lex(t,e??this.defaults)}parser(t,e){return Zs.parse(t,e??this.defaults)}parseMarkdown(t,e){return(o,i)=>{let s={...i},a={...this.defaults,...s},l=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&s.async===!1)return l(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof o>"u"||o===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof o!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(o)+", string expected"));if(a.hooks&&(a.hooks.options=a),a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(o):o).then(d=>t(d,a)).then(d=>a.hooks?a.hooks.processAllTokens(d):d).then(d=>a.walkTokens?Promise.all(this.walkTokens(d,a.walkTokens)).then(()=>d):d).then(d=>e(d,a)).then(d=>a.hooks?a.hooks.postprocess(d):d).catch(l);try{a.hooks&&(o=a.hooks.preprocess(o));let d=t(o,a);a.hooks&&(d=a.hooks.processAllTokens(d)),a.walkTokens&&this.walkTokens(d,a.walkTokens);let c=e(d,a);return a.hooks&&(c=a.hooks.postprocess(c)),c}catch(d){return l(d)}}}onError(t,e){return n=>{if(n.message+=`
Please report this to https://github.com/markedjs/marked.`,t){let o="<p>An error occurred:</p><pre>"+xr(n.message+"",!0)+"</pre>";return e?Promise.resolve(o):o}if(e)return Promise.reject(n);throw n}}},sc=new _D;function Wt(r,t){return sc.parse(r,t)}Wt.options=Wt.setOptions=function(r){return sc.setOptions(r),Wt.defaults=sc.defaults,BF(Wt.defaults),Wt};Wt.getDefaults=DD;Wt.defaults=ac;Wt.use=function(...r){return sc.use(...r),Wt.defaults=sc.defaults,BF(Wt.defaults),Wt};Wt.walkTokens=function(r,t){return sc.walkTokens(r,t)};Wt.parseInline=sc.parseInline;Wt.Parser=Zs;Wt.parser=Zs.parse;Wt.Renderer=bp;Wt.TextRenderer=Wh;Wt.Lexer=Xs;Wt.lexer=Xs.lex;Wt.Tokenizer=vp;Wt.Hooks=hp;Wt.parse=Wt;var Ooe=Wt.options,Noe=Wt.setOptions,Uoe=Wt.use,Foe=Wt.walkTokens,Hoe=Wt.parseInline;var Woe=Zs.parse,Voe=Xs.lex;var Po=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list",html:"text/html"});var I7=/^(.+)\/(.+?)(;.+)?$/;function ND(r,t){let e=I7.exec(r);return e?`${e[1].toLowerCase()}/${e[2].toLowerCase()}${e[3]??""}`:t?void 0:r}function $I(r){return["application/vnd.code.notebook.stdout","application/vnd.code.notebook.stderr"].includes(r)}var _o=Symbol("unset"),zI=class{constructor(){this.root=new $h;this._size=0}get size(){return this._size}get nodes(){return this.root.children?.values()||Mt.empty()}get entries(){return this.root.children?.entries()||Mt.empty()}insert(t,e,n){this.opNode(t,o=>o._value=e,n)}mutate(t,e){this.opNode(t,n=>n._value=e(n._value===_o?void 0:n._value))}mutatePath(t,e){this.opNode(t,()=>{},n=>e(n))}delete(t){let e=this.getPathToKey(t);if(!e)return;let n=e.length-1,o=e[n].node._value;if(o!==_o){for(this._size--,e[n].node._value=_o;n>0;n--){let{node:i,part:s}=e[n];if(i.children?.size||i._value!==_o)break;e[n-1].node.children.delete(s)}return o}}*deleteRecursive(t){let e=this.getPathToKey(t);if(!e)return;let n=e[e.length-1].node;for(let o=e.length-1;o>0;o--){let i=e[o-1];if(i.node.children.delete(e[o].part),i.node.children.size>0||i.node._value!==_o)break}for(let o of XF(n))o._value!==_o&&(this._size--,yield o._value);n===this.root&&(this.root._value=_o,this.root.children=void 0)}find(t){let e=this.root;for(let n of t){let o=e.children?.get(n);if(!o)return;e=o}return e._value===_o?void 0:e._value}hasKeyOrParent(t){let e=this.root;for(let n of t){let o=e.children?.get(n);if(!o)return!1;if(o._value!==_o)return!0;e=o}return!1}hasKeyOrChildren(t){let e=this.root;for(let n of t){let o=e.children?.get(n);if(!o)return!1;e=o}return!0}hasKey(t){let e=this.root;for(let n of t){let o=e.children?.get(n);if(!o)return!1;e=o}return e._value!==_o}getPathToKey(t){let e=[{part:"",node:this.root}],n=0;for(let o of t){let i=e[n].node.children?.get(o);if(!i)return;e.push({part:o,node:i}),n++}return e}opNode(t,e,n){let o=this.root;for(let a of t){if(o.children)if(o.children.has(a))o=o.children.get(a);else{let l=new $h;o.children.set(a,l),o=l}else{let l=new $h;o.children=new Map([[a,l]]),o=l}n?.(o)}let i=o._value===_o?0:1;e(o);let s=o._value===_o?0:1;this._size+=s-i}*values(){for(let{_value:t}of XF(this.root))t!==_o&&(yield t)}};function*XF(r){let t=[r];for(;t.length>0;){let e=t.pop();if(yield e,e.children)for(let n of e.children.values())t.push(n)}}var $h=class{constructor(){this._value=_o}get value(){return this._value===_o?void 0:this._value}set value(t){this._value=t===void 0?_o:t}};var kn=class r{constructor(t,e){this.lineNumber=t,this.column=e}with(t=this.lineNumber,e=this.column){return t===this.lineNumber&&e===this.column?this:new r(t,e)}delta(t=0,e=0){return this.with(Math.max(1,this.lineNumber+t),Math.max(1,this.column+e))}equals(t){return r.equals(this,t)}static equals(t,e){return!t&&!e?!0:!!t&&!!e&&t.lineNumber===e.lineNumber&&t.column===e.column}isBefore(t){return r.isBefore(this,t)}static isBefore(t,e){return t.lineNumber<e.lineNumber?!0:e.lineNumber<t.lineNumber?!1:t.column<e.column}isBeforeOrEqual(t){return r.isBeforeOrEqual(this,t)}static isBeforeOrEqual(t,e){return t.lineNumber<e.lineNumber?!0:e.lineNumber<t.lineNumber?!1:t.column<=e.column}static compare(t,e){let n=t.lineNumber|0,o=e.lineNumber|0;if(n===o){let i=t.column|0,s=e.column|0;return i-s}return n-o}clone(){return new r(this.lineNumber,this.column)}toString(){return"("+this.lineNumber+","+this.column+")"}static lift(t){return new r(t.lineNumber,t.column)}static isIPosition(t){return!!t&&typeof t.lineNumber=="number"&&typeof t.column=="number"}toJSON(){return{lineNumber:this.lineNumber,column:this.column}}};var Ke=class r{constructor(t,e,n,o){t>n||t===n&&e>o?(this.startLineNumber=n,this.startColumn=o,this.endLineNumber=t,this.endColumn=e):(this.startLineNumber=t,this.startColumn=e,this.endLineNumber=n,this.endColumn=o)}isEmpty(){return r.isEmpty(this)}static isEmpty(t){return t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn}containsPosition(t){return r.containsPosition(this,t)}static containsPosition(t,e){return!(e.lineNumber<t.startLineNumber||e.lineNumber>t.endLineNumber||e.lineNumber===t.startLineNumber&&e.column<t.startColumn||e.lineNumber===t.endLineNumber&&e.column>t.endColumn)}static strictContainsPosition(t,e){return!(e.lineNumber<t.startLineNumber||e.lineNumber>t.endLineNumber||e.lineNumber===t.startLineNumber&&e.column<=t.startColumn||e.lineNumber===t.endLineNumber&&e.column>=t.endColumn)}containsRange(t){return r.containsRange(this,t)}static containsRange(t,e){return!(e.startLineNumber<t.startLineNumber||e.endLineNumber<t.startLineNumber||e.startLineNumber>t.endLineNumber||e.endLineNumber>t.endLineNumber||e.startLineNumber===t.startLineNumber&&e.startColumn<t.startColumn||e.endLineNumber===t.endLineNumber&&e.endColumn>t.endColumn)}strictContainsRange(t){return r.strictContainsRange(this,t)}static strictContainsRange(t,e){return!(e.startLineNumber<t.startLineNumber||e.endLineNumber<t.startLineNumber||e.startLineNumber>t.endLineNumber||e.endLineNumber>t.endLineNumber||e.startLineNumber===t.startLineNumber&&e.startColumn<=t.startColumn||e.endLineNumber===t.endLineNumber&&e.endColumn>=t.endColumn)}plusRange(t){return r.plusRange(this,t)}static plusRange(t,e){let n,o,i,s;return e.startLineNumber<t.startLineNumber?(n=e.startLineNumber,o=e.startColumn):e.startLineNumber===t.startLineNumber?(n=e.startLineNumber,o=Math.min(e.startColumn,t.startColumn)):(n=t.startLineNumber,o=t.startColumn),e.endLineNumber>t.endLineNumber?(i=e.endLineNumber,s=e.endColumn):e.endLineNumber===t.endLineNumber?(i=e.endLineNumber,s=Math.max(e.endColumn,t.endColumn)):(i=t.endLineNumber,s=t.endColumn),new r(n,o,i,s)}intersectRanges(t){return r.intersectRanges(this,t)}static intersectRanges(t,e){let n=t.startLineNumber,o=t.startColumn,i=t.endLineNumber,s=t.endColumn,a=e.startLineNumber,l=e.startColumn,d=e.endLineNumber,c=e.endColumn;return n<a?(n=a,o=l):n===a&&(o=Math.max(o,l)),i>d?(i=d,s=c):i===d&&(s=Math.min(s,c)),n>i||n===i&&o>s?null:new r(n,o,i,s)}equalsRange(t){return r.equalsRange(this,t)}static equalsRange(t,e){return!t&&!e?!0:!!t&&!!e&&t.startLineNumber===e.startLineNumber&&t.startColumn===e.startColumn&&t.endLineNumber===e.endLineNumber&&t.endColumn===e.endColumn}getEndPosition(){return r.getEndPosition(this)}static getEndPosition(t){return new kn(t.endLineNumber,t.endColumn)}getStartPosition(){return r.getStartPosition(this)}static getStartPosition(t){return new kn(t.startLineNumber,t.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(t,e){return new r(this.startLineNumber,this.startColumn,t,e)}setStartPosition(t,e){return new r(t,e,this.endLineNumber,this.endColumn)}collapseToStart(){return r.collapseToStart(this)}static collapseToStart(t){return new r(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}collapseToEnd(){return r.collapseToEnd(this)}static collapseToEnd(t){return new r(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn)}delta(t){return new r(this.startLineNumber+t,this.startColumn,this.endLineNumber+t,this.endColumn)}isSingleLine(){return this.startLineNumber===this.endLineNumber}static fromPositions(t,e=t){return new r(t.lineNumber,t.column,e.lineNumber,e.column)}static lift(t){return t?new r(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}static isIRange(t){return!!t&&typeof t.startLineNumber=="number"&&typeof t.startColumn=="number"&&typeof t.endLineNumber=="number"&&typeof t.endColumn=="number"}static areIntersectingOrTouching(t,e){return!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn||e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)}static areIntersecting(t,e){return!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn||e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)}static areOnlyIntersecting(t,e){return!(t.endLineNumber<e.startLineNumber-1||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn-1||e.endLineNumber<t.startLineNumber-1||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn-1)}static compareRangesUsingStarts(t,e){if(t&&e){let i=t.startLineNumber|0,s=e.startLineNumber|0;if(i===s){let a=t.startColumn|0,l=e.startColumn|0;if(a===l){let d=t.endLineNumber|0,c=e.endLineNumber|0;if(d===c){let u=t.endColumn|0,m=e.endColumn|0;return u-m}return d-c}return a-l}return i-s}return(t?1:0)-(e?1:0)}static compareRangesUsingEnds(t,e){return t.endLineNumber===e.endLineNumber?t.endColumn===e.endColumn?t.startLineNumber===e.startLineNumber?t.startColumn-e.startColumn:t.startLineNumber-e.startLineNumber:t.endColumn-e.endColumn:t.endLineNumber-e.endLineNumber}static spansMultipleLines(t){return t.endLineNumber>t.startLineNumber}toJSON(){return this}};var qI=class{constructor(){this._tokenizationSupports=new Map;this._factories=new Map;this._onDidChange=new T;this.onDidChange=this._onDidChange.event;this._colorMap=null}handleChange(t){this._onDidChange.fire({changedLanguages:t,changedColorMap:!1})}register(t,e){return this._tokenizationSupports.set(t,e),this.handleChange([t]),G(()=>{this._tokenizationSupports.get(t)===e&&(this._tokenizationSupports.delete(t),this.handleChange([t]))})}get(t){return this._tokenizationSupports.get(t)||null}registerFactory(t,e){this._factories.get(t)?.dispose();let n=new UD(this,t,e);return this._factories.set(t,n),G(()=>{let o=this._factories.get(t);!o||o!==n||(this._factories.delete(t),o.dispose())})}async getOrCreate(t){let e=this.get(t);if(e)return e;let n=this._factories.get(t);return!n||n.isResolved?null:(await n.resolve(),this.get(t))}isResolved(t){if(this.get(t))return!0;let n=this._factories.get(t);return!!(!n||n.isResolved)}setColorMap(t){this._colorMap=t,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}},UD=class extends O{constructor(e,n,o){super();this._registry=e;this._languageId=n;this._factory=o;this._isDisposed=!1;this._resolvePromise=null;this._isResolved=!1}get isResolved(){return this._isResolved}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){let e=await this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}};var S7;(i=>{let r=new Map;r.set(0,de.symbolMethod),r.set(1,de.symbolFunction),r.set(2,de.symbolConstructor),r.set(3,de.symbolField),r.set(4,de.symbolVariable),r.set(5,de.symbolClass),r.set(6,de.symbolStruct),r.set(7,de.symbolInterface),r.set(8,de.symbolModule),r.set(9,de.symbolProperty),r.set(10,de.symbolEvent),r.set(11,de.symbolOperator),r.set(12,de.symbolUnit),r.set(13,de.symbolValue),r.set(15,de.symbolEnum),r.set(14,de.symbolConstant),r.set(15,de.symbolEnum),r.set(16,de.symbolEnumMember),r.set(17,de.symbolKeyword),r.set(28,de.symbolSnippet),r.set(18,de.symbolText),r.set(19,de.symbolColor),r.set(20,de.symbolFile),r.set(21,de.symbolReference),r.set(22,de.symbolCustomColor),r.set(23,de.symbolFolder),r.set(24,de.symbolTypeParameter),r.set(25,de.account),r.set(26,de.issues),r.set(27,de.tools);function t(s){let a=r.get(s);return a||(console.info("No codicon found for CompletionItemKind "+s),a=de.symbolProperty),a}i.toIcon=t;function e(s){switch(s){case 0:return p(891,null);case 1:return p(887,null);case 2:return p(879,null);case 3:return p(884,null);case 4:return p(904,null);case 5:return p(876,null);case 6:return p(897,null);case 7:return p(888,null);case 8:return p(892,null);case 9:return p(894,null);case 10:return p(883,null);case 11:return p(893,null);case 12:return p(901,null);case 13:return p(903,null);case 14:return p(878,null);case 15:return p(881,null);case 16:return p(882,null);case 17:return p(890,null);case 18:return p(898,null);case 19:return p(877,null);case 20:return p(885,null);case 21:return p(895,null);case 22:return p(880,null);case 23:return p(886,null);case 24:return p(900,null);case 25:return p(902,null);case 26:return p(889,null);case 27:return p(899,null);case 28:return p(896,null);default:return""}}i.toLabel=e;let n=new Map;n.set("method",0),n.set("function",1),n.set("constructor",2),n.set("field",3),n.set("variable",4),n.set("class",5),n.set("struct",6),n.set("interface",7),n.set("module",8),n.set("property",9),n.set("event",10),n.set("operator",11),n.set("unit",12),n.set("value",13),n.set("constant",14),n.set("enum",15),n.set("enum-member",16),n.set("enumMember",16),n.set("keyword",17),n.set("snippet",28),n.set("text",18),n.set("color",19),n.set("file",20),n.set("reference",21),n.set("customcolor",22),n.set("folder",23),n.set("type-parameter",24),n.set("typeParameter",24),n.set("account",25),n.set("issue",26),n.set("tool",27);function o(s,a){let l=n.get(s);return typeof l>"u"&&!a&&(l=9),l}i.fromString=o})(S7||={});function e2(r){return!!r&&y.isUri(r.uri)&&Ke.isIRange(r.range)&&(Ke.isIRange(r.originSelectionRange)||Ke.isIRange(r.targetSelectionRange))}function t2(r){return!!r&&y.isUri(r.uri)&&Ke.isIRange(r.range)}var fre={17:p(852,null),16:p(853,null),4:p(854,null),13:p(855,null),8:p(856,null),9:p(857,null),21:p(858,null),23:p(859,null),7:p(860,null),0:p(861,null),11:p(862,null),10:p(863,null),19:p(864,null),5:p(865,null),1:p(866,null),2:p(867,null),20:p(868,null),15:p(869,null),18:p(870,null),24:p(871,null),3:p(872,null),6:p(873,null),14:p(874,null),22:p(875,null),25:p(906,null),12:p(907,null)};var FD;(o=>{let r=new Map;r.set(0,de.symbolFile),r.set(1,de.symbolModule),r.set(2,de.symbolNamespace),r.set(3,de.symbolPackage),r.set(4,de.symbolClass),r.set(5,de.symbolMethod),r.set(6,de.symbolProperty),r.set(7,de.symbolField),r.set(8,de.symbolConstructor),r.set(9,de.symbolEnum),r.set(10,de.symbolInterface),r.set(11,de.symbolFunction),r.set(12,de.symbolVariable),r.set(13,de.symbolConstant),r.set(14,de.symbolString),r.set(15,de.symbolNumber),r.set(16,de.symbolBoolean),r.set(17,de.symbolArray),r.set(18,de.symbolObject),r.set(19,de.symbolKey),r.set(20,de.symbolNull),r.set(21,de.symbolEnumMember),r.set(22,de.symbolStruct),r.set(23,de.symbolEvent),r.set(24,de.symbolOperator),r.set(25,de.symbolTypeParameter);function t(i){let s=r.get(i);return s||(console.info("No codicon found for SymbolKind "+i),s=de.symbolProperty),s}o.toIcon=t;let e=new Map;e.set(0,20),e.set(1,8),e.set(2,8),e.set(3,8),e.set(4,5),e.set(5,0),e.set(6,9),e.set(7,3),e.set(8,2),e.set(9,15),e.set(10,7),e.set(11,1),e.set(12,4),e.set(13,14),e.set(14,18),e.set(15,13),e.set(16,13),e.set(17,13),e.set(18,13),e.set(19,17),e.set(20,13),e.set(21,16),e.set(22,6),e.set(23,10),e.set(24,11),e.set(25,24);function n(i){let s=e.get(i);return s===void 0&&(console.info("No completion kind found for SymbolKind "+i),s=20),s}o.toCompletionKind=n})(FD||={});var ea=class r{constructor(t){this.value=t}static{this.Comment=new r("comment")}static{this.Imports=new r("imports")}static{this.Region=new r("region")}static fromValue(t){switch(t){case"comment":return r.Comment;case"imports":return r.Imports;case"region":return r.Region}return new r(t)}};var HD;(t=>{function r(e){return!e||typeof e!="object"?!1:typeof e.id=="string"&&typeof e.title=="string"}t.is=r})(HD||={});var hre=new qI;var WD=(o=>(o[o.Left=1]="Left",o[o.Center=2]="Center",o[o.Right=4]="Right",o[o.Full=7]="Full",o))(WD||{});var lc=class{constructor(t,e){this._findMatchBrand=void 0;this.range=t,this.matches=e}};var jI=class{constructor(t,e,n){this.regex=t,this.wordSeparators=e,this.simpleSearch=n}},GI=class{constructor(t,e,n){this.reverseEdits=t;this.changes=e;this.trimAutoWhitespaceLineNumbers=n}};var yp=(o=>(o[o.Hint=1]="Hint",o[o.Info=2]="Info",o[o.Warning=4]="Warning",o[o.Error=8]="Error",o))(yp||{});(a=>{function r(l,d){return d-l}a.compare=r;let t=Object.create(null);t[8]=p(2163,null),t[4]=p(2167,null),t[2]=p(2165,null);function e(l){return t[l]||""}a.toString=e;let n=Object.create(null);n[8]=p(2164,null),n[4]=p(2168,null),n[2]=p(2166,null);function o(l){return n[l]||""}a.toStringPlural=o;function i(l){switch(l){case Xe.Error:return 8;case Xe.Warning:return 4;case Xe.Info:return 2;case Xe.Ignore:return 1}}a.fromSeverity=i;function s(l){switch(l){case 8:return Xe.Error;case 4:return Xe.Warning;case 2:return Xe.Info;case 1:return Xe.Ignore}}a.toSeverity=s})(yp||={});var C7;(n=>{function t(o){return e(o,!0)}n.makeKey=t;function e(o,i){let s=[""];return o.source?s.push(o.source.replace("\xA6","\\\xA6")):s.push(""),o.code?typeof o.code=="string"?s.push(o.code.replace("\xA6","\\\xA6")):s.push(o.code.value.replace("\xA6","\\\xA6")):s.push(""),o.severity!==void 0&&o.severity!==null?s.push(yp.toString(o.severity)):s.push(""),o.message&&i?s.push(o.message.replace("\xA6","\\\xA6")):s.push(""),o.startLineNumber!==void 0&&o.startLineNumber!==null?s.push(o.startLineNumber.toString()):s.push(""),o.startColumn!==void 0&&o.startColumn!==null?s.push(o.startColumn.toString()):s.push(""),o.endLineNumber!==void 0&&o.endLineNumber!==null?s.push(o.endLineNumber.toString()):s.push(""),o.endColumn!==void 0&&o.endColumn!==null?s.push(o.endColumn.toString()):s.push(""),s.push(""),s.join("\xA6")}n.makeKeyOptionalMessage=e})(C7||={});var Sre=R("markerService");var T7=R("progressService");var _re=Object.freeze({total(){},worked(){},done(){}}),ts=class{constructor(t){this.callback=t}static{this.None=Object.freeze({report(){}})}get value(){return this._value}report(t){this._value=t,this.callback(this._value)}},QI=class extends O{constructor(e,n){super();this.deferred=new Kt;n.withProgress(e,o=>(this.reporter=o,this.lastStep&&o.report(this.lastStep),this.deferred.p)),this._register(G(()=>this.deferred.complete()))}report(e){this.reporter?this.reporter.report(e):this.lastStep=e}};QI=_([C(1,T7)],QI);var Dre=R("editorProgressService");var VD=class{constructor(){this.data=new Map}add(t,e){Fn(Pe(t)),Fn(ot(e)),Fn(!this.data.has(t),"There is already an extension with this id"),this.data.set(t,e)}knows(t){return this.data.has(t)}as(t){return this.data.get(t)||null}dispose(){this.data.forEach(t=>{vy(t.dispose)&&t.dispose()}),this.data.clear()}},gt=new VD;var BD=class extends O{constructor(e,n="",o="",i=!0,s){super();this._onDidChange=this._register(new T);this._enabled=!0;this._id=e,this._label=n,this._cssClass=o,this._enabled=i,this._actionCallback=s}get onDidChange(){return this._onDidChange.event}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||""}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}async run(e,n){this._actionCallback&&await this._actionCallback(e)}};var o2=class r{constructor(){this.id=r.ID;this.label="";this.tooltip="";this.class="separator";this.enabled=!1;this.checked=void 0}static join(...t){let e=[];for(let n of t)n.length&&(e.length?e=[...e,new r,...n]:e=n);return e}static clean(t){for(;t.length>0&&t[0].id===r.ID;)t.shift();for(;t.length>0&&t[t.length-1].id===r.ID;)t.pop();for(let e=t.length-2;e>=0;e--)t[e].id===r.ID&&t[e+1].id===r.ID&&t.splice(e+1,1);return t}static{this.ID="vs.actions.separator"}async run(){}};var r2=class r extends BD{static{this.ID="vs.actions.empty"}constructor(){super(r.ID,p(46,null),void 0,!1)}};var i2={EditorPane:"workbench.contributions.editors",EditorFactory:"workbench.contributions.editor.inputFactories"},KD={id:"default",displayName:p(4743,null),providerDisplayName:p(4740,null)};var s2="workbench.editors.textDiffEditor",a2="workbench.editors.binaryResourceDiffEditor";function YI(r,t,e){for(let n of e.visibleEditorPanes)if(n.group.id===t&&r.matches(n.input))return n.getViewState()}function l2(r){if(dr(r))return!1;let t=r;return y.isUri(t?.resource)}function hi(r){if(dr(r))return!1;let t=r;return t?.original!==void 0&&t.modified!==void 0}function Ip(r){if(dr(r))return!1;let t=r;return!t||t.resources&&!Array.isArray(t.resources)?!1:!!t.resources||!!t.multiDiffSource}function fl(r){if(dr(r)||hi(r))return!1;let t=r;return t?.primary!==void 0&&t.secondary!==void 0}function gl(r){if(dr(r))return!1;let t=r;return y.isUri(t?.base?.resource)&&y.isUri(t?.input1?.resource)&&y.isUri(t?.input2?.resource)&&y.isUri(t?.result?.resource)}var $D=class{constructor(){this.mapIdToSaveSource=new Map}registerSource(t,e){let n=this.mapIdToSaveSource.get(t);return n||(n={source:t,label:e},this.mapIdToSaveSource.set(t,n)),n.source}getSourceLabel(t){return this.mapIdToSaveSource.get(t)?.label??t}},aie=new $D;var zh=class extends O{};function dr(r){return r instanceof zh}function E7(r){let t=r;return y.isUri(t?.preferredResource)}function w7(r){let t=r;return dr(t?.primary)&&dr(t?.secondary)}function jD(r){let t=r;return dr(t?.modified)&&dr(t?.original)}var zD=class{getOriginalUri(t,e){if(!t)return;if(gl(t))return JI.getOriginalUri(t.result,e);if(e?.supportSideBySide){let{primary:o,secondary:i}=this.getSideEditors(t);if(o&&i){if(e?.supportSideBySide===3)return{primary:this.getOriginalUri(o,{filterByScheme:e.filterByScheme}),secondary:this.getOriginalUri(i,{filterByScheme:e.filterByScheme})};if(e?.supportSideBySide===4)return this.getOriginalUri(o,{filterByScheme:e.filterByScheme})??this.getOriginalUri(i,{filterByScheme:e.filterByScheme});t=e.supportSideBySide===1?o:i}}if(hi(t)||Ip(t)||fl(t)||gl(t))return;let n=E7(t)?t.preferredResource:t.resource;return!n||!e?.filterByScheme?n:this.filterUri(n,e.filterByScheme)}getSideEditors(t){return w7(t)||fl(t)?{primary:t.primary,secondary:t.secondary}:jD(t)||hi(t)?{primary:t.modified,secondary:t.original}:{primary:void 0,secondary:void 0}}getCanonicalUri(t,e){if(!t)return;if(gl(t))return JI.getCanonicalUri(t.result,e);if(e?.supportSideBySide){let{primary:o,secondary:i}=this.getSideEditors(t);if(o&&i){if(e?.supportSideBySide===3)return{primary:this.getCanonicalUri(o,{filterByScheme:e.filterByScheme}),secondary:this.getCanonicalUri(i,{filterByScheme:e.filterByScheme})};if(e?.supportSideBySide===4)return this.getCanonicalUri(o,{filterByScheme:e.filterByScheme})??this.getCanonicalUri(i,{filterByScheme:e.filterByScheme});t=e.supportSideBySide===1?o:i}}if(hi(t)||Ip(t)||fl(t)||gl(t))return;let n=t.resource;return!n||!e?.filterByScheme?n:this.filterUri(n,e.filterByScheme)}filterUri(t,e){if(Array.isArray(e)){if(e.some(n=>t.scheme===n))return t}else if(e===t.scheme)return t}};var JI=new zD;var qD=class{constructor(){this.editorSerializerConstructors=new Map;this.editorSerializerInstances=new Map}start(t){let e=this.instantiationService=t.get(Fo);for(let[n,o]of this.editorSerializerConstructors)this.createEditorSerializer(n,o,e);this.editorSerializerConstructors.clear()}createEditorSerializer(t,e,n){let o=n.createInstance(e);this.editorSerializerInstances.set(t,o)}registerFileEditorFactory(t){if(this.fileEditorFactory)throw new Error("Can only register one file editor factory.");this.fileEditorFactory=t}getFileEditorFactory(){return oi(this.fileEditorFactory)}registerEditorSerializer(t,e){if(this.editorSerializerConstructors.has(t)||this.editorSerializerInstances.has(t))throw new Error(`A editor serializer with type ID '${t}' was already registered.`);return this.instantiationService?this.createEditorSerializer(t,e,this.instantiationService):this.editorSerializerConstructors.set(t,e),G(()=>{this.editorSerializerConstructors.delete(t),this.editorSerializerInstances.delete(t)})}getEditorSerializer(t){return this.editorSerializerInstances.get(typeof t=="string"?t:t.typeId)}};gt.add(i2.EditorFactory,new qD);var GD="local";var k7=R("chatSessionsService");var hl;(s=>{s.scheme=V.vscodeLocalChatSession;function t(a){let l=ir(W.wrap(new TextEncoder().encode(a)),!1,!0);return y.from({scheme:s.scheme,authority:GD,path:"/"+l})}s.forSession=t;function e(){let a=Math.floor(Math.random()*1e9);return t(`chat-${a}`)}s.getNewSessionUri=e;function n(a){let l=i(a);return l?.chatSessionType===GD?l.sessionId:void 0}s.parseLocalSessionId=n;function o(a){return!!n(a)}s.isLocalSession=o;function i(a){if(a.scheme!==s.scheme||!a.authority)return;let l=a.path.split("/");if(l.length!==2)return;let d=a.authority,c=Ir(l[1]);return{chatSessionType:d,sessionId:new TextDecoder().decode(c.buffer)}}})(hl||={});function d2(r){let t=hl.parseLocalSessionId(r);return t||r.toString()}var QD;(i=>{i.icon=de.error;function t(s){return{filterUri:s.resource,owner:s.owner,problemMessage:s.message,filterRange:{startLineNumber:s.startLineNumber,endLineNumber:s.endLineNumber,startColumn:s.startColumn,endColumn:s.endColumn}}}i.fromMarker=t;function e(s){return{id:n(s),name:o(s),icon:i.icon,value:s,kind:"diagnostic",...s}}i.toEntry=e;function n(s){return[s.filterUri,s.owner,s.filterSeverity,s.filterRange?.startLineNumber,s.filterRange?.startColumn].join(":")}i.id=n;function o(s){let a;if((u=>(u[u.MaxChars=30]="MaxChars",u[u.MaxSpaceLookback=10]="MaxSpaceLookback"))(a||={}),s.problemMessage){if(s.problemMessage.length<30)return s.problemMessage;let d=s.problemMessage.lastIndexOf(" ",30);return d===-1||d+10<30?s.problemMessage.substring(0,30)+"\u2026":s.problemMessage.substring(0,d)+"\u2026"}let l=p(7806,null);return s.filterUri&&(l=p(7807,null,qt(s.filterUri))),l}i.label=o})(QD||={});var JD;(n=>{function r(o){return y.isUri(o.value)?o.value:t2(o.value)?o.value.uri:void 0}n.toUri=r;function t(o){if(o.value instanceof Uint8Array){let i={...o};return i.value={$base64:ir(W.wrap(o.value))},i}return o}n.toExport=t;function e(o){if(o&&"values"in o&&Array.isArray(o.values))return{kind:"generic",id:o.id??"",name:o.name,value:o.values[0]?.value,range:o.range,modelDescription:o.modelDescription,references:o.references};if(o.value&&typeof o.value=="object"&&"$base64"in o.value&&typeof o.value.$base64=="string"){let i={...o};return i.value=Ir(o.value.$base64).buffer,i}return o}n.fromExport=e})(JD||={});function c2(r){return r.kind==="image"}function qh(r){return r.kind==="promptFile"}function u2(r){return r.kind==="promptText"}function vl(r,t,e,n=!1,o){return{id:`${t}__${r.toString()}`,name:`prompt:${qt(r)}`,value:r,kind:"promptFile",modelDescription:"Prompt instructions file",isRoot:t!=="vscode.instructions.file.reference",originLabel:e,toolReferences:o,automaticallyAdded:n}}function p2(r,t=!1,e){return{id:"vscode.customizations.index",name:"prompt:customizationsIndex",value:r,kind:"promptText",modelDescription:"Chat customizations index",automaticallyAdded:t,toolReferences:e}}function m2(r,t){return{kind:"tool",id:r.id,icon:Et.isThemeIcon(r.icon)?r.icon:void 0,name:r.displayName,value:void 0,range:t}}var dc=class{constructor(t){this._ids=new Set;this._entries=[];t&&this.add(...t)}add(...t){for(let e of t)this._ids.has(e.id)||(this._ids.add(e.id),this._entries.push(e))}insertFirst(t){this._ids.has(t.id)||(this._ids.add(t.id),this._entries.unshift(t))}remove(t){this._ids.delete(t.id),this._entries=this._entries.filter(e=>e.id!==t.id)}has(t){return this._ids.has(t.id)}asArray(){return this._entries.slice(0)}get length(){return this._entries.length}};var ns=(o=>(o.Chat="panel",o.Terminal="terminal",o.Notebook="notebook",o.EditorInline="editor",o))(ns||{});(t=>{function r(e){switch(e){case"panel":return"panel";case"terminal":return"terminal";case"notebook":return"notebook";case"editor":return"editor"}return"panel"}t.fromRaw=r})(ns||={});var Die=new Set([V.vscodeChatEditor,V.walkThrough,V.vscodeLocalChatSession,V.vscodeSettings,V.webviewPanel,V.vscodeUserData,V.extension,"ccreq","openai-codex"]);var Rie=new w("inModelsEditor",!1),Aie=new w("inModelsSearch",!1);function xp(r,t=Ie){return Ky(r,t)?r.charAt(0).toUpperCase()+r.slice(1):r}function cc(r,t){return r.replace(/^~($|\/|\\)/,`${t}$1`)}var g2="\u2026",Kh="\\\\",jh="~";function f2(r,t=bt){let e=new Array(r.length),n=!1;for(let o=0;o<r.length;o++){let i=r[o];if(i===""){e[o]=`.${t}`;continue}if(!i){e[o]=i;continue}n=!0;let s="",a=i;a.indexOf(Kh)===0?(s=a.substr(0,a.indexOf(Kh)+Kh.length),a=a.substr(a.indexOf(Kh)+Kh.length)):a.indexOf(t)===0?(s=a.substr(0,a.indexOf(t)+t.length),a=a.substr(a.indexOf(t)+t.length)):a.indexOf(jh)===0&&(s=a.substr(0,a.indexOf(jh)+jh.length),a=a.substr(a.indexOf(jh)+jh.length));let l=a.split(t);for(let d=1;n&&d<=l.length;d++)for(let c=l.length-d;n&&c>=0;c--){n=!1;let u=l.slice(c,c+d).join(t);for(let m=0;!n&&m<r.length;m++)if(m!==o&&r[m]&&r[m].indexOf(u)>-1){let g=c+d===l.length,h=c>0&&r[m].indexOf(t)>-1?t+u:u,f=r[m].endsWith(h);n=!g||f}if(!n){let m="";(l[0].endsWith(":")||s!=="")&&(c===1&&(c=0,d++,u=l[0]+t+u),c>0&&(m=l[0]+t),m=s+m),c>0&&(m=m+g2+t),m=m+u,c+d<l.length&&(m=m+t+g2),e[o]=m}}n&&(e[o]=i)}return e}var h2="github.copilot.chat.agentDebugLog.enabled",v2="github.copilot.chat.agentDebugLog.fileLogging.enabled";var b2="troubleshoot/SKILL.md";var Gh=(c=>(c.SessionStart="SessionStart",c.SessionEnd="SessionEnd",c.UserPromptSubmit="UserPromptSubmit",c.PreToolUse="PreToolUse",c.PostToolUse="PostToolUse",c.PreCompact="PreCompact",c.SubagentStart="SubagentStart",c.SubagentStop="SubagentStop",c.Stop="Stop",c.ErrorOccurred="ErrorOccurred",c))(Gh||{}),y2={vscode:{SessionStart:"SessionStart",UserPromptSubmit:"UserPromptSubmit",PreToolUse:"PreToolUse",PostToolUse:"PostToolUse",PreCompact:"PreCompact",SubagentStart:"SubagentStart",SubagentStop:"SubagentStop",Stop:"Stop"},"github-copilot":{sessionStart:"SessionStart",sessionEnd:"SessionEnd",userPromptSubmitted:"UserPromptSubmit",preToolUse:"PreToolUse",postToolUse:"PostToolUse",agentStop:"Stop",subagentStop:"SubagentStop",errorOccurred:"ErrorOccurred"},claude:{SessionStart:"SessionStart",UserPromptSubmit:"UserPromptSubmit",PreToolUse:"PreToolUse",PostToolUse:"PostToolUse",PreCompact:"PreCompact",SubagentStart:"SubagentStart",SubagentStop:"SubagentStop",Stop:"Stop"},undefined:Object.fromEntries(Object.values(Gh).map(r=>[r,r]))},I2={SessionStart:{label:p(7911,null),description:p(7910,null)},UserPromptSubmit:{label:p(7919,null),description:p(7918,null)},PreToolUse:{label:p(7907,null),description:p(7906,null)},PostToolUse:{label:p(7903,null),description:p(7902,null)},PreCompact:{label:p(7905,null),description:p(7904,null)},SubagentStart:{label:p(7915,null),description:p(7914,null)},SubagentStop:{label:p(7917,null),description:p(7916,null)},Stop:{label:p(7913,null),description:p(7912,null)},SessionEnd:{label:p(7909,null),description:p(7908,null)},ErrorOccurred:{label:p(7901,null),description:p(7900,null)}};function x2(r,t){if(!r)return t;let e={...r};for(let n of Object.values(Gh)){let o=r[n],i=t[n];i&&i.length>0&&(e[n]=o?[...o,...i]:i)}return e}var cr={type:p(7893,null),command:p(7884,null),windows:p(7894,null),linux:p(7888,null),osx:p(7889,null),bash:p(7882,null),powershell:p(7890,null),cwd:p(7886,null),env:p(7887,null),timeout:p(7891,null),timeoutSec:p(7892,null)},_7={type:"object",additionalProperties:!0,required:["type"],anyOf:[{required:["command"]},{required:["windows"]},{required:["linux"]},{required:["osx"]},{required:["bash"]},{required:["powershell"]}],errorMessage:p(7885,null),properties:{type:{type:"string",enum:["command"],description:cr.type},command:{type:"string",description:cr.command},windows:{type:"string",description:cr.windows},linux:{type:"string",description:cr.linux},osx:{type:"string",description:cr.osx},cwd:{type:"string",description:cr.cwd},env:{type:"object",additionalProperties:{type:"string"},description:cr.env},timeout:{type:"number",default:30,description:cr.timeout}}},D7={type:"array",items:_7};function S2(r,t){return Object.fromEntries(Object.entries(y2[r]).map(([e,n])=>[e,{...t,description:I2[n]?.description}]))}var R7=S2("vscode",D7),A7={type:"object",additionalProperties:!0,required:["type"],anyOf:[{required:["bash"]},{required:["powershell"]}],errorMessage:p(7883,null),properties:{type:{type:"string",enum:["command"],description:cr.type},bash:{type:"string",description:cr.bash},powershell:{type:"string",description:cr.powershell},cwd:{type:"string",description:cr.cwd},env:{type:"object",additionalProperties:{type:"string"},description:cr.env},timeoutSec:{type:"number",default:10,description:cr.timeoutSec}}},M7={type:"array",items:A7},L7=S2("github-copilot",M7),Jie={$schema:"http://json-schema.org/draft-07/schema#",type:"object",description:p(7895,null),additionalProperties:!0,required:["hooks"],properties:{hooks:{type:"object",description:p(7896,null),additionalProperties:!0}},if:{required:["version"],properties:{version:{type:"number"}}},then:{properties:{version:{type:"number",description:p(7899,null)},hooks:{properties:L7}}},else:{properties:{hooks:{properties:R7}}},defaultSnippets:[{label:p(7897,null),description:p(7898,null),body:{hooks:{SessionStart:[{type:"command",command:'${1:echo "Session started" >> session.log}'}],PreToolUse:[{type:"command",command:"${2:./scripts/validate.sh}",timeout:15}]}}}]};function C2(r,t){return t===1&&r.windows?r.windows:t===2&&r.osx?r.osx:t===3&&r.linux?r.linux:r.command}var Do=class{constructor(t,e,n){this.owner=t;this.debugNameSource=e;this.referenceFn=n}getDebugName(t){return k2(t,this)}},T2=new Map,YD=new WeakMap;function k2(r,t){let e=YD.get(r);if(e)return e;let n=O7(r,t);if(n){let o=T2.get(n)??0;o++,T2.set(n,o);let i=o===1?n:`${n}#${o}`;return YD.set(r,i),i}}function O7(r,t){let e=YD.get(r);if(e)return e;let n=t.owner?U7(t.owner)+".":"",o,i=t.debugNameSource;if(i!==void 0)if(typeof i=="function"){if(o=i(),o!==void 0)return n+o}else return n+i;let s=t.referenceFn;if(s!==void 0&&(o=Qh(s),o!==void 0))return n+o;if(t.owner!==void 0){let a=N7(t.owner,r);if(a!==void 0)return n+a}}function N7(r,t){for(let e in r)if(r[e]===t)return e}var E2=new Map,w2=new WeakMap;function U7(r){let t=w2.get(r);if(t)return t;let e=XD(r)??"Object",n=E2.get(e)??0;n++,E2.set(e,n);let o=n===1?e:`${e}#${n}`;return w2.set(r,o),o}function XD(r){let t=r.constructor;if(t)return t.name==="Object"?void 0:t.name}function Qh(r){let t=r.toString(),n=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t);return(n?n[1]:void 0)?.trim()}function Fr(r,t){return r===t}function F7(){return(r,t)=>r===t}function H7(r,t,e){return Xt(r,t,e??Fr)}function W7(r){return(t,e)=>Xt(t,e,r??Fr)}function Sp(r,t){if(r===t)return!0;if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==t.length)return!1;for(let e=0;e<r.length;e++)if(!Sp(r[e],t[e]))return!1;return!0}if(r&&typeof r=="object"&&t&&typeof t=="object"&&Object.getPrototypeOf(r)===Object.prototype&&Object.getPrototypeOf(t)===Object.prototype){let e=r,n=t,o=Object.keys(e),i=Object.keys(n),s=new Set(i);if(o.length!==i.length)return!1;for(let a of o)if(!s.has(a)||!Sp(e[a],n[a]))return!1;return!0}return!1}function V7(){return(r,t)=>Sp(r,t)}function B7(r,t){return JSON.stringify(r)===JSON.stringify(t)}function $7(){return(r,t)=>JSON.stringify(r)===JSON.stringify(t)}function z7(){return(r,t)=>r.equals(t)}function q7(r,t,e){return r==null||t===void 0||t===null?t===r:e(r,t)}function K7(r){return(t,e)=>t==null||e===void 0||e===null?e===t:r(t,e)}var j7;(u=>(u.strict=Fr,u.strictC=F7,u.array=H7,u.arrayC=W7,u.structural=Sp,u.structuralC=V7,u.jsonStringify=B7,u.jsonStringifyC=$7,u.thisC=z7,u.ifDefined=q7,u.ifDefinedC=K7))(j7||={});function ZD(r){let t=new Error("BugIndicatingErrorRecovery: "+r);$e(t),console.error("recovered from an error that indicates a bug",t)}var uc;function Jh(r){uc?uc instanceof XI?uc.loggers.push(r):uc=new XI([uc,r]):uc=r}function rn(){return uc}var eR;function P2(r){eR=r}function _2(r){eR&&eR(r)}var XI=class{constructor(t){this.loggers=t}handleObservableCreated(t,e){for(let n of this.loggers)n.handleObservableCreated(t,e)}handleOnListenerCountChanged(t,e){for(let n of this.loggers)n.handleOnListenerCountChanged(t,e)}handleObservableUpdated(t,e){for(let n of this.loggers)n.handleObservableUpdated(t,e)}handleAutorunCreated(t,e){for(let n of this.loggers)n.handleAutorunCreated(t,e)}handleAutorunDisposed(t){for(let e of this.loggers)e.handleAutorunDisposed(t)}handleAutorunDependencyChanged(t,e,n){for(let o of this.loggers)o.handleAutorunDependencyChanged(t,e,n)}handleAutorunStarted(t){for(let e of this.loggers)e.handleAutorunStarted(t)}handleAutorunFinished(t){for(let e of this.loggers)e.handleAutorunFinished(t)}handleDerivedDependencyChanged(t,e,n){for(let o of this.loggers)o.handleDerivedDependencyChanged(t,e,n)}handleDerivedCleared(t){for(let e of this.loggers)e.handleDerivedCleared(t)}handleBeginTransaction(t){for(let e of this.loggers)e.handleBeginTransaction(t)}handleEndTransaction(t){for(let e of this.loggers)e.handleEndTransaction(t)}};function Cp(r,t){let e=new pc(r,t);try{r(e)}finally{e.finish()}}function tR(r,t,e){r?t(r):Cp(t,e)}var pc=class{constructor(t,e){this._fn=t;this._getDebugName=e;this._updatingObservers=[];rn()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():Qh(this._fn)}updateObserver(t,e){if(!this._updatingObservers){ZD("Transaction already finished!"),Cp(n=>{n.updateObserver(t,e)});return}this._updatingObservers.push({observer:t,observable:e}),t.beginUpdate(e)}finish(){let t=this._updatingObservers;if(!t){ZD("transaction.finish() has already been called!");return}for(let e=0;e<t.length;e++){let{observer:n,observable:o}=t[e];n.endUpdate(o)}this._updatingObservers=null,rn()?.handleEndTransaction(this)}debugGetUpdatingObservers(){return this._updatingObservers}};var Bn;(n=>{let r=!1;function t(){r=!0}n.enable=t;function e(){if(!r)return;let o=Error,i=o.stackTraceLimit;o.stackTraceLimit=3;let s=new Error().stack;return o.stackTraceLimit=i,nR.fromStack(s,2)}n.ofCaller=e})(Bn||={});var nR=class r{constructor(t,e,n,o){this.fileName=t;this.line=e;this.column=n;this.id=o}static fromStack(t,e){let n=t.split(`
`),o=G7(n[e+1]);if(o)return new r(o.fileName,o.line,o.column,o.id)}};function G7(r){let t=r.match(/\((.*):(\d+):(\d+)\)/);if(t)return{fileName:t[1],line:parseInt(t[2]),column:parseInt(t[3]),id:r};let e=r.match(/at ([^\(\)]*):(\d+):(\d+)/);if(e)return{fileName:e[1],line:parseInt(e[2]),column:parseInt(e[3]),id:r}}var oR;function D2(r){oR=r}var R2;function A2(r){R2=r}var M2;function L2(r){M2=r}var rR;function O2(r){rR=r}var ZI=class{get TChange(){return null}reportChanges(){this.get()}read(t){return t?t.readObservable(this):this.get()}map(t,e,n=Bn.ofCaller()){let o=e===void 0?void 0:t,i=e===void 0?t:e;return oR({owner:o,debugName:()=>{let s=Qh(i);if(s!==void 0)return s;let l=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(i.toString());if(l)return`${this.debugName}.${l[2]}`;if(!o)return`${this.debugName} (mapped)`},debugReferenceFn:i},s=>i(this.read(s),s),n)}flatten(){return oR({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,e){return t.add(R2(this,e)),this}keepObserved(t){return t.add(M2(this)),this}get debugValue(){return this.get()}get debug(){return new iR(this)}},iR=class{constructor(t){this.observable=t}getDependencyGraph(){return rR(this.observable,{type:"dependencies"})}getObserverGraph(){return rR(this.observable,{type:"observers"})}},vi=class extends ZI{constructor(e){super();this._observers=new Set;rn()?.handleObservableCreated(this,e)}addObserver(e){let n=this._observers.size;this._observers.add(e),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&rn()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){let n=this._observers.delete(e);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&rn()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}log(){let e=!!rn();return _2(this),e||rn()?.handleObservableCreated(this,Bn.ofCaller()),this}debugGetObservers(){return this._observers}};function mc(r,t,e=Bn.ofCaller()){let n;return typeof r=="string"?n=new Do(void 0,r,void 0):n=new Do(r,void 0,void 0),new ta(n,t,Fr,e)}var ta=class extends vi{constructor(e,n,o,i){super(i);this._debugNameData=e;this._equalityComparator=o;this._value=n,rn()?.handleObservableUpdated(this,{hadValue:!1,newValue:n,change:void 0,didChange:!0,oldValue:void 0})}get debugName(){return this._debugNameData.getDebugName(this)??"ObservableValue"}get(){return this._value}set(e,n,o){if(o===void 0&&this._equalityComparator(this._value,e))return;let i;n||(n=i=new pc(()=>{},()=>`Setting ${this.debugName}`));try{let s=this._value;this._setValue(e),rn()?.handleObservableUpdated(this,{oldValue:s,newValue:e,change:o,didChange:!0,hadValue:!0});for(let a of this._observers)n.updateObserver(a,this),a.handleChange(this,o)}finally{i&&i.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}debugGetState(){return{value:this._value}}debugSetValue(e){this._value=e}};function Q7(r){switch(r){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var na=class{constructor(t,e,n,o){this._debugNameData=t;this._runFn=e;this._changeTracker=n;this._state=2;this._updateCount=0;this._disposed=!1;this._dependencies=new Set;this._dependenciesToBeRemoved=new Set;this._isRunning=!1;this._iteration=0;this._store=void 0;this._delayedStore=void 0;this._changeSummary=this._changeTracker?.createChangeSummary(void 0),rn()?.handleAutorunCreated(this,o),this._run(),Ga(this)}get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}dispose(){if(!this._disposed){this._disposed=!0;for(let t of this._dependencies)t.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&this._store.dispose(),this._delayedStore!==void 0&&this._delayedStore.dispose(),rn()?.handleAutorunDisposed(this),Qa(this)}}_run(){let t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){rn()?.handleAutorunStarted(this);let e=this._changeSummary,n=this._delayedStore;n!==void 0&&(this._delayedStore=void 0);try{this._isRunning=!0,this._changeTracker&&(this._changeTracker.beforeUpdate?.(this,e),this._changeSummary=this._changeTracker.createChangeSummary(e)),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._runFn(this,e)}catch(o){$a(o)}finally{this._isRunning=!1,n!==void 0&&n.dispose()}}}finally{this._disposed||rn()?.handleAutorunFinished(this);for(let e of this._dependenciesToBeRemoved)e.removeObserver(this);this._dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(t){this._state===3&&(this._checkIterations(),this._state=1),this._updateCount++}endUpdate(t){try{if(this._updateCount===1){this._iteration=1;do{if(this._checkIterations())return;if(this._state===1){this._state=3;for(let e of this._dependencies)if(e.reportChanges(),this._state===2)break}this._iteration++,this._state!==3&&this._run()}while(this._state!==3)}}finally{this._updateCount--}jf(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._checkIterations(),this._state=1)}handleChange(t,e){if(this._isDependency(t)){rn()?.handleAutorunDependencyChanged(this,t,e);try{(!this._changeTracker||this._changeTracker.handleChange({changedObservable:t,change:e,didChange:o=>o===t},this._changeSummary))&&(this._checkIterations(),this._state=2)}catch(n){$a(n)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new Dt("The reader object cannot be used outside its compute function!")}readObservable(t){if(this._ensureNoRunning(),this._disposed)return t.get();t.addObserver(this);let e=t.get();return this._dependencies.add(t),this._dependenciesToBeRemoved.delete(t),e}get store(){if(this._ensureNoRunning(),this._disposed)throw new Dt("Cannot access store after dispose");return this._store===void 0&&(this._store=new $),this._store}get delayedStore(){if(this._ensureNoRunning(),this._disposed)throw new Dt("Cannot access store after dispose");return this._delayedStore===void 0&&(this._delayedStore=new $),this._delayedStore}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:Q7(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}_checkIterations(){return this._iteration>100?($a(new Dt(`Autorun '${this.debugName}' is stuck in an infinite update loop.`)),!0):!1}};function os(r,t=Bn.ofCaller()){return new na(new Do(void 0,void 0,r),r,void 0,t)}function J7(r){switch(r){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var ro=class extends vi{constructor(e,n,o,i=void 0,s,a){super(a);this._debugNameData=e;this._computeFn=n;this._changeTracker=o;this._handleLastObserverRemoved=i;this._equalityComparator=s;this._state=0;this._value=void 0;this._updateCount=0;this._dependencies=new Set;this._dependenciesToBeRemoved=new Set;this._changeSummary=void 0;this._isUpdating=!1;this._isComputing=!1;this._didReportChange=!1;this._isInBeforeUpdate=!1;this._isReaderValid=!1;this._store=void 0;this._delayedStore=void 0;this._removedObserverToCallEndUpdateOn=null;this._changeSummary=this._changeTracker?.createChangeSummary(void 0)}get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}onLastObserverRemoved(){this._state=0,this._value=void 0,rn()?.handleDerivedCleared(this);for(let e of this._dependencies)e.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._delayedStore!==void 0&&(this._delayedStore.dispose(),this._delayedStore=void 0),this._handleLastObserverRemoved?.()}get(){if(this._isComputing,this._observers.size===0){let n;try{this._isReaderValid=!0;let o;this._changeTracker&&(o=this._changeTracker.createChangeSummary(void 0),this._changeTracker.beforeUpdate?.(this,o)),n=this._computeFn(this,o)}finally{this._isReaderValid=!1}return this.onLastObserverRemoved(),n}else{do{if(this._state===1){for(let n of this._dependencies)if(n.reportChanges(),this._state===2)break}this._state===1&&(this._state=3),this._state!==3&&this._recompute()}while(this._state!==3);return this._value}}_recompute(){let e=!1;this._isComputing=!0,this._didReportChange=!1;let n=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=n;try{let o=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,this._changeTracker.beforeUpdate?.(this,o),this._isInBeforeUpdate=!1,this._changeSummary=this._changeTracker?.createChangeSummary(o));let i=this._state!==0,s=this._value;this._state=3;let a=this._delayedStore;a!==void 0&&(this._delayedStore=void 0);try{this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._value=this._computeFn(this,o)}finally{this._isReaderValid=!1;for(let l of this._dependenciesToBeRemoved)l.removeObserver(this);this._dependenciesToBeRemoved.clear(),a!==void 0&&a.dispose()}e=this._didReportChange||i&&!this._equalityComparator(s,this._value),rn()?.handleObservableUpdated(this,{oldValue:s,newValue:this._value,change:void 0,didChange:e,hadValue:i})}catch(o){$a(o)}if(this._isComputing=!1,!this._didReportChange&&e)for(let o of this._observers)o.handleChange(this,void 0);else this._didReportChange=!1}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){if(this._isUpdating)throw new Dt("Cyclic deriveds are not supported yet!");this._updateCount++,this._isUpdating=!0;try{let n=this._updateCount===1;if(this._state===3&&(this._state=1,!n))for(let o of this._observers)o.handlePossibleChange(this);if(n)for(let o of this._observers)o.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(e){if(this._updateCount--,this._updateCount===0){let n=[...this._observers];for(let o of n)o.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){let o=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(let i of o)i.endUpdate(this)}}jf(()=>this._updateCount>=0)}handlePossibleChange(e){if(this._state===3&&this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)){this._state=1;for(let n of this._observers)n.handlePossibleChange(this)}}handleChange(e,n){if(this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)||this._isInBeforeUpdate){rn()?.handleDerivedDependencyChanged(this,e,n);let o=!1;try{o=this._changeTracker?this._changeTracker.handleChange({changedObservable:e,change:n,didChange:s=>s===e},this._changeSummary):!0}catch(s){$a(s)}let i=this._state===3;if(o&&(this._state===1||i)&&(this._state=2,i))for(let s of this._observers)s.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new Dt("The reader object cannot be used outside its compute function!")}readObservable(e){this._ensureReaderValid(),e.addObserver(this);let n=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),n}reportChange(e){this._ensureReaderValid(),this._didReportChange=!0;for(let n of this._observers)n.handleChange(this,e)}get store(){return this._ensureReaderValid(),this._store===void 0&&(this._store=new $),this._store}get delayedStore(){return this._ensureReaderValid(),this._delayedStore===void 0&&(this._delayedStore=new $),this._delayedStore}addObserver(e){let n=!this._observers.has(e)&&this._updateCount>0;super.addObserver(e),n&&(this._removedObserverToCallEndUpdateOn?.delete(e)||e.beginUpdate(this))}removeObserver(e){this._observers.has(e)&&this._updateCount>0&&(this._removedObserverToCallEndUpdateOn||(this._removedObserverToCallEndUpdateOn=new Set),this._removedObserverToCallEndUpdateOn.add(e)),super.removeObserver(e)}debugGetState(){return{state:this._state,stateStr:J7(this._state),updateCount:this._updateCount,isComputing:this._isComputing,dependencies:this._dependencies,value:this._value}}debugSetValue(e){this._value=e}debugRecompute(){this.beginUpdate(this);try{this._isComputing?this._state=2:this._recompute()}finally{this.endUpdate(this)}}setValue(e,n,o){this._value=e;let i=this._observers;n.updateObserver(this,this);for(let s of i)s.handleChange(this,o)}};function Yh(r,t,e=Bn.ofCaller()){return new ro(new Do(r.owner,r.debugName,r.debugReferenceFn),t,void 0,r.onLastObserverRemoved,r.equalsFn??Fr,e)}D2(Yh);function rs(...r){let t,e,n,o;return r.length===2?[e,n]=r:[t,e,n,o]=r,new Hr(new Do(t,void 0,n),e,n,()=>Hr.globalTransaction,Fr,o??Bn.ofCaller())}var Hr=class extends vi{constructor(e,n,o,i,s,a){super(a);this._debugNameData=e;this.event=n;this._getValue=o;this._getTransaction=i;this._equalityComparator=s;this._hasValue=!1;this.handleEvent=e=>{let n=this._getValue(e),o=this._value,i=!this._hasValue||!this._equalityComparator(o,n),s=!1;i&&(this._value=n,this._hasValue&&(s=!0,tR(this._getTransaction(),a=>{rn()?.handleObservableUpdated(this,{oldValue:o,newValue:n,change:void 0,didChange:i,hadValue:this._hasValue});for(let l of this._observers)a.updateObserver(l,this),l.handleChange(this,void 0)},()=>{let a=this.getDebugName();return"Event fired"+(a?`: ${a}`:"")})),this._hasValue=!0),s||rn()?.handleObservableUpdated(this,{oldValue:o,newValue:n,change:void 0,didChange:i,hadValue:this._hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){let e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this._subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this._subscription.dispose(),this._subscription=void 0,this._hasValue=!1,this._value=void 0}get(){return this._subscription?(this._hasValue||this.handleEvent(void 0),this._value):this._getValue(void 0)}debugSetValue(e){this._value=e}debugGetState(){return{value:this._value,hasValue:this._hasValue}}};(e=>{e.Observer=Hr;function t(n,o){let i=!1;Hr.globalTransaction===void 0&&(Hr.globalTransaction=n,i=!0);try{o()}finally{i&&(Hr.globalTransaction=void 0)}}e.batchEventsGlobally=t})(rs||={});function N2(r){let t=new ex(!1,void 0);return r.addObserver(t),G(()=>{r.removeObserver(t)})}L2(N2);function U2(r,t){let e=new ex(!0,t);r.addObserver(e);try{e.beginUpdate(r)}finally{e.endUpdate(r)}return G(()=>{r.removeObserver(e)})}A2(U2);var ex=class{constructor(t,e){this._forceRecompute=t;this._handleValue=e;this._counter=0}beginUpdate(t){this._counter++}endUpdate(t){this._counter===1&&this._forceRecompute&&(this._handleValue?this._handleValue(t.get()):t.reportChanges()),this._counter--}handlePossibleChange(t){}handleChange(t,e){}};var tx;function H2(r){tx||(tx=new Xh,Jh(tx)),tx.addFilteredObj(r)}var Xh=class{constructor(){this.indentation=0;this.changedObservablesSets=new WeakMap}addFilteredObj(t){this._filteredObjects||(this._filteredObjects=new Set),this._filteredObjects.add(t)}_isIncluded(t){return this._filteredObjects?.has(t)??!0}textToConsoleArgs(t){return nz([Tp(iz("|  ",this.indentation)),t])}formatInfo(t){return t.hadValue?t.didChange?[Tp(" "),Wr(Sr(t.oldValue,70),{color:"red",strikeThrough:!0}),Tp(" "),Wr(Sr(t.newValue,60),{color:"green"})]:[Tp(" (unchanged)")]:[Tp(" "),Wr(Sr(t.newValue,60),{color:"green"}),Tp(" (initial)")]}handleObservableCreated(t){if(t instanceof ro){let e=t;if(this.changedObservablesSets.set(e,new Set),!1){let o=[];e.__debugUpdating=o;let i=e.beginUpdate;e.beginUpdate=a=>(o.push(a),i.apply(e,[a]));let s=e.endUpdate;e.endUpdate=a=>{let l=o.indexOf(a);return l===-1&&console.error("endUpdate called without beginUpdate",e.debugName,a.debugName),o.splice(l,1),s.apply(e,[a])}}}}handleOnListenerCountChanged(t,e){}handleObservableUpdated(t,e){if(this._isIncluded(t)){if(t instanceof ro){this._handleDerivedRecomputed(t,e);return}console.log(...this.textToConsoleArgs([Ep("observable value changed"),Wr(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e)]))}}formatChanges(t){if(t.size!==0)return Wr(" (changed deps: "+[...t].map(e=>e.debugName).join(", ")+")",{color:"gray"})}handleDerivedDependencyChanged(t,e,n){this._isIncluded(t)&&this.changedObservablesSets.get(t)?.add(e)}_handleDerivedRecomputed(t,e){if(!this._isIncluded(t))return;let n=this.changedObservablesSets.get(t);n&&(console.log(...this.textToConsoleArgs([Ep("derived recomputed"),Wr(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e),this.formatChanges(n),{data:[{fn:t._debugNameData.referenceFn??t._computeFn}]}])),n.clear())}handleDerivedCleared(t){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Ep("derived cleared"),Wr(t.debugName,{color:"BlueViolet"})]))}handleFromEventObservableTriggered(t,e){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Ep("observable from event triggered"),Wr(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e),{data:[{fn:t._getValue}]}]))}handleAutorunCreated(t){this._isIncluded(t)&&this.changedObservablesSets.set(t,new Set)}handleAutorunDisposed(t){}handleAutorunDependencyChanged(t,e,n){this._isIncluded(t)&&this.changedObservablesSets.get(t).add(e)}handleAutorunStarted(t){let e=this.changedObservablesSets.get(t);e&&(this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Ep("autorun"),Wr(t.debugName,{color:"BlueViolet"}),this.formatChanges(e),{data:[{fn:t._debugNameData.referenceFn??t._runFn}]}])),e.clear(),this.indentation++)}handleAutorunFinished(t){this.indentation--}handleBeginTransaction(t){let e=t.getDebugName();e===void 0&&(e=""),this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Ep("transaction"),Wr(e,{color:"BlueViolet"}),{data:[{fn:t._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}};function nz(r){let t=new Array,e=[],n="";function o(s){if("length"in s)for(let a of s)a&&o(a);else"text"in s?(n+=`%c${s.text}`,t.push(s.style),s.data&&e.push(...s.data)):"data"in s&&e.push(...s.data)}o(r);let i=[n,...t];return i.push(...e),i}function Tp(r){return Wr(r,{color:"black"})}function Ep(r){return Wr(sz(`${r}: `,10),{color:"black",bold:!0})}function Wr(r,t={color:"black"}){function e(o){return Object.entries(o).reduce((i,[s,a])=>`${i}${s}:${a};`,"")}let n={color:t.color};return t.strikeThrough&&(n["text-decoration"]="line-through"),t.bold&&(n["font-weight"]="bold"),{text:r,style:e(n)}}function Sr(r,t){switch(typeof r){case"number":return""+r;case"string":return r.length+2<=t?`"${r}"`:`"${r.substr(0,t-7)}"+...`;case"boolean":return r?"true":"false";case"undefined":return"undefined";case"object":return r===null?"null":Array.isArray(r)?oz(r,t):rz(r,t);case"symbol":return r.toString();case"function":return`[[Function${r.name?" "+r.name:""}]]`;default:return""+r}}function oz(r,t){let e="[ ",n=!0;for(let o of r){if(n||(e+=", "),e.length-5>t){e+="...";break}n=!1,e+=`${Sr(o,t-e.length)}`}return e+=" ]",e}function rz(r,t){if(typeof r.toString=="function"&&r.toString!==Object.prototype.toString){let i=r.toString();return i.length<=t?i:i.substring(0,t-3)+"..."}let e=XD(r),n=e?e+"(":"{ ",o=!0;for(let[i,s]of Object.entries(r)){if(o||(n+=", "),n.length-5>t){n+="...";break}o=!1,n+=`${i}: ${Sr(s,t-n.length)}`}return n+=e?")":" }",n}function iz(r,t){let e="";for(let n=1;n<=t;n++)e+=r;return e}function sz(r,t){for(;r.length<t;)r+=" ";return r}var nx=class r{constructor(t,e){this._channelFactory=t;this._getHandler=e;this._channel=this._channelFactory({handleNotification:i=>{let s=i,a=this._getHandler().notifications[s[0]];if(!a)throw new Error(`Unknown notification "${s[0]}"!`);a(...s[1])},handleRequest:i=>{let s=i;try{return{type:"result",value:this._getHandler().requests[s[0]](...s[1])}}catch(a){return{type:"error",value:a}}}});let n=new Proxy({},{get:(i,s)=>async(...a)=>{let l=await this._channel.sendRequest([s,a]);if(l.type==="error")throw l.value;return l.value}}),o=new Proxy({},{get:(i,s)=>(...a)=>{this._channel.sendNotification([s,a])}});this.api={notifications:o,requests:n}}static createHost(t,e){return new r(t,e)}static createClient(t,e){return new r(t,e)}};function W2(r,t){let e=globalThis,n=[],o,{channel:i,handler:s}=az({sendNotification:l=>{o?o.sendNotification(l):n.push(l)}}),a;return(e.$$debugValueEditor_debugChannels??(e.$$debugValueEditor_debugChannels={}))[r]=l=>{a=t(),o=l;for(let d of n)l.sendNotification(d);return n=[],s},nx.createClient(i,()=>{if(!a)throw new Error("Not supported");return a})}function az(r){let t;return{channel:n=>(t=n,{sendNotification:o=>{r.sendNotification(o)},sendRequest:o=>{throw new Error("not supported")}}),handler:{handleRequest:n=>n.type==="notification"?t?.handleNotification(n.data):t?.handleRequest(n.data)}}}var ox=class{constructor(){this._timeout=void 0}throttle(t,e){this._timeout===void 0&&(this._timeout=setTimeout(()=>{this._timeout=void 0,t()},e))}dispose(){this._timeout!==void 0&&clearTimeout(this._timeout)}};function aR(r,t){for(let e in t)r[e]&&typeof r[e]=="object"&&t[e]&&typeof t[e]=="object"?aR(r[e],t[e]):r[e]=t[e]}function lR(r,t){for(let e in t)t[e]===null?delete r[e]:r[e]&&typeof r[e]=="object"&&t[e]&&typeof t[e]=="object"?lR(r[e],t[e]):r[e]=t[e]}var rx=class r{constructor(){this._declarationId=0;this._instanceId=0;this._declarations=new Map;this._instanceInfos=new WeakMap;this._aliveInstances=new Map;this._activeTransactions=new Set;this._channel=W2("observableDevTools",()=>({notifications:{setDeclarationIdFilter:t=>{},logObservableValue:t=>{console.log("logObservableValue",t)},flushUpdates:()=>{this._flushUpdates()},resetUpdates:()=>{this._pendingChanges=null,this._channel.api.notifications.handleChange(this._fullState,!0)}},requests:{getDeclarations:()=>{let t={};for(let e of this._declarations.values())t[e.id]=e;return{decls:t}},getSummarizedInstances:()=>null,getObservableValueInfo:t=>({observers:[...this._aliveInstances.get(t).debugGetObservers()].map(n=>this._formatObserver(n)).filter(uo)}),getDerivedInfo:t=>{let e=this._aliveInstances.get(t);return{dependencies:[...e.debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(uo),observers:[...e.debugGetObservers()].map(n=>this._formatObserver(n)).filter(uo)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(uo)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,e)=>{let n=this._aliveInstances.get(t);if(n instanceof ro)n.debugSetValue(e);else if(n instanceof ta)n.debugSetValue(e);else if(n instanceof Hr)n.debugSetValue(e);else throw new Dt("Observable is not supported");let o=[...n.debugGetObservers()];for(let i of o)i.beginUpdate(n);for(let i of o)i.handleChange(n,void 0);for(let i of o)i.endUpdate(n)},getValue:t=>{let e=this._aliveInstances.get(t);if(e instanceof ro)return Sr(e.debugGetState().value,200);if(e instanceof ta)return Sr(e.debugGetState().value,200)},logValue:t=>{let e=this._aliveInstances.get(t);if(e&&"get"in e)console.log("Logged Value:",e.get());else throw new Dt("Observable is not supported")},rerun:t=>{let e=this._aliveInstances.get(t);if(e instanceof ro)e.debugRecompute();else if(e instanceof na)e.debugRerun();else throw new Dt("Observable is not supported")}}}));this._pendingChanges=null;this._changeThrottler=new ox;this._fullState={};this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)};Bn.enable()}static{this._instance=void 0}static getInstance(){return r._instance===void 0&&(r._instance=new r),r._instance}getTransactionState(){let t=[],e=[...this._activeTransactions];if(e.length===0)return;let n=e.flatMap(i=>i.debugGetUpdatingObservers()??[]).map(i=>i.observer),o=new Set;for(;n.length>0;){let i=n.shift();if(o.has(i))continue;o.add(i);let s=this._getInfo(i,a=>{o.has(a)||n.push(a)});s&&t.push(s)}return{names:e.map(i=>i.getDebugName()??"tx"),affected:t}}_getObservableInfo(t){let e=this._instanceInfos.get(t);if(!e){$e(new Dt("No info found"));return}return e}_getAutorunInfo(t){let e=this._instanceInfos.get(t);if(!e){$e(new Dt("No info found"));return}return e}_getInfo(t,e){if(t instanceof ro){let n=[...t.debugGetObservers()];for(let l of n)e(l);let o=this._getObservableInfo(t);if(!o)return;let i=t.debugGetState(),s={name:t.debugName,instanceId:o.instanceId,updateCount:i.updateCount},a=[...o.changedObservables].map(l=>this._instanceInfos.get(l)?.instanceId).filter(uo);if(i.isComputing)return{...s,type:"observable/derived",state:"updating",changedDependencies:a,initialComputation:!1};switch(i.state){case 0:return{...s,type:"observable/derived",state:"noValue"};case 3:return{...s,type:"observable/derived",state:"upToDate"};case 2:return{...s,type:"observable/derived",state:"stale",changedDependencies:a};case 1:return{...s,type:"observable/derived",state:"possiblyStale"}}}else if(t instanceof na){let n=this._getAutorunInfo(t);if(!n)return;let o={name:t.debugName,instanceId:n.instanceId,updateCount:n.updateCount},i=[...n.changedObservables].map(s=>this._instanceInfos.get(s).instanceId);if(t.debugGetState().isRunning)return{...o,type:"autorun",state:"updating",changedDependencies:i};switch(t.debugGetState().state){case 3:return{...o,type:"autorun",state:"upToDate"};case 2:return{...o,type:"autorun",state:"stale",changedDependencies:i};case 1:return{...o,type:"autorun",state:"possiblyStale"}}}}_formatObservable(t){let e=this._getObservableInfo(t);if(e)return{name:t.debugName,instanceId:e.instanceId}}_formatObserver(t){if(t instanceof ro)return{name:t.toString(),instanceId:this._getObservableInfo(t)?.instanceId};let e=this._getAutorunInfo(t);if(e)return{name:t.toString(),instanceId:e.instanceId}}_handleChange(t){lR(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:aR(this._pendingChanges,t),this._changeThrottler.throttle(this._flushUpdates,10)}_getDeclarationId(t,e){if(!e)return-1;let n=this._declarations.get(e.id);return n===void 0&&(n={id:this._declarationId++,type:t,url:e.fileName,line:e.line,column:e.column},this._declarations.set(e.id,n),this._handleChange({decls:{[n.id]:n}})),n.id}handleObservableCreated(t,e){let o={declarationId:this._getDeclarationId("observable/value",e),instanceId:this._instanceId++,listenerCount:0,lastValue:void 0,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,o)}handleOnListenerCountChanged(t,e){let n=this._getObservableInfo(t);if(n){if(n.listenerCount===0&&e>0){let o=t instanceof ro?"observable/derived":"observable/value";this._aliveInstances.set(n.instanceId,t),this._handleChange({instances:{[n.instanceId]:{instanceId:n.instanceId,declarationId:n.declarationId,formattedValue:n.lastValue,type:o,name:t.debugName}}})}else n.listenerCount>0&&e===0&&(this._handleChange({instances:{[n.instanceId]:null}}),this._aliveInstances.delete(n.instanceId));n.listenerCount=e}}handleObservableUpdated(t,e){if(t instanceof ro){this._handleDerivedRecomputed(t,e);return}let n=this._getObservableInfo(t);n&&e.didChange&&(n.lastValue=Sr(e.newValue,30),n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:n.lastValue}}}))}handleAutorunCreated(t,e){let o={declarationId:this._getDeclarationId("autorun",e),instanceId:this._instanceId++,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,o),this._aliveInstances.set(o.instanceId,t),o&&this._handleChange({instances:{[o.instanceId]:{instanceId:o.instanceId,declarationId:o.declarationId,runCount:0,type:"autorun",name:t.debugName}}})}handleAutorunDisposed(t){let e=this._getAutorunInfo(t);e&&(this._handleChange({instances:{[e.instanceId]:null}}),this._instanceInfos.delete(t),this._aliveInstances.delete(e.instanceId))}handleAutorunDependencyChanged(t,e,n){let o=this._getAutorunInfo(t);o&&o.changedObservables.add(e)}handleAutorunStarted(t){}handleAutorunFinished(t){let e=this._getAutorunInfo(t);e&&(e.changedObservables.clear(),e.updateCount++,this._handleChange({instances:{[e.instanceId]:{runCount:e.updateCount}}}))}handleDerivedDependencyChanged(t,e,n){let o=this._getObservableInfo(t);o&&o.changedObservables.add(e)}_handleDerivedRecomputed(t,e){let n=this._getObservableInfo(t);if(!n)return;let o=Sr(e.newValue,30);n.updateCount++,n.changedObservables.clear(),n.lastValue=o,n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:o,recomputationCount:n.updateCount}}})}handleDerivedCleared(t){let e=this._getObservableInfo(t);e&&(e.lastValue=void 0,e.changedObservables.clear(),e.listenerCount>0&&this._handleChange({instances:{[e.instanceId]:{formattedValue:void 0}}}))}handleBeginTransaction(t){this._activeTransactions.add(t)}handleEndTransaction(t){this._activeTransactions.delete(t)}};function V2(r,t){let e=t?.debugNamePostProcessor??(i=>i),n=gc.from(r,e);if(!n)return"";let o=new Set;return t.type==="observers"?$2(n,0,o,t).trim():B2(n,0,o,t).trim()}function B2(r,t,e,n){let o="		".repeat(t),i=[];if(e.has(r.sourceObj))return i.push(`${o}* ${r.type} ${r.name} (already listed)`),i.join(`
`);if(e.add(r.sourceObj),i.push(`${o}* ${r.type} ${r.name}:`),i.push(`${o}  value: ${Sr(r.value,50)}`),i.push(`${o}  state: ${r.state}`),r.dependencies.length>0){i.push(`${o}  dependencies:`);for(let a of r.dependencies){let l=gc.from(a,n.debugNamePostProcessor??(d=>d))??gc.unknown(a);i.push(B2(l,t+1,e,n))}}return i.join(`
`)}function $2(r,t,e,n){let o="		".repeat(t),i=[];if(e.has(r.sourceObj))return i.push(`${o}* ${r.type} ${r.name} (already listed)`),i.join(`
`);if(e.add(r.sourceObj),i.push(`${o}* ${r.type} ${r.name}:`),i.push(`${o}  value: ${Sr(r.value,50)}`),i.push(`${o}  state: ${r.state}`),r.observers.length>0){i.push(`${o}  observers:`);for(let a of r.observers){let l=gc.from(a,n.debugNamePostProcessor??(d=>d))??gc.unknown(a);i.push($2(l,t+1,e,n))}}return i.join(`
`)}var gc=class r{constructor(t,e,n,o,i,s,a){this.sourceObj=t;this.name=e;this.type=n;this.value=o;this.state=i;this.dependencies=s;this.observers=a}static from(t,e){if(t instanceof na){let n=t.debugGetState();return new r(t,e(t.debugName),"autorun",void 0,n.stateStr,Array.from(n.dependencies),[])}else if(t instanceof ro){let n=t.debugGetState();return new r(t,e(t.debugName),"derived",n.value,n.stateStr,Array.from(n.dependencies),Array.from(t.debugGetObservers()))}else if(t instanceof ta){let n=t.debugGetState();return new r(t,e(t.debugName),"observableValue",n.value,"upToDate",[],Array.from(t.debugGetObservers()))}else if(t instanceof Hr){let n=t.debugGetState();return new r(t,e(t.debugName),"fromEvent",n.value,n.hasValue?"upToDate":"initial",[],Array.from(t.debugGetObservers()))}}static unknown(t){return new r(t,"(unknown)","unknown",void 0,"unknown",[],[])}};O2(V2);P2(H2);var uz=!1;uz&&Jh(new Xh);Co&&Co.VSCODE_DEV_DEBUG_OBSERVABLES&&Jh(rx.getInstance());var Sn;(i=>{i.Internal={type:"internal",label:"Built-In"},i.External={type:"external",label:"External"};function e(s){switch(s.type){case"extension":return`extension:${s.extensionId.value}`;case"mcp":return`mcp:${s.collectionId}:${s.definitionId}`;case"user":return`user:${s.file.toString()}`;case"internal":return"internal";case"external":return"external"}}i.toKey=e;function n(s,a){return e(s)===e(a)}i.equals=n;function o(s){return s.type==="internal"?{ordinal:1,label:p(8298,null)}:s.type==="mcp"?{ordinal:2,label:s.label}:s.type==="user"?{ordinal:0,label:p(8300,null)}:{ordinal:3,label:s.label}}i.classify=o})(Sn||={});function z2(r){return r!==null&&typeof r=="object"&&y.isUri(r.sessionResource)}function q2(r){return!!r&&r.getTools!==void 0}var fc=R("ILanguageModelToolsService");var pz;(a=>(a.execute="execute",a.edit="edit",a.search="search",a.agent="agent",a.read="read",a.web="web",a.todo="todo"))(pz||={});var Zh;(e=>(e.runSubagent="runSubagent",e.vscode="vscode"))(Zh||={});var is=R("productService"),K2="vscode://schemas/vscode-product";var sn=R("configurationService");function ix(r,t){let e=Object.create(null);for(let n in r)dR(e,n,r[n],t);return e}function dR(r,t,e,n){let o=t.split("."),i=o.pop(),s=r;for(let a=0;a<o.length;a++){let l=o[a],d=s[l];switch(typeof d){case"undefined":d=s[l]=Object.create(null);break;case"object":if(d===null){n(`Ignoring ${t} as ${o.slice(0,a+1).join(".")} is null`);return}break;default:n(`Ignoring ${t} as ${o.slice(0,a+1).join(".")} is ${JSON.stringify(d)}`);return}s=d}if(typeof s=="object"&&s!==null)try{s[i]=e}catch{n(`Ignoring ${t} as ${o.join(".")} is ${JSON.stringify(s)}`)}else n(`Ignoring ${t} as ${o.join(".")} is ${JSON.stringify(s)}`)}function j2(r,t){let e=t.split(".");G2(r,e)}function G2(r,t){if(!r)return;let e=r,n=t.shift();if(t.length===0){delete e[n];return}if(Object.keys(e).indexOf(n)!==-1){let o=e[n];typeof o=="object"&&!Array.isArray(o)&&(G2(o,t),Object.keys(o).length===0&&delete e[n])}}function ev(r,t,e){function n(s,a){let l=s;for(let d of a){if(typeof l!="object"||l===null)return;l=l[d]}return l}let o=t.split("."),i=n(r,o);return typeof i>"u"?e:i}function Q2(r){return r.replace(/^\[/,"").replace(/]$/g,"").replace(/\]\[/g,", ")}function J2(r){let t=!1,e=new Map,n=new Map;if(mz(r,c=>{if(r===c)return!0;let u=JSON.stringify(c);if(u.length<30)return!0;let m=e.get(u);if(!m){let g={schemas:[c]};return e.set(u,g),n.set(c,g),!0}return m.schemas.push(c),n.set(c,m),t=!0,!1}),e.clear(),!t)return JSON.stringify(r);let i="$defs";for(;r.hasOwnProperty(i);)i+="_";let s=[];function a(c){return JSON.stringify(c,(u,m)=>{if(m!==c){let g=n.get(m);if(g&&g.schemas.length>1)return g.id||(g.id=`_${s.length}`,s.push(g.schemas[0])),{$ref:`#/${i}/${g.id}`}}return m})}let l=a(r),d=[];for(let c=0;c<s.length;c++)d.push(`"_${c}":${a(s[c])}`);return d.length?`${l.substring(0,l.length-1)},"${i}":{${d.join(",")}}}`:l}function wp(r){return typeof r=="object"&&r!==null}function mz(r,t){if(!r||typeof r!="object")return;let e=(...l)=>{for(let d of l)wp(d)&&s.push(d)},n=(...l)=>{for(let d of l)if(wp(d))for(let c in d){let u=d[c];wp(u)&&s.push(u)}},o=(...l)=>{for(let d of l)if(Array.isArray(d))for(let c of d)wp(c)&&s.push(c)},i=l=>{if(Array.isArray(l))for(let d of l)wp(d)&&s.push(d);else wp(l)&&s.push(l)},s=[r],a=s.pop();for(;a;)t(a)&&(e(a.additionalItems,a.additionalProperties,a.not,a.contains,a.propertyNames,a.if,a.then,a.else,a.unevaluatedItems,a.unevaluatedProperties),n(a.definitions,a.$defs,a.properties,a.patternProperties,a.dependencies,a.dependentSchemas),o(a.anyOf,a.allOf,a.oneOf,a.prefixItems),i(a.items)),a=s.pop()}var hc={JSONContribution:"base.contributions.json"};function Y2(r){return r.length>0&&r.charAt(r.length-1)==="#"?r.substring(0,r.length-1):r}var cR=class extends O{constructor(){super(...arguments);this.schemasById={};this.schemaAssociations={};this._onDidChangeSchema=this._register(new T);this.onDidChangeSchema=this._onDidChangeSchema.event;this._onDidChangeSchemaAssociations=this._register(new T);this.onDidChangeSchemaAssociations=this._onDidChangeSchemaAssociations.event}registerSchema(e,n,o){let i=Y2(e);this.schemasById[i]=n,this._onDidChangeSchema.fire(e),o&&o.add(G(()=>{delete this.schemasById[i],this._onDidChangeSchema.fire(e)}))}registerSchemaAssociation(e,n){let o=Y2(e);return this.schemaAssociations[o]||(this.schemaAssociations[o]=[]),this.schemaAssociations[o].includes(n)||(this.schemaAssociations[o].push(n),this._onDidChangeSchemaAssociations.fire()),G(()=>{let i=this.schemaAssociations[o];if(i){let s=i.indexOf(n);s!==-1&&(i.splice(s,1),i.length===0&&delete this.schemaAssociations[o],this._onDidChangeSchemaAssociations.fire())}})}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}getSchemaContributions(){return{schemas:this.schemasById}}getSchemaContent(e){let n=this.schemasById[e];return n?J2(n):void 0}hasSchemaContent(e){return!!this.schemasById[e]}getSchemaAssociations(){return this.schemaAssociations}},gz=new cR;gt.add(hc.JSONContribution,gz);var ur={Configuration:"base.contributions.configuration"};function fz(r,t){return r===t?!0:!r||!t?!1:typeof r=="string"||typeof t=="string"?r===t:r.id===t.id}var sx={properties:{},patternProperties:{}},ax={properties:{},patternProperties:{}},lx={properties:{},patternProperties:{}},dx={properties:{},patternProperties:{}},cx={properties:{},patternProperties:{}},ux={properties:{},patternProperties:{}},tv={properties:{},patternProperties:{}},vc="vscode://schemas/settings/resourceLanguage";var px=gt.as(hc.JSONContribution),uR=class extends O{constructor(){super();this.registeredConfigurationDefaults=[];this.overrideIdentifiers=new Set;this._onDidSchemaChange=this._register(new T);this.onDidSchemaChange=this._onDidSchemaChange.event;this._onDidUpdateConfiguration=this._register(new T);this.onDidUpdateConfiguration=this._onDidUpdateConfiguration.event;this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:p(1853,null),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},px.registerSchema(vc,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,n=!0){return this.registerConfigurations([e],n),e}registerConfigurations(e,n=!0){let o=new Set;this.doRegisterConfigurations(e,n,o),px.registerSchema(vc,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:o})}deregisterConfigurations(e){let n=new Set;this.doDeregisterConfigurations(e,n),px.registerSchema(vc,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n})}updateConfigurations({add:e,remove:n}){let o=new Set;this.doDeregisterConfigurations(n,o),this.doRegisterConfigurations(e,!1,o),px.registerSchema(vc,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:o})}registerDefaultConfigurations(e){let n=new Set;this.doRegisterDefaultConfigurations(e,n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,n){this.registeredConfigurationDefaults.push(...e);let o=[];for(let{overrides:i,source:s}of e)for(let a in i){n.add(a);let l=this.configurationDefaultsOverrides.get(a)??this.configurationDefaultsOverrides.set(a,{configurationDefaultOverrides:[]}).get(a),d=i[a];if(l.configurationDefaultOverrides.push({value:d,source:s}),Vr.test(a)){let c=this.mergeDefaultConfigurationsForOverrideIdentifier(a,d,s,l.configurationDefaultOverrideValue);if(!c)continue;l.configurationDefaultOverrideValue=c,this.updateDefaultOverrideProperty(a,c,s),o.push(...kp(a))}else{let c=this.mergeDefaultConfigurationsForConfigurationProperty(a,d,s,l.configurationDefaultOverrideValue);if(!c)continue;l.configurationDefaultOverrideValue=c;let u=this.configurationProperties[a];u&&(this.updatePropertyDefaultValue(a,u),this.updateSchema(a,u))}}this.doRegisterOverrideIdentifiers(o)}deregisterDefaultConfigurations(e){let n=new Set;this.doDeregisterDefaultConfigurations(e,n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n,defaultsOverrides:!0})}doDeregisterDefaultConfigurations(e,n){for(let o of e){let i=this.registeredConfigurationDefaults.indexOf(o);i!==-1&&this.registeredConfigurationDefaults.splice(i,1)}for(let{overrides:o,source:i}of e)for(let s in o){let a=this.configurationDefaultsOverrides.get(s);if(!a)continue;let l=a.configurationDefaultOverrides.findIndex(d=>i?fz(d.source,i):d.value===o[s]);if(l!==-1){if(a.configurationDefaultOverrides.splice(l,1),a.configurationDefaultOverrides.length===0&&this.configurationDefaultsOverrides.delete(s),Vr.test(s)){let d;for(let c of a.configurationDefaultOverrides)d=this.mergeDefaultConfigurationsForOverrideIdentifier(s,c.value,c.source,d);d&&!$u(d.value)?(a.configurationDefaultOverrideValue=d,this.updateDefaultOverrideProperty(s,d,i)):(this.configurationDefaultsOverrides.delete(s),delete this.configurationProperties[s],delete this.defaultLanguageConfigurationOverridesNode.properties[s])}else{let d;for(let u of a.configurationDefaultOverrides)d=this.mergeDefaultConfigurationsForConfigurationProperty(s,u.value,u.source,d);a.configurationDefaultOverrideValue=d;let c=this.configurationProperties[s];c&&(this.updatePropertyDefaultValue(s,c),this.updateSchema(s,c))}n.add(s)}}this.updateOverridePropertyPatternKey()}updateDefaultOverrideProperty(e,n,o){let i={section:{id:this.defaultLanguageConfigurationOverridesNode.id,title:this.defaultLanguageConfigurationOverridesNode.title,order:this.defaultLanguageConfigurationOverridesNode.order,extensionInfo:this.defaultLanguageConfigurationOverridesNode.extensionInfo},type:"object",default:n.value,description:p(1852,null,Q2(e)),$ref:vc,defaultDefaultValue:n.value,source:o,defaultValueSource:o};this.configurationProperties[e]=i,this.defaultLanguageConfigurationOverridesNode.properties[e]=i}mergeDefaultConfigurationsForOverrideIdentifier(e,n,o,i){let s=i?.value||{},a=i?.source??new Map;if(!(a instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(let l of Object.keys(n)){let d=n[l];if(ot(d)&&(Vu(s[l])||ot(s[l]))){if(s[l]={...s[l]??{},...d},o)for(let u in d)a.set(`${l}.${u}`,o)}else s[l]=d,o?a.set(l,o):a.delete(l)}return{value:s,source:a}}mergeDefaultConfigurationsForConfigurationProperty(e,n,o,i){let s=this.configurationProperties[e],a=i?.value??s?.defaultDefaultValue,l=o;if(ot(n)&&(s!==void 0&&s.type==="object"||s===void 0&&(Vu(a)||ot(a)))){if(l=i?.source??new Map,!(l instanceof Map)){console.error("defaultValueSource is not a Map");return}for(let c in n)o&&l.set(`${e}.${c}`,o);n={...ot(a)?a:{},...n}}return{value:n,source:l}}deltaConfiguration(e){let n=!1,o=new Set;e.removedDefaults&&(this.doDeregisterDefaultConfigurations(e.removedDefaults,o),n=!0),e.addedDefaults&&(this.doRegisterDefaultConfigurations(e.addedDefaults,o),n=!0),e.removedConfigurations&&this.doDeregisterConfigurations(e.removedConfigurations,o),e.addedConfigurations&&this.doRegisterConfigurations(e.addedConfigurations,!1,o),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:o,defaultsOverrides:n})}notifyConfigurationSchemaUpdated(...e){this._onDidSchemaChange.fire()}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(let n of e)this.overrideIdentifiers.add(n);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,n,o){e.forEach(i=>{this.validateAndRegisterProperties(i,n,i.extensionInfo,i.restrictedProperties,void 0,o),this.configurationContributors.push(i),this.registerJSONConfiguration(i)})}doDeregisterConfigurations(e,n){let o=i=>{if(i.properties)for(let s in i.properties){n.add(s);let a=this.configurationProperties[s];a?.policy?.name&&this.policyConfigurations.delete(a.policy.name),delete this.configurationProperties[s],this.removeFromSchema(s,i.properties[s])}i.allOf?.forEach(s=>o(s))};for(let i of e){o(i);let s=this.configurationContributors.indexOf(i);s!==-1&&this.configurationContributors.splice(s,1)}}validateAndRegisterProperties(e,n=!0,o,i,s=4,a){s=At(e.scope)?s:e.scope;let l=e.properties;if(l)for(let c in l){let u=l[c];if(u.section={id:e.id,title:e.title,order:e.order,extensionInfo:e.extensionInfo},n&&vz(c,u,o?.id)){delete l[c];continue}u.source=o,u.defaultDefaultValue=l[c].default,this.updatePropertyDefaultValue(c,u),Vr.test(c)?u.scope=void 0:(u.scope=At(u.scope)?s:u.scope,u.restricted=At(u.restricted)?!!i?.includes(c):u.restricted),u.experiment?u.tags?.some(h=>h.toLowerCase()==="onexp")||(u.tags=u.tags??[],u.tags.push("onExP")):u.tags?.some(h=>h.toLowerCase()==="onexp")&&(console.error(`Invalid tag 'onExP' found for property '${c}'. Please use 'experiment' property instead.`),u.experiment={mode:"startup"});let m=l[c].hasOwnProperty("included")&&!l[c].included,g=l[c].policy?.name;m?(this.excludedConfigurationProperties[c]=l[c],g&&(this.policyConfigurations.set(g,c),a.add(c)),delete l[c]):(a.add(c),g&&this.policyConfigurations.set(g,c),this.configurationProperties[c]=l[c],!l[c].deprecationMessage&&l[c].markdownDeprecationMessage&&(l[c].deprecationMessage=l[c].markdownDeprecationMessage))}let d=e.allOf;if(d)for(let c of d)this.validateAndRegisterProperties(c,n,o,i,s,a)}getConfigurations(){return this.configurationContributors}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}getExcludedConfigurationProperties(){return this.excludedConfigurationProperties}getRegisteredDefaultConfigurations(){return[...this.registeredConfigurationDefaults]}getConfigurationDefaultsOverrides(){let e=new Map;for(let[n,o]of this.configurationDefaultsOverrides)o.configurationDefaultOverrideValue&&e.set(n,o.configurationDefaultOverrideValue);return e}registerJSONConfiguration(e){let n=o=>{let i=o.properties;if(i)for(let a in i)this.updateSchema(a,i[a]);o.allOf?.forEach(n)};n(e)}updateSchema(e,n){switch(sx.properties[e]=n,n.scope){case 1:ax.properties[e]=n;break;case 2:dx.properties[e]=n;break;case 3:lx.properties[e]=n;break;case 7:cx.properties[e]=n;break;case 4:ux.properties[e]=n;break;case 5:tv.properties[e]=n;break;case 6:tv.properties[e]=n,this.resourceLanguageSettingsSchema.properties[e]=n;break}}removeFromSchema(e,n){switch(delete sx.properties[e],n.scope){case 1:delete ax.properties[e];break;case 2:delete dx.properties[e];break;case 3:delete lx.properties[e];break;case 7:delete cx.properties[e];break;case 4:delete ux.properties[e];break;case 5:case 6:delete tv.properties[e],delete this.resourceLanguageSettingsSchema.properties[e];break}}updateOverridePropertyPatternKey(){for(let e of this.overrideIdentifiers.values()){let n=`[${e}]`,o={type:"object",description:p(1854,null),errorMessage:p(1855,null),$ref:vc};this.updatePropertyDefaultValue(n,o),sx.properties[n]=o,ax.properties[n]=o,lx.properties[n]=o,dx.properties[n]=o,cx.properties[n]=o,ux.properties[n]=o,tv.properties[n]=o}}registerOverridePropertyPatternKey(){let e={type:"object",description:p(1854,null),errorMessage:p(1855,null),$ref:vc};sx.patternProperties[yl]=e,ax.patternProperties[yl]=e,lx.patternProperties[yl]=e,dx.patternProperties[yl]=e,cx.patternProperties[yl]=e,ux.patternProperties[yl]=e,tv.patternProperties[yl]=e,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,n){let o=this.configurationDefaultsOverrides.get(e)?.configurationDefaultOverrideValue,i,s;o&&(!n.disallowConfigurationDefault||!o.source)&&(i=o.value,s=o.source),Vu(i)&&(i=n.defaultDefaultValue,s=void 0),Vu(i)&&(i=hz(n.type)),n.default=i,n.defaultValueSource=s}},Z2="\\[([^\\]]+)\\]",X2=new RegExp(Z2,"g"),yl=`^(${Z2})+$`,Vr=new RegExp(yl);function kp(r){let t=[];if(Vr.test(r)){let e=X2.exec(r);for(;e?.length;){let n=e[1].trim();n&&t.push(n),e=X2.exec(r)}}return Dr(t)}function hz(r){switch(Array.isArray(r)?r[0]:r){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}var mx=new uR;gt.add(ur.Configuration,mx);function vz(r,t,e){return r.trim()?Vr.test(r)?p(1851,null,r):mx.getConfigurationProperties()[r]!==void 0&&(!e||!bz.has(e.toLowerCase()))?p(1849,null,r):t.policy?.name&&mx.getPolicyConfigurations().get(t.policy?.name)!==void 0?p(1848,null,r,t.policy?.name,mx.getPolicyConfigurations().get(t.policy?.name)):null:p(1850,null)}var bz=new Set(Ho.defaultChatAgent?[Ho.defaultChatAgent.extensionId,Ho.defaultChatAgent.chatExtensionId].map(r=>r.toLowerCase()):[]);var hx=R("requestService");var mR=class{constructor(t){this.original=t}toJSON(){if(!this.headers){let t=Object.create(null);for(let e in this.original)e.toLowerCase()==="authorization"||e.toLowerCase()==="proxy-authorization"?t[e]="*****":t[e]=this.original[e];this.headers=t}return this.headers}},gx=class extends O{constructor(e){super();this.logService=e;this.counter=0;this._onDidCompleteRequest=this._register(new T);this.onDidCompleteRequest=this._onDidCompleteRequest.event}async logAndRequest(e,n){let o=`#${++this.counter}: ${e.url}`;this.logService.trace(`${o} - begin`,e.type,new mR(e.headers??{}));let i=Date.now();try{let s=await n();return this.logService.trace(`${o} - end`,e.type,s.res.statusCode,s.res.headers),this._onDidCompleteRequest.fire({callSite:e.callSite,latency:Date.now()-i,statusCode:s.res.statusCode}),s}catch(s){throw this.logService.error(`${o} - error`,e.type,Bi(s)),s}}};function yz(r){return r.res.statusCode&&r.res.statusCode>=200&&r.res.statusCode<300||r.res.statusCode===1223}function nH(r){return r.res.statusCode===204}async function gR(r){return nH(r)?null:(await NP(r.stream)).toString()}async function oH(r){if(!yz(r))throw new Error("Server returned "+r.res.statusCode);if(nH(r))return null;let e=(await NP(r.stream)).toString();try{return JSON.parse(e)}catch(n){throw n.message+=`:
`+e,n}}var Pp=!1,pR=[],eH,tH;function Iz(r=!0,t=!0){if(eH===r&&tH===t)return;eH=r,tH=t;let e=gt.as(ur.Configuration),n=pR;pR=[{id:"http",order:15,title:p(2280,null),type:"object",scope:2,properties:{"http.useLocalProxyConfiguration":{type:"boolean",default:t,markdownDescription:p(2295,null),restricted:!0}}},{id:"http",order:15,title:p(2280,null),type:"object",scope:1,properties:{"http.electronFetch":{type:"boolean",default:!1,description:p(2278,null),restricted:!0}}},{id:"http",order:15,title:p(2280,null),type:"object",scope:r?1:2,properties:{"http.proxy":{type:"string",pattern:"^(https?|socks|socks4a?|socks5h?)://([^:]*(:[^@]*)?@)?([^:]+|\\[[:0-9a-fA-F]+\\])(:\\d+)?/?$|^$",markdownDescription:p(2283,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyStrictSSL":{type:"boolean",default:!0,markdownDescription:p(2291,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyKerberosServicePrincipal":{type:"string",markdownDescription:p(2285,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.noProxy":{type:"array",items:{type:"string"},markdownDescription:p(2282,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyAuthorization":{type:["null","string"],default:null,markdownDescription:p(2284,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxySupport":{type:"string",enum:["off","on","fallback","override"],enumDescriptions:[p(2288,null),p(2289,null),p(2287,null),p(2290,null)],default:"override",markdownDescription:p(2286,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificates":{type:"boolean",default:!0,markdownDescription:p(2292,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificatesNode":{type:"boolean",tags:["experimental"],default:Pp,markdownDescription:p(2293,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}},"http.experimental.systemCertificatesV2":{type:"boolean",tags:["experimental"],default:!1,markdownDescription:p(2294,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.fetchAdditionalSupport":{type:"boolean",default:!0,markdownDescription:p(2279,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.webSocketAdditionalSupport":{type:"boolean",default:!0,markdownDescription:p(2296,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.experimental.networkInterfaceCheckInterval":{type:"number",default:300,minimum:-1,tags:["experimental"],markdownDescription:p(2281,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}}}}],e.updateConfigurations({add:pR,remove:n})}Iz();var fR=class{constructor(t){this.options=t}getItemLabel(t){return t.label}getItemDescription(t){if(!this.options?.skipDescription)return t.description}getItemPath(t){if(!this.options?.skipPath)return t.resource?.scheme===V.file?t.resource.fsPath:t.resource?.path}},Oue=new fR,rH=R("quickInputService");var iH=R("encryptionService"),Fue=R("encryptionMainService");var _p=class r extends O{constructor(e,n=Object.create(null)){super();this.database=e;this.options=n;this._onDidChangeStorage=this._register(new ji);this.onDidChangeStorage=this._onDidChangeStorage.event;this.state=0;this.cache=new Map;this.flushDelayer=this._register(new di(r.DEFAULT_FLUSH_DELAY));this.pendingDeletes=new Set;this.pendingInserts=new Map;this.pendingClose=void 0;this.whenFlushedCallbacks=[];this.registerListeners()}static{this.DEFAULT_FLUSH_DELAY=100}registerListeners(){this._register(this.database.onDidChangeItemsExternal(e=>this.onDidChangeItemsExternal(e)))}onDidChangeItemsExternal(e){this._onDidChangeStorage.pause();try{e.changed?.forEach((n,o)=>this.acceptExternal(o,n)),e.deleted?.forEach(n=>this.acceptExternal(n,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,n){if(this.state===2)return;let o=!1;At(n)?o=this.cache.delete(e):this.cache.get(e)!==n&&(this.cache.set(e,n),o=!0),o&&this._onDidChangeStorage.fire({key:e,external:!0})}get items(){return this.cache}get size(){return this.cache.size}async init(){this.state===0&&(this.state=1,this.options.hint!==0&&(this.cache=await this.database.getItems()))}get(e,n){let o=this.cache.get(e);return At(o)?n:o}getBoolean(e,n){let o=this.get(e);return At(o)?n:o==="true"}getNumber(e,n){let o=this.get(e);return At(o)?n:parseInt(o,10)}getObject(e,n){let o=this.get(e);return At(o)?n:sI(o)}async set(e,n,o=!1){if(this.state===2)return;if(At(n))return this.delete(e,o);let i=ot(n)||Array.isArray(n)?LU(n):String(n);if(this.cache.get(e)!==i)return this.cache.set(e,i),this.pendingInserts.set(e,i),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:o}),this.doFlush()}async delete(e,n=!1){if(!(this.state===2||!this.cache.delete(e)))return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire({key:e,external:n}),this.doFlush()}async optimize(){if(this.state!==2)return await this.flush(0),this.database.optimize()}async close(){return this.pendingClose||(this.pendingClose=this.doClose()),this.pendingClose}async doClose(){this.state=2;try{await this.doFlush(0)}catch{}await this.database.close(()=>this.cache)}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;let e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally(()=>{if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)this.whenFlushedCallbacks.pop()?.()})}async flush(e){if(!(this.state===2||this.pendingClose))return this.doFlush(e)}async doFlush(e){return this.options.hint===1?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),e)}async whenFlushed(){if(this.hasPending)return new Promise(e=>this.whenFlushedCallbacks.push(e))}isInMemory(){return this.options.hint===1}},Dp=class{constructor(){this.onDidChangeItemsExternal=fe.None;this.items=new Map}async getItems(){return this.items}async updateItems(t){t.insert?.forEach((e,n)=>this.items.set(n,e)),t.delete?.forEach(e=>this.items.delete(e))}async optimize(){}async close(){}};var nv=R("environmentService"),sH=nv;var vx=R("IUriIdentityService");function aH(r){let t=r;return!!(t&&typeof t=="object"&&typeof t.id=="string"&&typeof t.isDefault=="boolean"&&typeof t.name=="string"&&y.isUri(t.location)&&y.isUri(t.globalStorageHome)&&y.isUri(t.settingsResource)&&y.isUri(t.keybindingsResource)&&y.isUri(t.tasksResource)&&y.isUri(t.snippetsHome)&&y.isUri(t.promptsHome)&&y.isUri(t.extensionsResource)&&y.isUri(t.mcpResource))}var lH=R("IUserDataProfilesService");function bx(r,t,e,n,o,i){return{id:r,name:t,location:e,isDefault:!1,icon:o?.icon,globalStorageHome:i&&o?.useDefaultFlags?.globalState?i.globalStorageHome:St(e,"globalStorage"),settingsResource:i&&o?.useDefaultFlags?.settings?i.settingsResource:St(e,"settings.json"),keybindingsResource:i&&o?.useDefaultFlags?.keybindings?i.keybindingsResource:St(e,"keybindings.json"),tasksResource:i&&o?.useDefaultFlags?.tasks?i.tasksResource:St(e,"tasks.json"),snippetsHome:i&&o?.useDefaultFlags?.snippets?i.snippetsHome:St(e,"snippets"),promptsHome:i&&o?.useDefaultFlags?.prompts?i.promptsHome:St(e,"prompts"),extensionsResource:i&&o?.useDefaultFlags?.extensions?i.extensionsResource:St(e,"extensions.json"),mcpResource:i&&o?.useDefaultFlags?.mcp?i.mcpResource:St(e,"mcp.json"),cacheHome:St(n,r),useDefaultFlags:o?.useDefaultFlags,isTransient:o?.transient,workspaces:o?.workspaces}}var yx=class extends O{constructor(e,n,o,i){super();this.environmentService=e;this.fileService=n;this.uriIdentityService=o;this.logService=i;this._onDidChangeProfiles=this._register(new T);this.onDidChangeProfiles=this._onDidChangeProfiles.event;this._onWillCreateProfile=this._register(new T);this.onWillCreateProfile=this._onWillCreateProfile.event;this._onWillRemoveProfile=this._register(new T);this.onWillRemoveProfile=this._onWillRemoveProfile.event;this._onDidResetWorkspaces=this._register(new T);this.onDidResetWorkspaces=this._onDidResetWorkspaces.event;this.profileCreationPromises=new Map;this.transientProfilesObject={profiles:[],emptyWindows:new Map};this.profilesHome=St(this.environmentService.userRoamingDataHome,"profiles"),this.profilesCacheHome=St(this.environmentService.cacheHome,"CachedProfilesData")}static{this.PROFILES_KEY="userDataProfiles"}static{this.PROFILE_ASSOCIATIONS_KEY="profileAssociations"}get defaultProfile(){return this.profiles[0]}get profiles(){return[...this.profilesObject.profiles,...this.transientProfilesObject.profiles]}init(){this._profilesObject=void 0}get profilesObject(){if(!this._profilesObject){let e=this.createDefaultProfile(),n=[e];try{for(let i of this.getStoredProfiles()){if(this.isInvalidProfile(i)){this.logService.warn("Skipping the invalid stored profile",i.location||i.name);continue}let s=qt(i.location);n.push(bx(s,i.name,i.location,this.profilesCacheHome,{icon:i.icon,useDefaultFlags:i.useDefaultFlags},e))}}catch(i){this.logService.error(i)}let o=new Map;if(n.length)try{let i=this.getStoredProfileAssociations();if(i.workspaces)for(let[s,a]of Object.entries(i.workspaces)){let l=y.parse(s),d=n.find(c=>c.id===a);if(d){let c=d.workspaces?d.workspaces.slice(0):[];c.push(l),d.workspaces=c}}if(i.emptyWindows)for(let[s,a]of Object.entries(i.emptyWindows)){let l=n.find(d=>d.id===a);l&&o.set(s,l)}}catch(i){this.logService.error(i)}this._profilesObject={profiles:n,emptyWindows:o}}return this._profilesObject}isInvalidProfile(e){return!!(!e.name||!Pe(e.name)||!e.location||e.isSystem||this.uriIdentityService.extUri.basename(this.uriIdentityService.extUri.dirname(e.location))==="builtin")}createDefaultProfile(){let e=bx("__default__profile__",p(2708,null),this.environmentService.userRoamingDataHome,this.profilesCacheHome);return{...e,extensionsResource:this.getDefaultProfileExtensionsLocation()??e.extensionsResource,isDefault:!0}}async createTransientProfile(e){let n="Temp",o=new RegExp(`${tr(n)}\\s(\\d+)`),i=0;for(let a of this.profiles){let l=o.exec(a.name),d=l?parseInt(l[1]):0;i=d>i?d:i}let s=`${n} ${i+1}`;return this.createProfile(oo(Le()).toString(16),s,{transient:!0},e)}async createNamedProfile(e,n,o){return this.createProfile(oo(Le()).toString(16),e,n,o)}async createProfile(e,n,o,i){return await this.doCreateProfile(e,n,o,i)}async doCreateProfile(e,n,o,i){if(!Pe(n)||!n)throw new Error("Name of the profile is mandatory and must be of type `string`");let s=this.profileCreationPromises.get(n);return s||(s=(async()=>{try{if(this.profiles.find(u=>u.id===e||!u.isTransient&&!o?.transient&&u.name===n))throw new Error(`Profile with ${n} name already exists`);let l=i?this.getWorkspace(i):void 0;y.isUri(l)&&(o={...o,workspaces:[l]});let d=bx(e,n,this.uriIdentityService.extUri.joinPath(this.profilesHome,e),this.profilesCacheHome,o,this.defaultProfile);await this.fileService.createFolder(d.location);let c=[];return this._onWillCreateProfile.fire({profile:d,join(u){c.push(u)}}),await Or.settled(c),l&&!y.isUri(l)&&this.updateEmptyWindowAssociation(l,d,!!d.isTransient),this.updateProfiles([d],[],[]),d}finally{this.profileCreationPromises.delete(n)}})(),this.profileCreationPromises.set(n,s)),s}async updateProfile(e,n){let o=[];for(let s of this.profiles){let a;if(e.id===s.id)s.isDefault?n.workspaces&&(a=s,a.workspaces=n.workspaces):a=bx(s.id,n.name??s.name,s.location,this.profilesCacheHome,{icon:n.icon===null?void 0:n.icon??s.icon,transient:n.transient??s.isTransient,useDefaultFlags:n.useDefaultFlags??s.useDefaultFlags,workspaces:n.workspaces??s.workspaces},this.defaultProfile);else if(n.workspaces){let l=s.workspaces?.filter(d=>!n.workspaces?.some(c=>this.uriIdentityService.extUri.isEqual(d,c)));s.workspaces?.length!==l?.length&&(a=s,a.workspaces=l)}a&&o.push(a)}if(!o.length)throw e.isDefault?new Error("Cannot update default profile"):new Error(`Profile '${e.name}' does not exist`);this.updateProfiles([],[],o);let i=this.profiles.find(s=>s.id===e.id);if(!i)throw new Error(`Profile '${e.name}' was not updated`);return i}async removeProfile(e){if(e.isDefault)throw new Error("Cannot remove default profile");let n=this.profiles.find(i=>i.id===e.id);if(!n)throw new Error(`Profile '${e.name}' does not exist`);let o=[];this._onWillRemoveProfile.fire({profile:n,join(i){o.push(i)}});try{await Promise.allSettled(o)}catch(i){this.logService.error(i)}this.updateProfiles([],[n],[]);try{await this.fileService.del(n.cacheHome,{recursive:!0})}catch(i){vF(i)!==1&&this.logService.error(i)}}async setProfileForWorkspace(e,n){let o=this.profiles.find(s=>s.id===n.id);if(!o)throw new Error(`Profile '${n.name}' does not exist`);let i=this.getWorkspace(e);if(y.isUri(i)){let s=o.workspaces?[...o.workspaces]:[];s.some(a=>this.uriIdentityService.extUri.isEqual(a,i))||(s.push(i),await this.updateProfile(o,{workspaces:s}))}else this.updateEmptyWindowAssociation(i,o,!1),this.updateStoredProfiles(this.profiles)}unsetWorkspace(e,n=!1){let o=this.getWorkspace(e);if(y.isUri(o)){let i=this.getProfileForWorkspace(e);i&&this.updateProfile(i,{workspaces:i.workspaces?.filter(s=>!this.uriIdentityService.extUri.isEqual(s,o))})}else this.updateEmptyWindowAssociation(o,void 0,n),this.updateStoredProfiles(this.profiles)}async resetWorkspaces(){this.transientProfilesObject.emptyWindows.clear(),this.profilesObject.emptyWindows.clear();for(let e of this.profiles)e.workspaces=void 0;this.updateProfiles([],[],this.profiles),this._onDidResetWorkspaces.fire()}async cleanUp(){try{if(await this.fileService.exists(this.profilesHome)){let e=this.uriIdentityService.extUri.joinPath(this.profilesHome,"builtin");if(await this.fileService.exists(e))try{await this.fileService.del(e,{recursive:!0})}catch(o){this.logService.error(o)}let n=await this.fileService.resolve(this.profilesHome);await Promise.all((n.children||[]).filter(o=>o.isDirectory&&this.profiles.every(i=>!this.uriIdentityService.extUri.isEqual(i.location,o.resource))).map(o=>this.fileService.del(o.resource,{recursive:!0})))}}catch(e){this.logService.error("Error deleting redundant profile folders",e)}try{let e=this.getStoredProfiles(),n=[];for(let o of this.getStoredProfiles())this.isInvalidProfile(o)?this.logService.warn(`Invalid user data profile found: ${o.name}`):n.push(o);e.length!==n.length&&this.saveStoredProfiles(n)}catch(e){this.logService.error("Error removing invalid stored profiles",e)}}async cleanUpTransientProfiles(){let e=this.transientProfilesObject.profiles.filter(n=>!this.isProfileAssociatedToWorkspace(n));await Promise.allSettled(e.map(n=>this.removeProfile(n)))}getProfileForWorkspace(e){let n=this.getWorkspace(e);return y.isUri(n)?this.profiles.find(o=>o.workspaces?.some(i=>this.uriIdentityService.extUri.isEqual(i,n))):this.profilesObject.emptyWindows.get(n)??this.transientProfilesObject.emptyWindows.get(n)}getWorkspace(e){return xF(e)?e.uri:SF(e)?e.configPath:e.id}isProfileAssociatedToWorkspace(e){return!!(e.workspaces?.length||[...this.profilesObject.emptyWindows.values()].some(n=>this.uriIdentityService.extUri.isEqual(n.location,e.location))||[...this.transientProfilesObject.emptyWindows.values()].some(n=>this.uriIdentityService.extUri.isEqual(n.location,e.location)))}updateProfiles(e,n,o,i=!1){let s=[...this.profiles,...e],a=this.transientProfilesObject.profiles;this.transientProfilesObject.profiles=[];let l=[];for(let d of s){if(n.some(c=>d.id===c.id)){for(let c of[...this.profilesObject.emptyWindows.keys()])d.id===this.profilesObject.emptyWindows.get(c)?.id&&this.profilesObject.emptyWindows.delete(c);continue}if(!d.isDefault){d=o.find(u=>d.id===u.id)??d;let c=a.find(u=>d.id===u.id);if(d.isTransient)this.transientProfilesObject.profiles.push(d);else if(c){for(let[u,m]of this.transientProfilesObject.emptyWindows.entries())if(d.id===m.id){this.transientProfilesObject.emptyWindows.delete(u),this.profilesObject.emptyWindows.set(u,d);break}}}d.workspaces?.length===0&&(d.workspaces=void 0),l.push(d)}this.updateStoredProfiles(l),i||this.triggerProfilesChanges(e,n,o)}triggerProfilesChanges(e,n,o){this._onDidChangeProfiles.fire({added:e,removed:n,updated:o,all:this.profiles})}updateEmptyWindowAssociation(e,n,o){o=n?.isTransient?!0:o,o?n?this.transientProfilesObject.emptyWindows.set(e,n):this.transientProfilesObject.emptyWindows.delete(e):(this.transientProfilesObject.emptyWindows.delete(e),n?this.profilesObject.emptyWindows.set(e,n):this.profilesObject.emptyWindows.delete(e))}updateStoredProfiles(e){let n=[],o={},i={};for(let s of e)if(!s.isTransient&&(s.isDefault||n.push({location:s.location,name:s.name,icon:s.icon,useDefaultFlags:s.useDefaultFlags}),s.workspaces))for(let a of s.workspaces)o[a.toString()]=s.id;for(let[s,a]of this.profilesObject.emptyWindows.entries())i[s.toString()]=a.id;this.saveStoredProfileAssociations({workspaces:o,emptyWindows:i}),this.saveStoredProfiles(n),this._profilesObject=void 0}getStoredProfiles(){return[]}saveStoredProfiles(e){throw new Error("not implemented")}getStoredProfileAssociations(){return{}}saveStoredProfileAssociations(e){throw new Error("not implemented")}getDefaultProfileExtensionsLocation(){}};yx=_([C(0,nv),C(1,tc),C(2,vx),C(3,oe)],yx);var Sz="__$__isNewStorageMarker",Ix="__$__targetStorageMarker",bi=R("storageService");function Cz(r){let t=r.get(Ix);if(t)try{return JSON.parse(t)}catch{}return Object.create(null)}var vR=class r extends O{constructor(e={flushInterval:r.DEFAULT_FLUSH_INTERVAL}){super();this._onDidChangeValue=this._register(new ji);this._onDidChangeTarget=this._register(new ji);this.onDidChangeTarget=this._onDidChangeTarget.event;this._onWillSaveState=this._register(new T);this.onWillSaveState=this._onWillSaveState.event;this.runFlushWhenIdle=this._register(new En);this._workspaceKeyTargets=void 0;this._profileKeyTargets=void 0;this._applicationKeyTargets=void 0;this.flushWhenIdleScheduler=this._register(new Wn(()=>this.doFlushWhenIdle(),e.flushInterval))}static{this.DEFAULT_FLUSH_INTERVAL=60*1e3}onDidChangeValue(e,n,o){return fe.filter(this._onDidChangeValue.event,i=>i.scope===e&&(n===void 0||i.key===n),o)}doFlushWhenIdle(){this.runFlushWhenIdle.value=RP(()=>{this.shouldFlushWhenIdle()&&this.flush(),this.flushWhenIdleScheduler.schedule()})}shouldFlushWhenIdle(){return!0}stopFlushWhenIdle(){bn([this.runFlushWhenIdle,this.flushWhenIdleScheduler])}initialize(){return this.initializationPromise||(this.initializationPromise=(async()=>{Ft("code/willInitStorage");try{await this.doInitialize()}finally{Ft("code/didInitStorage")}this.flushWhenIdleScheduler.schedule()})()),this.initializationPromise}emitDidChangeValue(e,n){let{key:o,external:i}=n;if(o===Ix){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:o,target:this.getKeyTargets(e)[o],external:i})}emitWillSaveState(e){this._onWillSaveState.fire({reason:e})}get(e,n,o){return this.getStorage(n)?.get(e,o)}getBoolean(e,n,o){return this.getStorage(n)?.getBoolean(e,o)}getNumber(e,n,o){return this.getStorage(n)?.getNumber(e,o)}getObject(e,n,o){return this.getStorage(n)?.getObject(e,o)}storeAll(e,n){this.withPausedEmitters(()=>{for(let o of e)this.store(o.key,o.value,o.scope,o.target,n)})}store(e,n,o,i,s=!1){if(At(n)){this.remove(e,o,s);return}this.withPausedEmitters(()=>{this.updateKeyTarget(e,o,i),this.getStorage(o)?.set(e,n,s)})}remove(e,n,o=!1){this.withPausedEmitters(()=>{this.updateKeyTarget(e,n,void 0),this.getStorage(n)?.delete(e,o)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}keys(e,n){let o=[],i=this.getKeyTargets(e);for(let s of Object.keys(i))i[s]===n&&o.push(s);return o}updateKeyTarget(e,n,o,i=!1){let s=this.getKeyTargets(n);typeof o=="number"?s[e]!==o&&(s[e]=o,this.getStorage(n)?.set(Ix,JSON.stringify(s),i)):typeof s[e]=="number"&&(delete s[e],this.getStorage(n)?.set(Ix,JSON.stringify(s),i))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){let n=this.getStorage(e);return n?Cz(n):Object.create(null)}isNew(e){return this.getBoolean(Sz,e)===!0}async flush(e=0){this._onWillSaveState.fire({reason:e});let n=this.getStorage(-1),o=this.getStorage(0),i=this.getStorage(1);switch(e){case 0:await Or.settled([n?.whenFlushed()??Promise.resolve(),o?.whenFlushed()??Promise.resolve(),i?.whenFlushed()??Promise.resolve()]);break;case 1:await Or.settled([n?.flush(0)??Promise.resolve(),o?.flush(0)??Promise.resolve(),i?.flush(0)??Promise.resolve()]);break}}async log(){let e=this.getStorage(-1)?.items??new Map,n=this.getStorage(0)?.items??new Map,o=this.getStorage(1)?.items??new Map;return Tz(e,n,o,this.getLogDetails(-1)??"",this.getLogDetails(0)??"",this.getLogDetails(1)??"")}async optimize(e){return await this.flush(),this.getStorage(e)?.optimize()}async switch(e,n){return this.emitWillSaveState(0),aH(e)?this.switchToProfile(e,n):this.switchToWorkspace(e,n)}canSwitchProfile(e,n){return!(e.id===n.id||dH(n)&&dH(e))}switchData(e,n,o){this.withPausedEmitters(()=>{let i=new Set;for(let[s,a]of e)i.add(s),n.get(s)!==a&&this.emitDidChangeValue(o,{key:s,external:!0});for(let[s]of n.items)i.has(s)||this.emitDidChangeValue(o,{key:s,external:!0})})}};function dH(r){return r.isDefault||!!r.useDefaultFlags?.globalState}var xx=class extends vR{constructor(){super();this.applicationStorage=this._register(new _p(new Dp,{hint:1}));this.profileStorage=this._register(new _p(new Dp,{hint:1}));this.workspaceStorage=this._register(new _p(new Dp,{hint:1}));this._register(this.workspaceStorage.onDidChangeStorage(e=>this.emitDidChangeValue(1,e))),this._register(this.profileStorage.onDidChangeStorage(e=>this.emitDidChangeValue(0,e))),this._register(this.applicationStorage.onDidChangeStorage(e=>this.emitDidChangeValue(-1,e)))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}getLogDetails(e){switch(e){case-1:return"inMemory (application)";case 0:return"inMemory (profile)";default:return"inMemory (workspace)"}}async doInitialize(){}async switchToProfile(){}async switchToWorkspace(){}shouldFlushWhenIdle(){return!1}hasScope(e){return!1}};async function Tz(r,t,e,n,o,i){let s=f=>{try{return JSON.parse(f)}catch{return f}},a=new Map,l=new Map;r.forEach((f,I)=>{a.set(I,f),l.set(I,s(f))});let d=new Map,c=new Map;t.forEach((f,I)=>{d.set(I,f),c.set(I,s(f))});let u=new Map,m=new Map;e.forEach((f,I)=>{u.set(I,f),m.set(I,s(f))}),console.group(n!==o?`Storage: Application (path: ${n})`:`Storage: Application & Profile (path: ${n}, default profile)`);let g=[];if(a.forEach((f,I)=>{g.push({key:I,value:f})}),console.table(g),console.groupEnd(),console.log(l),n!==o){console.group(`Storage: Profile (path: ${o}, profile specific)`);let f=[];d.forEach((I,S)=>{f.push({key:S,value:I})}),console.table(f),console.groupEnd(),console.log(c)}console.group(`Storage: Workspace (path: ${i})`);let h=[];u.forEach((f,I)=>{h.push({key:I,value:f})}),console.table(h),console.groupEnd(),console.log(m)}var cH=R("secretStorageService"),Sx=class extends O{constructor(e,n,o,i){super();this._useInMemoryStorage=e;this._storageService=n;this._encryptionService=o;this._logService=i;this._storagePrefix="secret://";this.onDidChangeSecretEmitter=this._register(new T);this.onDidChangeSecret=this.onDidChangeSecretEmitter.event;this._sequencer=new ol;this._type="unknown";this._onDidChangeValueDisposable=this._register(new $);this._lazyStorageService=new pt(()=>this.initialize())}get type(){return this._type}get resolvedStorageService(){return this._lazyStorageService.value}get(e){return this._sequencer.queue(e,async()=>{let n=await this.resolvedStorageService,o=this.getKey(e);this._logService.trace("[secrets] getting secret for key:",o);let i=n.get(o,-1);if(!i){this._logService.trace("[secrets] no secret found for key:",o);return}try{this._logService.trace("[secrets] decrypting gotten secret for key:",o);let s=this._type==="in-memory"?i:await this._encryptionService.decrypt(i);return this._logService.trace("[secrets] decrypted secret for key:",o),s}catch(s){this._logService.error(s),this.delete(e);return}})}set(e,n){return this._sequencer.queue(e,async()=>{let o=await this.resolvedStorageService;this._logService.trace("[secrets] encrypting secret for key:",e);let i;try{i=this._type==="in-memory"?n:await this._encryptionService.encrypt(n)}catch(a){throw this._logService.error(a),a}let s=this.getKey(e);this._logService.trace("[secrets] storing encrypted secret for key:",s),o.store(s,i,-1,1),this._logService.trace("[secrets] stored encrypted secret for key:",s)})}delete(e){return this._sequencer.queue(e,async()=>{let n=await this.resolvedStorageService,o=this.getKey(e);this._logService.trace("[secrets] deleting secret for key:",o),n.remove(o,-1),this._logService.trace("[secrets] deleted secret for key:",o)})}keys(){return this._sequencer.queue("__keys__",async()=>{let e=await this.resolvedStorageService;this._logService.trace("[secrets] fetching keys of all secrets");let n=e.keys(-1,1);return this._logService.trace("[secrets] fetched keys of all secrets"),n.filter(o=>o.startsWith(this._storagePrefix)).map(o=>o.slice(this._storagePrefix.length))})}async initialize(){let e;if(!this._useInMemoryStorage&&await this._encryptionService.isEncryptionAvailable())this._logService.trace("[SecretStorageService] Encryption is available, using persisted storage"),this._type="persisted",e=this._storageService;else{if(this._type==="in-memory")return this._storageService;this._logService.trace("[SecretStorageService] Encryption is not available, falling back to in-memory storage"),this._type="in-memory",e=this._register(new xx)}return this._onDidChangeValueDisposable.clear(),this._onDidChangeValueDisposable.add(e.onDidChangeValue(-1,void 0,this._onDidChangeValueDisposable)(n=>{this.onDidChangeValue(n.key)})),e}reinitialize(){this._lazyStorageService=new pt(()=>this.initialize())}onDidChangeValue(e){if(!e.startsWith(this._storagePrefix))return;let n=e.slice(this._storagePrefix.length);this._logService.trace(`[SecretStorageService] Notifying change in value for secret: ${n}`),this.onDidChangeSecretEmitter.fire(n)}getKey(e){return`${this._storagePrefix}${e}`}};Sx=_([C(1,bi),C(2,iH),C(3,oe)],Sx);var Kpe={Extensions:{name:{key:"extensionsConfigurationTitle",value:p(138,null)}},IntegratedTerminal:{name:{key:"terminalIntegratedConfigurationTitle",value:p(141,null)}},InteractiveSession:{name:{key:"interactiveSessionConfigurationTitle",value:p(139,null)}},Telemetry:{name:{key:"telemetryConfigurationTitle",value:p(140,null)}},Update:{name:{key:"updateConfigurationTitle",value:p(142,null)}}};var ov="^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$",cme=new RegExp(ov);var ume=R("extensionGalleryService");var pme=R("extensionManagementService");var mme=R("IGlobalExtensionEnablementService"),gme=R("IExtensionTipsService"),fme=R("IAllowedExtensionsService");var hme=Ud(1981,"Extensions"),vme=Ud(1998,"Preferences"),Ez="extensions.allowed";gt.as(ur.Configuration).registerConfiguration({id:"extensions",order:30,title:p(1997,null),type:"object",properties:{[Ez]:{type:"object",markdownDescription:p(1987,null),default:"*",defaultSnippets:[{body:{},description:p(1992,null)},{body:{"*":!0},description:p(1988,null)}],scope:1,policy:{name:"AllowedExtensions",category:"Extensions",minimumVersion:"1.96",localization:{description:{key:"extensions.allowed.policy",value:p(1993,null)}}},additionalProperties:!1,patternProperties:{"([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$":{anyOf:[{type:["boolean","string"],enum:[!0,!1,"stable"],description:p(1985,null),enumDescriptions:[p(1991,null),p(1989,null),p(1990,null)]},{type:"array",items:{type:"string"},description:p(1986,null)}]},"([a-z0-9A-Z][a-z0-9-A-Z]*)$":{type:["boolean","string"],enum:[!0,!1,"stable"],description:p(1980,null),enumDescriptions:[p(1996,null),p(1994,null),p(1995,null)]},"\\*":{type:"boolean",enum:[!0,!1],description:p(1982,null),enumDescriptions:[p(1984,null),p(1983,null)]}}}}});var ss=R("telemetryService");var Eme=R("customEndpointTelemetryService");var Il=class{constructor(t){this.value=t;this.isTrustedTelemetryValue=!0}},bR=class{constructor(){this.telemetryLevel=0;this.sessionId="someValue.sessionId";this.machineId="someValue.machineId";this.sqmId="someValue.sqmId";this.devDeviceId="someValue.devDeviceId";this.firstSessionDate="someValue.firstSessionDate";this.sendErrorTelemetry=!1}publicLog(){}publicLog2(){}publicLogError(){}publicLogError2(){}setExperimentProperty(){}},Bme=new bR;var wz="telemetry",mH={id:wz,name:p(2320,null)};function gH(r,t){if(!r)return"none";let e=Dh(r),n=t?.remoteExtensionTips;if(n&&Object.prototype.hasOwnProperty.call(n,e))return e;let o=t?.virtualWorkspaceExtensionTips;return o&&Object.prototype.hasOwnProperty.call(o,e)?e:"other"}function kz(r,t){if(!r||!r.includes("/")&&!r.includes("\\"))return r;let e=r,n=[];for(let l of t)for(;;){let d=l.exec(r);if(!d)break;n.push([d.index,l.lastIndex])}let o=/(?:^|[\\\/])((node_modules|node_modules\.asar)[\\\/].*)$/,i=/^(.*?)((?:\.vscode(?:-[a-z]+)*|resources[\\\/]app)[\\\/]extensions[\\\/].*)$/i,s=/(file:\/\/)?([a-zA-Z]:(\\\\|\\|\/)|(\\\\|\\|\/))?([\w\-\._@]+(\\\\|\\|\/))+[\w\-\._@]*/g,a=0;for(e="";;){let l=s.exec(r);if(!l)break;if(!n.some(([c,u])=>l.index<u&&c<s.lastIndex)){let c=i.exec(l[0]);if(c)e+=r.substring(a,l.index)+"<REDACTED: user-file-path>/"+c[2];else{let u=o.exec(l[0]);u?e+=r.substring(a,l.index)+"<REDACTED: user-file-path>/"+u[1]:e+=r.substring(a,l.index)+"<REDACTED: user-file-path>"}a=s.lastIndex}}return a<r.length&&(e+=r.substr(a)),e}function Pz(r){if(!r)return r;let t=[{label:"URL",regex:/[a-zA-Z][a-zA-Z0-9+.-]*:\/\/[^\s]*/},{label:"Google API Key",regex:/AIza[A-Za-z0-9_\\\-]{35}/},{label:"JWT",regex:/eyJ[0eXAiOiJKV1Qi|hbGci|a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+/},{label:"Slack Token",regex:/xox[pbar]\-[A-Za-z0-9]/},{label:"GitHub Token",regex:/(gh[psuro]_[a-zA-Z0-9]{36}|github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59})/},{label:"Generic Secret",regex:/(key|token|sig|secret|signature|password|passwd|pwd|android:value)[^a-zA-Z0-9]/i},{label:"CLI Credentials",regex:/((login|psexec|(certutil|psexec)\.exe).{1,50}(\s-u(ser(name)?)?\s+.{3,100})?\s-(admin|user|vm|root)?p(ass(word)?)?\s+["']?[^$\-\/\s]|(^|[\s\r\n\\])net(\.exe)?.{1,5}(user\s+|share\s+\/user:| user -? secrets ? set) \s + [^ $\s \/])/},{label:"Microsoft Entra ID",regex:/eyJ(?:0eXAiOiJKV1Qi|hbGci|[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+\.)/},{label:"Email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/}];for(let e of t)if(e.regex.test(r))return`<REDACTED: ${e.label}>`;return r}function yR(r,t){return r?js(r,e=>{if(e instanceof Il||Object.hasOwnProperty.call(e,"isTrustedTelemetryValue"))return e.value;if(typeof e=="string"){let n=e.replaceAll("%20"," ");n=kz(n,t);for(let o of t)n=n.replace(o,"");return n=Pz(n),n}}):{}}function fH(r,t){return r.uuid&&t.uuid?r.uuid===t.uuid:r.id===t.id?!0:Zf(r.id,t.id)===0}var sge=new _e("pprice.better-merge");var IR=class{constructor(){this._generators=new Map;this._cache=new WeakMap}register(t,e){this._generators.set(t,e)}readActivationEvents(t){return this._cache.has(t)||this._cache.set(t,this._readActivationEvents(t)),this._cache.get(t)}createActivationEventsMap(t){let e=Object.create(null);for(let n of t){let o=this.readActivationEvents(n);o.length>0&&(e[_e.toKey(n.identifier)]=o)}return e}_readActivationEvents(t){if(typeof t.main>"u"&&typeof t.browser>"u")return[];let e=Array.isArray(t.activationEvents)?t.activationEvents.slice(0):[];for(let n=0;n<e.length;n++)e[n]==="onUri"&&(e[n]=`onUri:${_e.toKey(t.identifier)}`);if(!t.contributes)return e;for(let n in t.contributes){let o=this._generators.get(n);if(!o)continue;let i=t.contributes[n],s=Array.isArray(i)?i:[i];try{e.push(...o(s))}catch(a){$e(a)}}return e}},xR=new IR;var hH=Object.freeze({identifier:new _e("nullExtensionDescription"),name:"Null Extension Description",version:"0.0.0",publisher:"vscode",engines:{vscode:""},extensionLocation:y.parse("void:location"),isBuiltin:!1,targetPlatform:"undefined",isUserBuiltin:!1,isUnderDevelopment:!1,preRelease:!1});var Tx=R("extensionService"),rv=class{constructor(t){this.dependency=t}};function Fe(r,t){return r.enabledApiProposals?r.enabledApiProposals.includes(t):!1}function A(r,t){if(!Fe(r,t))throw new Error(`Extension '${r.identifier.value}' CANNOT use API proposal: ${t}.
Its package.json#enabledApiProposals-property declares: ${r.enabledApiProposals?.join(", ")??"[]"} but NOT ${t}.
 The missing proposal MUST be added and you must start in extension development mode or use the following command line switch: --enable-proposed-api ${r.identifier.value}`)}var _z={activeComment:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.activeComment.d.ts"},agentSessionsWorkspace:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.agentSessionsWorkspace.d.ts"},aiRelatedInformation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiRelatedInformation.d.ts"},aiSettingsSearch:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiSettingsSearch.d.ts"},aiTextSearchProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts",version:2},authIssuers:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authIssuers.d.ts"},authLearnMore:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authLearnMore.d.ts"},authProviderSpecific:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authProviderSpecific.d.ts"},authSession:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authSession.d.ts"},authenticationChallenges:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authenticationChallenges.d.ts"},browser:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.browser.d.ts"},canonicalUriProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.canonicalUriProvider.d.ts"},chatContextProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatContextProvider.d.ts"},chatDebug:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatDebug.d.ts",version:3},chatHooks:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatHooks.d.ts",version:6},chatOutputRenderer:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatOutputRenderer.d.ts"},chatParticipantAdditions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts",version:3},chatParticipantPrivate:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts",version:15},chatPromptFiles:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatPromptFiles.d.ts",version:1},chatProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatProvider.d.ts",version:4},chatReferenceBinaryData:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatReferenceBinaryData.d.ts"},chatReferenceDiagnostic:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatReferenceDiagnostic.d.ts"},chatSessionsProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts",version:3},chatStatusItem:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatStatusItem.d.ts"},chatTab:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatTab.d.ts"},codeActionAI:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codeActionAI.d.ts"},codeActionRanges:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codeActionRanges.d.ts"},codiconDecoration:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codiconDecoration.d.ts"},commentReactor:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentReactor.d.ts"},commentReveal:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentReveal.d.ts"},commentThreadApplicability:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts"},commentingRangeHint:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentingRangeHint.d.ts"},commentsDraftState:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentsDraftState.d.ts"},contribAccessibilityHelpContent:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribAccessibilityHelpContent.d.ts"},contribChatEditorInlineGutterMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribChatEditorInlineGutterMenu.d.ts"},contribCommentEditorActionsMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentEditorActionsMenu.d.ts"},contribCommentPeekContext:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentPeekContext.d.ts"},contribCommentThreadAdditionalMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentThreadAdditionalMenu.d.ts"},contribCommentsViewThreadMenus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentsViewThreadMenus.d.ts"},contribDebugCreateConfiguration:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribDebugCreateConfiguration.d.ts"},contribDiffEditorGutterToolBarMenus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribDiffEditorGutterToolBarMenus.d.ts"},contribEditSessions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribEditSessions.d.ts"},contribEditorContentMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribEditorContentMenu.d.ts"},contribLabelFormatterWorkspaceTooltip:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribLabelFormatterWorkspaceTooltip.d.ts"},contribLanguageModelToolSets:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribLanguageModelToolSets.d.ts"},contribMenuBarHome:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMenuBarHome.d.ts"},contribMergeEditorMenus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMergeEditorMenus.d.ts"},contribMultiDiffEditorMenus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMultiDiffEditorMenus.d.ts"},contribNotebookStaticPreloads:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribNotebookStaticPreloads.d.ts"},contribRemoteHelp:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribRemoteHelp.d.ts"},contribShareMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribShareMenu.d.ts"},contribSourceControlArtifactGroupMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlArtifactGroupMenu.d.ts"},contribSourceControlArtifactMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlArtifactMenu.d.ts"},contribSourceControlHistoryItemMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlHistoryItemMenu.d.ts"},contribSourceControlHistoryTitleMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlHistoryTitleMenu.d.ts"},contribSourceControlInputBoxMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlInputBoxMenu.d.ts"},contribSourceControlTitleMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlTitleMenu.d.ts"},contribStatusBarItems:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribStatusBarItems.d.ts"},contribViewContainerTitle:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewContainerTitle.d.ts"},contribViewsRemote:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewsRemote.d.ts"},contribViewsWelcome:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewsWelcome.d.ts"},css:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.css.d.ts"},customEditorMove:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.customEditorMove.d.ts"},dataChannels:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.dataChannels.d.ts"},debugVisualization:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.debugVisualization.d.ts"},defaultChatParticipant:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.defaultChatParticipant.d.ts",version:4},devDeviceId:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.devDeviceId.d.ts"},diffCommand:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.diffCommand.d.ts"},diffContentOptions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.diffContentOptions.d.ts"},documentFiltersExclusive:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.documentFiltersExclusive.d.ts"},editSessionIdentityProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editSessionIdentityProvider.d.ts"},editorHoverVerbosityLevel:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editorHoverVerbosityLevel.d.ts"},editorInsets:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editorInsets.d.ts"},embeddings:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.embeddings.d.ts"},envIsConnectionMetered:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.envIsConnectionMetered.d.ts"},environmentPower:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.environmentPower.d.ts"},extensionAffinity:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionAffinity.d.ts"},extensionRuntime:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionRuntime.d.ts"},extensionsAny:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionsAny.d.ts"},externalUriOpener:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.externalUriOpener.d.ts"},fileSearchProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fileSearchProvider.d.ts"},fileSearchProvider2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fileSearchProvider2.d.ts"},findFiles2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findFiles2.d.ts",version:2},findTextInFiles:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findTextInFiles.d.ts"},findTextInFiles2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findTextInFiles2.d.ts"},fsChunks:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fsChunks.d.ts"},inlineCompletionsAdditions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts"},interactive:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.interactive.d.ts"},interactiveWindow:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.interactiveWindow.d.ts"},ipc:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.ipc.d.ts"},languageModelCapabilities:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelCapabilities.d.ts"},languageModelProxy:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelProxy.d.ts"},languageModelSystem:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelSystem.d.ts"},languageModelThinkingPart:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelThinkingPart.d.ts",version:1},languageModelToolResultAudience:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelToolResultAudience.d.ts"},languageModelToolSupportsModel:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelToolSupportsModel.d.ts",version:1},languageStatusText:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageStatusText.d.ts"},mappedEditsProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts"},markdownAlertSyntax:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.markdownAlertSyntax.d.ts"},mcpServerDefinitions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mcpServerDefinitions.d.ts"},mcpToolDefinitions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mcpToolDefinitions.d.ts"},multiDocumentHighlightProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.multiDocumentHighlightProvider.d.ts"},nativeWindowHandle:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.nativeWindowHandle.d.ts"},newSymbolNamesProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.newSymbolNamesProvider.d.ts"},notebookCellExecution:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookCellExecution.d.ts"},notebookControllerAffinityHidden:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookControllerAffinityHidden.d.ts"},notebookDeprecated:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookDeprecated.d.ts"},notebookExecution:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookExecution.d.ts"},notebookKernelSource:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookKernelSource.d.ts"},notebookLiveShare:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookLiveShare.d.ts"},notebookMessaging:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookMessaging.d.ts"},notebookMime:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookMime.d.ts"},notebookReplDocument:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookReplDocument.d.ts"},notebookVariableProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts"},portsAttributes:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.portsAttributes.d.ts"},profileContentHandlers:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.profileContentHandlers.d.ts"},quickDiffProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickDiffProvider.d.ts"},quickPickItemTooltip:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickPickItemTooltip.d.ts"},quickPickSortByLabel:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickPickSortByLabel.d.ts"},remoteCodingAgents:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.remoteCodingAgents.d.ts"},resolvers:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.resolvers.d.ts"},scmActionButton:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmActionButton.d.ts"},scmArtifactProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmArtifactProvider.d.ts"},scmHistoryProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts"},scmMultiDiffEditor:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmMultiDiffEditor.d.ts"},scmProviderOptions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmProviderOptions.d.ts"},scmSelectedProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmSelectedProvider.d.ts"},scmTextDocument:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmTextDocument.d.ts"},scmValidation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmValidation.d.ts"},shareProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.shareProvider.d.ts"},speech:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.speech.d.ts"},statusBarItemTooltip:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.statusBarItemTooltip.d.ts"},tabInputMultiDiff:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tabInputMultiDiff.d.ts"},tabInputTextMerge:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tabInputTextMerge.d.ts"},taskExecutionTerminal:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskExecutionTerminal.d.ts"},taskPresentationGroup:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskPresentationGroup.d.ts"},taskProblemMatcherStatus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskProblemMatcherStatus.d.ts"},taskRunOptions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskRunOptions.d.ts"},telemetry:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.telemetry.d.ts"},terminalCompletionProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts"},terminalDataWriteEvent:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDataWriteEvent.d.ts"},terminalDimensions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDimensions.d.ts"},terminalExecuteCommandEvent:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalExecuteCommandEvent.d.ts"},terminalQuickFixProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalQuickFixProvider.d.ts"},terminalSelection:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalSelection.d.ts"},terminalShellEnv:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalShellEnv.d.ts"},terminalTitle:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalTitle.d.ts"},testObserver:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.testObserver.d.ts"},testRelatedCode:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.testRelatedCode.d.ts"},textDocumentChangeReason:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textDocumentChangeReason.d.ts"},textEditorDiffInformation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textEditorDiffInformation.d.ts"},textSearchComplete2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchComplete2.d.ts"},textSearchProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchProvider.d.ts"},textSearchProvider2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchProvider2.d.ts"},timeline:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.timeline.d.ts"},tokenInformation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tokenInformation.d.ts"},toolProgress:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.toolProgress.d.ts"},treeItemMarkdownLabel:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeItemMarkdownLabel.d.ts"},treeViewActiveItem:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewActiveItem.d.ts"},treeViewMarkdownMessage:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewMarkdownMessage.d.ts"},treeViewReveal:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewReveal.d.ts"},tunnelFactory:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tunnelFactory.d.ts"},tunnels:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tunnels.d.ts"},valueSelectionInQuickPick:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.valueSelectionInQuickPick.d.ts"},workspaceTrust:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.workspaceTrust.d.ts"}},Ap=Object.freeze(_z);var wR=gt.as(hc.JSONContribution);var SR=class r{constructor(t,e){this.added=t;this.removed=e}static _toSet(t){let e=new ko;for(let n=0,o=t.length;n<o;n++)e.add(t[n].description.identifier);return e}static compute(t,e){if(!t||!t.length)return new r(e,[]);if(!e||!e.length)return new r([],t);let n=this._toSet(t),o=this._toSet(e),i=e.filter(a=>!n.has(a.description.identifier)),s=t.filter(a=>!o.has(a.description.identifier));return new r(i,s)}},CR=class{constructor(t,e,n){this.name=t,this.defaultExtensionKind=e,this.canHandleResolver=n,this._handler=null,this._users=null,this._delta=null}setHandler(t){if(this._handler!==null)throw new Error("Handler already set!");return this._handler=t,this._handle(),{dispose:()=>{this._handler=null}}}acceptUsers(t){this._delta=SR.compute(this._users,t),this._users=t,this._handle()}_handle(){if(!(this._handler===null||this._users===null||this._delta===null))try{this._handler(this._users,this._delta)}catch(t){$e(t)}}},Dz={type:"string",enum:["ui","workspace"],enumDescriptions:[p(17231,null),p(17311,null)]},vH="vscode://schemas/vscode-extensions",TR={properties:{engines:{type:"object",description:p(17295,null),properties:{vscode:{type:"string",description:p(17296,null),default:"^1.105.0"}}},publisher:{description:p(17307,null),type:"string"},displayName:{description:p(17292,null),type:"string"},categories:{description:p(17286,null),type:"array",uniqueItems:!0,items:{oneOf:[{type:"string",enum:II},{type:"string",const:"Languages",deprecationMessage:p(17287,null)}]}},galleryBanner:{type:"object",description:p(17299,null),properties:{color:{description:p(17300,null),type:"string"},theme:{description:p(17301,null),type:"string",enum:["dark","light"]}}},contributes:{description:p(17288,null),type:"object",properties:{},default:{}},preview:{type:"boolean",description:p(17305,null)},enableProposedApi:{type:"boolean",deprecationMessage:p(17294,null)},enabledApiProposals:{markdownDescription:p(17293,null),type:"array",uniqueItems:!0,items:{type:"string",enum:Object.keys(Ap).map(r=>r),markdownEnumDescriptions:Object.values(Ap).map(r=>r.proposal)}},api:{markdownDescription:p(17266,null),type:"string",enum:["none"],enumDescriptions:[p(17267,null)]},activationEvents:{description:p(17232,null),type:"array",items:{type:"string",defaultSnippets:[{label:"onWebviewPanel",description:p(17263,null),body:"onWebviewPanel:viewType"},{label:"onLanguage",description:p(17246,null),body:"onLanguage:${1:languageId}"},{label:"onCommand",description:p(17236,null),body:"onCommand:${2:commandId}"},{label:"onDebug",description:p(17238,null),body:"onDebug"},{label:"onDebugInitialConfigurations",description:p(17241,null),body:"onDebugInitialConfigurations"},{label:"onDebugDynamicConfigurations",description:p(17240,null),body:"onDebugDynamicConfigurations"},{label:"onDebugResolve",description:p(17242,null),body:"onDebugResolve:${6:type}"},{label:"onDebugAdapterProtocolTracker",description:p(17239,null),body:"onDebugAdapterProtocolTracker:${6:type}"},{label:"workspaceContains",description:p(17265,null),body:"workspaceContains:${4:filePattern}"},{label:"onStartupFinished",description:p(17254,null),body:"onStartupFinished"},{label:"onTaskType",description:p(17255,null),body:"onTaskType:${1:taskType}"},{label:"onFileSystem",description:p(17244,null),body:"onFileSystem:${1:scheme}"},{label:"onEditSession",description:p(17243,null),body:"onEditSession:${1:scheme}"},{label:"onSearch",description:p(17253,null),body:"onSearch:${7:scheme}"},{label:"onView",body:"onView:${5:viewId}",description:p(17261,null)},{label:"onUri",body:"onUri",description:p(17260,null)},{label:"onOpenExternalUri",body:"onOpenExternalUri",description:p(17251,null)},{label:"onCustomEditor",body:"onCustomEditor:${9:viewType}",description:p(17237,null)},{label:"onNotebook",body:"onNotebook:${1:type}",description:p(17250,null)},{label:"onAuthenticationRequest",body:"onAuthenticationRequest:${11:authenticationProviderId}",description:p(17233,null)},{label:"onRenderer",description:p(17252,null),body:"onRenderer:${11:rendererId}"},{label:"onTerminalProfile",body:"onTerminalProfile:${1:terminalId}",description:p(17257,null)},{label:"onTerminalQuickFixRequest",body:"onTerminalQuickFixRequest:${1:quickFixId}",description:p(17258,null)},{label:"onWalkthrough",body:"onWalkthrough:${1:walkthroughID}",description:p(17262,null)},{label:"onIssueReporterOpened",body:"onIssueReporterOpened",description:p(17245,null)},{label:"onChatParticipant",body:"onChatParticipant:${1:participantId}",description:p(17235,null)},{label:"onChatContextProvider",body:"onChatContextProvider:${1:contextProviderId}",description:p(17234,null)},{label:"onLanguageModelChatProvider",body:"onLanguageModelChatProvider:${1:vendor}",description:p(17247,null)},{label:"onLanguageModelTool",body:"onLanguageModelTool:${1:toolId}",description:p(17248,null)},{label:"onTerminal",body:"onTerminal:{1:shellType}",description:p(17256,null)},{label:"onTerminalShellIntegration",body:"onTerminalShellIntegration:${1:shellType}",description:p(17259,null)},{label:"onMcpCollection",description:p(17249,null),body:"onMcpCollection:${2:collectionId}"},{label:"*",description:p(17264,null),body:"*"}]}},badges:{type:"array",description:p(17268,null),items:{type:"object",required:["url","href","description"],properties:{url:{type:"string",description:p(17271,null)},href:{type:"string",description:p(17270,null)},description:{type:"string",description:p(17269,null)}}}},markdown:{type:"string",description:p(17304,null),enum:["github","standard"],default:"github"},qna:{default:"marketplace",description:p(17308,null),anyOf:[{type:["string","boolean"],enum:["marketplace",!1]},{type:"string"}]},extensionDependencies:{description:p(17298,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:ov}},extensionAffinity:{description:p(17297,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:ov}},extensionPack:{description:p(17289,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:ov}},extensionKind:{description:p(17224,null),type:"array",items:Dz,default:["workspace"],defaultSnippets:[{body:["ui"],description:p(17226,null)},{body:["workspace"],description:p(17228,null)},{body:["ui","workspace"],description:p(17227,null)},{body:["workspace","ui"],description:p(17229,null)},{body:[],description:p(17225,null)}]},capabilities:{description:p(17272,null),type:"object",properties:{virtualWorkspaces:{description:p(17280,null),type:["boolean","object"],defaultSnippets:[{label:"limited",body:{supported:"${1:limited}",description:"${2}"}},{label:"false",body:{supported:!1,description:"${2}"}}],default:(!0).valueOf,properties:{supported:{markdownDescription:p(17282,null),type:["string","boolean"],enum:["limited",!0,!1],enumDescriptions:[p(17284,null),p(17285,null),p(17283,null)]},description:{type:"string",markdownDescription:p(17281,null)}}},untrustedWorkspaces:{description:p(17273,null),type:"object",required:["supported"],defaultSnippets:[{body:{supported:"${1:limited}",description:"${2}"}}],properties:{supported:{markdownDescription:p(17276,null),type:["string","boolean"],enum:["limited",!0,!1],enumDescriptions:[p(17278,null),p(17279,null),p(17277,null)]},restrictedConfigurations:{description:p(17275,null),type:"array",items:{type:"string"}},description:{type:"string",markdownDescription:p(17274,null)}}}}},sponsor:{description:p(17290,null),type:"object",defaultSnippets:[{body:{url:"${1:https:}"}}],properties:{url:{description:p(17291,null),type:"string"}}},scripts:{type:"object",properties:{"vscode:prepublish":{description:p(17309,null),type:"string"},"vscode:uninstall":{description:p(17310,null),type:"string"}}},icon:{type:"string",description:p(17302,null)},l10n:{type:"string",description:p(17303,null)},pricing:{type:"string",markdownDescription:p(17306,null),enum:["Free","Trial"],default:"Free"}}},ER=class{constructor(){this._extensionPoints=new Map}registerExtensionPoint(t){if(this._extensionPoints.has(t.extensionPoint))throw new Error("Duplicate extension point: "+t.extensionPoint);let e=new CR(t.extensionPoint,t.defaultExtensionKind,t.canHandleResolver);return this._extensionPoints.set(t.extensionPoint,e),t.activationEventsGenerator&&xR.register(t.extensionPoint,t.activationEventsGenerator),TR.properties.contributes.properties[t.extensionPoint]=t.jsonSchema,wR.registerSchema(vH,TR),e}getExtensionPoints(){return Array.from(this._extensionPoints.values())}},bH={ExtensionsRegistry:"ExtensionsRegistry"};gt.add(bH.ExtensionsRegistry,new ER);var Ex=gt.as(bH.ExtensionsRegistry);wR.registerSchema(vH,TR);wR.registerSchema(K2,{properties:{extensionEnabledApiProposals:{description:p(17230,null),type:"object",properties:{},additionalProperties:{anyOf:[{type:"array",uniqueItems:!0,items:{type:"string",enum:Object.keys(Ap),markdownEnumDescriptions:Object.values(Ap).map(r=>r.proposal)}}]}}}});var Bge=new w("isMac",ut,p(1871,null)),$ge=new w("isLinux",Qe,p(1870,null)),zge=new w("isWindows",Ie,p(1875,null)),yH=new w("isWeb",hr,p(1874,null)),qge=new w("isMacNative",ut&&!hr,p(1872,null)),Kge=new w("isIOS",vN,p(1869,null)),jge=new w("isMobile",bN,p(1873,null)),Gge=new w("isDevelopment",!1,!0),Qge=new w("productQualityType","",p(1876,null)),Rz="inputFocus",Jge=new w(Rz,!1,p(1868,null));var iv=R("languageService");var sv=R("modelService");var av=class extends zh{constructor(){super(...arguments);this._onDidChangeDirty=this._register(new T);this._onDidChangeLabel=this._register(new T);this._onDidChangeCapabilities=this._register(new T);this._onWillDispose=this._register(new T);this.onDidChangeDirty=this._onDidChangeDirty.event;this.onDidChangeLabel=this._onDidChangeLabel.event;this.onDidChangeCapabilities=this._onDidChangeCapabilities.event;this.onWillDispose=this._onWillDispose.event}get editorId(){}get capabilities(){return 2}hasCapability(e){return e===0?this.capabilities===0:(this.capabilities&e)!==0}isReadonly(){return this.hasCapability(2)}getName(){return`Editor ${this.typeId}`}getDescription(e){}getTitle(e){return this.getName()}getLabelExtraClasses(){return[]}getAriaLabel(){return this.getTitle(0)}getIcon(){}getTelemetryDescriptor(){return{typeId:this.typeId}}isDirty(){return!1}isModified(){return this.isDirty()}isSaving(){return!1}async resolve(){return null}async save(e,n){return this}async saveAs(e,n){return this}async revert(e,n){}async rename(e,n){}copy(){return this}canMove(e,n){return!0}canReopen(){return!0}matches(e){if(dr(e))return this===e;let n=e.options?.override;return this.editorId!==n&&n!==void 0&&this.editorId!==void 0?!1:yr(this.resource,JI.getCanonicalUri(e))}prefersEditorPane(e){return e.at(0)}toUntyped(e){}isDisposed(){return this._store.isDisposed}dispose(){this.isDisposed()||this._onWillDispose.fire(),super.dispose()}};var xH=R("editorGroupsService");var wx=R("editorService"),SH=-1,CH=-2;var yi=class extends av{constructor(e,n,o,i,s){super();this.preferredName=e;this.preferredDescription=n;this.secondary=o;this.primary=i;this.editorService=s;this.hasIdenticalSides=this.primary.matches(this.secondary),this.registerListeners()}static{this.ID="workbench.editorinputs.sidebysideEditorInput"}get typeId(){return yi.ID}get capabilities(){let e=this.primary.capabilities;return e&=-33,this.secondary.hasCapability(16)&&(e|=16),this.secondary.hasCapability(8)&&(e|=8),this.secondary.hasCapability(1024)&&(e|=1024),e|=256,e}get resource(){if(this.hasIdenticalSides)return this.primary.resource}registerListeners(){this._register(fe.once(fe.any(this.primary.onWillDispose,this.secondary.onWillDispose))(()=>{this.isDisposed()||this.dispose()})),this._register(this.primary.onDidChangeDirty(()=>this._onDidChangeDirty.fire())),this._register(this.primary.onDidChangeCapabilities(()=>this._onDidChangeCapabilities.fire())),this._register(this.secondary.onDidChangeCapabilities(()=>this._onDidChangeCapabilities.fire())),this._register(this.primary.onDidChangeLabel(()=>this._onDidChangeLabel.fire())),this._register(this.secondary.onDidChangeLabel(()=>this._onDidChangeLabel.fire()))}getName(){let e=this.getPreferredName();return e||(this.hasIdenticalSides?this.primary.getName():p(4745,null,this.secondary.getName(),this.primary.getName()))}getPreferredName(){return this.preferredName}getDescription(e){let n=this.getPreferredDescription();return n||(this.hasIdenticalSides?this.primary.getDescription(e):super.getDescription(e))}getPreferredDescription(){return this.preferredDescription}getTitle(e){let n;this.hasIdenticalSides?n=this.primary.getTitle(e)??this.getName():n=super.getTitle(e);let o=this.getPreferredTitle();return o&&(n=`${o} (${n})`),n}getPreferredTitle(){if(this.preferredName&&this.preferredDescription)return`${this.preferredName} ${this.preferredDescription}`;if(this.preferredName||this.preferredDescription)return this.preferredName??this.preferredDescription}getLabelExtraClasses(){return this.hasIdenticalSides?this.primary.getLabelExtraClasses():super.getLabelExtraClasses()}getAriaLabel(){return this.hasIdenticalSides?this.primary.getAriaLabel():super.getAriaLabel()}getTelemetryDescriptor(){return{...this.primary.getTelemetryDescriptor(),...super.getTelemetryDescriptor()}}isDirty(){return this.primary.isDirty()}isSaving(){return this.primary.isSaving()}async save(e,n){let o=await this.primary.save(e,n);return this.saveResultToEditor(o)}async saveAs(e,n){let o=await this.primary.saveAs(e,n);return this.saveResultToEditor(o)}saveResultToEditor(e){if(!e||!this.hasIdenticalSides)return e;if(this.primary.matches(e))return this;if(e instanceof av)return new yi(this.preferredName,this.preferredDescription,e,e,this.editorService);if(!hi(e)&&!Ip(e)&&!fl(e)&&!gl(e))return{primary:e,secondary:e,label:this.preferredName,description:this.preferredDescription}}revert(e,n){return this.primary.revert(e,n)}async rename(e,n){if(!this.hasIdenticalSides)return;let o=await this.primary.rename(e,n);if(o){if(dr(o.editor))return{editor:new yi(this.preferredName,this.preferredDescription,o.editor,o.editor,this.editorService),options:{...o.options,viewState:YI(this,e,this.editorService)}};if(l2(o.editor))return{editor:{label:this.preferredName,description:this.preferredDescription,primary:o.editor,secondary:o.editor,options:{...o.options,viewState:YI(this,e,this.editorService)}}}}}isReadonly(){return this.primary.isReadonly()}toUntyped(e){let n=this.primary.toUntyped(e),o=this.secondary.toUntyped(e);if(n&&o&&!hi(n)&&!hi(o)&&!Ip(n)&&!Ip(o)&&!fl(n)&&!fl(o)&&!gl(n)&&!gl(o)){let i={label:this.preferredName,description:this.preferredDescription,primary:n,secondary:o};return typeof e?.preserveViewState=="number"&&(i.options={viewState:YI(this,e.preserveViewState,this.editorService)}),i}}matches(e){return this===e?!0:jD(e)||hi(e)?!1:e instanceof yi?this.primary.matches(e.primary)&&this.secondary.matches(e.secondary):fl(e)?this.primary.matches(e.primary)&&this.secondary.matches(e.secondary):!1}};yi=_([C(4,wx)],yi);var Mp=class extends O{constructor(){super(...arguments);this._onWillDispose=this._register(new T);this.onWillDispose=this._onWillDispose.event;this.resolved=!1}async resolve(){this.resolved=!0}isResolved(){return this.resolved}isDisposed(){return this._store.isDisposed}dispose(){this._onWillDispose.fire(),super.dispose()}};var Mz={ModesRegistry:"editor.modesRegistry"},kR=class extends O{constructor(){super();this._onDidChangeLanguages=this._register(new T);this.onDidChangeLanguages=this._onDidChangeLanguages.event;this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let n=0,o=this._languages.length;n<o;n++)if(this._languages[n]===e){this._languages.splice(n,1);return}}}}getLanguages(){return this._languages}},TH=new kR;gt.add(Mz.ModesRegistry,TH);var lv="plaintext",Lz=".txt";TH.registerLanguage({id:lv,extensions:[Lz],aliases:[p(908,null),"text"],mimetypes:[Po.text]});gt.as(ur.Configuration).registerDefaultConfigurations([{overrides:{"[plaintext]":{"editor.unicodeHighlight.ambiguousCharacters":!1,"editor.unicodeHighlight.invisibleCharacters":!1},"[go]":{"editor.insertSpaces":!1},"[makefile]":{"editor.insertSpaces":!1},"[shellscript]":{"files.eol":`
`},"[yaml]":{"editor.insertSpaces":!0,"editor.tabSize":2}}}]);var EH=R("ILanguageDetectionService"),PR="languageDetection";var oa=class extends Mp{constructor(e,n,o,i,s){super();this.modelService=e;this.languageService=n;this.languageDetectionService=o;this.accessibilityService=i;this.textEditorModelHandle=void 0;this.modelDisposeListener=this._register(new En);this.autoDetectLanguageThrottler=this._register(new di(oa.AUTO_DETECT_LANGUAGE_THROTTLE_DELAY));this._blockLanguageChangeListener=!1;this._languageChangeSource=void 0;s&&this.handleExistingModel(s)}static{this.AUTO_DETECT_LANGUAGE_THROTTLE_DELAY=600}handleExistingModel(e){let n=this.modelService.getModel(e);if(!n)throw new Error(`Document with resource ${e.toString(!0)} does not exist`);this.textEditorModelHandle=e,this.registerModelDisposeListener(n)}registerModelDisposeListener(e){this.modelDisposeListener.value=e.onWillDispose(()=>{this.textEditorModelHandle=void 0,this.dispose()})}get textEditorModel(){return this.textEditorModelHandle?this.modelService.getModel(this.textEditorModelHandle):null}isReadonly(){return!0}get languageChangeSource(){return this._languageChangeSource}get hasLanguageSetExplicitly(){return typeof this._languageChangeSource=="string"}setLanguageId(e,n){this._languageChangeSource="user",this.setLanguageIdInternal(e,n)}setLanguageIdInternal(e,n){if(this.isResolved()&&!(!e||e===this.textEditorModel.getLanguageId())){this._blockLanguageChangeListener=!0;try{this.textEditorModel.setLanguage(this.languageService.createById(e),n)}finally{this._blockLanguageChangeListener=!1}}}installModelListeners(e){let n=this._register(e.onDidChangeLanguage(o=>{o.source===PR||this._blockLanguageChangeListener||(this._languageChangeSource="api",n.dispose())}))}getLanguageId(){return this.textEditorModel?.getLanguageId()}autoDetectLanguage(){return this.autoDetectLanguageThrottler.trigger(()=>this.doAutoDetectLanguage())}async doAutoDetectLanguage(){if(this.hasLanguageSetExplicitly||!this.textEditorModelHandle||!this.languageDetectionService.isEnabledForLanguage(this.getLanguageId()??lv))return;let e=await this.languageDetectionService.detectLanguage(this.textEditorModelHandle),n=this.getLanguageId();if(e&&e!==n&&!this.isDisposed()){this.setLanguageIdInternal(e,PR);let o=this.languageService.getLanguageName(e);this.accessibilityService.alert(p(4746,null,o??e))}}createTextEditorModel(e,n,o){let i=this.getFirstLineText(e),s=this.getOrCreateLanguage(n,this.languageService,o,i);return this.doCreateTextEditorModel(e,s,n)}doCreateTextEditorModel(e,n,o){let i=o&&this.modelService.getModel(o);return i?this.updateTextEditorModel(e,n.languageId):(i=this.modelService.createModel(e,n,o),this.createdEditorModel=!0,this.registerModelDisposeListener(i)),this.textEditorModelHandle=i.uri,i}getFirstLineText(e){let n=e;return typeof n.getFirstLineText=="function"?n.getFirstLineText(1e3):e.getLineContent(1).substr(0,1e3)}getOrCreateLanguage(e,n,o,i){return!o||o===lv?n.createByFilepathOrFirstLine(e??null,i):n.createById(o)}updateTextEditorModel(e,n,o){this.isResolved()&&(e&&this.modelService.updateModel(this.textEditorModel,e,o),n&&n!==lv&&this.textEditorModel.getLanguageId()!==n&&this.textEditorModel.setLanguage(this.languageService.createById(n)))}createSnapshot(){return this.textEditorModel?this.textEditorModel.createSnapshot(!0):null}isResolved(){return!!this.textEditorModelHandle}dispose(){this.modelDisposeListener.dispose(),this.textEditorModelHandle&&this.createdEditorModel&&this.modelService.destroyModel(this.textEditorModelHandle),this.textEditorModelHandle=void 0,this.createdEditorModel=!1,super.dispose()}};oa=_([C(0,sv),C(1,iv),C(2,EH),C(3,JU)],oa);var Lp=class extends Mp{get originalModel(){return this._originalModel}get modifiedModel(){return this._modifiedModel}constructor(t,e){super(),this._originalModel=t,this._modifiedModel=e}async resolve(){await Promise.all([this._originalModel?.resolve(),this._modifiedModel?.resolve()])}isResolved(){return!!(this._originalModel?.isResolved()&&this._modifiedModel?.isResolved())}dispose(){super.dispose()}};var kx=class extends Lp{constructor(e,n){super(e,n);this._textDiffEditorModel=void 0;this._originalModel=e,this._modifiedModel=n,this.updateTextDiffEditorModel()}get originalModel(){return this._originalModel}get modifiedModel(){return this._modifiedModel}get textDiffEditorModel(){return this._textDiffEditorModel}async resolve(){await super.resolve(),this.updateTextDiffEditorModel()}updateTextDiffEditorModel(){this.originalModel?.isResolved()&&this.modifiedModel?.isResolved()&&(this._textDiffEditorModel?(this._textDiffEditorModel.original=this.originalModel.textEditorModel,this._textDiffEditorModel.modified=this.modifiedModel.textEditorModel):this._textDiffEditorModel={original:this.originalModel.textEditorModel,modified:this.modifiedModel.textEditorModel})}isResolved(){return!!this._textDiffEditorModel}isReadonly(){return!!this.modifiedModel&&this.modifiedModel.isReadonly()}dispose(){this._textDiffEditorModel=void 0,super.dispose()}};function _R(r){let t=r;return typeof t?.resolve=="function"&&typeof t?.isResolved=="function"}var xl=class extends yi{constructor(e,n,o,i,s,a){super(e,n,o,i,a);this.original=o;this.modified=i;this.forceOpenAsBinary=s;this.cachedModel=void 0;this.labels=this.computeLabels()}static{this.ID="workbench.editors.diffEditorInput"}get typeId(){return xl.ID}get editorId(){return this.modified.editorId===this.original.editorId?this.modified.editorId:void 0}get capabilities(){let e=super.capabilities;return this.labels.forceDescription&&(e|=64),e}computeLabels(){let e,n=!1;if(this.preferredName)e=this.preferredName;else{let u=this.original.getName(),m=this.modified.getName();e=p(4744,null,u,m),n=u===m}let o,i,s;if(this.preferredDescription)o=this.preferredDescription,i=this.preferredDescription,s=this.preferredDescription;else{o=this.computeLabel(this.original.getDescription(0),this.modified.getDescription(0)),s=this.computeLabel(this.original.getDescription(2),this.modified.getDescription(2));let u=this.original.getDescription(1),m=this.modified.getDescription(1);if(typeof u=="string"&&typeof m=="string"&&(u||m)){let[g,h]=f2([u,m]);i=this.computeLabel(g,h)}}let a=this.computeLabel(this.original.getTitle(0)??this.original.getName(),this.modified.getTitle(0)??this.modified.getName()," \u2194 "),l=this.computeLabel(this.original.getTitle(1)??this.original.getName(),this.modified.getTitle(1)??this.modified.getName()," \u2194 "),d=this.computeLabel(this.original.getTitle(2)??this.original.getName(),this.modified.getTitle(2)??this.modified.getName()," \u2194 "),c=this.getPreferredTitle();return c&&(a=`${c} (${a})`,l=`${c} (${l})`,d=`${c} (${d})`),{name:e,shortDescription:o,mediumDescription:i,longDescription:s,forceDescription:n,shortTitle:a,mediumTitle:l,longTitle:d}}computeLabel(e,n,o=" - "){if(!(!e||!n))return e===n?n:`${e}${o}${n}`}getName(){return this.labels.name}getDescription(e=1){switch(e){case 0:return this.labels.shortDescription;case 2:return this.labels.longDescription;case 1:default:return this.labels.mediumDescription}}getTitle(e){switch(e){case 0:return this.labels.shortTitle;case 2:return this.labels.longTitle;default:case 1:return this.labels.mediumTitle}}async resolve(){let e=await this.createModel();return this.cachedModel?.dispose(),this.cachedModel=e,this.cachedModel}prefersEditorPane(e){return this.forceOpenAsBinary?e.find(n=>n.typeId===a2):e.find(n=>n.typeId===s2)}async createModel(){let[e,n]=await Promise.all([this.original.resolve(),this.modified.resolve()]);return n instanceof oa&&e instanceof oa?new kx(e,n):new Lp(_R(e)?e:void 0,_R(n)?n:void 0)}toUntyped(e){let n=super.toUntyped(e);if(n)return{...n,modified:n.primary,original:n.secondary}}matches(e){return this===e?!0:e instanceof xl?this.modified.matches(e.modified)&&this.original.matches(e.original)&&e.forceOpenAsBinary===this.forceOpenAsBinary:hi(e)?this.modified.matches(e.modified)&&this.original.matches(e.original):!1}dispose(){this.cachedModel&&(this.cachedModel.dispose(),this.cachedModel=void 0),super.dispose()}};xl=_([C(5,wx)],xl);var vve=new w("workbenchState",void 0,{type:"string",description:p(4738,null)}),bve=new w("workspaceFolderCount",0,p(4739,null)),yve=new w("openFolderWorkspaceSupport",!0,!0),Ive=new w("enterMultiRootWorkspaceSupport",!0,!0),xve=new w("emptyWorkspaceSupport",!0,!0),Sve=new w("dirtyWorkingCopies",!1,p(4684,null)),wH=new w("remoteName","",p(4716,null)),Cve=new w("virtualWorkspace","",p(4737,null)),Tve=new w("temporaryWorkspace",!1,p(4731,null)),Eve=new w("isSessionsWindow",!1,p(4703,null)),wve=new w("hasWebFileSystemAccess",!1,!0),kve=new w("embedderIdentifier",void 0,p(4692,null)),Pve=new w("inAutomation",!1,p(4695,null)),_ve=new w("isFullscreen",!1,p(4701,null)),Dve=new w("isAuxiliaryWindowFocusedContext",!1,p(4698,null)),Rve=new w("isWindowAlwaysOnTop",!1,p(4704,null)),Ave=new w("isAuxiliaryWindow",!1,p(4697,null)),Mve=new w("activeEditorIsDirty",!1,p(4672,null)),Lve=new w("activeEditorIsNotPreview",!1,p(4675,null)),Ove=new w("activeEditorIsFirstInGroup",!1,p(4673,null)),Nve=new w("activeEditorIsLastInGroup",!1,p(4674,null)),Uve=new w("activeEditorIsPinned",!1,p(4676,null)),Fve=new w("activeEditorIsReadonly",!1,p(4677,null)),Hve=new w("activeCompareEditorCanSwap",!1,p(4663,null)),Wve=new w("activeEditorCanToggleReadonly",!0,p(4667,null)),Vve=new w("activeEditorCanRevert",!1,p(4666,null)),Bve=new w("activeEditorCanSplitInGroup",!0),$ve=new w("activeEditor",null,{type:"string",description:p(4664,null)}),zve=new w("activeEditorAvailableEditorIds","",p(4665,null)),qve=new w("textCompareEditorVisible",!1,p(4733,null)),Kve=new w("textCompareEditorActive",!1,p(4732,null)),jve=new w("sideBySideEditorActive",!1,p(4728,null)),Gve=new w("groupEditorsCount",0,p(4694,null)),Qve=new w("activeEditorGroupEmpty",!1,p(4668,null)),Jve=new w("activeEditorGroupIndex",0,p(4669,null)),Yve=new w("activeEditorGroupLast",!1,p(4670,null)),Xve=new w("activeEditorGroupLocked",!1,p(4671,null)),Oz=new w("multipleEditorGroups",!1,p(4706,null)),Zve=Oz.toNegated(),ebe=new w("multipleEditorsSelectedInGroup",!1,p(4707,null)),tbe=new w("twoEditorsSelectedInGroup",!1,p(4736,null)),nbe=new w("SelectedEditorsInGroupFileOrUntitledResourceContextKey",!0,p(4725,null)),Nz=new w("editorPartMultipleEditorGroups",!1,p(4690,null)),obe=Nz.toNegated(),rbe=new w("editorPartMaximizedEditorGroup",!1,p(4686,null)),ibe=new w("editorPartModal",!1,p(4687,null)),sbe=new w("editorPartModalMaximized",!1,p(4688,null)),abe=new w("editorPartModalNavigation",!1,p(4689,null)),lbe=new w("editorIsOpen",!1,p(4685,null)),dbe=new w("inZenMode",!1,p(4696,null)),cbe=new w("isCenteredLayout",!1,p(4702,null)),ube=new w("splitEditorsVertically",!1,p(4729,null)),pbe=new w("mainEditorAreaVisible",!0,p(4705,null)),mbe=new w("editorTabsVisible",!0,p(4691,null)),gbe=new w("sideBarVisible",!1,p(4727,null)),fbe=new w("sideBarFocus",!1,p(4726,null)),hbe=new w("activeViewlet","",p(4679,null)),vbe=new w("statusBarFocused",!1,p(4730,null)),bbe=new w("titleBarStyle","custom",p(4734,null)),ybe=new w("titleBarVisible",!1,p(4735,null)),Ibe=new w("isCompactTitleBar",!1,p(4699,null)),xbe=new w("bannerFocused",!1,p(4683,null)),Sbe=new w("notificationFocus",!0,p(4709,null)),Cbe=new w("notificationCenterVisible",!1,p(4708,null)),Tbe=new w("notificationToastsVisible",!1,p(4710,null)),Ebe=new w("activeAuxiliary","",p(4662,null)),wbe=new w("auxiliaryBarFocus",!1,p(4680,null)),kbe=new w("auxiliaryBarVisible",!1,p(4682,null)),Pbe=new w("auxiliaryBarMaximized",!1,p(4681,null)),_be=new w("activePanel","",p(4678,null)),Dbe=new w("panelFocus",!1,p(4712,null)),Rbe=new w("panelPosition","bottom",p(4714,null)),Abe=new w("panelAlignment","center",p(4711,null)),Mbe=new w("panelVisible",!1,p(4715,null)),Lbe=new w("panelMaximized",!1,p(4713,null)),Obe=new w("focusedView","",p(4693,null));var $o=class{constructor(t,e,n,o){this._contextKeyService=t;this._fileService=e;this._languageService=n;this._modelService=o;this._schemeKey=$o.Scheme.bindTo(this._contextKeyService),this._filenameKey=$o.Filename.bindTo(this._contextKeyService),this._dirnameKey=$o.Dirname.bindTo(this._contextKeyService),this._pathKey=$o.Path.bindTo(this._contextKeyService),this._langIdKey=$o.LangId.bindTo(this._contextKeyService),this._resourceKey=$o.Resource.bindTo(this._contextKeyService),this._extensionKey=$o.Extension.bindTo(this._contextKeyService),this._hasResource=$o.HasResource.bindTo(this._contextKeyService),this._isFileSystemResource=$o.IsFileSystemResource.bindTo(this._contextKeyService)}static{this.Scheme=new w("resourceScheme",void 0,{type:"string",description:p(4723,null)})}static{this.Filename=new w("resourceFilename",void 0,{type:"string",description:p(4720,null)})}static{this.Dirname=new w("resourceDirname",void 0,{type:"string",description:p(4718,null)})}static{this.Path=new w("resourcePath",void 0,{type:"string",description:p(4722,null)})}static{this.LangId=new w("resourceLangId",void 0,{type:"string",description:p(4721,null)})}static{this.Resource=new w("resource",void 0,{type:"URI",description:p(4717,null)})}static{this.Extension=new w("resourceExtname",void 0,{type:"string",description:p(4719,null)})}static{this.HasResource=new w("resourceSet",void 0,{type:"boolean",description:p(4724,null)})}static{this.IsFileSystemResource=new w("isFileSystemResource",void 0,{type:"boolean",description:p(4700,null)})}_setLangId(){let t=this.get();if(!t){this._langIdKey.set(null);return}let e=this._modelService.getModel(t)?.getLanguageId()??this._languageService.guessLanguageIdByFilepathOrFirstLine(t);this._langIdKey.set(e)}set(t){t=t??void 0,!yr(this._value,t)&&(this._value=t,this._contextKeyService.bufferChangeEvents(()=>{this._resourceKey.set(t?t.toString():null),this._schemeKey.set(t?t.scheme:null),this._filenameKey.set(t?qt(t):null),this._dirnameKey.set(t?this.uriToPath(li(t)):null),this._pathKey.set(t?this.uriToPath(t):null),this._setLangId(),this._extensionKey.set(t?Qy(t):null),this._hasResource.set(!!t),this._isFileSystemResource.set(t?this._fileService.hasProvider(t):!1)}))}uriToPath(t){return t.scheme===V.file?t.fsPath:t.path}reset(){this._value=void 0,this._contextKeyService.bufferChangeEvents(()=>{this._resourceKey.reset(),this._schemeKey.reset(),this._filenameKey.reset(),this._dirnameKey.reset(),this._pathKey.reset(),this._langIdKey.reset(),this._extensionKey.reset(),this._hasResource.reset(),this._isFileSystemResource.reset()})}get(){return this._value}};$o=_([C(0,wo),C(1,tc),C(2,iv),C(3,sv)],$o);var Px=class extends $o{constructor(e,n,o,i){super(e,n,o,i);this._disposables=new $;this._disposables.add(n.onDidChangeFileSystemProviderRegistrations(()=>{let s=this.get();this._isFileSystemResource.set(!!(s&&n.hasProvider(s)))})),this._disposables.add(i.onModelAdded(s=>{yr(s.uri,this.get())&&this._setLangId()})),this._disposables.add(i.onModelLanguageChanged(s=>{yr(s.model.uri,this.get())&&this._setLangId()}))}dispose(){this._disposables.dispose()}};Px=_([C(0,wo),C(1,tc),C(2,iv),C(3,sv)],Px);var _x=R("dialogService");var Kbe=R("fileDialogService");var Dx="__";function kH(r){return typeof r=="object"&&r!==null&&"wwwAuthenticate"in r&&typeof r.wwwAuthenticate=="string"}var PH=R("IAuthenticationService");var Qbe=R("IAuthenticationExtensionsService");var _H=R("openerService");var Op=nv;var DH=R("lifecycleService");var RH=R("defaultAccountService");var Ae;(i=>(i.Setup={hidden:new w("chatSetupHidden",!1,!0),installed:new w("chatSetupInstalled",!1,!0),disabled:new w("chatSetupDisabled",!1,!0),untrusted:new w("chatSetupUntrusted",!1,!0),later:new w("chatSetupLater",!1,!0),registered:new w("chatSetupRegistered",!1,!0)},i.Entitlement={signedOut:new w("chatEntitlementSignedOut",!1,!0),canSignUp:new w("chatPlanCanSignUp",!1,!0),planFree:new w("chatPlanFree",!1,!0),planPro:new w("chatPlanPro",!1,!0),planProPlus:new w("chatPlanProPlus",!1,!0),planBusiness:new w("chatPlanBusiness",!1,!0),planEnterprise:new w("chatPlanEnterprise",!1,!0),organisations:new w("chatEntitlementOrganisations",void 0,!0),internal:new w("chatEntitlementInternal",!1,!0),sku:new w("chatEntitlementSku",void 0,!0)},i.chatQuotaExceeded=new w("chatQuotaExceeded",!1,!0),i.completionsQuotaExceeded=new w("completionsQuotaExceeded",!1,!0),i.chatAnonymous=new w("chatAnonymous",!1,!0)))(Ae||={});var Uz=R("chatEntitlementService");function Fz(r){return r===6||r===7||r===8||r===9}var Rx={upgradePlanUrl:Ho.defaultChatAgent?.upgradePlanUrl??"",providerUriSetting:Ho.defaultChatAgent?.providerUriSetting??"",entitlementSignupLimitedUrl:Ho.defaultChatAgent?.entitlementSignupLimitedUrl??"",chatQuotaExceededContext:Ho.defaultChatAgent?.chatQuotaExceededContext??"",completionsQuotaExceededContext:Ho.defaultChatAgent?.completionsQuotaExceededContext??""},AH="chat.allowAnonymousAccess";function RR(r,t,e){return!(r.getValue(AH)!==!0||t!==1||e.hidden||e.disabled)}function MH(r,t,e){e.publicLog2("chatEntitlements",{chatHidden:!!r.hidden,chatDisabled:!!r.disabled,chatEntitlement:r.entitlement,chatRegistered:!!r.registered,chatAnonymous:RR(t,r.entitlement,r)})}var dv=class extends O{constructor(e,n,o,i,s,a){super();this.contextKeyService=i;this.configurationService=s;this.telemetryService=a;this._onDidChangeQuotaExceeded=this._register(new T);this.onDidChangeQuotaExceeded=this._onDidChangeQuotaExceeded.event;this._onDidChangeQuotaRemaining=this._register(new T);this.onDidChangeQuotaRemaining=this._onDidChangeQuotaRemaining.event;this._quotas={};this.ExtensionQuotaContextKeys={chatQuotaExceeded:Rx.chatQuotaExceededContext,completionsQuotaExceeded:Rx.completionsQuotaExceededContext};this._onDidChangeAnonymous=this._register(new T);this.onDidChangeAnonymous=this._onDidChangeAnonymous.event;this.anonymousObs=rs(this.onDidChangeAnonymous,()=>this.anonymous);if(this.chatQuotaExceededContextKey=Ae.chatQuotaExceeded.bindTo(this.contextKeyService),this.completionsQuotaExceededContextKey=Ae.completionsQuotaExceeded.bindTo(this.contextKeyService),this.anonymousContextKey=Ae.chatAnonymous.bindTo(this.contextKeyService),this.anonymousContextKey.set(this.anonymous),this.onDidChangeEntitlement=fe.map(fe.filter(this.contextKeyService.onDidChangeContext,d=>d.affectsSome(new Set([Ae.Entitlement.planPro.key,Ae.Entitlement.planBusiness.key,Ae.Entitlement.planEnterprise.key,Ae.Entitlement.planProPlus.key,Ae.Entitlement.planFree.key,Ae.Entitlement.canSignUp.key,Ae.Entitlement.signedOut.key,Ae.Entitlement.organisations.key,Ae.Entitlement.internal.key,Ae.Entitlement.sku.key])),this._store),()=>{},this._store),this.entitlementObs=rs(this.onDidChangeEntitlement,()=>this.entitlement),this.onDidChangeSentiment=fe.map(fe.filter(this.contextKeyService.onDidChangeContext,d=>d.affectsSome(new Set([Ae.Setup.hidden.key,Ae.Setup.disabled.key,Ae.Setup.untrusted.key,Ae.Setup.installed.key,Ae.Setup.later.key,Ae.Setup.registered.key])),this._store),()=>{},this._store),this.sentimentObs=rs(this.onDidChangeSentiment,()=>this.sentiment),hr&&!o.remoteAuthority){Ae.Setup.hidden.bindTo(this.contextKeyService).set(!0);return}if(!n.defaultChatAgent)return;let l=this.context=new pt(()=>this._register(e.createInstance(as)));this.requests=new pt(()=>this._register(e.createInstance(cv,l.value,{clearQuotas:()=>this.clearQuotas(),acceptQuotas:d=>this.acceptQuotas(d)}))),this.registerListeners()}get entitlement(){return this.contextKeyService.getContextKeyValue(Ae.Entitlement.planPro.key)===!0?6:this.contextKeyService.getContextKeyValue(Ae.Entitlement.planBusiness.key)===!0?8:this.contextKeyService.getContextKeyValue(Ae.Entitlement.planEnterprise.key)===!0?9:this.contextKeyService.getContextKeyValue(Ae.Entitlement.planProPlus.key)===!0?7:this.contextKeyService.getContextKeyValue(Ae.Entitlement.planFree.key)===!0?5:this.contextKeyService.getContextKeyValue(Ae.Entitlement.canSignUp.key)===!0?3:this.contextKeyService.getContextKeyValue(Ae.Entitlement.signedOut.key)===!0?1:2}get isInternal(){return this.contextKeyService.getContextKeyValue(Ae.Entitlement.internal.key)===!0}get organisations(){return this.contextKeyService.getContextKeyValue(Ae.Entitlement.organisations.key)}get sku(){return this.contextKeyService.getContextKeyValue(Ae.Entitlement.sku.key)}get copilotTrackingId(){return this.context?.value.state.copilotTrackingId}get previewFeaturesDisabled(){return this.contextKeyService.getContextKeyValue("github.copilot.previewFeaturesDisabled")===!0}get quotas(){return this._quotas}registerListeners(){let e=new Set([this.ExtensionQuotaContextKeys.chatQuotaExceeded,this.ExtensionQuotaContextKeys.completionsQuotaExceeded]),n=this._register(new En);this._register(this.contextKeyService.onDidChangeContext(s=>{s.affectsSome(e)&&(n.value&&n.value.cancel(),n.value=new Ce,this.update(n.value.token))}));let o=this.anonymous,i=()=>{let s=this.anonymous;s!==o&&(o=s,this.anonymousContextKey.set(s),this.context?.hasValue&&MH(this.context.value.state,this.configurationService,this.telemetryService),this._onDidChangeAnonymous.fire())};this._register(this.configurationService.onDidChangeConfiguration(s=>{s.affectsConfiguration(AH)&&i()})),this._register(this.onDidChangeEntitlement(()=>i())),this._register(this.onDidChangeSentiment(()=>i()))}acceptQuotas(e){let n=this._quotas;this._quotas=e,this.updateContextKeys();let{changed:o}=this.compareQuotas(n.chat,e.chat),{changed:i}=this.compareQuotas(n.completions,e.completions),{changed:s}=this.compareQuotas(n.premiumChat,e.premiumChat);(o.exceeded||i.exceeded||s.exceeded)&&this._onDidChangeQuotaExceeded.fire(),(o.remaining||i.remaining||s.remaining)&&this._onDidChangeQuotaRemaining.fire()}compareQuotas(e,n){return{changed:{exceeded:e?.percentRemaining===0!=(n?.percentRemaining===0),remaining:e?.percentRemaining!==n?.percentRemaining}}}clearQuotas(){this.acceptQuotas({})}updateContextKeys(){this.chatQuotaExceededContextKey.set(this._quotas.chat?.percentRemaining===0),this.completionsQuotaExceededContextKey.set(this._quotas.completions?.percentRemaining===0)}get sentiment(){return{installed:this.contextKeyService.getContextKeyValue(Ae.Setup.installed.key)===!0,hidden:this.contextKeyService.getContextKeyValue(Ae.Setup.hidden.key)===!0,disabled:this.contextKeyService.getContextKeyValue(Ae.Setup.disabled.key)===!0,untrusted:this.contextKeyService.getContextKeyValue(Ae.Setup.untrusted.key)===!0,later:this.contextKeyService.getContextKeyValue(Ae.Setup.later.key)===!0,registered:this.contextKeyService.getContextKeyValue(Ae.Setup.registered.key)===!0}}get anonymous(){return RR(this.configurationService,this.entitlement,this.sentiment)}markAnonymousRateLimited(){this.anonymous&&(this.chatQuotaExceededContextKey.set(!0),this._onDidChangeQuotaExceeded.fire())}async update(e){await this.requests?.value.forceResolveEntitlement(e)}};dv=_([C(0,Fo),C(1,is),C(2,Op),C(3,wo),C(4,sn),C(5,ss)],dv);var cv=class extends O{constructor(e,n,o,i,s,a,l,d,c,u){super();this.context=e;this.chatQuotasAccessor=n;this.telemetryService=o;this.logService=i;this.requestService=s;this.dialogService=a;this.openerService=l;this.lifecycleService=d;this.defaultAccountService=c;this.authenticationService=u;this.pendingResolveCts=new Ce;this.state={entitlement:this.context.state.entitlement},this.registerListeners(),this.resolve()}registerListeners(){this._register(this.defaultAccountService.onDidChangeDefaultAccount(()=>this.resolve())),this._register(this.context.onDidChange(()=>{(!this.context.state.installed||this.context.state.disabled||this.context.state.entitlement===1)&&(this.state={entitlement:this.state.entitlement,quotas:void 0},this.chatQuotasAccessor.clearQuotas())}))}async resolve(){this.pendingResolveCts.dispose(!0);let e=this.pendingResolveCts=new Ce,n=await this.defaultAccountService.getDefaultAccount();if(e.token.isCancellationRequested)return;let o;n?this.state.entitlement===1&&(o={entitlement:2}):o={entitlement:1},o&&this.update(o),n&&await this.resolveEntitlement(n,e.token)}async resolveEntitlement(e,n){let o=await this.doResolveEntitlement(e,n);return typeof o?.entitlement=="number"&&!n.isCancellationRequested&&this.update(o),o}async doResolveEntitlement(e,n){if(n.isCancellationRequested)return;let o=e.entitlementsData;if(!o)return this.logService.trace("[chat entitlement]: no entitlements data available on default account"),{entitlement:o===null?1:2};let i;o.access_type_sku==="free_limited_copilot"?i=5:o.can_signup_for_limited?i=3:o.copilot_plan==="individual"?i=6:o.copilot_plan==="individual_pro"?i=7:o.copilot_plan==="business"?i=8:o.copilot_plan==="enterprise"?i=9:i=4;let s={entitlement:i,organisations:o.organization_login_list,quotas:this.toQuotas(o),sku:o.access_type_sku,copilotTrackingId:o.analytics_tracking_id};return this.logService.trace(`[chat entitlement]: resolved to ${s.entitlement}, quotas: ${JSON.stringify(s.quotas)}`),this.telemetryService.publicLog2("chatInstallEntitlement",{entitlement:s.entitlement,tid:o.analytics_tracking_id,sku:s.sku,quotaChat:s.quotas?.chat?.remaining,quotaPremiumChat:s.quotas?.premiumChat?.remaining,quotaCompletions:s.quotas?.completions?.remaining,quotaResetDate:s.quotas?.resetDate}),s}toQuotas(e){let n={resetDate:e.quota_reset_date_utc??e.quota_reset_date??e.limited_user_reset_date,resetDateHasTime:typeof e.quota_reset_date_utc=="string"};if(e.monthly_quotas?.chat&&typeof e.limited_user_quotas?.chat=="number"&&(n.chat={total:e.monthly_quotas.chat,remaining:e.limited_user_quotas.chat,percentRemaining:Math.min(100,Math.max(0,e.limited_user_quotas.chat/e.monthly_quotas.chat*100)),overageEnabled:!1,overageCount:0,unlimited:!1}),e.monthly_quotas?.completions&&typeof e.limited_user_quotas?.completions=="number"&&(n.completions={total:e.monthly_quotas.completions,remaining:e.limited_user_quotas.completions,percentRemaining:Math.min(100,Math.max(0,e.limited_user_quotas.completions/e.monthly_quotas.completions*100)),overageEnabled:!1,overageCount:0,unlimited:!1}),e.quota_snapshots)for(let o of["chat","completions","premium_interactions"]){let i=e.quota_snapshots[o];if(!i)continue;let s={total:i.entitlement,remaining:i.remaining,percentRemaining:Math.min(100,Math.max(0,i.percent_remaining)),overageEnabled:i.overage_permitted,overageCount:i.overage_count,unlimited:i.unlimited};switch(o){case"chat":n.chat=s;break;case"completions":n.completions=s;break;case"premium_interactions":n.premiumChat=s;break}}return n}async request(e,n,o,i,s,a){let l;for(let d of i){if(s.isCancellationRequested)return l;try{let c=await this.requestService.request({type:n,url:e,data:n==="POST"?JSON.stringify(o):void 0,disableCache:!0,headers:{Authorization:`Bearer ${d.accessToken}`},callSite:a},s),u=c.res.statusCode;if(u&&u!==200){l=c;continue}return c}catch(c){s.isCancellationRequested||this.logService.error(`[chat entitlement] request: error ${c}`)}}return l}update(e){this.state=e,this.context.update({entitlement:this.state.entitlement,organisations:this.state.organisations,sku:this.state.sku,copilotTrackingId:this.state.copilotTrackingId}),e.quotas&&this.chatQuotasAccessor.acceptQuotas(e.quotas)}async forceResolveEntitlement(e=he.None){let n=await this.defaultAccountService.refresh();if(n)return this.resolveEntitlement(n,e)}async signUpFree(){let e=await this.getSessions();if(e.length!==0)return this.doSignUpFree(e)}async doSignUpFree(e){let n={restricted_telemetry:this.telemetryService.telemetryLevel===0?"disabled":"enabled",public_code_suggestions:"enabled"},o=await this.request(Rx.entitlementSignupLimitedUrl,"POST",n,e,he.None,"chatEntitlementService.signUpFree");if(!o)return await this.onUnknownSignUpError(p(16971,null),"[chat entitlement] sign-up: no response")?this.doSignUpFree(e):{errorCode:1};if(o.res.statusCode&&o.res.statusCode!==200){if(o.res.statusCode===422)try{let l=await gR(o);if(l){let d=JSON.parse(l);if(typeof d.message=="string"&&d.message)return this.onUnprocessableSignUpError(`[chat entitlement] sign-up: unprocessable entity (${d.message})`,d.message),{errorCode:o.res.statusCode}}}catch{}return await this.onUnknownSignUpError(p(16972,null,o.res.statusCode),`[chat entitlement] sign-up: unexpected status code ${o.res.statusCode}`)?this.doSignUpFree(e):{errorCode:o.res.statusCode}}let i=null;try{i=await gR(o)}catch{}if(!i)return await this.onUnknownSignUpError(p(16970,null),"[chat entitlement] sign-up: response has no content")?this.doSignUpFree(e):{errorCode:2};let s;try{s=JSON.parse(i),this.logService.trace(`[chat entitlement] sign-up: response is ${i}`)}catch(a){return await this.onUnknownSignUpError(p(16969,null),`[chat entitlement] sign-up: error parsing response (${a})`)?this.doSignUpFree(e):{errorCode:3}}return this.update({entitlement:5}),!!s?.subscribed}async getSessions(){let e=await this.defaultAccountService.getDefaultAccount();if(e){let o=(await this.authenticationService.getSessions(e.authenticationProvider.id)).filter(i=>i.id===e.sessionId);if(o.length)return o}return[...await this.authenticationService.getSessions(this.defaultAccountService.getDefaultAccountAuthenticationProvider().id)]}async onUnknownSignUpError(e,n){if(this.logService.error(n),!this.lifecycleService.willShutdown){let{confirmed:o}=await this.dialogService.confirm({type:Xe.Error,message:p(16973,null),detail:e,primaryButton:p(16968,null)});return o}return!1}onUnprocessableSignUpError(e,n){this.logService.error(e),this.lifecycleService.willShutdown||this.dialogService.prompt({type:Xe.Error,message:p(16974,null),detail:n,buttons:[{label:p(16962,null),run:()=>{}},{label:p(16961,null),run:()=>this.openerService.open(y.parse(Rx.upgradePlanUrl))}]})}async signIn(e){let n=await this.defaultAccountService.signIn({additionalScopes:e?.additionalScopes,extraAuthorizeParameters:{get_started_with:"copilot-vscode"},provider:e?.useSocialProvider});if(!n)return{};let o=await this.doResolveEntitlement(n,he.None);return{defaultAccount:n,entitlements:o}}dispose(){this.pendingResolveCts.dispose(!0),super.dispose()}};cv=_([C(2,ss),C(3,oe),C(4,hx),C(5,_x),C(6,_H),C(7,DH),C(8,RH),C(9,PH)],cv);var as=class extends O{constructor(e,n,o,i,s){super();this.storageService=n;this.logService=o;this.configurationService=i;this.telemetryService=s;this.suspendedState=void 0;this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event;this.updateBarrier=void 0;this.canSignUpContextKey=Ae.Entitlement.canSignUp.bindTo(e),this.signedOutContextKey=Ae.Entitlement.signedOut.bindTo(e),this.freeContextKey=Ae.Entitlement.planFree.bindTo(e),this.proContextKey=Ae.Entitlement.planPro.bindTo(e),this.proPlusContextKey=Ae.Entitlement.planProPlus.bindTo(e),this.businessContextKey=Ae.Entitlement.planBusiness.bindTo(e),this.enterpriseContextKey=Ae.Entitlement.planEnterprise.bindTo(e),this.organisationsContextKey=Ae.Entitlement.organisations.bindTo(e),this.isInternalContextKey=Ae.Entitlement.internal.bindTo(e),this.skuContextKey=Ae.Entitlement.sku.bindTo(e),this.hiddenContext=Ae.Setup.hidden.bindTo(e),this.laterContext=Ae.Setup.later.bindTo(e),this.installedContext=Ae.Setup.installed.bindTo(e),this.disabledContext=Ae.Setup.disabled.bindTo(e),this.untrustedContext=Ae.Setup.untrusted.bindTo(e),this.registeredContext=Ae.Setup.registered.bindTo(e),this._state=this.storageService.getObject(as.CHAT_ENTITLEMENT_CONTEXT_STORAGE_KEY,0)??{entitlement:1,organisations:void 0,sku:void 0,copilotTrackingId:void 0},this.updateContextSync(),this.registerListeners()}static{this.CHAT_ENTITLEMENT_CONTEXT_STORAGE_KEY="chat.setupContext"}static{this.CHAT_DISABLED_CONFIGURATION_KEY="chat.disableAIFeatures"}get state(){return this.withConfiguration(this.suspendedState??this._state)}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(as.CHAT_DISABLED_CONFIGURATION_KEY)&&this.updateContext()}))}withConfiguration(e){return this.configurationService.getValue(as.CHAT_DISABLED_CONFIGURATION_KEY)===!0?{...e,hidden:!0}:e}async update(e){this.logService.trace(`[chat entitlement context] update(): ${JSON.stringify(e)}`);let n=JSON.stringify(this._state);if(typeof e.installed=="boolean"&&typeof e.disabled=="boolean"&&typeof e.untrusted=="boolean"&&(this._state.installed=e.installed,this._state.disabled=e.disabled,this._state.untrusted=e.untrusted,e.installed&&!e.disabled&&(e.hidden=!1)),typeof e.hidden=="boolean"&&(this._state.hidden=e.hidden),typeof e.later=="boolean"&&(this._state.later=e.later),typeof e.entitlement=="number"&&(this._state.entitlement=e.entitlement,this._state.organisations=e.organisations,this._state.sku=e.sku,this._state.copilotTrackingId=e.copilotTrackingId,this._state.entitlement===5||Fz(this._state.entitlement)?this._state.registered=!0:this._state.entitlement===3&&(this._state.registered=!1)),RR(this.configurationService,this._state.entitlement,this._state)&&(this._state.sku="no_auth_limited_copilot"),n!==JSON.stringify(this._state))return this.storageService.store(as.CHAT_ENTITLEMENT_CONTEXT_STORAGE_KEY,{...this._state,later:void 0},0,1),this.updateContext()}async updateContext(){await this.updateBarrier?.wait(),this.updateContextSync()}updateContextSync(){let e=this.withConfiguration(this._state);this.signedOutContextKey.set(e.entitlement===1),this.canSignUpContextKey.set(e.entitlement===3),this.freeContextKey.set(e.entitlement===5),this.proContextKey.set(e.entitlement===6),this.proPlusContextKey.set(e.entitlement===7),this.businessContextKey.set(e.entitlement===8),this.enterpriseContextKey.set(e.entitlement===9),this.organisationsContextKey.set(e.organisations),this.isInternalContextKey.set(!!e.organisations?.some(n=>n==="github"||n==="microsoft"||n==="ms-copilot"||n==="MicrosoftCopilot")),this.skuContextKey.set(e.sku),this.hiddenContext.set(!!e.hidden),this.laterContext.set(!!e.later),this.installedContext.set(!!e.installed),this.disabledContext.set(!!e.disabled),this.untrustedContext.set(!!e.untrusted),this.registeredContext.set(!!e.registered),this.logService.trace(`[chat entitlement context] updateContext(): ${JSON.stringify(e)}`),MH(e,this.configurationService,this.telemetryService),this._onDidChange.fire()}suspend(){this.suspendedState={...this._state},this.updateBarrier=new hn}resume(){this.suspendedState=void 0,this.updateBarrier?.open(),this.updateBarrier=void 0}};as=_([C(0,wo),C(1,bi),C(2,oe),C(3,sn),C(4,ss)],as);qe(Uz,dv,0);var zo;(te=>{te.responseVote=new w("chatSessionResponseVote","",{type:"string",description:p(7800,null)}),te.responseDetectedAgentCommand=new w("chatSessionResponseDetectedAgentOrCommand",!1,{type:"boolean",description:p(7780,null)}),te.responseSupportsIssueReporting=new w("chatResponseSupportsIssueReporting",!1,{type:"boolean",description:p(7772,null)}),te.responseIsFiltered=new w("chatSessionResponseFiltered",!1,{type:"boolean",description:p(7771,null)}),te.responseHasError=new w("chatSessionResponseError",!1,{type:"boolean",description:p(7770,null)}),te.requestInProgress=new w("chatSessionRequestInProgress",!1,{type:"boolean",description:p(7799,null)}),te.currentlyEditing=new w("chatSessionCurrentlyEditing",!1,{type:"boolean",description:p(7797,null)}),te.currentlyEditingInput=new w("chatSessionCurrentlyEditingInput",!1,{type:"boolean",description:p(7798,null)});let l;(ti=>(ti.Sent="s",ti.Queue="q",ti.Steer="st"))(l=te.EditingRequestType||={}),te.editingRequestType=new w("chatEditingSentRequest",void 0,{type:"string",description:p(7746,null)}),te.isResponse=new w("chatResponse",!1,{type:"boolean",description:p(7769,null)}),te.isRequest=new w("chatRequest",!1,{type:"boolean",description:p(7767,null)}),te.isPendingRequest=new w("chatRequestIsPending",!1,{type:"boolean",description:p(7768,null)}),te.itemId=new w("chatItemId","",{type:"string",description:p(7756,null)}),te.lastItemId=new w("chatLastItemId",[],{type:"string",description:p(7757,null)}),te.editApplied=new w("chatEditApplied",!1,{type:"boolean",description:p(7740,null)}),te.inputHasText=new w("chatInputHasText",!1,{type:"boolean",description:p(7796,null)}),te.inputHasFocus=new w("chatInputHasFocus",!1,{type:"boolean",description:p(7795,null)}),te.inChatInput=new w("inChatInput",!1,{type:"boolean",description:p(7793,null)}),te.inChatSession=new w("inChat",!1,{type:"boolean",description:p(7787,null)}),te.inChatQuestionCarousel=new w("inChatQuestionCarousel",!1,{type:"boolean",description:p(7789,null)}),te.inChatEditor=new w("inChatEditor",!1,{type:"boolean",description:p(7788,null)}),te.inChatTodoList=new w("inChatTodoList",!1,{type:"boolean",description:p(7792,null)}),te.inChatTip=new w("inChatTip",!1,{type:"boolean",description:p(7791,null)}),te.multipleChatTips=new w("multipleChatTips",!1,{type:"boolean",description:p(7803,null)}),te.inChatTerminalToolOutput=new w("inChatTerminalToolOutput",!1,{type:"boolean",description:p(7790,null)}),te.chatModeKind=new w("chatAgentKind","ask",{type:"string",description:p(7726,null)}),te.chatPermissionLevel=new w("chatPermissionLevel","default",{type:"string",description:p(7765,null)}),te.chatModeName=new w("chatModeName","",{type:"string",description:p(7760,null)}),te.chatModelId=new w("chatModelId","",{type:"string",description:p(7758,null)}),te.supported=Nt.or(yH.negate(),wH.notEqualsTo(""),Nt.has("config.chat.experimental.serverlessWebEnabled")),te.enabled=new w("chatIsEnabled",!1,{type:"boolean",description:p(7754,null)}),te.lockedToCodingAgent=new w("lockedToCodingAgent",!1,{type:"boolean",description:p(7802,null)}),te.lockedCodingAgentId=new w("lockedCodingAgentId","",{type:"string",description:p(7801,null)}),te.chatSessionHasCustomAgentTarget=new w("chatSessionHasCustomAgentTarget",!1,{type:"boolean",description:p(7773,null)}),te.chatSessionHasTargetedModels=new w("chatSessionHasTargetedModels",!1,{type:"boolean",description:p(7777,null)}),te.agentSupportsAttachments=new w("agentSupportsAttachments",!1,{type:"boolean",description:p(7737,null)}),te.withinEditSessionDiff=new w("withinEditSessionDiff",!1,{type:"boolean",description:p(7805,null)}),te.filePartOfEditSession=new w("filePartOfEditSession",!1,{type:"boolean",description:p(7784,null)}),te.extensionParticipantRegistered=new w("chatPanelExtensionParticipantRegistered",!1,{type:"boolean",description:p(7762,null)}),te.panelParticipantRegistered=new w("chatPanelParticipantRegistered",!1,{type:"boolean",description:p(7764,null)}),te.chatEditingCanUndo=new w("chatEditingCanUndo",!1,{type:"boolean",description:p(7742,null)}),te.chatEditingCanRedo=new w("chatEditingCanRedo",!1,{type:"boolean",description:p(7741,null)}),te.languageModelsAreUserSelectable=new w("chatModelsAreUserSelectable",!1,{type:"boolean",description:p(7759,null)}),te.chatSessionHasModels=new w("chatSessionHasModels",!1,{type:"boolean",description:p(7776,null)}),te.chatSessionOptionsValid=new w("chatSessionOptionsValid",!0,{type:"boolean",description:p(7779,null)}),te.extensionInvalid=new w("chatExtensionInvalid",!1,{type:"boolean",description:p(7747,null)}),te.inputCursorAtTop=new w("chatCursorAtTop",!1),te.inputHasAgent=new w("chatInputHasAgent",!1),te.location=new w("chatLocation",void 0),te.inQuickChat=new w("quickChatHasFocus",!1,{type:"boolean",description:p(7794,null)}),te.inAgentSessionsWelcome=new w("inAgentSessionsWelcome",!1,{type:"boolean",description:p(7786,null)}),te.chatSessionType=new w("chatSessionType","",{type:"string",description:p(7781,null)}),te.hasFileAttachments=new w("chatHasFileAttachments",!1,{type:"boolean",description:p(7751,null)}),te.chatSessionIsEmpty=new w("chatSessionIsEmpty",!0,{type:"boolean",description:p(7778,null)}),te.hasPendingRequests=new w("chatHasPendingRequests",!1,{type:"boolean",description:p(7752,null)}),te.chatSessionHasDebugData=new w("chatSessionHasDebugData",!1,{type:"boolean",description:p(7774,null)}),te.chatSessionHasDebugTools=new w("chatSessionHasDebugTools",!1,{type:"boolean",description:p(7775,null)}),te.remoteJobCreating=new w("chatRemoteJobCreating",!1,{type:"boolean",description:p(7766,null)}),te.hasRemoteCodingAgent=new w("hasRemoteCodingAgent",!1,p(7785,null)),te.hasCanDelegateProviders=new w("chatHasCanDelegateProviders",!1,{type:"boolean",description:p(7750,null)}),te.enableRemoteCodingAgentPromptFileOverlay=new w("enableRemoteCodingAgentPromptFileOverlay",!1,p(7783,null)),te.skipChatRequestInProgressMessage=new w("chatSkipRequestInProgressMessage",!1,{type:"boolean",description:p(7782,null)}),te.Setup=Ae.Setup,te.Entitlement=Ae.Entitlement,te.chatQuotaExceeded=Ae.chatQuotaExceeded,te.completionsQuotaExceeded=Ae.completionsQuotaExceeded,te.Editing={hasToolConfirmation:new w("chatHasToolConfirmation",!1,{type:"boolean",description:p(7745,null)}),hasElicitationRequest:new w("chatHasElicitationRequest",!1,{type:"boolean",description:p(7743,null)}),hasQuestionCarousel:new w("chatHasQuestionCarousel",!1,{type:"boolean",description:p(7744,null)})},te.Tools={toolsCount:new w("toolsCount",0,{type:"number",description:p(7804,null)})},te.foregroundSessionCount=new w("chatForegroundSessionCount",0,{type:"number",description:p(7748,null)}),te.Modes={hasCustomChatModes:new w("chatHasCustomAgents",!1,{type:"boolean",description:p(7749,null)}),agentModeDisabledByPolicy:new w("chatAgentModeDisabledByPolicy",!1,{type:"boolean",description:p(7738,null)})},te.panelLocation=new w("chatPanelLocation",void 0,{type:"number",description:p(7763,null)}),te.agentSessionsViewerFocused=new w("agentSessionsViewerFocused",!0,{type:"boolean",description:p(7732,null)}),te.agentSessionsViewerOrientation=new w("agentSessionsViewerOrientation",void 0,{type:"number",description:p(7733,null)}),te.agentSessionsViewerPosition=new w("agentSessionsViewerPosition",void 0,{type:"number",description:p(7734,null)}),te.agentSessionsViewerVisible=new w("agentSessionsViewerVisible",void 0,{type:"boolean",description:p(7735,null)}),te.agentSessionType=new w("chatSessionType","",{type:"string",description:p(7736,null)}),te.agentSessionSection=new w("agentSessionSection","",{type:"string",description:p(7731,null)}),te.isArchivedAgentSession=new w("agentSessionIsArchived",!1,{type:"boolean",description:p(7729,null)}),te.isReadAgentSession=new w("agentSessionIsRead",!1,{type:"boolean",description:p(7730,null)}),te.hasMultipleAgentSessionsSelected=new w("agentSessionHasMultipleSelected",!1,{type:"boolean",description:p(7728,null)}),te.hasAgentSessionChanges=new w("agentSessionHasChanges",!1,{type:"boolean",description:p(7727,null)}),te.isKatexMathElement=new w("chatIsKatexMathElement",!1,{type:"boolean",description:p(7755,null)}),te.hasUsedCreateSlashCommands=new w("chatHasUsedCreateSlashCommands",!1,{type:"boolean",description:p(7753,null)}),te.contextUsageHasBeenOpened=new w("chatContextUsageHasBeenOpened",!1,{type:"boolean",description:p(7739,null)}),te.newChatButtonExperimentIcon=new w("chatNewChatButtonExperimentIcon","",{type:"string",description:p(7761,null)})})(zo||={});var Wz;(e=>(e.inEditingMode=Nt.or(zo.chatModeKind.isEqualTo("edit"),zo.chatModeKind.isEqualTo("agent")),e.chatSetupTriggerContext=Nt.or(zo.Setup.installed.negate(),zo.Entitlement.canSignUp)))(Wz||={});var LH=R("ILanguageModelsConfigurationService");var UH;(n=>{function r(o){return(typeof o.capabilities?.agentMode>"u"||o.capabilities.agentMode)&&!!o.capabilities?.toolCalling}n.suitableForAgentMode=r;function t(o){return`${o.name} (${o.vendor})`}n.asQualifiedName=t;function e(o,i){return i.vendor==="copilot"&&o===i.name?!0:o===t(i)}n.matchesQualifiedName=e})(UH||={});var Ax=R("ILanguageModelsService"),OH={type:"object",required:["vendor","displayName"],properties:{vendor:{type:"string",description:p(7838,null)},displayName:{type:"string",description:p(7834,null)},configuration:{type:"object",description:p(7832,null),anyOf:[{$ref:"http://json-schema.org/draft-07/schema#"},{properties:{properties:{type:"object",additionalProperties:{$ref:"http://json-schema.org/draft-07/schema#",properties:{secret:{type:"boolean",description:p(7833,null)}}}},additionalProperties:{$ref:"http://json-schema.org/draft-07/schema#",properties:{secret:{type:"boolean",description:p(7833,null)}}}}}]},managementCommand:{type:"string",description:p(7836,null),deprecated:!0,deprecationMessage:p(7837,null)},when:{type:"string",description:p(7840,null)}}},Vz=Ex.registerExtensionPoint({extensionPoint:"languageModelChatProviders",jsonSchema:{description:p(7831,null),oneOf:[OH,{type:"array",items:OH}]},activationEventsGenerator:function*(r){for(let t of r)yield`onLanguageModelChatProvider:${t.vendor}`}}),MR="chatModelPickerPreferences",NH="chatModelRecentlyUsed",LR="chat.participantNameRegistry",OR="chat.modelsControl",bc=class{constructor(t,e,n,o,i,s,a,l,d){this._extensionService=t;this._logService=e;this._storageService=n;this._contextKeyService=o;this._languageModelsConfigurationService=i;this._quickInputService=s;this._secretStorageService=a;this._productService=l;this._requestService=d;this._store=new $;this._providers=new Map;this._vendors=new Map;this._onDidChangeLanguageModelVendors=this._store.add(new T);this.onDidChangeLanguageModelVendors=this._onDidChangeLanguageModelVendors.event;this._modelsGroups=new Map;this._modelCache=new Map;this._resolveLMSequencer=new ol;this._modelPickerUserPreferences={};this._onLanguageModelChange=this._store.add(new T);this.onDidChangeLanguageModels=this._onLanguageModelChange.event;this._recentlyUsedModelIds=[];this._onDidChangeModelsControlManifest=this._store.add(new T);this.onDidChangeModelsControlManifest=this._onDidChangeModelsControlManifest.event;this._modelsControlManifest={free:{},paid:{}};this._chatControlDisposed=!1;this._restrictedChatParticipants=mc(this,Object.create(null));this.restrictedChatParticipants=this._restrictedChatParticipants;this._hasUserSelectableModels=zo.languageModelsAreUserSelectable.bindTo(o),this._modelPickerUserPreferences=this._readModelPickerPreferences(),this._recentlyUsedModelIds=this._readRecentlyUsedModels(),this._initChatControlData(),this._store.add(this._storageService.onDidChangeValue(0,MR,this._store)(()=>this._onDidChangeModelPickerPreferences())),this._store.add(this.onDidChangeLanguageModels(()=>{this._hasUserSelectableModels.set(this._modelCache.size>0&&Array.from(this._modelCache.values()).some(c=>c.isUserSelectable)),this._refreshModelsControlManifest()})),this._store.add(this._languageModelsConfigurationService.onDidChangeLanguageModelGroups(c=>this._onDidChangeLanguageModelGroups(c))),this._store.add(Vz.setHandler((c,{added:u,removed:m})=>{let g=[],h=[];for(let f of u)for(let I of Mt.wrap(f.value)){if(this._vendors.has(I.vendor)){f.collector.error(p(7839,null,I.vendor));continue}if(Gi(I.vendor)){f.collector.error(p(7835,null));continue}if(I.vendor.trim()!==I.vendor){f.collector.error(p(7841,null));continue}g.push(I)}for(let f of m)for(let I of Mt.wrap(f.value))h.push(I);this.deltaLanguageModelChatProviderDescriptors(g,h)}))}static{this.SECRET_KEY_PREFIX="chat.lm.secret."}static{this.SECRET_INPUT="${input:{0}}"}deltaLanguageModelChatProviderDescriptors(t,e){let n=[],o=[];for(let i of t){if(this._vendors.has(i.vendor)){this._logService.error(`The vendor '${i.vendor}' is already registered and cannot be registered twice`);continue}if(Gi(i.vendor)){this._logService.error("The vendor field cannot be empty.");continue}if(i.vendor.trim()!==i.vendor){this._logService.error("The vendor field cannot start or end with whitespace.");continue}let s={vendor:i.vendor,displayName:i.displayName,configuration:i.configuration,managementCommand:i.managementCommand,when:i.when,isDefault:i.vendor==="copilot"};this._vendors.set(i.vendor,s),n.push(i.vendor),this._hasStoredModelForVendor(i.vendor)&&this._extensionService.activateByEvent(`onLanguageModelChatProvider:${i.vendor}`)}for(let i of e)this._vendors.delete(i.vendor),this._providers.delete(i.vendor),this._clearModelCache(i.vendor),o.push(i.vendor);for(let[i,s]of this._providers)this._vendors.has(i)||this._providers.delete(i);if((n.length>0||o.length>0)&&(this._onDidChangeLanguageModelVendors.fire([...n,...o]),o.length>0))for(let i of o)this._onLanguageModelChange.fire(i)}async _onDidChangeLanguageModelGroups(t){let e=new Set(t.map(n=>n.vendor));await Promise.all(Array.from(e).map(n=>this._resolveAllLanguageModels(n,!0)))}_readModelPickerPreferences(){return this._storageService.getObject(MR,0,{})}_onDidChangeModelPickerPreferences(){let t=this._readModelPickerPreferences(),e=this._modelPickerUserPreferences,n=new Set,o=!1;for(let i in t)if(e[i]!==t[i]){o=!0;let s=this._modelCache.get(i);s&&n.add(s.vendor)}for(let i in e)if(!t.hasOwnProperty(i)){o=!0;let s=this._modelCache.get(i);s&&n.add(s.vendor)}if(o){this._logService.trace("[LM] Updated model picker preferences from storage"),this._modelPickerUserPreferences=t;for(let i of n)this._onLanguageModelChange.fire(i)}}_hasStoredModelForVendor(t){return Object.keys(this._modelPickerUserPreferences).some(e=>e.startsWith(t))}_saveModelPickerPreferences(){this._storageService.store(MR,this._modelPickerUserPreferences,0,0)}updateModelPickerPreference(t,e){let n=this._modelCache.get(t);if(!n){this._logService.warn(`[LM] Cannot update model picker preference for unknown model ${t}`);return}this._modelPickerUserPreferences[t]=e,e===n.isUserSelectable?(delete this._modelPickerUserPreferences[t],this._saveModelPickerPreferences()):n.isUserSelectable!==e&&this._saveModelPickerPreferences(),this._onLanguageModelChange.fire(n.vendor),this._logService.trace(`[LM] Updated model picker preference for ${t} to ${e}`)}getVendors(){return Array.from(this._vendors.values()).filter(t=>{if(!t.when)return!0;let e=Nt.deserialize(t.when);return e?this._contextKeyService.contextMatchesRules(e):!1})}getLanguageModelIds(){return Array.from(this._modelCache.keys())}lookupLanguageModel(t){let e=this._modelCache.get(t);return e&&this._modelPickerUserPreferences[t]!==void 0?{...e,isUserSelectable:this._modelPickerUserPreferences[t]}:e}lookupLanguageModelByQualifiedName(t){for(let[e,n]of this._modelCache.entries())if(UH.matchesQualifiedName(t,n))return{metadata:n,identifier:e}}async _resolveAllLanguageModels(t,e){let n=this._vendors.get(t);if(!n)return;await this._extensionService.activateByEvent(`onLanguageModelChatProvider:${t}`);let o=this._providers.get(t);if(!o){this._logService.warn(`[LM] No provider registered for vendor ${t}`);return}return this._resolveLMSequencer.queue(t,async()=>{let i=[],s=[];try{let c=await o.provideLanguageModelChatInfo({silent:e},he.None);if(c.length){i.push(...c);let u=[];for(let m of c)n.isDefault?m.metadata.isUserSelectable||this._modelPickerUserPreferences[m.identifier]===!0?u.push(m.identifier):this._logService.trace(`[LM] Skipping model ${m.identifier} from model picker as it is not user selectable.`):u.push(m.identifier);s.push({modelIdentifiers:u})}}catch(c){s.push({modelIdentifiers:[],status:{message:Bi(c),severity:Xe.Error}})}let a=this._languageModelsConfigurationService.getLanguageModelsProviderGroups();for(let c of a){if(c.vendor!==t)continue;let u=await this._resolveConfiguration(c,n.configuration);try{let m=await o.provideLanguageModelChatInfo({group:c.name,silent:e,configuration:u},he.None);m.length&&(i.push(...m),s.push({group:c,modelIdentifiers:m.map(g=>g.identifier)}))}catch(m){s.push({group:c,modelIdentifiers:[],status:{message:Bi(m),severity:Xe.Error}})}}this._modelsGroups.set(t,s);let l=this._clearModelCache(t),d=!1;for(let c of i){if(this._modelCache.has(c.identifier)){this._logService.warn(`[LM] Model ${c.identifier} is already registered. Skipping.`);continue}this._modelCache.set(c.identifier,c.metadata),d=d||!tn(l.get(c.identifier),c.metadata),l.delete(c.identifier)}this._logService.trace(`[LM] Resolved language models for vendor ${t}`,i),d=d||l.size>0,d?this._onLanguageModelChange.fire(t):this._logService.trace(`[LM] No changes in language models for vendor ${t}`)})}getLanguageModelGroups(t){return this._modelsGroups.get(t)??[]}async selectLanguageModels(t){if(t.vendor)await this._resolveAllLanguageModels(t.vendor,!0);else{let n=Array.from(this._vendors.keys());await Promise.all(n.map(o=>this._resolveAllLanguageModels(o,!0)))}let e=[];for(let[n,o]of this._modelCache)(t.vendor===void 0||o.vendor===t.vendor)&&(t.family===void 0||o.family===t.family)&&(t.version===void 0||o.version===t.version)&&(t.id===void 0||o.id===t.id)&&e.push(n);return this._logService.trace("[LM] selected language models",t,e),e}registerLanguageModelProvider(t,e){if(this._logService.trace("[LM] registering language model provider",t,e),!this._vendors.has(t))throw new Error(`Chat model provider uses UNKNOWN vendor ${t}.`);if(this._providers.has(t))throw new Error(`Chat model provider for vendor ${t} is already registered.`);this._providers.set(t,e),this._hasStoredModelForVendor(t)&&this._resolveAllLanguageModels(t,!0);let n=e.onDidChange(()=>{this._resolveAllLanguageModels(t,!0)});return G(()=>{this._logService.trace("[LM] UNregistered language model provider",t),this._clearModelCache(t),this._providers.delete(t),n.dispose()})}async sendChatRequest(t,e,n,o,i){let s=this._providers.get(this._modelCache.get(t)?.vendor||"");if(!s)throw new Error(`Chat provider for model ${t} is not registered.`);return s.sendChatRequest(t,n,e,o,i)}computeTokenLength(t,e,n){let o=this._modelCache.get(t);if(!o)throw new Error(`Chat model ${t} could not be found.`);let i=this._providers.get(o.vendor);if(!i)throw new Error(`Chat provider for model ${t} is not registered.`);return i.provideTokenCount(t,e,n)}async configureLanguageModelsProviderGroup(t,e){let n=this.getVendors().find(({vendor:l})=>l===t);if(!n)throw new Error(`Vendor ${t} not found.`);if(n.managementCommand){await this._resolveAllLanguageModels(n.vendor,!1);return}let o=this._languageModelsConfigurationService.getLanguageModelsProviderGroups(),i=o.find(l=>l.vendor===t&&l.name===e),s=await this.promptForName(o,n,i);if(!s)return;let a=i?await this._resolveConfiguration(i,n.configuration):void 0;try{let l=n.configuration?await this.promptForConfiguration(s,n.configuration,a):void 0;if(n.configuration&&!l)return;let d=await this._resolveLanguageModelProviderGroup(s,t,l,n.configuration),c=i?await this._languageModelsConfigurationService.updateLanguageModelsProviderGroup(i,d):await this._languageModelsConfigurationService.addLanguageModelsProviderGroup(d);if(n.configuration&&this.requireConfiguring(n.configuration)){let u=this.getSnippetForFirstUnconfiguredProperty(l??{},n.configuration);await this._languageModelsConfigurationService.configureLanguageModels({group:c,snippet:u})}}catch(l){if(zt(l))return;throw l}}async addLanguageModelsProviderGroup(t,e,n){let o=this.getVendors().find(({vendor:s})=>s===e);if(!o)throw new Error(`Vendor ${e} not found.`);let i=await this._resolveLanguageModelProviderGroup(t,e,n,o.configuration);await this._languageModelsConfigurationService.addLanguageModelsProviderGroup(i)}async removeLanguageModelsProviderGroup(t,e){let n=this.getVendors().find(({vendor:s})=>s===t);if(!n)throw new Error(`Vendor ${t} not found.`);let i=this._languageModelsConfigurationService.getLanguageModelsProviderGroups().find(s=>s.vendor===t&&s.name===e);if(!i)throw new Error(`Language model provider group ${e} for vendor ${t} not found.`);await this._deleteSecretsInConfiguration(i,n.configuration),await this._languageModelsConfigurationService.removeLanguageModelsProviderGroup(i)}requireConfiguring(t){if(t.additionalProperties)return!0;if(!t.properties)return!1;for(let e of Object.keys(t.properties))if(!this.canPromptForProperty(t.properties[e]))return!0;return!1}getSnippetForFirstUnconfiguredProperty(t,e){if(e.properties){for(let n of Object.keys(e.properties))if(t[n]===void 0){let o=e.properties[n];if(o&&typeof o!="boolean"&&o.defaultSnippets?.[0]){let i=o.defaultSnippets[0],s=i.bodyText??JSON.stringify(i.body,null,"	");return s=s.replace(/"(\^[^"]*)"/g,(a,l)=>l.substring(1)),`"${n}": ${s}`}}}}async promptForName(t,e,n){let o=n?.name;if(!o){o=e.displayName;let a=1;for(;t.some(l=>l.vendor===e.vendor&&l.name===o);)a++,o=`${e.displayName} ${a}`}let i,s=new $;try{await new Promise(a=>{let l=s.add(this._quickInputService.createInputBox());l.title=p(7823,null),l.placeholder=p(7826,null),l.value=o,l.ignoreFocusOut=!0,s.add(l.onDidChangeValue(d=>{if(!d){l.validationMessage=p(7824,null),l.severity=Xe.Error;return}if(!n&&t.some(c=>c.name===d)){l.validationMessage=p(7827,null),l.severity=Xe.Error;return}l.validationMessage=void 0,l.severity=Xe.Ignore})),s.add(l.onDidAccept(async()=>{i=l.value,l.hide()})),s.add(l.onDidHide(()=>a())),l.show()})}finally{s.dispose()}return i}async promptForConfiguration(t,e,n){if(!e.properties)return;let o=n?{...n}:{};for(let i of Object.keys(e.properties)){let s=e.properties[i],a=!!e.required?.includes(i),l=await this.promptForValue(t,i,s,a,n);l!==void 0&&(o[i]=l)}return o}async promptForValue(t,e,n,o,i){if(!n||!this.canPromptForProperty(n))return;if(n.type==="array"&&n.items&&!Array.isArray(n.items)&&n.items.enum){let a=await this.promptForArray(t,e,n);return a===void 0?void 0:a}let s=await this.promptForInput(t,e,n,o,i);if(s!==void 0)return s}canPromptForProperty(t){return!t||typeof t=="boolean"?!1:!!(t.type==="array"&&t.items&&!Array.isArray(t.items)&&t.items.enum||t.type==="string"||t.type==="number"||t.type==="integer"||t.type==="boolean")}async promptForArray(t,e,n){if(!n.items||Array.isArray(n.items)||!n.items.enum)return;let o=n.items.enum,i=new $;try{return await new Promise(s=>{let a=i.add(this._quickInputService.createQuickPick());a.title=`${t}: ${n.title??e}`,a.items=o.map(l=>({label:l})),a.placeholder=n.description??p(7829,null,e),a.canSelectMany=!0,a.ignoreFocusOut=!0,i.add(a.onDidAccept(()=>{s(a.selectedItems.map(l=>l.label)),a.hide()})),i.add(a.onDidHide(()=>{s(void 0)})),a.show()})}finally{i.dispose()}}async promptForInput(t,e,n,o,i){let s=new $;try{let a=await new Promise((l,d)=>{let c=s.add(this._quickInputService.createInputBox());c.title=`${t}: ${n.title??e}`,c.placeholder=p(7825,null,e),c.password=!!n.secret,c.ignoreFocusOut=!0,i?.[e]?c.value=String(i?.[e]):n.default&&(c.value=String(n.default)),n.description&&(c.prompt=n.description),s.add(c.onDidChangeValue(u=>{if(!u&&o){c.validationMessage=p(7830,null),c.severity=Xe.Error;return}if((n.type==="number"||n.type==="integer")&&isNaN(Number(u))){c.validationMessage=p(7828,null),c.severity=Xe.Error;return}if(n.type==="boolean"&&u!=="true"&&u!=="false"){c.validationMessage=p(7822,null),c.severity=Xe.Error;return}c.validationMessage=void 0,c.severity=Xe.Ignore})),s.add(c.onDidAccept(()=>{if(!c.value&&o){c.validationMessage=p(7830,null),c.severity=Xe.Error;return}l(c.value),c.hide()})),s.add(c.onDidHide(u=>{u.reason===2?d(new Be):l(void 0)})),c.show()});return a?n.type==="number"||n.type==="integer"?Number(a):n.type==="boolean"?a==="true":a:void 0}finally{s.dispose()}}encodeSecretKey(t){return MN(bc.SECRET_INPUT,t)}decodeSecretKey(t){if(Pe(t))return t.substring(t.indexOf(":")+1,t.length-1)}_clearModelCache(t){let e=new Map;for(let[n,o]of this._modelCache.entries())o.vendor===t&&(e.set(n,o),this._modelCache.delete(n));return e}async _resolveConfiguration(t,e){if(!e)return{};let n={};for(let o in t){if(o==="vendor"||o==="name"||o==="range")continue;let i=t[o];if(e.properties?.[o]?.secret){let s=this.decodeSecretKey(i);i=s?await this._secretStorageService.get(s):void 0}n[o]=i}return n}async _resolveLanguageModelProviderGroup(t,e,n,o){if(!o)return{name:t,vendor:e};let i={};for(let s in n){let a=n[s];if(o.properties?.[s]?.secret&&Pe(a)){let l=`${bc.SECRET_KEY_PREFIX}${oo(Le()).toString(16)}`;await this._secretStorageService.set(l,a),a=this.encodeSecretKey(l)}i[s]=a}return{name:t,vendor:e,...i}}async _deleteSecretsInConfiguration(t,e){if(!e)return;let{vendor:n,name:o,range:i,...s}=t;for(let a in s){let l=t[a];if(e.properties?.[a]?.secret){let d=this.decodeSecretKey(l);d&&await this._secretStorageService.delete(d)}}}async migrateLanguageModelsProviderGroup(t){let{vendor:e,name:n,...o}=t;if(!this._vendors.get(e))throw new Error(`Vendor ${e} not found.`);await this._extensionService.activateByEvent(`onLanguageModelChatProvider:${e}`);let i=this._providers.get(e);if(!i)throw new Error(`Chat model provider for vendor ${e} is not registered.`);let s=await i.provideLanguageModelChatInfo({group:n,silent:!1,configuration:o},he.None);for(let a of s){let l=`${e}/${a.metadata.id}`;this._modelPickerUserPreferences[l]===!0&&(this._modelPickerUserPreferences[a.identifier]=!0),delete this._modelPickerUserPreferences[l]}this._saveModelPickerPreferences(),await this.addLanguageModelsProviderGroup(n,e,o)}_readRecentlyUsedModels(){return this._storageService.getObject(NH,0,[])}_saveRecentlyUsedModels(){this._storageService.store(NH,this._recentlyUsedModelIds,0,0)}getRecentlyUsedModelIds(){return this._recentlyUsedModelIds.filter(t=>this._modelCache.has(t)&&t!=="copilot/auto").slice(0,4)}addToRecentlyUsedList(t){if(t==="copilot/auto")return;let e=this._recentlyUsedModelIds.indexOf(t);e!==-1&&this._recentlyUsedModelIds.splice(e,1),this._recentlyUsedModelIds.unshift(t),this._recentlyUsedModelIds.length>20&&(this._recentlyUsedModelIds.length=20),this._saveRecentlyUsedModels()}clearRecentlyUsedList(){this._recentlyUsedModelIds=[],this._saveRecentlyUsedModels()}getModelsControlManifest(){return this._modelsControlManifest}_setModelsControlManifest(t){this._modelsControlRawResponse=t,this._refreshModelsControlManifest()}_refreshModelsControlManifest(){let t=this._modelsControlRawResponse,e={},n={};if(t?.free){let o=Array.isArray(t.free)?t.free:Object.values(t.free);for(let i of o)!i||!ot(i)||(e[i.id]={label:i.label,featured:i.featured,exists:this._modelExistsInCache(i.id)})}if(t?.paid){let o=Array.isArray(t.paid)?t.paid:Object.values(t.paid);for(let i of o)!i||!ot(i)||(n[i.id]={label:i.label,featured:i.featured,minVSCodeVersion:i.minVSCodeVersion,exists:this._modelExistsInCache(i.id)})}this._modelsControlManifest={free:e,paid:n},this._onDidChangeModelsControlManifest.fire(this._modelsControlManifest)}_modelExistsInCache(t){for(let e of this._modelCache.values())if(e.id===t)return!0;return!1}_initChatControlData(){if(this._chatControlUrl=this._productService.chatParticipantRegistry,!this._chatControlUrl)return;let t=this._storageService.get(LR,-1);try{this._restrictedChatParticipants.set(JSON.parse(t??"{}"),void 0)}catch{this._storageService.remove(LR,-1)}let e=this._storageService.get(OR,-1);try{let n=JSON.parse(e??"{}");ot(n)&&this._setModelsControlManifest(n)}catch{this._storageService.remove(OR,-1)}this._refreshChatControlData()}_refreshChatControlData(){this._chatControlDisposed||this._fetchChatControlData().catch(t=>this._logService.warn("Failed to fetch chat control data",t)).then(()=>Lt(300*1e3)).then(()=>this._refreshChatControlData())}async _fetchChatControlData(){this._logService.trace("[LM] Fetching chat control data from",this._chatControlUrl);let t;try{t=await this._requestService.request({type:"GET",url:this._chatControlUrl,callSite:"languageModels.fetchChatControlData"},he.None)}catch(o){this._logService.warn("[LM] Failed to request chat control data",Bi(o));return}if(t.res.statusCode!==200){this._logService.warn(`[LM] Chat control data request failed with status ${t.res.statusCode}`);return}let e;try{e=await oH(t)}catch(o){this._logService.warn("[LM] Failed to parse chat control response",Bi(o));return}if(this._logService.trace("[LM] Received chat control response",e?Object.keys(e):"null"),!e||e.version!==1){this._logService.warn("[LM] Unexpected chat control response version",e?.version);return}let n=e.restrictedChatParticipants;this._restrictedChatParticipants.set(n,void 0),this._storageService.store(LR,JSON.stringify(n),-1,1),e.models&&(this._logService.trace("[LM] Updating models control manifest",{freeCount:Object.keys(e.models.free??{}).length,paidCount:Object.keys(e.models.paid??{}).length}),this._setModelsControlManifest(e.models),this._storageService.store(OR,JSON.stringify(e.models),-1,1))}dispose(){this._chatControlDisposed=!0,this._store.dispose(),this._providers.clear()}};bc=_([C(0,Tx),C(1,oe),C(2,bi),C(3,wo),C(4,LH),C(5,rH),C(6,cH),C(7,is),C(8,hx)],bc);var RIe=new w("debugType",void 0,{type:"string",description:p(9467,null)}),AIe=new w("debugConfigurationType",void 0,{type:"string",description:p(9458,null)}),MIe=new w("debugState","inactive",{type:"string",description:p(9466,null)}),$z="debugUx",LIe=new w($z,"default",{type:"string",description:p(9468,null)}),OIe=new w("hasDebugged",!1,{type:"boolean",description:p(9476,null)}),NIe=new w("inDebugMode",!1,{type:"boolean",description:p(9478,null)}),UIe=new w("inDebugRepl",!1,{type:"boolean",description:p(9479,null)}),FIe=new w("breakpointWidgetVisible",!1,{type:"boolean",description:p(9448,null)}),HIe=new w("inBreakpointWidget",!1,{type:"boolean",description:p(9477,null)}),WIe=new w("breakpointsFocused",!0,{type:"boolean",description:p(9446,null)}),VIe=new w("watchExpressionsFocused",!0,{type:"boolean",description:p(9504,null)}),BIe=new w("watchExpressionsExist",!1,{type:"boolean",description:p(9503,null)}),$Ie=new w("variablesFocused",!0,{type:"boolean",description:p(9500,null)}),zIe=new w("expressionSelected",!1,{type:"boolean",description:p(9472,null)}),qIe=new w("breakpointInputFocused",!1,{type:"boolean",description:p(9442,null)}),KIe=new w("callStackItemType",void 0,{type:"string",description:p(9454,null)}),jIe=new w("callStackSessionIsAttach",!1,{type:"boolean",description:p(9456,null)}),GIe=new w("callStackItemStopped",!1,{type:"boolean",description:p(9453,null)}),QIe=new w("callStackSessionHasOneThread",!1,{type:"boolean",description:p(9455,null)}),JIe=new w("callStackFocused",!0,{type:"boolean",description:p(9452,null)}),YIe=new w("watchItemType",void 0,{type:"string",description:p(9505,null)}),XIe=new w("canViewMemory",void 0,{type:"boolean",description:p(9457,null)}),ZIe=new w("breakpointItemType",void 0,{type:"string",description:p(9444,null)}),exe=new w("breakpointItemBytes",void 0,{type:"boolean",description:p(9443,null)}),txe=new w("breakpointHasModes",!1,{type:"boolean",description:p(9441,null)}),nxe=new w("breakpointSupportsCondition",!1,{type:"boolean",description:p(9447,null)}),oxe=new w("loadedScriptsSupported",!1,{type:"boolean",description:p(9484,null)}),rxe=new w("loadedScriptsItemType",void 0,{type:"string",description:p(9483,null)}),ixe=new w("focusedSessionIsAttach",!1,{type:"boolean",description:p(9473,null)}),sxe=new w("focusedSessionIsNoDebug",!1,{type:"boolean",description:p(9474,null)}),axe=new w("stepBackSupported",!1,{type:"boolean",description:p(9489,null)}),lxe=new w("restartFrameSupported",!1,{type:"boolean",description:p(9487,null)}),dxe=new w("stackFrameSupportsRestart",!1,{type:"boolean",description:p(9488,null)}),cxe=new w("jumpToCursorSupported",!1,{type:"boolean",description:p(9481,null)}),uxe=new w("stepIntoTargetsSupported",!1,{type:"boolean",description:p(9490,null)}),pxe=new w("breakpointsExist",!1,{type:"boolean",description:p(9445,null)}),mxe=new w("debuggersAvailable",!1,{type:"boolean",description:p(9461,null)}),gxe=new w("debugExtensionAvailable",!0,{type:"boolean",description:p(9459,null)}),fxe=new w("debugProtocolVariableMenuContext",void 0,{type:"string",description:p(9462,null)}),hxe=new w("debugSetVariableSupported",!1,{type:"boolean",description:p(9465,null)}),vxe=new w("debugSetDataBreakpointAddressSupported",!1,{type:"boolean",description:p(9463,null)}),bxe=new w("debugSetExpressionSupported",!1,{type:"boolean",description:p(9464,null)}),yxe=new w("breakWhenValueChangesSupported",!1,{type:"boolean",description:p(9449,null)}),Ixe=new w("breakWhenValueIsAccessedSupported",!1,{type:"boolean",description:p(9450,null)}),xxe=new w("breakWhenValueIsReadSupported",!1,{type:"boolean",description:p(9451,null)}),Sxe=new w("terminateDebuggeeSupported",!1,{type:"boolean",description:p(9492,null)}),Cxe=new w("suspendDebuggeeSupported",!1,{type:"boolean",description:p(9491,null)}),Txe=new w("terminateThreadsSupported",!1,{type:"boolean",description:p(9493,null)}),Exe=new w("variableEvaluateNamePresent",!1,{type:"boolean",description:p(9494,null)}),wxe=new w("variableIsReadonly",!1,{type:"boolean",description:p(9497,null)}),kxe=new w("variableValue",!1,{type:"string",description:p(9502,null)}),Pxe=new w("variableType",!1,{type:"string",description:p(9501,null)}),_xe=new w("variableInterfaces",!1,{type:"array",description:p(9496,null)}),Dxe=new w("variableName",!1,{type:"string",description:p(9499,null)}),Rxe=new w("variableLanguage",!1,{type:"string",description:p(9498,null)}),Axe=new w("variableExtensionId",!1,{type:"string",description:p(9495,null)}),Mxe=new w("exceptionWidgetVisible",!1,{type:"boolean",description:p(9471,null)}),Lxe=new w("multiSessionRepl",!1,{type:"boolean",description:p(9486,null)}),Oxe=new w("multiSessionDebug",!1,{type:"boolean",description:p(9485,null)}),Nxe=new w("disassembleRequestSupported",!1,{type:"boolean",description:p(9469,null)}),Uxe=new w("disassemblyViewFocus",!1,{type:"boolean",description:p(9470,null)}),Fxe=new w("languageSupportsDisassembleRequest",!1,{type:"boolean",description:p(9482,null)}),Hxe=new w("focusedStackFrameHasInstructionReference",!1,{type:"boolean",description:p(9475,null)});var Wxe={enum:["neverOpen","openOnSessionStart","openOnFirstSessionStart"],default:"openOnFirstSessionStart",description:p(9480,null)};var NR=(e=>(e[e.Initial=1]="Initial",e[e.Dynamic=2]="Dynamic",e))(NR||{});var Vxe=R("debugService");var zz;(e=>(e.deserialize=n=>n,e.serialize=n=>n))(zz||={});var qz;(e=>(e.deserialize=n=>({id:n.id,name:n.name,iconPath:n.iconPath&&{light:y.revive(n.iconPath.light),dark:y.revive(n.iconPath.dark)},iconClass:n.iconClass,visualization:n.visualization}),e.serialize=n=>n))(qz||={});var zxe=R("IMcpGalleryManifestService");var uv;(l=>(l.LATEST_PROTOCOL_VERSION="2025-11-25",l.JSONRPC_VERSION="2.0",l.PARSE_ERROR=-32700,l.INVALID_REQUEST=-32600,l.METHOD_NOT_FOUND=-32601,l.INVALID_PARAMS=-32602,l.INTERNAL_ERROR=-32603,l.URL_ELICITATION_REQUIRED=-32042))(uv||={});function FH(r,t){return _e.toKey(r)+"/"+t}var Kz;(t=>{function r(e,n){return e.id===n.id&&e.remoteAuthority===n.remoteAuthority&&e.label===n.label&&e.trustBehavior===n.trustBehavior&&tn(e.sandbox,n.sandbox)}t.equals=r})(Kz||={});var jz;(n=>{function r(o){return o}n.toSerialized=r;function t(o){return{id:o.id,label:o.label,cacheNonce:o.cacheNonce,staticMetadata:o.staticMetadata,launch:yc.fromSerialized(o.launch),sandboxEnabled:o.sandboxEnabled,variableReplacement:o.variableReplacement?HH.fromSerialized(o.variableReplacement):void 0}}n.fromSerialized=t;function e(o,i){return o.id===i.id&&o.label===i.label&&o.cacheNonce===i.cacheNonce&&Xt(o.roots,i.roots,(s,a)=>s.toString()===a.toString())&&tn(o.launch,i.launch)&&tn(o.presentation,i.presentation)&&tn(o.variableReplacement,i.variableReplacement)&&tn(o.devMode,i.devMode)&&o.sandboxEnabled===i.sandboxEnabled}n.equals=e})(jz||={});var HH;(e=>{function r(n){return n}e.toSerialized=r;function t(n){return{section:n.section,folder:n.folder?{...n.folder,uri:y.revive(n.folder.uri)}:void 0,target:n.target}}e.fromSerialized=t})(HH||={});var Gz;(t=>t.Empty={working:!1,starting:[],serversRequiringInteraction:[]})(Gz||={});var pSe=R("IMcpService");var Qz;(t=>{let r;(s=>(s[s.Trusted=0]="Trusted",s[s.TrustedOnNonce=1]="TrustedOnNonce",s[s.Untrusted=2]="Untrusted",s[s.Unknown=3]="Unknown"))(r=t.Kind||={})})(Qz||={});var yc;(n=>{function r(o){return o}n.toSerialized=r;function t(o){switch(o.type){case 2:return{type:o.type,uri:y.revive(o.uri),headers:o.headers,authentication:o.authentication};case 1:return{type:o.type,cwd:o.cwd,command:o.command,args:o.args,env:o.env,envFile:o.envFile,sandbox:o.sandbox}}}n.fromSerialized=t;async function e(o){let i=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(JSON.stringify(o)));return mh(W.wrap(new Uint8Array(i)))}n.hash=e})(yc||={});var ho;(i=>{let r;(c=>(c[c.Stopped=0]="Stopped",c[c.Starting=1]="Starting",c[c.Running=2]="Running",c[c.Error=3]="Error"))(r=i.Kind||={}),i.toString=s=>{switch(s.state){case 0:return p(11715,null);case 1:return p(11714,null);case 2:return p(11713,null);case 3:return p(11712,null,s.message);default:Hu(s)}},i.toKindString=s=>{switch(s){case 0:return"stopped";case 1:return"starting";case 2:return"running";case 3:return"error";default:Hu(s)}},i.canBeStarted=s=>s===3||s===0,i.isRunning=s=>!(0,i.canBeStarted)(s.state)})(ho||={});var pv=class r extends Error{constructor(e){super(`${r.prefix}${e}`);this.reason=e}static{this.prefix="User interaction required: "}static is(e){return e.message.startsWith(this.prefix)}};var Jz=R("IMcpWorkbenchService"),Mx=class extends O{constructor(e,n){super();this.containers=e;this._register(n.onChange(this.update,this))}set mcpServer(e){this.containers.forEach(n=>n.mcpServer=e)}update(e){for(let n of this.containers)e&&n.mcpServer?e.id===n.mcpServer.id&&(n.mcpServer=e):n.update()}};Mx=_([C(1,Jz)],Mx);var mSe=new w("mcpServersGalleryStatus","unavailable"),gSe=new w("hasInstalledMcpServers",!0);var Yz;(o=>{o.scheme="mcp-resource";let t="dylo78gyp";function e(i,s){return typeof s=="string"&&(s=y.parse(s)),s.with({scheme:o.scheme,authority:mh(W.fromString(i.id)),path:["",s.scheme,s.authority||t].join("/")+s.path})}o.fromServer=e;function n(i){if(typeof i=="string"&&(i=y.parse(i)),i.scheme!==o.scheme)throw new Error(`Invalid MCP resource URI: ${i.toString()}`);let s=i.path.split("/");if(s.length<3)throw new Error(`Invalid MCP resource URI: ${i.toString()}`);let[,a,l,...d]=s,c=new URL(`${a}://${l.toLowerCase()===t?"":l}`);return c.pathname=d.length?"/"+d.join("/"):"",c.search=i.query,c.hash=i.fragment,{definitionId:yU(i.authority).toString(),resourceURL:c}}o.toServer=n})(Yz||={});var fSe=R("IMcpServerSampling");var hSe=R("IMcpElicitationService");function FR(){return Object.create(null)}var ra="**",Nx="/",Lx="[/\\\\]",Ox="[^/\\\\]",Xz=/\//g;function WH(r,t){switch(r){case 0:return"";case 1:return`${Ox}*?`;default:return`(?:${Lx}|${Ox}+${Lx}${t?`|${Lx}${Ox}+`:""})*?`}}function ia(r,t){if(!r)return[];let e=[],n=!1,o=!1,i="";for(let s of r){switch(s){case t:if(!n&&!o){e.push(i),i="";continue}break;case"{":n=!0;break;case"}":n=!1;break;case"[":o=!0;break;case"]":o=!1;break}i+=s}return i&&e.push(i),e}function qH(r){if(!r)return"";let t="",e=ia(r,Nx);if(e.every(n=>n===ra))t=".*";else{let n=!1;e.forEach((o,i)=>{if(o===ra){if(n)return;t+=WH(2,i===e.length-1)}else{let s=!1,a="",l=!1,d="";for(let c of o){if(c!=="}"&&s){a+=c;continue}if(l&&(c!=="]"||!d)){let u;c==="-"?u=c:(c==="^"||c==="!")&&!d?u="^":c===Nx?u="":u=tr(c),d+=u;continue}switch(c){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{let m=`(?:${ia(a,",").map(g=>qH(g)).join("|")})`;t+=m,s=!1,a="";break}case"]":{t+="["+d+"]",l=!1,d="";break}case"?":t+=Ox;continue;case"*":t+=WH(1);continue;default:t+=tr(c)}}i<e.length-1&&(e[i+1]!==ra||i+2<e.length)&&(t+=Lx)}n=o===ra})}return t}var Zz=/^\*\*\/\*\.[\w\.-]+$/,e3=/^\*\*\/([\w\.-]+)\/?$/,t3=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,n3=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,o3=/^\*\*((\/[\w\.-]+)+)\/?$/,r3=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,VH=new Ar(1e4),BH=function(){return!1},ls=function(){return null};function HR(r,t){if(!r)return ls;let e;typeof r!="string"?e=r.pattern:e=r,e=e.trim();let n=t.ignoreCase??!1,o={...t,equals:n?xn:(l,d)=>l===d,endsWith:n?NN:(l,d)=>l.endsWith(d),isEqualOrParent:(l,d)=>vr(l,d,!Qe||n)},i=`${n?e.toLowerCase():e}_${!!t.trimForExclusions}_${n}`,s=VH.get(i);if(s)return $H(s,r,o);let a;return Zz.test(e)?s=i3(e.substring(4),e,o):(a=e3.exec(UR(e,o)))?s=s3(a[1],e,o):(t.trimForExclusions?n3:t3).test(e)?s=a3(e,o):(a=o3.exec(UR(e,o)))?s=zH(a[1].substring(1),e,!0,o):(a=r3.exec(UR(e,o)))?s=zH(a[1],e,!1,o):s=l3(e,o),VH.set(i,s),$H(s,r,o)}function $H(r,t,e){if(typeof t=="string")return r;let n=function(o,i){return e.isEqualOrParent(o,t.base)?r(pP(o.substring(t.base.length),bt),i):null};return n.allBasenames=r.allBasenames,n.allPaths=r.allPaths,n.basenames=r.basenames,n.patterns=r.patterns,n}function UR(r,t){return t.trimForExclusions&&r.endsWith("/**")?r.substring(0,r.length-2):r}function i3(r,t,e){return function(n,o){return typeof n=="string"&&e.endsWith(n,r)?t:null}}function s3(r,t,e){let n=`/${r}`,o=`\\${r}`,i=function(a,l){return typeof a!="string"?null:l?e.equals(l,r)?t:null:e.equals(a,r)||e.endsWith(a,n)||e.endsWith(a,o)?t:null},s=[r];return i.basenames=s,i.patterns=[t],i.allBasenames=s,i}function a3(r,t){let e=jH(r.slice(1,-1).split(",").map(a=>HR(a,t)).filter(a=>a!==ls),r),n=e.length;if(!n)return ls;if(n===1)return e[0];let o=function(a,l){for(let d=0,c=e.length;d<c;d++)if(e[d](a,l))return r;return null},i=e.find(a=>!!a.allBasenames);i&&(o.allBasenames=i.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(o.allPaths=s),o}function zH(r,t,e,n){let o=bt===ze.sep,i=o?r:r.replace(Xz,bt),s=bt+i,a=ze.sep+r,l;return e?l=function(d,c){return typeof d=="string"&&(n.equals(d,i)||n.endsWith(d,s)||!o&&(n.equals(d,r)||n.endsWith(d,a)))?t:null}:l=function(d,c){return typeof d=="string"&&(n.equals(d,i)||!o&&n.equals(d,r))?t:null},l.allPaths=[(e?"*/":"./")+r],l}function l3(r,t){try{let e=new RegExp(`^${qH(r)}$`,t.ignoreCase?"i":void 0);return function(n){return e.lastIndex=0,typeof n=="string"&&e.test(n)?r:null}}catch{return ls}}function Br(r,t,e){return!r||typeof t!="string"?!1:vo(r,e)(t)}function vo(r,t={}){if(!r)return BH;if(typeof r=="string"||KH(r)){let e=HR(r,t);if(e===ls)return BH;let n=function(o,i){return!!e(o,i)};return e.allBasenames&&(n.allBasenames=e.allBasenames),e.allPaths&&(n.allPaths=e.allPaths),n}return d3(r,t)}function KH(r){let t=r;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function WR(r){return r.allBasenames||[]}function VR(r){return r.allPaths||[]}function d3(r,t){let e=jH(Object.getOwnPropertyNames(r).map(a=>c3(a,r[a],t)).filter(a=>a!==ls)),n=e.length;if(!n)return ls;if(!e.some(a=>!!a.requiresSiblings)){if(n===1)return e[0];let a=function(c,u){let m;for(let g=0,h=e.length;g<h;g++){let f=e[g](c,u);if(typeof f=="string")return f;Lr(f)&&(m||(m=[]),m.push(f))}return m?(async()=>{for(let g of m){let h=await g;if(typeof h=="string")return h}return null})():null},l=e.find(c=>!!c.allBasenames);l&&(a.allBasenames=l.allBasenames);let d=e.reduce((c,u)=>u.allPaths?c.concat(u.allPaths):c,[]);return d.length&&(a.allPaths=d),a}let o=function(a,l,d){let c,u;for(let m=0,g=e.length;m<g;m++){let h=e[m];h.requiresSiblings&&d&&(l||(l=at(a)),c||(c=l.substring(0,l.length-Xa(a).length)));let f=h(a,l,c,d);if(typeof f=="string")return f;Lr(f)&&(u||(u=[]),u.push(f))}return u?(async()=>{for(let m of u){let g=await m;if(typeof g=="string")return g}return null})():null},i=e.find(a=>!!a.allBasenames);i&&(o.allBasenames=i.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(o.allPaths=s),o}function c3(r,t,e){if(t===!1)return ls;let n=HR(r,e);if(n===ls)return ls;if(typeof t=="boolean")return n;if(t){let o=t.when;if(typeof o=="string"){let i=(s,a,l,d)=>{if(!d||!n(s,a))return null;let c=o.replace("$(basename)",()=>l),u=d(c);return Lr(u)?u.then(m=>m?r:null):u?r:null};return i.requiresSiblings=!0,i}}return n}function jH(r,t){let e=r.filter(a=>!!a.basenames);if(e.length<2)return r;let n=e.reduce((a,l)=>{let d=l.basenames;return d?a.concat(d):a},[]),o;if(t){o=[];for(let a=0,l=n.length;a<l;a++)o.push(t)}else o=e.reduce((a,l)=>{let d=l.patterns;return d?a.concat(d):a},[]);let i=function(a,l){if(typeof a!="string")return null;if(!l){let c;for(c=a.length;c>0;c--){let u=a.charCodeAt(c-1);if(u===47||u===92)break}l=a.substring(c)}let d=n.indexOf(l);return d!==-1?o[d]:null};i.basenames=n,i.patterns=o,i.allBasenames=n;let s=r.filter(a=>!a.basenames);return s.push(i),s}function BR(r,t){return Xt(r,t,(e,n)=>typeof e=="string"&&typeof n=="string"?e===n:typeof e!="string"&&typeof n!="string"?e.base===n.base&&e.pattern===n.pattern:!1)}var u3=R("notebookDocumentService"),$R=["W","X","Y","Z","a","b","c","d","e","f"],p3=new RegExp(`^[${$R.join("")}]+`),GH=7;function Ux(r){if(r.scheme!==V.vscodeNotebookCell)return;let t=r.fragment.indexOf("s");if(t<0)return;let e=parseInt(r.fragment.substring(0,t).replace(p3,""),GH),n=Ir(r.fragment.substring(t+1)).toString();if(!isNaN(e))return{handle:e,notebook:r.with({scheme:n,fragment:null})}}function QH(r,t){let e=t.toString(GH),o=`${e.length<$R.length?$R[e.length-1]:"z"}${e}s${ir(W.fromString(r.scheme),!0,!0)}`;return r.with({scheme:V.vscodeNotebookCell,fragment:o})}function JH(r){if(r.scheme!==V.vscodeNotebookMetadata)return;let t=Ir(r.fragment).toString();return r.with({scheme:t,fragment:null})}function YH(r){let t=`${ir(W.fromString(r.scheme),!0,!0)}`;return r.with({scheme:V.vscodeNotebookMetadata,fragment:t})}function qR(r){if(r.scheme!==V.vscodeNotebookCellOutput)return;let t=new URLSearchParams(r.query),e=t.get("openIn");if(!e)return;let n=t.get("outputId")??void 0,o=Ux(r.with({scheme:V.vscodeNotebookCell,query:null})),i=t.get("outputIndex")?parseInt(t.get("outputIndex")||"",10):void 0,s=o?o.notebook:r.with({scheme:t.get("notebookScheme")||V.file,fragment:null,query:null}),a=t.get("cellIndex")?parseInt(t.get("cellIndex")||"",10):void 0;return{notebook:s,openIn:e,outputId:n,outputIndex:i,cellHandle:o?.handle,cellFragment:r.fragment,cellIndex:a}}var zR=class{constructor(){this._documents=new Ge}getNotebook(t){if(t.scheme===V.vscodeNotebookCell){let e=Ux(t);if(e){let n=this._documents.get(e.notebook);if(n)return n}}if(t.scheme===V.vscodeNotebookCellOutput){let e=qR(t);if(e){let n=this._documents.get(e.notebook);if(n)return n}}return this._documents.get(t)}addNotebookDocument(t){this._documents.set(t.uri,t)}removeNotebookDocument(t){this._documents.delete(t.uri)}};qe(u3,zR,1);var VSe=["application/json","application/javascript","text/html","image/svg+xml",Po.latex,Po.markdown,"image/png","image/jpeg",Po.text],BSe=[Po.latex,Po.markdown,"application/json","text/html","image/svg+xml","image/png","image/jpeg",Po.text];var m3;(n=>{n.scheme=V.vscodeNotebookMetadata;function t(o){return YH(o)}n.generate=t;function e(o){return JH(o)}n.parse=e})(m3||={});var jR;(d=>{d.scheme=V.vscodeNotebookCell;function t(c,u){return QH(c,u)}d.generate=t;function e(c){return Ux(c)}d.parse=e;function n(c,u){return c.with({scheme:V.vscodeNotebookCellOutput,query:new URLSearchParams({openIn:"editor",outputId:u??"",notebookScheme:c.scheme!==V.file?c.scheme:""}).toString()})}d.generateCellOutputUriWithId=n;function o(c,u,m){return c.with({scheme:V.vscodeNotebookCellOutput,fragment:u.fragment,query:new URLSearchParams({openIn:"notebook",outputIndex:String(m)}).toString()})}d.generateCellOutputUriWithIndex=o;function i(c,u,m,g,h){return c.with({scheme:V.vscodeNotebookCellOutput,query:new URLSearchParams({openIn:"notebookOutputEditor",notebook:c.toString(),cellIndex:String(m),outputId:g,outputIndex:String(h)}).toString()})}d.generateOutputEditorUri=i;function s(c){return qR(c)}d.parseCellOutputUri=s;function a(c,u,m){return d.generate(c,u).with({scheme:m})}d.generateCellPropertyUri=a;function l(c,u){if(c.scheme===u)return d.parse(c.with({scheme:d.scheme}))}d.parseCellPropertyUri=l})(jR||={});var $Se=new w("notebookEditorCursorAtBoundary","none"),zSe=new w("notebookEditorCursorAtLineBoundary","none");var XH=class r{static{this._prefix="notebook/"}static create(t,e){return`${r._prefix}${t}/${e??t}`}static parse(t){if(t.startsWith(r._prefix)){let e=t.substring(r._prefix.length).split("/");if(e.length===2)return{notebookType:e[0],viewType:e[1]}}}},g3=new TextDecoder;function ZH(r){let t=[],e=!1;for(let s of r)(t.length===0||e)&&(t.push(s),e=!0);let n=h3(t),o=W.concat(t.map(s=>W.wrap(s))),i=x3(o);return n=n||i.byteLength!==o.byteLength,{data:i,didCompression:n}}var Fx="\x1B[A",KR=Fx.split("").map(r=>r.charCodeAt(0)),f3=10;function h3(r){let t=!1;return r.forEach((e,n)=>{if(n===0||e.length<Fx.length)return;let o=r[n-1],i=e.subarray(0,Fx.length);if(i[0]===KR[0]&&i[1]===KR[1]&&i[2]===KR[2]){let s=o.lastIndexOf(f3);if(s===-1)return;t=!0,r[n-1]=o.subarray(0,s),r[n]=e.subarray(Fx.length)}}),t}function v3(r){let t=r;do r=t,t=r.replace(/[^\n]\x08/gm,"");while(t.length<r.length);return r}function b3(r){for(r=r.replace(/\r+\n/gm,`
`);r.search(/\r[^$]/g)>-1;){let t=r.match(/^(.*)\r+/m)[1],e=r.match(/\r+(.*)$/m)[1];e=e+t.slice(e.length,t.length),r=r.replace(/\r+.*$/m,"\r").replace(/^.*\r/m,e)}return r}var y3=8,I3=13;function x3(r){return!r.buffer.includes(y3)&&!r.buffer.includes(I3)?r:W.fromString(b3(v3(g3.decode(r.buffer))))}var KSe=R("scm");var jSe=R("scmView");var Ze=class r{constructor(t,e=t.length){this.path=t;this.viewEnd=e;if(t.length===0||e<1)throw new Error("cannot create test with empty path")}static fromExtHostTestItem(t,e,n=t.parent){if(t._isRoot)return new r([e]);let o=[t.id];for(let i=n;i&&i.id!==e;i=i.parent)o.push(i.id);return o.push(e),new r(o.reverse())}static isRoot(t){return!t.includes("\0")}static root(t){let e=t.indexOf("\0");return e===-1?t:t.slice(0,e)}static fromString(t){return new r(t.split("\0"))}static join(t,e){return new r([...t.path,e])}static split(t){return t.split("\0")}static joinToString(t,e){return t.toString()+"\0"+e}static parentId(t){let e=t.lastIndexOf("\0");return e===-1?void 0:t.slice(0,e)}static localId(t){let e=t.lastIndexOf("\0");return e===-1?t:t.slice(e+1)}static isChild(t,e){return e[t.length]==="\0"&&e.startsWith(t)}static compare(t,e){return t===e?0:r.isChild(t,e)?2:r.isChild(e,t)?3:1}static getLengthOfCommonPrefix(t,e){if(t===0)return 0;let n=0;for(;n<t-1;){for(let o=1;o<t;o++){let i=e(o-1),s=e(o);if(i.path[n]!==s.path[n])return n}n++}return n}get rootId(){return new r(this.path,1)}get parentId(){return this.viewEnd>1?new r(this.path,this.viewEnd-1):void 0}get localId(){return this.path[this.viewEnd-1]}get controllerId(){return this.path[0]}get isRoot(){return this.viewEnd===1}*idsFromRoot(){for(let t=1;t<=this.viewEnd;t++)yield new r(this.path,t)}*idsToRoot(){for(let t=this.viewEnd;t>0;t--)yield new r(this.path,t)}compare(t){if(typeof t=="string")return r.compare(this.toString(),t);for(let e=0;e<t.viewEnd&&e<this.viewEnd;e++)if(t.path[e]!==this.path[e])return 1;return t.viewEnd>this.viewEnd?2:t.viewEnd<this.viewEnd?3:0}toJSON(){return this.toString()}toString(){if(!this.stringifed){this.stringifed=this.path[0];for(let t=1;t<this.viewEnd;t++)this.stringifed+="\0",this.stringifed+=this.path[t]}return this.stringifed}};var rCe={2:p(15679,null),4:p(15678,null),8:p(15677,null)};var t4=r=>"runId"in r,mv;(e=>(e.serialize=n=>({range:n.range.toJSON(),uri:n.uri.toJSON()}),e.deserialize=(n,o)=>({range:Ke.lift(o.range),uri:n.asCanonicalUri(y.revive(o.uri))})))(mv||={});var GR;(e=>(e.serialize=n=>({label:n.label,uri:n.uri?.toJSON(),position:n.position?.toJSON()}),e.deserialize=(n,o)=>({label:o.label,uri:o.uri?n.asCanonicalUri(y.revive(o.uri)):void 0,position:o.position?kn.lift(o.position):void 0})))(GR||={});var QR;(e=>(e.serialize=n=>({message:n.message,type:0,expected:n.expected,actual:n.actual,contextValue:n.contextValue,location:n.location&&mv.serialize(n.location),stackTrace:n.stackTrace?.map(GR.serialize)}),e.deserialize=(n,o)=>({message:o.message,type:0,expected:o.expected,actual:o.actual,contextValue:o.contextValue,location:o.location&&mv.deserialize(n,o.location),stackTrace:o.stackTrace&&o.stackTrace.map(i=>GR.deserialize(n,i))})))(QR||={});var JR;(e=>(e.serialize=n=>({message:n.message,type:1,offset:n.offset,length:n.length,location:n.location&&mv.serialize(n.location)}),e.deserialize=(n,o)=>({message:o.message,type:1,offset:o.offset,length:o.length,location:o.location&&mv.deserialize(n,o.location)})))(JR||={});var YR;(n=>(n.serialize=o=>o.type===0?QR.serialize(o):JR.serialize(o),n.deserialize=(o,i)=>i.type===0?QR.deserialize(o,i):JR.deserialize(o,i),n.isDiffable=o=>o.type===0&&o.actual!==void 0&&o.expected!==void 0))(YR||={});var Hx;(n=>(n.serializeWithoutMessages=o=>({state:o.state,duration:o.duration,messages:[]}),n.serialize=o=>({state:o.state,duration:o.duration,messages:o.messages.map(YR.serialize)}),n.deserialize=(o,i)=>({state:i.state,duration:i.duration,messages:i.messages.map(s=>YR.deserialize(o,s))})))(Hx||={});var n4="\0",Up=(r,t)=>r+n4+t,Bx=r=>{let t=r.indexOf(n4);return{ctrlId:r.slice(0,t),tagId:r.slice(t+1)}},XR;(e=>(e.serialize=n=>({extId:n.extId,label:n.label,tags:n.tags,busy:n.busy,children:void 0,uri:n.uri?.toJSON(),range:n.range?.toJSON()||null,description:n.description,error:n.error,sortText:n.sortText}),e.deserialize=(n,o)=>({extId:o.extId,label:o.label,tags:o.tags,busy:o.busy,children:void 0,uri:o.uri?n.asCanonicalUri(y.revive(o.uri)):void 0,range:o.range?Ke.lift(o.range):null,description:o.description,error:o.error,sortText:o.sortText})))(XR||={});var Ic;(e=>(e.serialize=n=>({expand:n.expand,item:XR.serialize(n.item)}),e.deserialize=(n,o)=>({controllerId:Ze.root(o.item.extId),expand:o.expand,item:XR.deserialize(n,o.item)})))(Ic||={});var Wx;(e=>(e.serialize=n=>{let o;return n.item&&(o={},n.item.label!==void 0&&(o.label=n.item.label),n.item.tags!==void 0&&(o.tags=n.item.tags),n.item.busy!==void 0&&(o.busy=n.item.busy),n.item.uri!==void 0&&(o.uri=n.item.uri?.toJSON()),n.item.range!==void 0&&(o.range=n.item.range?.toJSON()),n.item.description!==void 0&&(o.description=n.item.description),n.item.error!==void 0&&(o.error=n.item.error),n.item.sortText!==void 0&&(o.sortText=n.item.sortText)),{extId:n.extId,expand:n.expand,item:o}},e.deserialize=n=>{let o;return n.item&&(o={},n.item.label!==void 0&&(o.label=n.item.label),n.item.tags!==void 0&&(o.tags=n.item.tags),n.item.busy!==void 0&&(o.busy=n.item.busy),n.item.range!==void 0&&(o.range=n.item.range?Ke.lift(n.item.range):null),n.item.description!==void 0&&(o.description=n.item.description),n.item.error!==void 0&&(o.error=n.item.error),n.item.sortText!==void 0&&(o.sortText=n.item.sortText)),{extId:n.extId,expand:n.expand,item:o}}))(Wx||={});var $x=(r,t)=>{t.expand!==void 0&&(r.expand=t.expand),t.item!==void 0&&(r.item=r.item?Object.assign(r.item,t.item):t.item)},S3;(n=>(n.serializeWithoutMessages=o=>({...Ic.serialize(o),ownComputedState:o.ownComputedState,computedState:o.computedState,tasks:o.tasks.map(Hx.serializeWithoutMessages)}),n.serialize=o=>({...Ic.serialize(o),ownComputedState:o.ownComputedState,computedState:o.computedState,tasks:o.tasks.map(Hx.serialize)}),n.deserialize=(o,i)=>({...Ic.deserialize(o,i),ownComputedState:i.ownComputedState,computedState:i.computedState,tasks:i.tasks.map(s=>Hx.deserialize(o,s)),retired:!0})))(S3||={});var o4;(e=>(e.empty=()=>({covered:0,total:0}),e.sum=(n,o)=>{n.covered+=o.covered,n.total+=o.total}))(o4||={});var C3;(n=>(n.serialize=o=>({id:o.id,statement:o.statement,branch:o.branch,declaration:o.declaration,testIds:o.testIds,uri:o.uri.toJSON()}),n.deserialize=(o,i)=>({id:i.id,statement:i.statement,branch:i.branch,declaration:i.declaration,testIds:i.testIds,uri:o.asCanonicalUri(y.revive(i.uri))}),n.empty=(o,i)=>({id:o,uri:i,statement:o4.empty()})))(C3||={});function nA(r){return{...r,location:r.location?.toJSON()}}function oA(r){return r.location=r.location?kn.isIPosition(r.location)?kn.lift(r.location):Ke.lift(r.location):void 0,r}var T3;(e=>(e.serialize=n=>n.type===0?eA.serialize(n):tA.serialize(n),e.deserialize=n=>n.type===0?eA.deserialize(n):tA.deserialize(n)))(T3||={});var ZR;(e=>(e.serialize=nA,e.deserialize=oA))(ZR||={});var eA;(e=>(e.serialize=nA,e.deserialize=oA))(eA||={});var tA;(e=>(e.serialize=n=>({...nA(n),branches:n.branches?.map(ZR.serialize)}),e.deserialize=n=>({...oA(n),branches:n.branches?.map(ZR.deserialize)})))(tA||={});var zx;(e=>(e.deserialize=(n,o)=>o.op===0?{op:o.op,item:Ic.deserialize(n,o.item)}:o.op===1?{op:o.op,item:Wx.deserialize(o.item)}:o.op===2?{op:o.op,uri:n.asCanonicalUri(y.revive(o.uri)),docv:o.docv}:o,e.serialize=n=>n.op===0?{op:n.op,item:Ic.serialize(n.item)}:n.op===1?{op:n.op,item:Wx.serialize(n.item)}:n))(zx||={});var Vx=class{constructor(t){this.uriIdentity=t;this._tags=new Map;this.items=new Map;this.roots=new Set;this.busyControllerCount=0;this.pendingRootCount=0;this.tags=this._tags}apply(t){let e=this.createChangeCollector();for(let n of t)switch(n.op){case 0:this.add(Ic.deserialize(this.uriIdentity,n.item),e);break;case 1:this.update(Wx.deserialize(n.item),e);break;case 3:this.remove(n.itemId,e);break;case 5:this.retireTest(n.itemId);break;case 4:this.updatePendingRoots(n.amount);break;case 6:this._tags.set(n.tag.id,n.tag);break;case 7:this._tags.delete(n.id);break}e.complete?.()}add(t,e){let n=Ze.parentId(t.item.extId)?.toString(),o;if(!n)o=this.createItem(t),this.roots.add(o),this.items.set(t.item.extId,o);else if(this.items.has(n)){let i=this.items.get(n);i.children.add(t.item.extId),o=this.createItem(t,i),this.items.set(t.item.extId,o)}else{console.error(`Test with unknown parent ID: ${JSON.stringify(t)}`);return}return e.add?.(o),t.expand===2&&this.busyControllerCount++,o}update(t,e){let n=this.items.get(t.extId);if(n)return t.expand!==void 0&&(n.expand===2&&this.busyControllerCount--,t.expand===2&&this.busyControllerCount++),$x(n,t),e.update?.(n),n}remove(t,e){let n=this.items.get(t);if(!n)return;let o=Ze.parentId(n.item.extId)?.toString();o?this.items.get(o).children.delete(n.item.extId):this.roots.delete(n);let i=[[t]];for(;i.length;)for(let s of i.pop()){let a=this.items.get(s);a&&(i.push(a.children),this.items.delete(s),e.remove?.(a,a!==n),a.expand===2&&this.busyControllerCount--)}}retireTest(t){}updatePendingRoots(t){this.pendingRootCount+=t}createChangeCollector(){return{}}};var aCe=R("IAiSettingsSearchService");var gv=(r,t)=>r===t,E3={range:(r,t)=>r===t?!0:!r||!t?!1:r.equalsRange(t),busy:gv,label:gv,description:gv,error:gv,sortText:gv,tags:(r,t)=>!(r.length!==t.length||r.some(e=>!t.includes(e)))},w3=Object.entries(E3),k3=(r,t)=>{let e;for(let[n,o]of w3)o(r[n],t[n])||(e?e[n]=t[n]:e={[n]:t[n]});return e},qx=class extends O{constructor(e){super();this.options=e;this.debounceSendDiff=this._register(new Wn(()=>this.flushDiff(),200));this.diffOpEmitter=this._register(new T);this.tree=new Map;this.tags=new Map;this.diff=[];this.onDidGenerateDiff=this.diffOpEmitter.event;this.root.canResolveChildren=!0,this.upsertItem(this.root,void 0)}get root(){return this.options.root}set resolveHandler(e){this._resolveHandler=e;for(let n of this.tree.values())this.updateExpandability(n)}get resolveHandler(){return this._resolveHandler}collectDiff(){let e=this.diff;return this.diff=[],e}pushDiff(e){switch(e.op){case 2:{for(let n of this.diff)if(n.op===2&&n.uri===e.uri){n.docv=e.docv;return}break}case 1:{let n=this.diff[this.diff.length-1];if(n){if(n.op===1&&n.item.extId===e.item.extId){$x(n.item,e.item);return}if(n.op===0&&n.item.item.extId===e.item.extId){$x(n.item,e.item);return}}break}}this.diff.push(e),this.debounceSendDiff.isScheduled()||this.debounceSendDiff.schedule()}expand(e,n){let o=this.tree.get(e);if(o){if((o.expandLevels===void 0||n>o.expandLevels)&&(o.expandLevels=n),o.expand===1){let i=this.resolveChildren(o);return i.isOpen()?this.expandChildren(o,n-1):i.wait().then(()=>this.expandChildren(o,n-1))}else if(o.expand===3)return o.resolveBarrier?.isOpen()===!1?o.resolveBarrier.wait().then(()=>this.expandChildren(o,n-1)):this.expandChildren(o,n-1)}}dispose(){for(let e of this.tree.values())this.options.getApiFor(e.actual).listener=void 0;this.tree.clear(),this.diff=[],super.dispose()}onTestItemEvent(e,n){switch(n.op){case 3:this.removeItem(Ze.joinToString(e.fullId,n.id));break;case 0:this.upsertItem(n.item,e);break;case 5:for(let o of n.ops)this.onTestItemEvent(e,o);break;case 1:this.diffTagRefs(n.new,n.old,e.fullId.toString());break;case 2:this.updateExpandability(e);break;case 4:this.pushDiff({op:1,item:{extId:e.fullId.toString(),item:n.update}});break;case 6:this.documentSynced(e.actual.uri);break;default:Hu(n)}}documentSynced(e){e&&this.pushDiff({op:2,uri:e,docv:this.options.getDocumentVersion(e)})}upsertItem(e,n){let o=Ze.fromExtHostTestItem(e,this.root.id,n?.actual),i=this.options.getApiFor(e);i.parent&&i.parent!==n?.actual&&this.options.getChildren(i.parent).delete(e.id);let s=this.tree.get(o.toString());if(!s){s={fullId:o,actual:e,expandLevels:n?.expandLevels?n.expandLevels-1:void 0,expand:0},e.tags.forEach(this.incrementTagRefs,this),this.tree.set(s.fullId.toString(),s),this.setItemParent(e,n),this.pushDiff({op:0,item:{controllerId:this.options.controllerId,expand:s.expand,item:this.options.toITestItem(e)}}),this.connectItemAndChildren(e,s,n);return}if(s.actual===e){this.connectItem(e,s,n);return}if(s.actual.uri?.toString()!==e.uri?.toString())return this.removeItem(o.toString()),this.upsertItem(e,n);let a=this.options.getChildren(s.actual),l=s.actual,d=k3(this.options.toITestItem(l),this.options.toITestItem(e));this.options.getApiFor(l).listener=void 0,s.actual=e,s.resolveBarrier=void 0,s.expand=0,d&&(d.hasOwnProperty("tags")&&(this.diffTagRefs(e.tags,l.tags,o.toString()),delete d.tags),this.onTestItemEvent(s,{op:4,update:d})),this.connectItemAndChildren(e,s,n);for(let[u,m]of a)this.options.getChildren(e).get(m.id)||this.removeItem(Ze.joinToString(o,m.id));let c=s.expandLevels;c!==void 0&&queueMicrotask(()=>{s.expand===1&&(s.expandLevels=void 0,this.expand(o.toString(),c))}),this.documentSynced(s.actual.uri)}diffTagRefs(e,n,o){let i=new Set(n.map(s=>s.id));for(let s of e)i.delete(s.id)||this.incrementTagRefs(s);this.pushDiff({op:1,item:{extId:o,item:{tags:e.map(s=>Up(this.options.controllerId,s.id))}}}),i.forEach(this.decrementTagRefs,this)}incrementTagRefs(e){let n=this.tags.get(e.id);n?n.refCount++:(this.tags.set(e.id,{refCount:1}),this.pushDiff({op:6,tag:{id:Up(this.options.controllerId,e.id)}}))}decrementTagRefs(e){let n=this.tags.get(e);n&&!--n.refCount&&(this.tags.delete(e),this.pushDiff({op:7,id:Up(this.options.controllerId,e)}))}setItemParent(e,n){this.options.getApiFor(e).parent=n&&n.actual!==this.root?n.actual:void 0}connectItem(e,n,o){this.setItemParent(e,o);let i=this.options.getApiFor(e);i.parent=o?.actual,i.listener=s=>this.onTestItemEvent(n,s),this.updateExpandability(n)}connectItemAndChildren(e,n,o){this.connectItem(e,n,o);for(let[i,s]of this.options.getChildren(e))this.upsertItem(s,n)}updateExpandability(e){let n;this._resolveHandler?e.resolveBarrier?n=e.resolveBarrier.isOpen()?3:2:n=e.actual.canResolveChildren?1:0:n=0,n!==e.expand&&(e.expand=n,this.pushDiff({op:1,item:{extId:e.fullId.toString(),expand:n}}),n===1&&e.expandLevels!==void 0&&this.resolveChildren(e))}expandChildren(e,n){if(n<0)return;let o=[];for(let[i,s]of this.options.getChildren(e.actual)){let a=this.expand(Ze.joinToString(e.fullId,s.id),n);Lr(a)&&o.push(a)}if(o.length)return Promise.all(o).then(()=>{})}resolveChildren(e){if(e.resolveBarrier)return e.resolveBarrier;if(!this._resolveHandler){let s=new hn;return s.open(),s}e.expand=2,this.pushExpandStateUpdate(e);let n=e.resolveBarrier=new hn,o=s=>{console.error(`Unhandled error in resolveHandler of test controller "${this.options.controllerId}"`,s)},i;try{i=this._resolveHandler(e.actual===this.root?void 0:e.actual)}catch(s){o(s)}return Lr(i)?i.catch(o).then(()=>{n.open(),this.updateExpandability(e)}):(n.open(),this.updateExpandability(e)),e.resolveBarrier}pushExpandStateUpdate(e){this.pushDiff({op:1,item:{extId:e.fullId.toString(),expand:e.expand}})}removeItem(e){let n=this.tree.get(e);if(!n)throw new Error("attempting to remove non-existent child");this.pushDiff({op:3,itemId:e});let o=[n];for(;o.length;){let i=o.pop();if(i){this.options.getApiFor(i.actual).listener=void 0;for(let s of i.actual.tags)this.decrementTagRefs(s.id);this.tree.delete(i.fullId.toString());for(let[s,a]of this.options.getChildren(i.actual))o.push(this.tree.get(Ze.joinToString(i.fullId,a.id)))}}}flushDiff(){let e=this.collectDiff();e.length&&this.diffOpEmitter.fire(e)}},rA=class extends Error{constructor(t){super(`Attempted to insert a duplicate test item ID ${t}`)}},Sl=class extends Error{constructor(t){super(`TestItem with ID "${t}" is invalid. Make sure to create it from the createTestItem method.`)}},iA=class extends Error{constructor(t,e,n){super(`TestItem with ID "${t}" is from controller "${e}" and cannot be added as a child of an item from controller "${n}".`)}},r4=(r,t,e)=>{let n=new Map;return{get size(){return n.size},forEach(o,i){for(let s of n.values())o.call(i,s,this)},[Symbol.iterator](){return n.entries()},replace(o){let i=new Map,s=new Set(n.keys()),a={op:5,ops:[]};for(let l of o){if(!(l instanceof e))throw new Sl(l.id);let d=t(l).controllerId;if(d!==r.controllerId)throw new iA(l.id,d,r.controllerId);if(i.has(l.id))throw new rA(l.id);i.set(l.id,l),s.delete(l.id),a.ops.push({op:0,item:l})}for(let l of s.keys())a.ops.push({op:3,id:l});r.listener?.(a),n=i},add(o){if(!(o instanceof e))throw new Sl(o.id);n.set(o.id,o),r.listener?.({op:0,item:o})},delete(o){n.delete(o)&&r.listener?.({op:3,id:o})},get(o){return n.get(o)},toJSON(){return Array.from(n.values())}}};var i4=new WeakMap,s4=(r,t)=>{let e={controllerId:t};return i4.set(r,e),e},Fp=r=>{let t=i4.get(r);if(!t)throw new Sl(r?.id||"<unknown>");return t};var a4=R("remoteAuthorityResolverService");var Hp=class{constructor(t){this.id=t;this.type=1}toString(){return`Managed(${this.id})`}},Kx=class{constructor(t,e){this.host=t;this.port=e;this.type=0}toString(){return`WebSocket(${this.host}:${this.port})`}};var Wp=class r extends co{static isNotAvailable(t){return t instanceof r&&t._code==="NotAvailable"}static isTemporarilyNotAvailable(t){return t instanceof r&&t._code==="TemporarilyNotAvailable"}static isNoResolverFound(t){return t instanceof r&&t._code==="NoResolverFound"}static isInvalidAuthority(t){return t instanceof r&&t._code==="InvalidAuthority"}static isHandled(t){return t instanceof r&&t.isHandled}constructor(t,e="Unknown",n){super(t),this._message=t,this._code=e,this._detail=n,this.isHandled=e==="NotAvailable"&&n===!0,Object.setPrototypeOf(this,r.prototype)}};function sA(r){let t=r.indexOf("+");return t===-1?r:r.substring(0,t)}function pe(r){return Object.assign(r,{apply:function(...e){if(e.length===0)return Reflect.construct(r,[]);{let n=e.length===1?[]:e[1];return Reflect.construct(r,n,e[0].constructor)}},call:function(...e){if(e.length===0)return Reflect.construct(r,[]);{let[n,...o]=e;return Reflect.construct(r,o,n.constructor)}}})}var Jn,Gt=class{constructor(t,e=!1){Lu(this,Jn);$f(this,Jn,new Vn(t,{supportThemeIcons:e}))}static isMarkdownString(t){return t instanceof Gt?!0:!t||typeof t!="object"?!1:t.appendCodeblock&&t.appendMarkdown&&t.appendText&&t.value!==void 0}get value(){return cn(this,Jn).value}set value(t){cn(this,Jn).value=t}get isTrusted(){return cn(this,Jn).isTrusted}set isTrusted(t){cn(this,Jn).isTrusted=t}get supportThemeIcons(){return cn(this,Jn).supportThemeIcons}set supportThemeIcons(t){cn(this,Jn).supportThemeIcons=t}get supportHtml(){return cn(this,Jn).supportHtml}set supportHtml(t){cn(this,Jn).supportHtml=t}get supportAlertSyntax(){return cn(this,Jn).supportAlertSyntax}set supportAlertSyntax(t){cn(this,Jn).supportAlertSyntax=t}get baseUri(){return cn(this,Jn).baseUri}set baseUri(t){cn(this,Jn).baseUri=t}appendText(t){return cn(this,Jn).appendText(t),this}appendMarkdown(t){return cn(this,Jn).appendMarkdown(t),this}appendCodeblock(t,e){return cn(this,Jn).appendCodeblock(e??"",t),this}};Jn=new WeakMap,Gt=_([pe],Gt);var Ee=class{static Min(...t){if(t.length===0)throw new TypeError;let e=t[0];for(let n=1;n<t.length;n++){let o=t[n];o.isBefore(e)&&(e=o)}return e}static Max(...t){if(t.length===0)throw new TypeError;let e=t[0];for(let n=1;n<t.length;n++){let o=t[n];o.isAfter(e)&&(e=o)}return e}static isPosition(t){if(!t)return!1;if(t instanceof Ee)return!0;let{line:e,character:n}=t;return typeof e=="number"&&typeof n=="number"}static of(t){if(t instanceof Ee)return t;if(this.isPosition(t))return new Ee(t.line,t.character);throw new Error("Invalid argument, is NOT a position-like object")}get line(){return this._line}get character(){return this._character}constructor(t,e){if(t<0)throw Ue("line must be non-negative");if(e<0)throw Ue("character must be non-negative");this._line=t,this._character=e}isBefore(t){return this._line<t._line?!0:t._line<this._line?!1:this._character<t._character}isBeforeOrEqual(t){return this._line<t._line?!0:t._line<this._line?!1:this._character<=t._character}isAfter(t){return!this.isBeforeOrEqual(t)}isAfterOrEqual(t){return!this.isBefore(t)}isEqual(t){return this._line===t._line&&this._character===t._character}compareTo(t){return this._line<t._line?-1:this._line>t.line?1:this._character<t._character?-1:this._character>t._character?1:0}translate(t,e=0){if(t===null||e===null)throw Ue();let n;return typeof t>"u"?n=0:typeof t=="number"?n=t:(n=typeof t.lineDelta=="number"?t.lineDelta:0,e=typeof t.characterDelta=="number"?t.characterDelta:0),n===0&&e===0?this:new Ee(this.line+n,this.character+e)}with(t,e=this.character){if(t===null||e===null)throw Ue();let n;return typeof t>"u"?n=this.line:typeof t=="number"?n=t:(n=typeof t.line=="number"?t.line:this.line,e=typeof t.character=="number"?t.character:this.character),n===this.line&&e===this.character?this:new Ee(n,e)}toJSON(){return{line:this.line,character:this.character}}[Symbol.for("debug.description")](){return`(${this.line}:${this.character})`}};Ee=_([pe],Ee);var ge=class{static isRange(t){return t instanceof ge?!0:!t||typeof t!="object"?!1:Ee.isPosition(t.start)&&Ee.isPosition(t.end)}static of(t){if(t instanceof ge)return t;if(this.isRange(t))return new ge(t.start,t.end);throw new Error("Invalid argument, is NOT a range-like object")}get start(){return this._start}get end(){return this._end}constructor(t,e,n,o){let i,s;if(typeof t=="number"&&typeof e=="number"&&typeof n=="number"&&typeof o=="number"?(i=new Ee(t,e),s=new Ee(n,o)):Ee.isPosition(t)&&Ee.isPosition(e)&&(i=Ee.of(t),s=Ee.of(e)),!i||!s)throw new Error("Invalid arguments");i.isBefore(s)?(this._start=i,this._end=s):(this._start=s,this._end=i)}contains(t){return ge.isRange(t)?this.contains(t.start)&&this.contains(t.end):Ee.isPosition(t)?!(Ee.of(t).isBefore(this._start)||this._end.isBefore(t)):!1}isEqual(t){return this._start.isEqual(t._start)&&this._end.isEqual(t._end)}intersection(t){let e=Ee.Max(t.start,this._start),n=Ee.Min(t.end,this._end);if(!e.isAfter(n))return new ge(e,n)}union(t){if(this.contains(t))return this;if(t.contains(this))return t;let e=Ee.Min(t.start,this._start),n=Ee.Max(t.end,this.end);return new ge(e,n)}get isEmpty(){return this._start.isEqual(this._end)}get isSingleLine(){return this._start.line===this._end.line}with(t,e=this.end){if(t===null||e===null)throw Ue();let n;return t?Ee.isPosition(t)?n=t:(n=t.start||this.start,e=t.end||this.end):n=this.start,n.isEqual(this._start)&&e.isEqual(this.end)?this:new ge(n,e)}toJSON(){return[this.start,this.end]}[Symbol.for("debug.description")](){return aA(this)}};ge=_([pe],ge);function aA(r){return r.isEmpty?`[${r.start.line}:${r.start.character})`:`[${r.start.line}:${r.start.character} -> ${r.end.line}:${r.end.character})`}var yt=class{constructor(t){this.value=t}append(t){return new yt(this.value?this.value+yt.sep+t:t)}intersects(t){return this.contains(t)||t.contains(this)}contains(t){return this.value===t.value||t.value.startsWith(this.value+yt.sep)}};yt.sep=".",yt=_([pe],yt);yt.Empty=new yt("");yt.QuickFix=yt.Empty.append("quickfix");yt.Refactor=yt.Empty.append("refactor");yt.RefactorExtract=yt.Refactor.append("extract");yt.RefactorInline=yt.Refactor.append("inline");yt.RefactorMove=yt.Refactor.append("move");yt.RefactorRewrite=yt.Refactor.append("rewrite");yt.Source=yt.Empty.append("source");yt.SourceOrganizeImports=yt.Source.append("organizeImports");yt.SourceFixAll=yt.Source.append("fixAll");yt.Notebook=yt.Empty.append("notebook");var fv=(e=>(e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated",e))(fv||{}),xc=(o=>(o[o.Hint=3]="Hint",o[o.Information=2]="Information",o[o.Warning=1]="Warning",o[o.Error=0]="Error",o))(xc||{}),ds=class{static is(t){return t?typeof t.message=="string"&&t.location&&ge.isRange(t.location.range)&&y.isUri(t.location.uri):!1}constructor(t,e){this.location=t,this.message=e}static isEqual(t,e){return t===e?!0:!t||!e?!1:t.message===e.message&&t.location.range.isEqual(e.location.range)&&t.location.uri.toString()===e.location.uri.toString()}};ds=_([pe],ds);var sa=class{constructor(t,e,n=0){if(!ge.isRange(t))throw new TypeError("range must be set");if(!e)throw new TypeError("message must be set");this.range=t,this.message=e,this.severity=n}toJSON(){return{severity:xc[this.severity],message:this.message,range:this.range,source:this.source,code:this.code}}static isEqual(t,e){return t===e?!0:!t||!e?!1:t.message===e.message&&t.severity===e.severity&&t.code===e.code&&t.severity===e.severity&&t.source===e.source&&t.range.isEqual(e.range)&&Xt(t.tags,e.tags)&&Xt(t.relatedInformation,e.relatedInformation,ds.isEqual)}};sa=_([pe],sa);var Qt=class{static isLocation(t){return t instanceof Qt?!0:t?ge.isRange(t.range)&&y.isUri(t.uri):!1}constructor(t,e){if(this.uri=t,e)if(ge.isRange(e))this.range=ge.of(e);else if(Ee.isPosition(e))this.range=new ge(e,e);else throw new Error("Illegal argument")}toJSON(){return{uri:this.uri,range:this.range}}};Qt=_([pe],Qt);var hv=(e=>(e[e.Markup=1]="Markup",e[e.Code=2]="Code",e))(hv||{}),Yn=class r{static isNotebookRange(t){return t instanceof r?!0:t?typeof t.start=="number"&&typeof t.end=="number":!1}get start(){return this._start}get end(){return this._end}get isEmpty(){return this._start===this._end}constructor(t,e){if(t<0)throw Ue("start must be positive");if(e<0)throw Ue("end must be positive");t<=e?(this._start=t,this._end=e):(this._start=e,this._end=t)}with(t){let e=this._start,n=this._end;return t.start!==void 0&&(e=t.start),t.end!==void 0&&(n=t.end),e===this._start&&n===this._end?this:new r(e,n)}},cs=class r{static validate(t){if(typeof t.kind!="number")throw new Error("NotebookCellData MUST have 'kind' property");if(typeof t.value!="string")throw new Error("NotebookCellData MUST have 'value' property");if(typeof t.languageId!="string")throw new Error("NotebookCellData MUST have 'languageId' property")}static isNotebookCellDataArray(t){return Array.isArray(t)&&t.every(e=>r.isNotebookCellData(e))}static isNotebookCellData(t){return!0}constructor(t,e,n,o,i,s,a){this.kind=t,this.value=e,this.languageId=n,this.mime=o,this.outputs=i??[],this.metadata=s,this.executionSummary=a,r.validate(this)}},Sc=class{constructor(t){this.cells=t}},Ro=class{static isNotebookCellEdit(t){return t instanceof Ro?!0:t?Yn.isNotebookRange(t)&&Array.isArray(t.newCells):!1}static replaceCells(t,e){return new Ro(t,e)}static insertCells(t,e){return new Ro(new Yn(t,t),e)}static deleteCells(t){return new Ro(t,[])}static updateCellMetadata(t,e){let n=new Ro(new Yn(t,t),[]);return n.newCellMetadata=e,n}static updateNotebookMetadata(t){let e=new Ro(new Yn(0,0),[]);return e.newNotebookMetadata=t,e}constructor(t,e){this.range=t,this.newCells=e}};Ro=_([pe],Ro);var Cc=class r{constructor(t,e){this.data=t;this.mime=e;let n=ND(e,!0);if(!n)throw new Error(`INVALID mime type: ${e}. Must be in the format "type/subtype[;optionalparameter]"`);this.mime=n}static isNotebookCellOutputItem(t){return t instanceof r?!0:t?typeof t.mime=="string"&&t.data instanceof Uint8Array:!1}static error(t){let e={name:t.name,message:t.message,stack:t.stack};return r.json(e,"application/vnd.code.notebook.error")}static stdout(t){return r.text(t,"application/vnd.code.notebook.stdout")}static stderr(t){return r.text(t,"application/vnd.code.notebook.stderr")}static bytes(t,e="application/octet-stream"){return new r(t,e)}static#e=new TextEncoder;static text(t,e=Po.text){let n=r.#e.encode(String(t));return new r(n,e)}static json(t,e="text/x-json"){let n=JSON.stringify(t,void 0,"	");return r.text(n,e)}},us=class r{static isNotebookCellOutput(t){return t instanceof r?!0:!t||typeof t!="object"?!1:typeof t.id=="string"&&Array.isArray(t.items)}static ensureUniqueMimeTypes(t,e=!1){let n=new Set,o=new Set;for(let i=0;i<t.length;i++){let s=t[i],a=ND(s.mime);if(!n.has(a)||$I(a)){n.add(a);continue}o.add(i),e&&console.warn(`DUPLICATED mime type '${s.mime}' will be dropped`)}return o.size===0?t:t.filter((i,s)=>!o.has(s))}constructor(t,e,n){this.items=r.ensureUniqueMimeTypes(t,!0),typeof e=="string"?(this.id=e,this.metadata=n):(this.id=Le(),this.metadata=e??n)}};var $n=class extends ge{static isSelection(t){return t instanceof $n?!0:!t||typeof t!="object"?!1:ge.isRange(t)&&Ee.isPosition(t.anchor)&&Ee.isPosition(t.active)&&typeof t.isReversed=="boolean"}get anchor(){return this._anchor}get active(){return this._active}constructor(t,e,n,o){let i,s;if(typeof t=="number"&&typeof e=="number"&&typeof n=="number"&&typeof o=="number"?(i=new Ee(t,e),s=new Ee(n,o)):Ee.isPosition(t)&&Ee.isPosition(e)&&(i=Ee.of(t),s=Ee.of(e)),!i||!s)throw new Error("Invalid arguments");super(i,s),this._anchor=i,this._active=s}get isReversed(){return this._anchor===this._end}toJSON(){return{start:this.start,end:this.end,active:this.active,anchor:this.anchor}}[Symbol.for("debug.description")](){return P3(this)}};$n=_([pe],$n);function P3(r){let t=aA(r);return r.isEmpty||(r.active.isEqual(r.start)?t=`|${t}`:t=`${t}|`),t}var zn=class{constructor(t){this._tabstop=1;this.value=t||""}static isSnippetString(t){return t instanceof zn?!0:!t||typeof t!="object"?!1:typeof t.value=="string"}static _escape(t){return t.replace(/\$|}|\\/g,"\\$&")}appendText(t){return this.value+=zn._escape(t),this}appendTabstop(t=this._tabstop++){return this.value+="$",this.value+=t,this}appendPlaceholder(t,e=this._tabstop++){if(typeof t=="function"){let n=new zn;n._tabstop=this._tabstop,t(n),this._tabstop=n._tabstop,t=n.value}else t=zn._escape(t);return this.value+="${",this.value+=e,this.value+=":",this.value+=t,this.value+="}",this}appendChoice(t,e=this._tabstop++){let n=t.map(o=>o.replaceAll(/[|\\,]/g,"\\$&")).join(",");return this.value+="${",this.value+=e,this.value+="|",this.value+=n,this.value+="|}",this}appendVariable(t,e){if(typeof e=="function"){let n=new zn;n._tabstop=this._tabstop,e(n),this._tabstop=n._tabstop,e=n.value}else typeof e=="string"&&(e=e.replace(/\$|}/g,"\\$&"));return this.value+="${",this.value+=t,e&&(this.value+=":",this.value+=e),this.value+="}",this}};zn=_([pe],zn);var aa=class r{static isSnippetTextEdit(t){return t instanceof r?!0:t?ge.isRange(t.range)&&zn.isSnippetString(t.snippet):!1}static replace(t,e){return new r(t,e)}static insert(t,e){return r.replace(new ge(t,t),e)}constructor(t,e){this.range=t,this.snippet=e}};var Vp=(X=>(X[X.File=0]="File",X[X.Module=1]="Module",X[X.Namespace=2]="Namespace",X[X.Package=3]="Package",X[X.Class=4]="Class",X[X.Method=5]="Method",X[X.Property=6]="Property",X[X.Field=7]="Field",X[X.Constructor=8]="Constructor",X[X.Enum=9]="Enum",X[X.Interface=10]="Interface",X[X.Function=11]="Function",X[X.Variable=12]="Variable",X[X.Constant=13]="Constant",X[X.String=14]="String",X[X.Number=15]="Number",X[X.Boolean=16]="Boolean",X[X.Array=17]="Array",X[X.Object=18]="Object",X[X.Key=19]="Key",X[X.Null=20]="Null",X[X.EnumMember=21]="EnumMember",X[X.Struct=22]="Struct",X[X.Event=23]="Event",X[X.Operator=24]="Operator",X[X.TypeParameter=25]="TypeParameter",X))(Vp||{}),vv=(t=>(t[t.Deprecated=1]="Deprecated",t))(vv||{}),Cr=class{static validate(t){if(!t.name)throw new Error("name must not be falsy")}constructor(t,e,n,o,i){this.name=t,this.kind=e,this.containerName=i,typeof n=="string"&&(this.containerName=n),o instanceof Qt?this.location=o:n instanceof ge&&(this.location=new Qt(o,n)),Cr.validate(this)}toJSON(){return{name:this.name,kind:Vp[this.kind],location:this.location,containerName:this.containerName}}};Cr=_([pe],Cr);var Tc=(e=>(e[e.LF=1]="LF",e[e.CRLF=2]="CRLF",e))(Tc||{}),An=class{static isTextEdit(t){return t instanceof An?!0:!t||typeof t!="object"?!1:ge.isRange(t)&&typeof t.newText=="string"}static replace(t,e){return new An(t,e)}static insert(t,e){return An.replace(new ge(t,t),e)}static delete(t){return An.replace(t,"")}static setEndOfLine(t){let e=new An(new ge(new Ee(0,0),new Ee(0,0)),"");return e.newEol=t,e}get range(){return this._range}set range(t){if(t&&!ge.isRange(t))throw Ue("range");this._range=t}get newText(){return this._newText||""}set newText(t){if(t&&typeof t!="string")throw Ue("newText");this._newText=t}get newEol(){return this._newEol}set newEol(t){if(t&&typeof t!="number")throw Ue("newEol");this._newEol=t}constructor(t,e){this._range=t,this._newText=e}toJSON(){return{range:this.range,newText:this.newText,newEol:this._newEol}}};An=_([pe],An);var pr=class{constructor(){this._edits=[]}_allEntries(){return this._edits}renameFile(t,e,n,o){this._edits.push({_type:1,from:t,to:e,options:n,metadata:o})}createFile(t,e,n){this._edits.push({_type:1,from:void 0,to:t,options:e,metadata:n})}deleteFile(t,e,n){this._edits.push({_type:1,from:t,to:void 0,options:e,metadata:n})}replaceNotebookMetadata(t,e,n){this._edits.push({_type:3,metadata:n,uri:t,edit:{editType:5,metadata:e}})}replaceNotebookCells(t,e,n,o){let i=e.start,s=e.end;(i!==s||n.length>0)&&this._edits.push({_type:5,uri:t,index:i,count:s-i,cells:n,metadata:o})}replaceNotebookCellMetadata(t,e,n,o){this._edits.push({_type:3,metadata:o,uri:t,edit:{editType:3,index:e,metadata:n}})}replace(t,e,n,o){this._edits.push({_type:2,uri:t,edit:new An(e,n),metadata:o})}insert(t,e,n,o){this.replace(t,new ge(e,e),n,o)}delete(t,e,n){this.replace(t,e,"",n)}has(t){return this._edits.some(e=>e._type===2&&e.uri.toString()===t.toString())}set(t,e){if(e)for(let n of e){if(!n)continue;let o,i;Array.isArray(n)?(o=n[0],i=n[1]):o=n,Ro.isNotebookCellEdit(o)?o.newCellMetadata?this.replaceNotebookCellMetadata(t,o.range.start,o.newCellMetadata,i):o.newNotebookMetadata?this.replaceNotebookMetadata(t,o.newNotebookMetadata,i):this.replaceNotebookCells(t,o.range,o.newCells,i):aa.isSnippetTextEdit(o)?this._edits.push({_type:6,uri:t,range:o.range,edit:o.snippet,metadata:i,keepWhitespace:o.keepWhitespace}):this._edits.push({_type:2,uri:t,edit:o,metadata:i})}else{for(let n=0;n<this._edits.length;n++){let o=this._edits[n];switch(o._type){case 2:case 6:case 3:case 5:o.uri.toString()===t.toString()&&(this._edits[n]=void 0);break}}GO(this._edits)}}get(t){let e=[];for(let n of this._edits)n._type===2&&n.uri.toString()===t.toString()&&e.push(n.edit);return e}entries(){let t=new Ge;for(let e of this._edits)if(e._type===2){let n=t.get(e.uri);n||(n=[e.uri,[]],t.set(e.uri,n)),n[1].push(e.edit)}return[...t.values()]}get size(){return this.entries().length}toJSON(){return this.entries()}};pr=_([pe],pr);var lA=(e=>(e[e.Top=0]="Top",e[e.Bottom=1]="Bottom",e))(lA||{});var _c,be=class{constructor(t){Lu(this,_c);$f(this,_c,t)}static from(...t){let e=t;return new be(function(){if(e){for(let n of e)n&&typeof n.dispose=="function"&&n.dispose();e=void 0}})}dispose(){typeof cn(this,_c)=="function"&&(cn(this,_c).call(this),$f(this,_c,void 0))}};_c=new WeakMap,be=_([pe],be);var d4=r=>{if(typeof r!="string"||r.length===0||!/^[0-9A-Za-z_\-]+$/.test(r))throw Ue("connectionToken")},jx=class{static isResolvedAuthority(t){return t&&typeof t=="object"&&typeof t.host=="string"&&typeof t.port=="number"&&(t.connectionToken===void 0||typeof t.connectionToken=="string")}constructor(t,e,n){if(typeof t!="string"||t.length===0)throw Ue("host");if(typeof e!="number"||e===0||Math.round(e)!==e)throw Ue("port");typeof n<"u"&&d4(n),this.host=t,this.port=Math.round(e),this.connectionToken=n}},Fl=class{constructor(t,e){this.makeConnection=t;this.connectionToken=e;typeof e<"u"&&d4(e)}static isManagedResolvedAuthority(t){return t&&typeof t=="object"&&typeof t.makeConnection=="function"&&(t.connectionToken===void 0||typeof t.connectionToken=="string")}},Is=class r extends Error{static NotAvailable(t,e){return new r(t,"NotAvailable",e)}static TemporarilyNotAvailable(t){return new r(t,"TemporarilyNotAvailable")}constructor(t,e="Unknown",n){super(t),this._message=t,this._code=e,this._detail=n,Object.setPrototypeOf(this,r.prototype)}},TS=(n=>(n[n.Replace=1]="Replace",n[n.Append=2]="Append",n[n.Prepend=3]="Prepend",n))(TS||{}),Ec=class{constructor(t,e){if(!t)throw new Error("Illegal argument, contents must be defined");Array.isArray(t)?this.contents=t:this.contents=[t],this.range=e}};Ec=_([pe],Ec);var Cl=class extends Ec{constructor(t,e,n,o){super(t,e),this.canIncreaseVerbosity=n,this.canDecreaseVerbosity=o}};Cl=_([pe],Cl);var dA=(e=>(e[e.Increase=0]="Increase",e[e.Decrease=1]="Decrease",e))(dA||{}),ES=(n=>(n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write",n))(ES||{}),Tl=class{constructor(t,e=0){this.range=t,this.kind=e}toJSON(){return{range:this.range,kind:ES[this.kind]}}};Tl=_([pe],Tl);var El=class{constructor(t,e){this.uri=t,this.highlights=e}toJSON(){return{uri:this.uri,highlights:this.highlights.map(t=>t.toJSON())}}};El=_([pe],El);var Tr=class{static validate(t){if(!t.name)throw new Error("name must not be falsy");if(!t.range.contains(t.selectionRange))throw new Error("selectionRange must be contained in fullRange");t.children?.forEach(Tr.validate)}constructor(t,e,n,o,i){this.name=t,this.detail=e,this.kind=n,this.range=o,this.selectionRange=i,this.children=[],Tr.validate(this)}};Tr=_([pe],Tr);var wS=(e=>(e[e.Invoke=1]="Invoke",e[e.Automatic=2]="Automatic",e))(wS||{}),ms=class{constructor(t,e){this.title=t,this.kind=e}};ms=_([pe],ms);var gs=class{constructor(t,e){if(this.range=t,this.parent=e,e&&!e.range.contains(this.range))throw new Error("Invalid argument: parent must contain this range")}};gs=_([pe],gs);var Hl=class{constructor(t,e,n,o,i,s){this.kind=t,this.name=e,this.detail=n,this.uri=o,this.range=i,this.selectionRange=s}},Yp=class{constructor(t,e){this.fromRanges=e,this.from=t}},Xp=class{constructor(t,e){this.fromRanges=e,this.to=t}},kS=(n=>(n[n.Information=0]="Information",n[n.Warning=1]="Warning",n[n.Error=2]="Error",n))(kS||{}),wl=class{constructor(t,e){this.range=t,this.command=e}get isResolved(){return!!this.command}};wl=_([pe],wl);var Bp=class{constructor(t,e){this.label=t,this.documentation=e}};Bp=_([pe],Bp);var $p=class{constructor(t,e){this.label=t,this.documentation=e,this.parameters=[]}};$p=_([pe],$p);var zp=class{constructor(){this.activeSignature=0;this.activeParameter=0;this.signatures=[]}};zp=_([pe],zp);var cA=(n=>(n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange",n))(cA||{}),uA=(e=>(e[e.Type=1]="Type",e[e.Parameter=2]="Parameter",e))(uA||{}),kl=class{constructor(t){this.value=t}};kl=_([pe],kl);var Pl=class{constructor(t,e,n){this.position=t,this.label=e,this.kind=n}};Pl=_([pe],Pl);var PS=(n=>(n[n.Invoke=0]="Invoke",n[n.TriggerCharacter=1]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions",n))(PS||{}),yv=(q=>(q[q.Text=0]="Text",q[q.Method=1]="Method",q[q.Function=2]="Function",q[q.Constructor=3]="Constructor",q[q.Field=4]="Field",q[q.Variable=5]="Variable",q[q.Class=6]="Class",q[q.Interface=7]="Interface",q[q.Module=8]="Module",q[q.Property=9]="Property",q[q.Unit=10]="Unit",q[q.Value=11]="Value",q[q.Enum=12]="Enum",q[q.Keyword=13]="Keyword",q[q.Snippet=14]="Snippet",q[q.Color=15]="Color",q[q.File=16]="File",q[q.Reference=17]="Reference",q[q.Folder=18]="Folder",q[q.EnumMember=19]="EnumMember",q[q.Constant=20]="Constant",q[q.Struct=21]="Struct",q[q.Event=22]="Event",q[q.Operator=23]="Operator",q[q.TypeParameter=24]="TypeParameter",q[q.User=25]="User",q[q.Issue=26]="Issue",q))(yv||{}),_S=(t=>(t[t.Deprecated=1]="Deprecated",t))(_S||{}),_l=class{constructor(t,e){this.label=t,this.kind=e}toJSON(){return{label:this.label,kind:this.kind&&yv[this.kind],detail:this.detail,documentation:this.documentation,sortText:this.sortText,filterText:this.filterText,preselect:this.preselect,insertText:this.insertText,textEdit:this.textEdit}}};_l=_([pe],_l);var Ii=class{constructor(t=[],e=!1){this.items=t,this.isIncomplete=e}};Ii=_([pe],Ii);var qp=class{constructor(t,e,n){this.insertText=t,this.range=e,this.command=n}};qp=_([pe],qp);var Kp=class{constructor(t){this.commands=void 0;this.suppressSuggestions=void 0;this.items=t}};Kp=_([pe],Kp);var DS=(o=>(o[o.Unknown=0]="Unknown",o[o.Word=1]="Word",o[o.Line=2]="Line",o[o.Suggest=3]="Suggest",o))(DS||{}),RS=(n=>(n[n.Accepted=0]="Accepted",n[n.Rejected=1]="Rejected",n[n.Ignored=2]="Ignored",n))(RS||{}),AS=(e=>(e[e.Code=1]="Code",e[e.Label=2]="Label",e))(AS||{}),MS=(u=>(u[u.Active=-1]="Active",u[u.Beside=-2]="Beside",u[u.One=1]="One",u[u.Two=2]="Two",u[u.Three=3]="Three",u[u.Four=4]="Four",u[u.Five=5]="Five",u[u.Six=6]="Six",u[u.Seven=7]="Seven",u[u.Eight=8]="Eight",u[u.Nine=9]="Nine",u))(MS||{}),LS=(e=>(e[e.Left=1]="Left",e[e.Right=2]="Right",e))(LS||{});function c4(r,t){return`${_e.toKey(r)}.${t}`}var OS=(o=>(o[o.Off=0]="Off",o[o.On=1]="On",o[o.Relative=2]="Relative",o[o.Interval=3]="Interval",o))(OS||{}),NS=(n=>(n[n.Manual=1]="Manual",n[n.AfterDelay=2]="AfterDelay",n[n.FocusOut=3]="FocusOut",n))(NS||{}),US=(o=>(o[o.Default=0]="Default",o[o.InCenter=1]="InCenter",o[o.InCenterIfOutsideViewport=2]="InCenterIfOutsideViewport",o[o.AtTop=3]="AtTop",o))(US||{}),Bc=(n=>(n[n.Keyboard=1]="Keyboard",n[n.Mouse=2]="Mouse",n[n.Command=3]="Command",n))(Bc||{}),FS=(n=>(n[n.Addition=1]="Addition",n[n.Deletion=2]="Deletion",n[n.Modification=3]="Modification",n))(FS||{}),HS=(e=>(e[e.Undo=1]="Undo",e[e.Redo=2]="Redo",e))(HS||{}),WS=(o=>(o[o.OpenOpen=0]="OpenOpen",o[o.ClosedClosed=1]="ClosedClosed",o[o.OpenClosed=2]="OpenClosed",o[o.ClosedOpen=3]="ClosedOpen",o))(WS||{});(t=>{function r(e){switch(e){case"keyboard":return 1;case"mouse":return 2;case"api":case"code.jump":case"code.navigation":return 3}}t.fromValue=r})(Bc||={});var $c=(o=>(o[o.Other=0]="Other",o[o.Comment=1]="Comment",o[o.String=2]="String",o[o.RegEx=3]="RegEx",o))($c||{});(t=>{function r(e){switch(e){case 0:return"other";case 1:return"comment";case 2:return"string";case 3:return"regex"}return"other"}t.toString=r})($c||={});var Dl=class{constructor(t,e){if(e&&!y.isUri(e))throw Ue("target");if(!ge.isRange(t)||t.isEmpty)throw Ue("range");this.range=t,this.target=e}};Dl=_([pe],Dl);var xi=class{constructor(t,e,n,o){this.red=t,this.green=e,this.blue=n,this.alpha=o}};xi=_([pe],xi);var Rl=class{constructor(t,e){if(e&&!(e instanceof xi))throw Ue("color");if(!ge.isRange(t)||t.isEmpty)throw Ue("range");this.range=t,this.color=e}};Rl=_([pe],Rl);var Al=class{constructor(t){if(!t||typeof t!="string")throw Ue("label");this.label=t}};Al=_([pe],Al);var VS=(n=>(n[n.Error=0]="Error",n[n.Warning=1]="Warning",n[n.Information=2]="Information",n))(VS||{}),pA=(i=>(i[i.Unknown=0]="Unknown",i[i.Shutdown=1]="Shutdown",i[i.Process=2]="Process",i[i.User=3]="User",i[i.Extension=4]="Extension",i))(pA||{}),BS=(n=>(n[n.Low=0]="Low",n[n.Medium=1]="Medium",n[n.High=2]="High",n))(BS||{}),mA=(h=>(h[h.Sh=1]="Sh",h[h.Bash=2]="Bash",h[h.Fish=3]="Fish",h[h.Csh=4]="Csh",h[h.Ksh=5]="Ksh",h[h.Zsh=6]="Zsh",h[h.CommandPrompt=7]="CommandPrompt",h[h.GitBash=8]="GitBash",h[h.PowerShell=9]="PowerShell",h[h.Python=10]="Python",h[h.Julia=11]="Julia",h[h.NuShell=12]="NuShell",h[h.Node=13]="Node",h[h.Xonsh=14]="Xonsh",h))(mA||{}),Gx=class{constructor(t,e,n){this.startIndex=t;this.length=e;this.tooltip=n;if(typeof t!="number"||t<0)throw Ue("startIndex");if(typeof e!="number"||e<1)throw Ue("length");if(n!==void 0&&typeof n!="string")throw Ue("tooltip")}},Qx=class{constructor(t){this.uri=t}},Jx=class{constructor(t){this.terminalCommand=t}},gA=(e=>(e[e.Panel=1]="Panel",e[e.Editor=2]="Editor",e))(gA||{}),Yx=class{constructor(t){this.options=t;if(typeof t!="object")throw Ue("options")}},fA=(S=>(S[S.File=0]="File",S[S.Folder=1]="Folder",S[S.Method=2]="Method",S[S.Alias=3]="Alias",S[S.Argument=4]="Argument",S[S.Option=5]="Option",S[S.OptionValue=6]="OptionValue",S[S.Flag=7]="Flag",S[S.SymbolicLinkFile=8]="SymbolicLinkFile",S[S.SymbolicLinkFolder=9]="SymbolicLinkFolder",S[S.ScmCommit=10]="ScmCommit",S[S.ScmBranch=11]="ScmBranch",S[S.ScmTag=12]="ScmTag",S[S.ScmStash=13]="ScmStash",S[S.ScmRemote=14]="ScmRemote",S[S.PullRequest=15]="PullRequest",S[S.PullRequestDone=16]="PullRequestDone",S))(fA||{}),Xx=class{constructor(t,e,n,o,i,s,a,l){this.label=t,this.replacementRange=e,this.kind=n,this.detail=o,this.documentation=i,this.isFile=s,this.isDirectory=a,this.isKeyword=l}},Zx=class{constructor(t,e){this.items=t??[],this.resourceOptions=e}},hA=(n=>(n[n.Always=1]="Always",n[n.Silent=2]="Silent",n[n.Never=3]="Never",n))(hA||{}),vA=(g=>(g.Changed="changed",g.ProcessStarted="processStarted",g.ProcessEnded="processEnded",g.Terminated="terminated",g.Start="start",g.AcquiredInput="acquiredInput",g.DependsOnStarted="dependsOnStarted",g.Active="active",g.Inactive="inactive",g.End="end",g.ProblemMatcherStarted="problemMatcherStarted",g.ProblemMatcherEnded="problemMatcherEnded",g.ProblemMatcherFoundErrors="problemMatcherFoundErrors",g))(vA||{}),bA=(n=>(n[n.Shared=1]="Shared",n[n.Dedicated=2]="Dedicated",n[n.New=3]="New",n))(bA||{}),Pn=class{constructor(t,e){this.label=e;if(typeof t!="string")throw Ue("name");if(typeof e!="string")throw Ue("name");this._id=t}static from(t){switch(t){case"clean":return Pn.Clean;case"build":return Pn.Build;case"rebuild":return Pn.Rebuild;case"test":return Pn.Test;default:return}}get id(){return this._id}};Pn.Clean=new Pn("clean","Clean"),Pn.Build=new Pn("build","Build"),Pn.Rebuild=new Pn("rebuild","Rebuild"),Pn.Test=new Pn("test","Test"),Pn=_([pe],Pn);function u4(r){let t="";for(let e=0;e<r.length;e++)t+=r[e].replace(/,/g,",,")+",";return t}var fs=class{constructor(t,e,n){if(typeof t!="string")throw Ue("process");this._args=[],this._process=t,e!==void 0&&(Array.isArray(e)?(this._args=e,this._options=n):this._options=e)}get process(){return this._process}set process(t){if(typeof t!="string")throw Ue("process");this._process=t}get args(){return this._args}set args(t){Array.isArray(t)||(t=[]),this._args=t}get options(){return this._options}set options(t){this._options=t}computeId(){let t=[];if(t.push("process"),this._process!==void 0&&t.push(this._process),this._args&&this._args.length>0)for(let e of this._args)t.push(e);return u4(t)}};fs=_([pe],fs);var Si=class{constructor(t,e,n){this._args=[];if(Array.isArray(e)){if(!t)throw Ue("command can't be undefined or null");if(typeof t!="string"&&typeof t.value!="string")throw Ue("command");this._command=t,e&&(this._args=e),this._options=n}else{if(typeof t!="string")throw Ue("commandLine");this._commandLine=t,this._options=e}}get commandLine(){return this._commandLine}set commandLine(t){if(typeof t!="string")throw Ue("commandLine");this._commandLine=t}get command(){return this._command?this._command:""}set command(t){if(typeof t!="string"&&typeof t.value!="string")throw Ue("command");this._command=t}get args(){return this._args}set args(t){this._args=t||[]}get options(){return this._options}set options(t){this._options=t}computeId(){let t=[];if(t.push("shell"),this._commandLine!==void 0&&t.push(this._commandLine),this._command!==void 0&&t.push(typeof this._command=="string"?this._command:this._command.value),this._args&&this._args.length>0)for(let e of this._args)t.push(typeof e=="string"?e:e.value);return u4(t)}};Si=_([pe],Si);var yA=(n=>(n[n.Escape=1]="Escape",n[n.Strong=2]="Strong",n[n.Weak=3]="Weak",n))(yA||{}),$S=(e=>(e[e.Global=1]="Global",e[e.Workspace=2]="Workspace",e))($S||{}),IA=(n=>(n[n.Default=1]="Default",n[n.FolderOpen=2]="FolderOpen",n[n.WorktreeCreated=3]="WorktreeCreated",n))(IA||{}),Ac=class{constructor(t){this._callback=t}computeId(){return"customExecution"+Le()}set callback(t){this._callback=t}get callback(){return this._callback}},Mn=class{constructor(t,e,n,o,i,s){this.__deprecated=!1;this._definition=this.definition=t;let a;typeof e=="string"?(this._name=this.name=e,this._source=this.source=n,this.execution=o,a=i,this.__deprecated=!0):e===1||e===2?(this.target=e,this._name=this.name=n,this._source=this.source=o,this.execution=i,a=s):(this.target=e,this._name=this.name=n,this._source=this.source=o,this.execution=i,a=s),typeof a=="string"?(this._problemMatchers=[a],this._hasDefinedMatchers=!0):Array.isArray(a)?(this._problemMatchers=a,this._hasDefinedMatchers=!0):(this._problemMatchers=[],this._hasDefinedMatchers=!1),this._isBackground=!1,this._presentationOptions=Object.create(null),this._runOptions=Object.create(null)}get _id(){return this.__id}set _id(t){this.__id=t}get _deprecated(){return this.__deprecated}clear(){this.__id!==void 0&&(this.__id=void 0,this._scope=void 0,this.computeDefinitionBasedOnExecution())}computeDefinitionBasedOnExecution(){this._execution instanceof fs?this._definition={type:Mn.ProcessType,id:this._execution.computeId()}:this._execution instanceof Si?this._definition={type:Mn.ShellType,id:this._execution.computeId()}:this._execution instanceof Ac?this._definition={type:Mn.ExtensionCallbackType,id:this._execution.computeId()}:this._definition={type:Mn.EmptyType,id:Le()}}get definition(){return this._definition}set definition(t){if(t==null)throw Ue("Kind can't be undefined or null");this.clear(),this._definition=t}get scope(){return this._scope}set target(t){this.clear(),this._scope=t}get name(){return this._name}set name(t){if(typeof t!="string")throw Ue("name");this.clear(),this._name=t}get execution(){return this._execution}set execution(t){t===null&&(t=void 0),this.clear(),this._execution=t;let e=this._definition.type;(Mn.EmptyType===e||Mn.ProcessType===e||Mn.ShellType===e||Mn.ExtensionCallbackType===e)&&this.computeDefinitionBasedOnExecution()}get problemMatchers(){return this._problemMatchers}set problemMatchers(t){if(Array.isArray(t))this.clear(),this._problemMatchers=t,this._hasDefinedMatchers=!0;else{this.clear(),this._problemMatchers=[],this._hasDefinedMatchers=!1;return}}get hasDefinedMatchers(){return this._hasDefinedMatchers}get isBackground(){return this._isBackground}set isBackground(t){t!==!0&&t!==!1&&(t=!1),this.clear(),this._isBackground=t}get source(){return this._source}set source(t){if(typeof t!="string"||t.length===0)throw Ue("source must be a string of length > 0");this.clear(),this._source=t}get group(){return this._group}set group(t){t===null&&(t=void 0),this.clear(),this._group=t}get detail(){return this._detail}set detail(t){t===null&&(t=void 0),this._detail=t}get presentationOptions(){return this._presentationOptions}set presentationOptions(t){t==null&&(t=Object.create(null)),this.clear(),this._presentationOptions=t}get runOptions(){return this._runOptions}set runOptions(t){t==null&&(t=Object.create(null)),this.clear(),this._runOptions=t}};Mn.ExtensionCallbackType="customExecution",Mn.ProcessType="process",Mn.ShellType="shell",Mn.EmptyType="$empty",Mn=_([pe],Mn);var Iv=(n=>(n[n.SourceControl=1]="SourceControl",n[n.Window=10]="Window",n[n.Notification=15]="Notification",n))(Iv||{}),xA;(t=>{function r(e){let n=e;return Rn(n.value)?n.tooltip&&!Pe(n.tooltip)?(console.log("INVALID view badge, invalid tooltip",n.tooltip),!1):!0:(console.log("INVALID view badge, invalid value",n.value),!1)}t.isViewBadge=r})(xA||={});var hs=class{constructor(t,e=0){this.collapsibleState=e;y.isUri(t)?this.resourceUri=t:this.label=t}static isTreeItem(t,e){let n=t;if(n.checkboxState!==void 0){let o=Rn(n.checkboxState)?n.checkboxState:ot(n.checkboxState)&&Rn(n.checkboxState.state)?n.checkboxState.state:void 0,i=!Rn(n.checkboxState)&&ot(n.checkboxState)?n.checkboxState.tooltip:void 0;if(o===void 0||o!==1&&o!==0||i!==void 0&&!Pe(i))return console.log("INVALID tree item, invalid checkboxState",n.checkboxState),!1}if(t instanceof hs)return!0;if(n.label!==void 0&&!Pe(n.label)&&!n.label?.label)return console.log("INVALID tree item, invalid label",n.label),!1;if(n.id!==void 0&&!Pe(n.id))return console.log("INVALID tree item, invalid id",n.id),!1;if(n.iconPath!==void 0&&!Pe(n.iconPath)&&!y.isUri(n.iconPath)&&(!n.iconPath||!Pe(n.iconPath.id))){let o=n.iconPath;if(!o||!Pe(o.light)&&!y.isUri(o.light)&&!Pe(o.dark)&&!y.isUri(o.dark))return console.log("INVALID tree item, invalid iconPath",n.iconPath),!1}return n.description!==void 0&&!Pe(n.description)&&typeof n.description!="boolean"?(console.log("INVALID tree item, invalid description",n.description),!1):n.resourceUri!==void 0&&!y.isUri(n.resourceUri)?(console.log("INVALID tree item, invalid resourceUri",n.resourceUri),!1):n.tooltip!==void 0&&!Pe(n.tooltip)&&!(n.tooltip instanceof Gt)?(console.log("INVALID tree item, invalid tooltip",n.tooltip),!1):n.command!==void 0&&!n.command.command?(console.log("INVALID tree item, invalid command",n.command),!1):n.collapsibleState!==void 0&&n.collapsibleState<0&&n.collapsibleState>2?(console.log("INVALID tree item, invalid collapsibleState",n.collapsibleState),!1):n.contextValue!==void 0&&!Pe(n.contextValue)?(console.log("INVALID tree item, invalid contextValue",n.contextValue),!1):n.accessibilityInformation!==void 0&&!n.accessibilityInformation?.label?(console.log("INVALID tree item, invalid accessibilityInformation",n.accessibilityInformation),!1):!0}};hs=_([pe],hs);var zS=(n=>(n[n.None=0]="None",n[n.Collapsed=1]="Collapsed",n[n.Expanded=2]="Expanded",n))(zS||{}),qS=(e=>(e[e.Unchecked=0]="Unchecked",e[e.Checked=1]="Checked",e))(qS||{}),wc=class{constructor(t){this.value=t}async asString(){return typeof this.value=="string"?this.value:JSON.stringify(this.value)}asFile(){}};wc=_([pe],wc);var Wl=class extends wc{},eS=class extends Wl{#e;constructor(t){super(""),this.#e=t}asFile(){return this.#e}},tS=class{constructor(t,e,n,o){this.name=t,this.uri=e,this._itemId=n,this._getData=o}data(){return this._getData()}},la,Dc,bv,$r=class{constructor(t){Lu(this,Dc);Lu(this,la,new Map);for(let[e,n]of t??[]){let o=cn(this,la).get(zf(this,Dc,bv).call(this,e));o?o.push(n):cn(this,la).set(zf(this,Dc,bv).call(this,e),[n])}}get(t){return cn(this,la).get(zf(this,Dc,bv).call(this,t))?.[0]}set(t,e){cn(this,la).set(zf(this,Dc,bv).call(this,t),[e])}forEach(t,e){for(let[n,o]of cn(this,la))for(let i of o)t.call(e,i,n,this)}*[Symbol.iterator](){for(let[t,e]of cn(this,la))for(let n of e)yield[t,n]}};la=new WeakMap,Dc=new WeakSet,bv=function(t){return t.toLowerCase()},$r=_([pe],$r);var jp=class{constructor(t,e,n){this.insertText=t,this.title=e,this.kind=n}};jp=_([pe],jp);var SA=(e=>(e[e.Automatic=0]="Automatic",e[e.PasteAs=1]="PasteAs",e))(SA||{}),zr=class r{constructor(t){this.value=t}static{this.sep="."}append(...t){return new r((this.value?[this.value,...t]:t).join(r.sep))}intersects(t){return this.contains(t)||t.contains(this)}contains(t){return this.value===t.value||t.value.startsWith(this.value+r.sep)}};zr.Empty=new zr("");zr.Text=new zr("text");zr.TextUpdateImports=zr.Text.append("updateImports");var nS=class{constructor(t,e,n){this.title=e,this.insertText=t,this.kind=n}},an=class{constructor(t,e){this.id=t,this.color=e}static isThemeIcon(t){return typeof t.id!="string"?(console.log("INVALID ThemeIcon, invalid id",t.id),!1):!0}};an=_([pe],an);an.File=new an("file");an.Folder=new an("folder");var da=class{constructor(t){this.id=t}};da=_([pe],da);var KS=(n=>(n[n.Global=1]="Global",n[n.Workspace=2]="Workspace",n[n.WorkspaceFolder=3]="WorkspaceFolder",n))(KS||{}),vs=class{get base(){return this._base}set base(t){this._base=t,this._baseUri=y.file(t)}get baseUri(){return this._baseUri}set baseUri(t){this._baseUri=t,this._base=t.fsPath}constructor(t,e){if(typeof t!="string"&&(!t||!y.isUri(t)&&!y.isUri(t.uri)))throw Ue("base");if(typeof e!="string")throw Ue("pattern");typeof t=="string"?this.baseUri=y.file(t):y.isUri(t)?this.baseUri=t:this.baseUri=t.uri,this.pattern=e}toJSON(){return{pattern:this.pattern,base:this.base,baseUri:this.baseUri.toJSON()}}};vs=_([pe],vs);var p4=new WeakMap;function m4(r,t){p4.set(r,t)}var ca=class{constructor(t,e,n,o,i){this.enabled=typeof t=="boolean"?t:!0,typeof e=="string"&&(this.condition=e),typeof n=="string"&&(this.hitCondition=n),typeof o=="string"&&(this.logMessage=o),typeof i=="string"&&(this.mode=i)}get id(){return this._id||(this._id=p4.get(this)??Le()),this._id}};ca=_([pe],ca);var Ci=class extends ca{constructor(t,e,n,o,i,s){if(super(e,n,o,i,s),t===null)throw Ue("location");this.location=t}};Ci=_([pe],Ci);var Ti=class extends ca{constructor(t,e,n,o,i,s){super(e,n,o,i,s),this.functionName=t}};Ti=_([pe],Ti);var kc=class extends ca{constructor(t,e,n,o,i,s,a,l){if(super(o,i,s,a,l),!e)throw Ue("dataId");this.label=t,this.dataId=e,this.canPersist=n}};kc=_([pe],kc);var Ei=class{constructor(t,e,n){this.command=t,this.args=e||[],this.options=n}};Ei=_([pe],Ei);var wi=class{constructor(t,e){this.port=t,this.host=e}};wi=_([pe],wi);var bs=class{constructor(t){this.path=t}};bs=_([pe],bs);var ua=class{constructor(t){this.implementation=t}};ua=_([pe],ua);var Zp=class{constructor(t,e,n){this.session=t;this.threadId=e;this.frameId=n}},em=class{constructor(t,e){this.session=t;this.threadId=e}},Ml=class{constructor(t,e){this.range=t,this.expression=e}};Ml=_([pe],Ml);var jS=(e=>(e[e.Invoke=0]="Invoke",e[e.Automatic=1]="Automatic",e))(jS||{}),GS=(i=>(i[i.Other=0]="Other",i[i.Empty=1]="Empty",i[i.TokenCancellation=2]="TokenCancellation",i[i.LostRace=3]="LostRace",i[i.NotTaken=4]="NotTaken",i))(GS||{}),Ll=class{constructor(t,e){this.range=t,this.text=e}};Ll=_([pe],Ll);var Ol=class{constructor(t,e,n=!0){this.range=t,this.variableName=e,this.caseSensitiveLookup=n}};Ol=_([pe],Ol);var Nl=class{constructor(t,e){this.range=t,this.expression=e}};Nl=_([pe],Nl);var Gp=class{constructor(t,e){this.frameId=t,this.stoppedLocation=e}};Gp=_([pe],Gp);var CA=(t=>(t[t.AIGenerated=1]="AIGenerated",t))(CA||{}),QS=(e=>(e[e.Invoke=0]="Invoke",e[e.Automatic=1]="Automatic",e))(QS||{}),oS=class{constructor(t,e){this.newSymbolName=t,this.tags=e}},JS=(n=>(n[n.Changed=1]="Changed",n[n.Created=2]="Created",n[n.Deleted=3]="Deleted",n))(JS||{}),ft=class extends Error{static FileExists(t){return new ft(t,"EntryExists",ft.FileExists)}static FileNotFound(t){return new ft(t,"EntryNotFound",ft.FileNotFound)}static FileNotADirectory(t){return new ft(t,"EntryNotADirectory",ft.FileNotADirectory)}static FileIsADirectory(t){return new ft(t,"EntryIsADirectory",ft.FileIsADirectory)}static NoPermissions(t){return new ft(t,"NoPermissions",ft.NoPermissions)}static Unavailable(t){return new ft(t,"Unavailable",ft.Unavailable)}constructor(t,e="Unknown",n){super(y.isUri(t)?t.toString(!0):t),this.code=n?.name??"Unknown",yD(this,e),Object.setPrototypeOf(this,ft.prototype),typeof Error.captureStackTrace=="function"&&typeof n=="function"&&Error.captureStackTrace(this,n)}};ft=_([pe],ft);var Qp=class{constructor(t,e,n){this.start=t,this.end=e,this.kind=n}};Qp=_([pe],Qp);var YS=(n=>(n[n.Comment=1]="Comment",n[n.Imports=2]="Imports",n[n.Region=3]="Region",n))(YS||{}),XS=(e=>(e[e.Collapsed=0]="Collapsed",e[e.Expanded=1]="Expanded",e))(XS||{}),TA=(e=>(e[e.Editing=0]="Editing",e[e.Preview=1]="Preview",e))(TA||{}),EA=(e=>(e[e.Published=0]="Published",e[e.Draft=1]="Draft",e))(EA||{}),ZS=(e=>(e[e.Unresolved=0]="Unresolved",e[e.Resolved=1]="Resolved",e))(ZS||{}),eC=(e=>(e[e.Current=0]="Current",e[e.Outdated=1]="Outdated",e))(eC||{}),tC=(e=>(e[e.Reply=1]="Reply",e[e.Comment=2]="Comment",e))(tC||{}),Mc=class{constructor(t,e=[]){this.tokenTypes=t,this.tokenModifiers=e}};function R3(r){return typeof r>"u"||nN(r)}var rS=class r{constructor(t){if(this._prevLine=0,this._prevChar=0,this._dataIsSortedAndDeltaEncoded=!0,this._data=[],this._dataLen=0,this._tokenTypeStrToInt=new Map,this._tokenModifierStrToInt=new Map,this._hasLegend=!1,t){this._hasLegend=!0;for(let e=0,n=t.tokenTypes.length;e<n;e++)this._tokenTypeStrToInt.set(t.tokenTypes[e],e);for(let e=0,n=t.tokenModifiers.length;e<n;e++)this._tokenModifierStrToInt.set(t.tokenModifiers[e],e)}}push(t,e,n,o,i){if(typeof t=="number"&&typeof e=="number"&&typeof n=="number"&&typeof o=="number"&&(typeof i=="number"||typeof i>"u"))return typeof i>"u"&&(i=0),this._pushEncoded(t,e,n,o,i);if(ge.isRange(t)&&typeof e=="string"&&R3(n))return this._push(t,e,n);throw Ue()}_push(t,e,n){if(!this._hasLegend)throw new Error("Legend must be provided in constructor");if(t.start.line!==t.end.line)throw new Error("`range` cannot span multiple lines");if(!this._tokenTypeStrToInt.has(e))throw new Error("`tokenType` is not in the provided legend");let o=t.start.line,i=t.start.character,s=t.end.character-t.start.character,a=this._tokenTypeStrToInt.get(e),l=0;if(n)for(let d of n){if(!this._tokenModifierStrToInt.has(d))throw new Error("`tokenModifier` is not in the provided legend");let c=this._tokenModifierStrToInt.get(d);l|=1<<c>>>0}this._pushEncoded(o,i,s,a,l)}_pushEncoded(t,e,n,o,i){if(this._dataIsSortedAndDeltaEncoded&&(t<this._prevLine||t===this._prevLine&&e<this._prevChar)){this._dataIsSortedAndDeltaEncoded=!1;let l=this._data.length/5|0,d=0,c=0;for(let u=0;u<l;u++){let m=this._data[5*u],g=this._data[5*u+1];m===0?(m=d,g+=c):m+=d,this._data[5*u]=m,this._data[5*u+1]=g,d=m,c=g}}let s=t,a=e;this._dataIsSortedAndDeltaEncoded&&this._dataLen>0&&(s-=this._prevLine,s===0&&(a-=this._prevChar)),this._data[this._dataLen++]=s,this._data[this._dataLen++]=a,this._data[this._dataLen++]=n,this._data[this._dataLen++]=o,this._data[this._dataLen++]=i,this._prevLine=t,this._prevChar=e}static _sortAndDeltaEncode(t){let e=[],n=t.length/5|0;for(let a=0;a<n;a++)e[a]=a;e.sort((a,l)=>{let d=t[5*a],c=t[5*l];if(d===c){let u=t[5*a+1],m=t[5*l+1];return u-m}return d-c});let o=new Uint32Array(t.length),i=0,s=0;for(let a=0;a<n;a++){let l=5*e[a],d=t[l+0],c=t[l+1],u=t[l+2],m=t[l+3],g=t[l+4],h=d-i,f=h===0?c-s:c,I=5*a;o[I+0]=h,o[I+1]=f,o[I+2]=u,o[I+3]=m,o[I+4]=g,i=d,s=c}return o}build(t){return this._dataIsSortedAndDeltaEncoded?new ki(new Uint32Array(this._data),t):new ki(r._sortAndDeltaEncode(this._data),t)}},ki=class{constructor(t,e){this.resultId=e,this.data=t}},tm=class{constructor(t,e,n){this.start=t,this.deleteCount=e,this.data=n}},Vl=class{constructor(t,e){this.resultId=e,this.edits=t}},nC=(e=>(e[e.Separate=0]="Separate",e[e.MergeWithParent=1]="MergeWithParent",e))(nC||{}),iS=class{constructor(t){this.name=t}},wA=(n=>(n[n.Title=1]="Title",n[n.Inline=2]="Inline",n[n.Input=3]="Input",n))(wA||{}),ps=class{constructor(){}};ps.Back={iconPath:new an("arrow-left")},ps=_([pe],ps);var oC=(e=>(e[e.Separator=-1]="Separator",e[e.Default=0]="Default",e))(oC||{}),rC=(n=>(n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(rC||{}),iC=(e=>(e[e.UI=1]="UI",e[e.Workspace=2]="Workspace",e))(iC||{}),Lc=class{static validate(t){if(typeof t.badge=="string"){let e=fP(t.badge,0);if(e<t.badge.length&&(e+=fP(t.badge,e)),t.badge.length>e)throw new Error("The 'badge'-property must be undefined or a short character")}else if(t.badge&&!an.isThemeIcon(t.badge))throw new Error("The 'badge'-property is not a valid ThemeIcon");if(!t.color&&!t.badge&&!t.tooltip)throw new Error("The decoration is empty");return!0}constructor(t,e,n){this.badge=t,this.tooltip=e,this.color=n}},Pc=class{constructor(t){this.kind=t}};Pc=_([pe],Pc);var sC=(o=>(o[o.Light=1]="Light",o[o.Dark=2]="Dark",o[o.HighContrast=3]="HighContrast",o[o.HighContrastLight=4]="HighContrastLight",o))(sC||{}),sS=class{constructor(t,e,n){this.label=t;this.uri=e;this.position=n}},kA=(n=>(n[n.Idle=1]="Idle",n[n.Pending=2]="Pending",n[n.Executing=3]="Executing",n))(kA||{}),aC=(e=>(e[e.Left=1]="Left",e[e.Right=2]="Right",e))(aC||{}),lC=(o=>(o[o.Default=0]="Default",o[o.InCenter=1]="InCenter",o[o.InCenterIfOutsideViewport=2]="InCenterIfOutsideViewport",o[o.AtTop=3]="AtTop",o))(lC||{}),aS=class{constructor(t,e){this.text=t;this.alignment=e}},PA=(e=>(e[e.Default=1]="Default",e[e.Preferred=2]="Preferred",e))(PA||{}),dC=(n=>(n[n.Default=1]="Default",n[n.Preferred=2]="Preferred",n[n.Hidden=-1]="Hidden",n))(dC||{}),nm=class{constructor(t,e=[]){this.uri=t;this.provides=Un(e)}},lS=class{constructor(t){this.label=t}},cC=(e=>(e[e.Named=1]="Named",e[e.Indexed=2]="Indexed",e))(cC||{}),Jp=class{constructor(t,e){this.label=t;this.timestamp=e}};Jp=_([pe],Jp);var uC=(n=>(n[n.Production=1]="Production",n[n.Development=2]="Development",n[n.Test=3]="Test",n))(uC||{}),pC=(e=>(e[e.Node=1]="Node",e[e.Webworker=2]="Webworker",e))(pC||{}),xv=(o=>(o[o.Other=0]="Other",o[o.Comment=1]="Comment",o[o.String=2]="String",o[o.RegEx=3]="RegEx",o))(xv||{}),dS=class{constructor(t,e){this.ranges=t;this.wordPattern=e}},cS=class{constructor(t){this._autoForwardAction=t}get autoForwardAction(){return this._autoForwardAction}},_A=(s=>(s[s.Queued=1]="Queued",s[s.Running=2]="Running",s[s.Passed=3]="Passed",s[s.Failed=4]="Failed",s[s.Skipped=5]="Skipped",s[s.Errored=6]="Errored",s))(_A||{}),mC=(n=>(n[n.Run=1]="Run",n[n.Debug=2]="Debug",n[n.Coverage=3]="Coverage",n))(mC||{}),om=class{constructor(t,e,n){this.controllerId=t;this.profileId=e;this.kind=n}},Ul=class{constructor(t=void 0,e=void 0,n=void 0,o=!1,i=!0){this.include=t;this.exclude=e;this.profile=n;this.continuous=o;this.preserveFocus=i}};Ul=_([pe],Ul);var ys=class{constructor(t){this.message=t}static diff(t,e,n){let o=new ys(t);return o.expectedOutput=e,o.actualOutput=n,o}};ys=_([pe],ys);var pa=class{constructor(t){this.id=t}};pa=_([pe],pa);var uS=class{constructor(t,e,n){this.label=t;this.uri=e;this.position=n}},Rc=class{constructor(t,e){this.covered=t;this.total=e;Sv(this)}};function Sv(r){if(r){if(r.covered>r.total)throw new Error(`The total number of covered items (${r.covered}) cannot be greater than the total (${r.total})`);if(r.total<0)throw new Error(`The number of covered items (${r.total}) cannot be negative`)}}var ma=class r{constructor(t,e,n,o,i=[]){this.uri=t;this.statementCoverage=e;this.branchCoverage=n;this.declarationCoverage=o;this.includesTests=i}static fromDetails(t,e){let n=new Rc(0,0),o=new Rc(0,0),i=new Rc(0,0);for(let a of e)if("branches"in a){n.total+=1,n.covered+=a.executed?1:0;for(let l of a.branches)o.total+=1,o.covered+=l.executed?1:0}else i.total+=1,i.covered+=a.executed?1:0;let s=new r(t,n,o.total>0?o:void 0,i.total>0?i:void 0);return s.detailedCoverage=e,s}},rm=class{constructor(t,e,n=[]){this.executed=t;this.location=e;this.branches=n}get executionCount(){return+this.executed}set executionCount(t){this.executed=t}},im=class{constructor(t,e,n){this.executed=t;this.location=e;this.label=n}get executionCount(){return+this.executed}set executionCount(t){this.executed=t}},sm=class{constructor(t,e,n){this.name=t;this.executed=e;this.location=n}get executionCount(){return+this.executed}set executionCount(t){this.executed=t}},DA=(o=>(o[o.None=0]="None",o[o.Option=1]="Option",o[o.Default=2]="Default",o[o.Preferred=3]="Preferred",o))(DA||{}),RA=(n=>(n[n.Untrusted=0]="Untrusted",n[n.Trusted=1]="Trusted",n[n.Unspecified=2]="Unspecified",n))(RA||{}),AA=(s=>(s[s.Notify=1]="Notify",s[s.OpenBrowser=2]="OpenBrowser",s[s.OpenPreview=3]="OpenPreview",s[s.Silent=4]="Silent",s[s.Ignore=5]="Ignore",s[s.OpenBrowserOnce=6]="OpenBrowserOnce",s))(AA||{}),Bl=class{constructor(t,e,n,o,i,s){this.kind=t,this.name=e,this.detail=n,this.uri=o,this.range=i,this.selectionRange=s}},$l=class{constructor(t){this.uri=t}},ga=class{constructor(t,e){this.original=t;this.modified=e}},am=class{constructor(t,e,n,o){this.base=t;this.input1=e;this.input2=n;this.result=o}},zl=class{constructor(t,e){this.uri=t;this.viewType=e}},lm=class{constructor(t){this.viewType=t}},ql=class{constructor(t,e){this.uri=t;this.notebookType=e}},Kl=class{constructor(t,e,n){this.original=t;this.modified=e;this.notebookType=n}},dm=class{constructor(){}},cm=class{constructor(t,e){this.uri=t;this.inputBoxUri=e}},um=class{constructor(){}},pm=class{constructor(t){this.textDiffs=t}},MA=(e=>(e[e.Down=0]="Down",e[e.Up=1]="Up",e))(MA||{}),LA=(e=>(e[e.Action=1]="Action",e[e.Toolbar=2]="Toolbar",e))(LA||{}),OA=(n=>(n[n.Short=1]="Short",n[n.Medium=2]="Medium",n[n.Full=3]="Full",n))(OA||{}),pS=class{constructor(t,e,n){this.id=t,this.label=e,this.values=n}},gC=(n=>(n[n.Accepted=1]="Accepted",n[n.Rejected=2]="Rejected",n[n.Saved=3]="Saved",n))(gC||{}),NA=(n=>(n[n.Keep=1]="Keep",n[n.Undo=2]="Undo",n[n.UserModification=3]="UserModification",n))(NA||{}),UA=(i=>(i[i.Unhelpful=0]="Unhelpful",i[i.Helpful=1]="Helpful",i[i.Undone=2]="Undone",i[i.Accepted=3]="Accepted",i[i.Bug=4]="Bug",i))(UA||{}),fC=(e=>(e[e.Unhelpful=0]="Unhelpful",e[e.Helpful=1]="Helpful",e))(fC||{}),fa=class{constructor(t){if(typeof t!="string"&&t.isTrusted===!0)throw new Error("The boolean form of MarkdownString.isTrusted is NOT supported for chat participants.");this.value=typeof t=="string"?new Gt(t):t}},xs=class{constructor(t,e){if(typeof t!="string"&&t.isTrusted===!0)throw new Error("The boolean form of MarkdownString.isTrusted is NOT supported for chat participants.");this.value=typeof t=="string"?new Gt(t):t,this.vulnerabilities=e}},ha=class{constructor(t,e,n,o){this.title=t,this.message=e,this.data=n,this.buttons=o}},va=class{constructor(t,e){this.value=t,this.baseUri=e}},Oc=class{constructor(t,e,n){this.value=t,this.title=e,this.readOnly=n}},mS=class{constructor(t,e){this.data=t,this.mimeType=e}},mm=class{constructor(t,e,n,o){this.description=t,this.agentName=e,this.prompt=n,this.result=o}},Nc=class{constructor(t,e){this.uris=t;this.callback=e;this.applied=new Promise(n=>{this.didGetApplied=n})}},Ss=class{constructor(t,e){this.value=t,this.value2=t,this.title=e}},Uc=class{constructor(t){this.value=t}},jl=class{constructor(t,e){this.value=t,this.task=e}},Pi=class{constructor(t,e,n){this.value=t,this.id=e,this.metadata=n}},ba=class{constructor(t,e,n,o){this.hookType=t,this.stopReason=e,this.systemMessage=n,this.metadata=o}},Cs=class{constructor(t){if(typeof t!="string"&&t.isTrusted===!0)throw new Error("The boolean form of MarkdownString.isTrusted is NOT supported for chat participants.");this.value=typeof t=="string"?new Gt(t):t}},ya=class{constructor(t){this.value=t}},qr=class{constructor(t,e,n){this.value=t,this.iconPath=e,this.options=n}},Ia=class{constructor(t,e,n){this.value=t,this.isEdit=e,this.undoStopId=n}},xa=class{constructor(t,e,n){this.value=t,this.license=e,this.snippet=n}},Sa=class{constructor(t,e){this.uri=t;this.range=e}},Gl=class{constructor(t){this.extensions=t}},Ql=class{constructor(t,e,n,o,i){this.title=e;this.description=n;this.author=o;this.linkTag=i;tl(t)?(this.uri=t,this.command={title:"Open Pull Request",command:"vscode.open",arguments:[t]}):this.command=t}toJSON(){return{$mid:26,uri:this.uri,title:this.title,description:this.description,author:this.author}}},hC=(n=>(n[n.Text=1]="Text",n[n.SingleSelect=2]="SingleSelect",n[n.MultiSelect=3]="MultiSelect",n))(hC||{}),gm=class{constructor(t,e,n,o){this.id=t,this.type=e,this.title=n,this.message=o?.message,this.options=o?.options,this.defaultValue=o?.defaultValue,this.allowFreeformInput=o?.allowFreeformInput}},Ts=class{constructor(t,e=!0){this.questions=t,this.allowSkip=e}},Es=class{constructor(t,e){this.uri=t,e===!0?(this.isDone=!0,this.edits=[]):this.edits=Array.isArray(e)?e:[e]}},Ca=class{constructor(t,e){this.uri=t,e===!0?(this.isDone=!0,this.edits=[]):this.edits=Array.isArray(e)?e:[e]}},Jl=class{constructor(t){this.edits=t}},vC=(n=>(n[n.NotStarted=1]="NotStarted",n[n.InProgress=2]="InProgress",n[n.Completed=3]="Completed",n))(vC||{}),bC=(n=>(n[n.Running=0]="Running",n[n.Completed=1]="Completed",n[n.Failed=2]="Failed",n))(bC||{}),Fc=class{constructor(t,e,n){this.toolName=t,this.toolCallId=e,this.errorMessage=n}},Ta=class{constructor(t,e,n,o,i,s,a,l){this.prompt=t;this.command=e;this.references=n;this.participant=o;this.toolReferences=i;this.editedFileEvents=s;this.id=a;this.modelId=l}},fm=class{constructor(t,e,n,o){this.response=t;this.result=e;this.participant=n;this.command=o}},gS=class{constructor(t,e,n,o){this.response=t;this.result=e;this.participant=n;this.command=o}},yC=(o=>(o[o.Panel=1]="Panel",o[o.Terminal=2]="Terminal",o[o.Notebook=3]="Notebook",o[o.Editor=4]="Editor",o))(yC||{}),FA=(o=>(o[o.Failed=0]="Failed",o[o.Completed=1]="Completed",o[o.InProgress=2]="InProgress",o[o.NeedsInput=3]="NeedsInput",o))(FA||{}),HA=(o=>(o[o.Trace=0]="Trace",o[o.Info=1]="Info",o[o.Warning=2]="Warning",o[o.Error=3]="Error",o))(HA||{}),IC=(e=>(e[e.Success=0]="Success",e[e.Error=1]="Error",e))(IC||{}),hm=class{constructor(t,e){this._kind="toolCall";this.toolName=t,this.created=e}},vm=class{constructor(t){this._kind="modelTurn";this.created=t}},bm=class{constructor(t,e,n){this._kind="generic";this.name=t,this.level=e,this.created=n}},ym=class{constructor(t,e){this._kind="subagentInvocation";this.agentName=t,this.created=e}},Hc=class{constructor(t,e){this.name=t,this.content=e}},Im=class{constructor(t,e){this._kind="userMessage";this.message=t,this.created=e,this.sections=[]}},xm=class{constructor(t,e){this._kind="agentResponse";this.message=t,this.created=e,this.sections=[]}},fS=class{constructor(t){this._kind="text";this.value=t}},xC=(e=>(e[e.User=0]="User",e[e.Agent=1]="Agent",e))(xC||{}),hS=class{constructor(t,e,n){this._kind="messageContent";this.type=t,this.message=e,this.sections=n}},vS=class{constructor(t){this._kind="toolCallContent";this.toolName=t}},bS=class{constructor(t){this._kind="modelTurnContent";this.requestName=t}},yS=class{constructor(t,e,n,o){this.modifiedUri=t;this.insertions=e;this.deletions=n;this.originalUri=o}},IS=class{constructor(t,e,n,o,i){this.uri=t;this.originalUri=e;this.modifiedUri=n;this.insertions=o;this.deletions=i}},WA=(n=>(n[n.Complete=1]="Complete",n[n.Partial=2]="Partial",n[n.Omitted=3]="Omitted",n))(WA||{}),VA=(n=>(n[n.NoReason=0]="NoReason",n[n.FilteredContentRetry=1]="FilteredContentRetry",n[n.CopyrightContentRetry=2]="CopyrightContentRetry",n))(VA||{}),Sm=class{constructor(t,e,n,o){this.editor=t;this.document=e;this.selection=n;this.wholeRange=o}},Cm=class{constructor(t){this.cell=t}},Tm=class{constructor(t,e,n){this.mimeType=t,this.data=e,this.reference=n}},Yl=class{constructor(t){this.diagnostics=t}},Cv=(n=>(n[n.User=1]="User",n[n.Assistant=2]="Assistant",n[n.System=3]="System",n))(Cv||{}),ws=class{constructor(t,e,n){this.callId=t,this.content=e,this.isError=n??!1}},BA=(n=>(n[n.Info=0]="Info",n[n.Warning=1]="Warning",n[n.Error=2]="Error",n))(BA||{}),Em=class r{constructor(t,e,n){this._content=[];this.role=t,this.content=e,this.name=n}static User(t,e){return new r(1,t,e)}static Assistant(t,e){return new r(2,t,e)}set content(t){typeof t=="string"?this._content=[new Jt(t)]:this._content=t}get content(){return this._content}},wm=class r{constructor(t,e,n){this._content=[];this.role=t,this.content=e,this.name=n}static User(t,e){return new r(1,t,e)}static Assistant(t,e){return new r(2,t,e)}set content(t){typeof t=="string"?this._content=[new Jt(t)]:this._content=t}get content(){return this._content}set content2(t){t&&(this.content=t.map(e=>typeof e=="string"?new Jt(e):e))}get content2(){return this.content.map(t=>t instanceof Jt?t.value:t)}},Kr=class{constructor(t,e,n){this.callId=t,this.name=e,this.input=n}},SC=(n=>(n[n.Assistant=0]="Assistant",n[n.User=1]="User",n[n.Extension=2]="Extension",n))(SC||{}),Jt=class{constructor(t,e){this.value=t,e=e}toJSON(){return{$mid:21,value:this.value,audience:this.audience}}},Ln=class r{constructor(t,e,n){this.mimeType=e,this.data=t,this.audience=n}static image(t,e){return new r(t,e)}static json(t,e="text/x-json"){let n=JSON.stringify(t,void 0,"	");return new r(W.fromString(n).buffer,e)}static text(t,e=Po.text){return new r(W.fromString(t).buffer,e)}toJSON(){return{$mid:24,mimeType:this.mimeType,data:this.data,audience:this.audience}}},$A=(i=>(i.PNG="image/png",i.JPEG="image/jpeg",i.GIF="image/gif",i.WEBP="image/webp",i.BMP="image/bmp",i))($A||{}),_i=class{constructor(t,e,n){this.value=t,this.id=e,this.metadata=n}toJSON(){return{$mid:22,value:this.value,id:this.id,metadata:this.metadata}}},jr=class{constructor(t){this.value=t}toJSON(){return{$mid:23,value:this.value}}};var mr=class r extends Error{static#e="LanguageModelError";static NotFound(t){return new r(t,r.NotFound.name)}static NoPermissions(t){return new r(t,r.NoPermissions.name)}static Blocked(t){return new r(t,r.Blocked.name)}static tryDeserialize(t){if(t.name===r.#e)return new r(t.message,t.code,t.cause)}constructor(t,e,n){super(t,{cause:n}),this.name=r.#e,this.code=e??""}},Xl=class{constructor(t){this.content=t}toJSON(){return{$mid:20,content:this.content}}},xS=class{constructor(t){this.content=t}toJSON(){return{$mid:20,content:this.content}}},SS=class extends Xl{},CC=(e=>(e[e.Auto=1]="Auto",e[e.Required=2]="Required",e))(CC||{}),km=class{constructor(t,e){this.id=t;this.label=e}},Pm=class{constructor(t,e,n){this.label=t;this.name=e;this.instructions=n}},zA=(o=>(o[o.SymbolInformation=1]="SymbolInformation",o[o.CommandInformation=2]="CommandInformation",o[o.SearchInformation=3]="SearchInformation",o[o.SettingInformation=4]="SettingInformation",o))(zA||{}),qA=(n=>(n[n.EMBEDDED=1]="EMBEDDED",n[n.LLM_RANKED=2]="LLM_RANKED",n[n.CANCELED=3]="CANCELED",n))(qA||{}),KA=(i=>(i[i.Started=1]="Started",i[i.Recognizing=2]="Recognizing",i[i.Recognized=3]="Recognized",i[i.Stopped=4]="Stopped",i[i.Error=5]="Error",i))(KA||{}),jA=(n=>(n[n.Started=1]="Started",n[n.Stopped=2]="Stopped",n[n.Error=3]="Error",n))(jA||{}),GA=(e=>(e[e.Recognized=1]="Recognized",e[e.Stopped=2]="Stopped",e))(GA||{}),TC=(e=>(e[e.Initial=0]="Initial",e[e.Dynamic=1]="Dynamic",e))(TC||{}),Wc=class{constructor(t,e,n,o={},i,s){this.label=t;this.command=e;this.args=n;this.env=o;this.version=i;this.metadata=s}},Vc=class{constructor(t,e,n={},o,i,s){this.label=t;this.uri=e;this.headers=n;this.version=o;this.metadata=i;this.authentication=s}};var yo;(e=>{function r(n){let{selectionStartLineNumber:o,selectionStartColumn:i,positionLineNumber:s,positionColumn:a}=n,l=new Ee(o-1,i-1),d=new Ee(s-1,a-1);return new $n(l,d)}e.to=r;function t(n){let{anchor:o,active:i}=n;return{selectionStartLineNumber:o.line+1,selectionStartColumn:o.character+1,positionLineNumber:i.line+1,positionColumn:i.character+1}}e.from=t})(yo||={});var K;(e=>{function r(n){if(!n)return;let{start:o,end:i}=n;return{startLineNumber:o.line+1,startColumn:o.character+1,endLineNumber:i.line+1,endColumn:i.character+1}}e.from=r;function t(n){if(!n)return;let{startLineNumber:o,startColumn:i,endLineNumber:s,endColumn:a}=n;return new ge(o-1,i-1,s-1,a-1)}e.to=t})(K||={});var Gr;(e=>{function r(n){return{uri:n.uri,range:K.from(n.range)}}e.from=r;function t(n){return new Qt(y.revive(n.uri),K.to(n.range))}e.to=t})(Gr||={});var o1;(t=>{function r(e){switch(e){case 1:return 1;case 0:return 0;case 3:return 3;case 2:return 2}}t.to=r})(o1||={});var dt;(e=>{function r(n){return new Ee(n.lineNumber-1,n.column-1)}e.to=r;function t(n){return{lineNumber:n.line+1,column:n.character+1}}e.from=t})(dt||={});var Di;(n=>{function r(o,i,s){return nt(Un(o).map(a=>t(a,i,s)))}n.from=r;function t(o,i,s){if(typeof o=="string")return{$serialized:!0,language:o,isBuiltin:s?.isBuiltin};if(o)return{$serialized:!0,language:o.language,scheme:e(o.scheme,i),pattern:Ao.from(o.pattern)??void 0,exclusive:o.exclusive,notebookType:o.notebookType,isBuiltin:s?.isBuiltin}}function e(o,i){return i&&typeof o=="string"?i.transformOutgoingScheme(o):o}})(Di||={});var QA;(e=>{function r(n){switch(n){case 1:return 1;case 2:return 2}}e.from=r;function t(n){switch(n){case 1:return 1;case 2:return 2;default:return}}e.to=t})(QA||={});var ka;(e=>{function r(n){let o;return n.code&&(Pe(n.code)||Rn(n.code)?o=String(n.code):o={value:String(n.code.value),target:n.code.target}),{...K.from(n.range),message:n.message,source:n.source,code:o,severity:EC.from(n.severity),relatedInformation:n.relatedInformation&&n.relatedInformation.map(JA.from),tags:Array.isArray(n.tags)?nt(n.tags.map(QA.from)):void 0}}e.from=r;function t(n){let o=new sa(K.to(n),n.message,EC.to(n.severity));return o.source=n.source,o.code=Pe(n.code)?n.code:n.code?.value,o.relatedInformation=n.relatedInformation&&n.relatedInformation.map(JA.to),o.tags=n.tags&&nt(n.tags.map(QA.to)),o}e.to=t})(ka||={});var JA;(e=>{function r(n){return{...K.from(n.location.range),message:n.message,resource:n.location.uri}}e.from=r;function t(n){return new ds(new Qt(n.resource,K.to(n)),n.message)}e.to=t})(JA||={});var EC;(e=>{function r(n){switch(n){case 0:return 8;case 1:return 4;case 2:return 2;case 3:return 1}return 8}e.from=r;function t(n){switch(n){case 2:return 2;case 4:return 1;case 8:return 0;case 1:return 3;default:return 0}}e.to=t})(EC||={});var Ut;(e=>{function r(n){return typeof n=="number"&&n>=1?n-1:n===-2?CH:SH}e.from=r;function t(n){if(typeof n=="number"&&n>=0)return n+1;throw new Error("invalid 'EditorGroupColumn'")}e.to=t})(Ut||={});function U3(r){return typeof r.range<"u"}function r1(r){return r.length===0?!0:!!U3(r[0])}var me;(s=>{function r(a){return a.map(s.from)}s.fromMany=r;function t(a){return a&&typeof a=="object"&&typeof a.language=="string"&&typeof a.value=="string"}function e(a){let l;if(t(a)){let{language:u,value:m}=a;l={value:"```"+u+`
`+m+"\n```\n"}}else Gt.isMarkdownString(a)?l={value:a.value,isTrusted:a.isTrusted,supportThemeIcons:a.supportThemeIcons,supportHtml:a.supportHtml,supportAlertSyntax:a.supportAlertSyntax,baseUri:a.baseUri}:typeof a=="string"?l={value:a}:l={value:""};let d=Object.create(null);l.uris=d;let c=({href:u})=>{try{let m=y.parse(u,!0);m=m.with({query:n(m.query,d)}),d[u]=m}catch{}return""};return Wt.walkTokens(Wt.lexer(l.value),u=>{u.type==="link"?c({href:u.href}):u.type==="image"&&typeof u.href=="string"&&c(NF(u.href))}),l}s.from=e;function n(a,l){if(!a)return a;let d;try{d=sI(a)}catch{}if(!d)return a;let c=!1;return d=js(d,u=>{if(y.isUri(u)){let m=`__uri_${Math.random().toString(16).slice(2,8)}`;return l[m]=u,c=!0,m}else return}),c?JSON.stringify(d):a}function o(a){let l=new Gt(a.value,a.supportThemeIcons);return l.isTrusted=a.isTrusted,l.supportHtml=a.supportHtml,l.supportAlertSyntax=a.supportAlertSyntax,l.baseUri=a.baseUri?y.from(a.baseUri):void 0,l}s.to=o;function i(a){if(a)return typeof a=="string"?a:s.from(a)}s.fromStrict=i})(me||={});function f4(r){return r1(r)?r.map(t=>({range:K.from(t.range),hoverMessage:Array.isArray(t.hoverMessage)?me.fromMany(t.hoverMessage):t.hoverMessage?me.from(t.hoverMessage):void 0,renderOptions:t.renderOptions})):r.map(t=>({range:K.from(t)}))}function Rv(r){return typeof r>"u"?r:typeof r=="string"?y.file(r):r}var Tv;(t=>{function r(e){return typeof e>"u"?e:{contentText:e.contentText,contentIconPath:e.contentIconPath?Rv(e.contentIconPath):void 0,border:e.border,borderColor:e.borderColor,fontStyle:e.fontStyle,fontWeight:e.fontWeight,textDecoration:e.textDecoration,color:e.color,backgroundColor:e.backgroundColor,margin:e.margin,width:e.width,height:e.height}}t.from=r})(Tv||={});var YA;(t=>{function r(e){return typeof e>"u"?e:{backgroundColor:e.backgroundColor,outline:e.outline,outlineColor:e.outlineColor,outlineStyle:e.outlineStyle,outlineWidth:e.outlineWidth,border:e.border,borderColor:e.borderColor,borderRadius:e.borderRadius,borderSpacing:e.borderSpacing,borderStyle:e.borderStyle,borderWidth:e.borderWidth,fontStyle:e.fontStyle,fontWeight:e.fontWeight,textDecoration:e.textDecoration,cursor:e.cursor,color:e.color,opacity:e.opacity,letterSpacing:e.letterSpacing,gutterIconPath:e.gutterIconPath?Rv(e.gutterIconPath):void 0,gutterIconSize:e.gutterIconSize,overviewRulerColor:e.overviewRulerColor,before:e.before?Tv.from(e.before):void 0,after:e.after?Tv.from(e.after):void 0}}t.from=r})(YA||={});var h4;(t=>{function r(e){if(typeof e>"u")return e;switch(e){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3}}t.from=r})(h4||={});var i1;(t=>{function r(e){return{isWholeLine:e.isWholeLine,rangeBehavior:e.rangeBehavior?h4.from(e.rangeBehavior):void 0,overviewRulerLane:e.overviewRulerLane,light:e.light?YA.from(e.light):void 0,dark:e.dark?YA.from(e.dark):void 0,backgroundColor:e.backgroundColor,outline:e.outline,outlineColor:e.outlineColor,outlineStyle:e.outlineStyle,outlineWidth:e.outlineWidth,border:e.border,borderColor:e.borderColor,borderRadius:e.borderRadius,borderSpacing:e.borderSpacing,borderStyle:e.borderStyle,borderWidth:e.borderWidth,fontStyle:e.fontStyle,fontWeight:e.fontWeight,textDecoration:e.textDecoration,cursor:e.cursor,color:e.color,opacity:e.opacity,letterSpacing:e.letterSpacing,gutterIconPath:e.gutterIconPath?Rv(e.gutterIconPath):void 0,gutterIconSize:e.gutterIconSize,overviewRulerColor:e.overviewRulerColor,before:e.before?Tv.from(e.before):void 0,after:e.after?Tv.from(e.after):void 0}}t.from=r})(i1||={});var Cn;(e=>{function r(n){return{text:n.newText,eol:n.newEol&&Kc.from(n.newEol),range:K.from(n.range)}}e.from=r;function t(n){let o=new An(K.to(n.range),n.text);return o.newEol=typeof n.eol>"u"?void 0:Kc.to(n.eol),o}e.to=t})(Cn||={});var so;(e=>{function r(n,o){let i={edits:[]};if(n instanceof pr){let s=new Rr;for(let a of n._allEntries())a._type===1&&y.isUri(a.to)&&a.from===void 0&&s.add(a.to);for(let a of n._allEntries())if(a._type===1){let l;a.options?.contents&&(ArrayBuffer.isView(a.options.contents)?l={type:"base64",value:ir(W.wrap(a.options.contents))}:l={type:"dataTransferItem",id:a.options.contents._itemId}),i.edits.push({oldResource:a.from,newResource:a.to,options:{...a.options,contents:l},metadata:a.metadata})}else a._type===2?i.edits.push({resource:a.uri,textEdit:Cn.from(a.edit),versionId:s.has(a.uri)?void 0:o?.getTextDocumentVersion(a.uri),metadata:a.metadata}):a._type===6?i.edits.push({resource:a.uri,textEdit:{range:K.from(a.range),text:a.edit.value,insertAsSnippet:!0,keepWhitespace:a.keepWhitespace},versionId:s.has(a.uri)?void 0:o?.getTextDocumentVersion(a.uri),metadata:a.metadata}):a._type===3?i.edits.push({metadata:a.metadata,resource:a.uri,cellEdit:a.edit,notebookVersionId:o?.getNotebookDocumentVersion(a.uri)}):a._type===5&&i.edits.push({metadata:a.metadata,resource:a.uri,notebookVersionId:o?.getNotebookDocumentVersion(a.uri),cellEdit:{editType:1,index:a.index,count:a.count,cells:a.cells.map(wv.from)}})}return i}e.from=r;function t(n){let o=new pr,i=new Ge;for(let s of n.edits)if(s.textEdit){let a=s,l=y.revive(a.resource),d=K.to(a.textEdit.range),c=a.textEdit.text,u=a.textEdit.insertAsSnippet,m;u?m=aa.replace(d,new zn(c)):m=An.replace(d,c);let g=i.get(l);g?g.push(m):i.set(l,[m])}else o.renameFile(y.revive(s.oldResource),y.revive(s.newResource),s.options);for(let[s,a]of i)o.set(s,a);return o}e.to=t})(so||={});var Er;(n=>{let r=Object.create(null);r[0]=0,r[1]=1,r[2]=2,r[3]=3,r[4]=4,r[5]=5,r[6]=6,r[7]=7,r[8]=8,r[9]=9,r[10]=10,r[11]=11,r[12]=12,r[13]=13,r[14]=14,r[15]=15,r[16]=16,r[17]=17,r[18]=18,r[19]=19,r[20]=20,r[21]=21,r[22]=22,r[23]=23,r[24]=24,r[25]=25;function t(o){return typeof r[o]=="number"?r[o]:6}n.from=t;function e(o){for(let i in r)if(r[i]===o)return Number(i);return 6}n.to=e})(Er||={});var Ea;(e=>{function r(n){if(n===1)return 1}e.from=r;function t(n){if(n===1)return 1}e.to=t})(Ea||={});var Zl;(e=>{function r(n){return{name:n.name,kind:Er.from(n.kind),tags:n.tags&&n.tags.map(Ea.from),containerName:n.containerName,location:io.from(n.location)}}e.from=r;function t(n){let o=new Cr(n.name,Er.to(n.kind),n.containerName,io.to(n.location));return o.tags=n.tags&&n.tags.map(Ea.to),o}e.to=t})(Zl||={});var s1;(e=>{function r(n){let o={name:n.name||"!!MISSING: name!!",detail:n.detail,range:K.from(n.range),selectionRange:K.from(n.selectionRange),kind:Er.from(n.kind),tags:n.tags?.map(Ea.from)??[]};return n.children&&(o.children=n.children.map(r)),o}e.from=r;function t(n){let o=new Tr(n.name,n.detail,Er.to(n.kind),K.to(n.range),K.to(n.selectionRange));return Ka(n.tags)&&(o.tags=n.tags.map(Ea.to)),n.children&&(o.children=n.children.map(t)),o}e.to=t})(s1||={});var Pa;(e=>{function r(n){let o=new Hl(Er.to(n.kind),n.name,n.detail||"",y.revive(n.uri),K.to(n.range),K.to(n.selectionRange));return o._sessionId=n._sessionId,o._itemId=n._itemId,o}e.to=r;function t(n,o,i){if(o=o??n._sessionId,i=i??n._itemId,o===void 0||i===void 0)throw new Error("invalid item");return{_sessionId:o,_itemId:i,name:n.name,detail:n.detail,kind:Er.from(n.kind),uri:n.uri,range:K.from(n.range),selectionRange:K.from(n.selectionRange),tags:n.tags?.map(Ea.from)}}e.from=t})(Pa||={});var a1;(t=>{function r(e){return new Yp(Pa.to(e.from),e.fromRanges.map(n=>K.to(n)))}t.to=r})(a1||={});var l1;(t=>{function r(e){return new Xp(Pa.to(e.to),e.fromRanges.map(n=>K.to(n)))}t.to=r})(l1||={});var io;(e=>{function r(n){return{range:n.range&&K.from(n.range),uri:n.uri}}e.from=r;function t(n){return new Qt(y.revive(n.uri),K.to(n.range))}e.to=t})(io||={});var Rm;(e=>{function r(n){let o=n,i=n;return{originSelectionRange:o.originSelectionRange?K.from(o.originSelectionRange):void 0,uri:o.targetUri?o.targetUri:i.uri,range:K.from(o.targetRange?o.targetRange:i.range),targetSelectionRange:o.targetSelectionRange?K.from(o.targetSelectionRange):void 0}}e.from=r;function t(n){return{targetUri:y.revive(n.uri),targetRange:K.to(n.range),targetSelectionRange:n.targetSelectionRange?K.to(n.targetSelectionRange):void 0,originSelectionRange:n.originSelectionRange?K.to(n.originSelectionRange):void 0}}e.to=t})(Rm||={});var Am;(e=>{function r(n){return{range:K.from(n.range),contents:me.fromMany(n.contents),canIncreaseVerbosity:n.canIncreaseVerbosity,canDecreaseVerbosity:n.canDecreaseVerbosity}}e.from=r;function t(n){let o=n.contents.map(me.to),i=K.to(n.range),s=n.canIncreaseVerbosity,a=n.canDecreaseVerbosity;return new Cl(o,i,s,a)}e.to=t})(Am||={});var d1;(e=>{function r(n){return{range:K.from(n.range),expression:n.expression}}e.from=r;function t(n){return new Ml(K.to(n.range),n.expression)}e.to=t})(d1||={});var Av;(e=>{function r(n){if(n instanceof Ll)return{type:"text",range:K.from(n.range),text:n.text};if(n instanceof Ol)return{type:"variable",range:K.from(n.range),variableName:n.variableName,caseSensitiveLookup:n.caseSensitiveLookup};if(n instanceof Nl)return{type:"expression",range:K.from(n.range),expression:n.expression};throw new Error("Unknown 'InlineValue' type")}e.from=r;function t(n){switch(n.type){case"text":return{range:K.to(n.range),text:n.text};case"variable":return{range:K.to(n.range),variableName:n.variableName,caseSensitiveLookup:n.caseSensitiveLookup};case"expression":return{range:K.to(n.range),expression:n.expression}}}e.to=t})(Av||={});var Mv;(e=>{function r(n){return{frameId:n.frameId,stoppedLocation:K.from(n.stoppedLocation)}}e.from=r;function t(n){return new Gp(n.frameId,K.to(n.stoppedLocation))}e.to=t})(Mv||={});var qc;(e=>{function r(n){return{range:K.from(n.range),kind:n.kind}}e.from=r;function t(n){return new Tl(K.to(n.range),n.kind)}e.to=t})(qc||={});var c1;(e=>{function r(n){return{uri:n.uri,highlights:n.highlights.map(qc.from)}}e.from=r;function t(n){return new El(y.revive(n.uri),n.highlights.map(qc.to))}e.to=t})(c1||={});var v4;(t=>{function r(e){switch(e){case 1:return 1;case 2:return 2;case 0:default:return 0}}t.to=r})(v4||={});var u1;(t=>{function r(e){return{triggerKind:v4.to(e.triggerKind),triggerCharacter:e.triggerCharacter}}t.to=r})(u1||={});var wC;(e=>{function r(n){if(n===1)return 1}e.from=r;function t(n){if(n===1)return 1}e.to=t})(wC||={});var p1;(t=>{function r(e,n,o){return"icon"in e&&"command"in e?{command:n.toInternal(e.command,o),icon:Ri.fromThemeIcon(e.icon)}:{command:n.toInternal(e,o)}}t.from=r})(p1||={});var kC;(o=>{let r=new Map([[1,0],[2,1],[3,2],[4,3],[5,4],[6,5],[7,7],[21,6],[8,8],[9,9],[10,12],[11,13],[20,14],[12,15],[19,16],[13,17],[14,28],[0,18],[15,19],[16,20],[17,21],[18,23],[22,10],[23,11],[24,24],[26,26],[25,25]]);function t(i){return r.get(i)??9}o.from=t;let e=new Map([[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[7,7],[6,21],[8,8],[9,9],[12,10],[13,11],[14,20],[15,12],[16,19],[17,13],[28,14],[18,0],[19,15],[20,16],[21,17],[23,18],[10,22],[11,23],[24,24],[25,25],[26,26]]);function n(i){return e.get(i)??9}o.to=n})(kC||={});var m1;(t=>{function r(e,n){let o=new _l(e.label);return o.insertText=e.insertText,o.kind=kC.to(e.kind),o.tags=e.tags?.map(wC.to),o.detail=e.detail,o.documentation=fi(e.documentation)?me.to(e.documentation):e.documentation,o.sortText=e.sortText,o.filterText=e.filterText,o.preselect=e.preselect,o.commitCharacters=e.commitCharacters,Ke.isIRange(e.range)?o.range=K.to(e.range):typeof e.range=="object"&&(o.range={inserting:K.to(e.range.insert),replacing:K.to(e.range.replace)}),o.keepWhitespace=typeof e.insertTextRules>"u"?!1:!!(e.insertTextRules&1),typeof e.insertTextRules<"u"&&e.insertTextRules&4?o.insertText=new zn(e.insertText):(o.insertText=e.insertText,o.textEdit=o.range instanceof ge?new An(o.range,o.insertText):void 0),e.additionalTextEdits&&e.additionalTextEdits.length>0&&(o.additionalTextEdits=e.additionalTextEdits.map(i=>Cn.to(i))),o.command=n&&e.command?n.fromInternal(e.command):void 0,o}t.to=r})(m1||={});var XA;(e=>{function r(n){if(typeof n.label!="string"&&!Array.isArray(n.label))throw new TypeError("Invalid label");return{label:n.label,documentation:me.fromStrict(n.documentation)}}e.from=r;function t(n){return{label:n.label,documentation:fi(n.documentation)?me.to(n.documentation):n.documentation}}e.to=t})(XA||={});var ZA;(e=>{function r(n){return{label:n.label,documentation:me.fromStrict(n.documentation),parameters:Array.isArray(n.parameters)?n.parameters.map(XA.from):[],activeParameter:n.activeParameter}}e.from=r;function t(n){return{label:n.label,documentation:fi(n.documentation)?me.to(n.documentation):n.documentation,parameters:Array.isArray(n.parameters)?n.parameters.map(XA.to):[],activeParameter:n.activeParameter}}e.to=t})(ZA||={});var Mm;(e=>{function r(n){return{activeSignature:n.activeSignature,activeParameter:n.activeParameter,signatures:Array.isArray(n.signatures)?n.signatures.map(ZA.from):[]}}e.from=r;function t(n){return{activeSignature:n.activeSignature,activeParameter:n.activeParameter,signatures:Array.isArray(n.signatures)?n.signatures.map(ZA.to):[]}}e.to=t})(Mm||={});var g1;(t=>{function r(e,n){let o=new Pl(dt.to(n.position),typeof n.label=="string"?n.label:n.label.map(b4.to.bind(void 0,e)),n.kind&&PC.to(n.kind));return o.textEdits=n.textEdits&&n.textEdits.map(Cn.to),o.tooltip=fi(n.tooltip)?me.to(n.tooltip):n.tooltip,o.paddingLeft=n.paddingLeft,o.paddingRight=n.paddingRight,o}t.to=r})(g1||={});var b4;(t=>{function r(e,n){let o=new kl(n.label);return o.tooltip=fi(n.tooltip)?me.to(n.tooltip):n.tooltip,HD.is(n.command)&&(o.command=e.fromInternal(n.command)),n.location&&(o.location=io.to(n.location)),o}t.to=r})(b4||={});var PC;(e=>{function r(n){return n}e.from=r;function t(n){return n}e.to=t})(PC||={});var _a;(e=>{function r(n){return{range:K.from(n.range),url:n.target,tooltip:n.tooltip}}e.from=r;function t(n){let o;if(n.url)try{o=typeof n.url=="string"?y.parse(n.url,!0):y.revive(n.url)}catch{}let i=new Dl(K.to(n.range),o);return i.tooltip=n.tooltip,i}e.to=t})(_a||={});var Lv;(e=>{function r(n){let o=new Al(n.label);return n.textEdit&&(o.textEdit=Cn.to(n.textEdit)),n.additionalTextEdits&&(o.additionalTextEdits=n.additionalTextEdits.map(i=>Cn.to(i))),o}e.to=r;function t(n){return{label:n.label,textEdit:n.textEdit?Cn.from(n.textEdit):void 0,additionalTextEdits:n.additionalTextEdits?n.additionalTextEdits.map(o=>Cn.from(o)):void 0}}e.from=t})(Lv||={});var Jc;(e=>{function r(n){return new xi(n[0],n[1],n[2],n[3])}e.to=r;function t(n){return[n.red,n.green,n.blue,n.alpha]}e.from=t})(Jc||={});var f1;(e=>{function r(n){return{range:K.from(n.range)}}e.from=r;function t(n){return new gs(K.to(n.range))}e.to=t})(f1||={});var Ov;(t=>{function r(e){switch(e){case 2:return 2;case 1:return 1;case 3:case 4:return 3}}t.to=r})(Ov||={});var Yc;(e=>{function r(n){switch(n){case 0:return 0;case 2:return 2;case 3:return 3;case 1:default:return 1}}e.from=r;function t(n){switch(n){case 0:return 0;case 2:return 2;case 3:return 3;case 1:default:return 1}}e.to=t})(Yc||={});var Kc;(e=>{function r(n){if(n===2)return 1;if(n===1)return 0}e.from=r;function t(n){if(n===1)return 2;if(n===0)return 1}e.to=t})(Kc||={});var _C;(t=>{function r(e){if(typeof e=="object")return e.viewId;switch(e){case 1:return 3;case 10:return 10;case 15:return 15}throw new Error("Unknown 'ProgressLocation'")}t.from=r})(_C||={});var Nv;(e=>{function r(n){let o={start:n.start+1,end:n.end+1};return n.kind&&(o.kind=e1.from(n.kind)),o}e.from=r;function t(n){let o={start:n.start-1,end:n.end-1};return n.kind&&(o.kind=e1.to(n.kind)),o}e.to=t})(Nv||={});var e1;(e=>{function r(n){if(n)switch(n){case 1:return ea.Comment;case 2:return ea.Imports;case 3:return ea.Region}}e.from=r;function t(n){if(n)switch(n.value){case ea.Comment.value:return 1;case ea.Imports.value:return 2;case ea.Region.value:return 3}}e.to=t})(e1||={});var Uv;(t=>{function r(e){if(e)return{pinned:typeof e.preview=="boolean"?!e.preview:void 0,inactive:e.background,preserveFocus:e.preserveFocus,selection:typeof e.selection=="object"?K.from(e.selection):void 0,override:typeof e.override=="boolean"?KD.id:void 0}}t.from=r})(Uv||={});var Ao;(o=>{function r(i){return i instanceof vs?i.toJSON():typeof i=="string"?i:t(i)||e(i)?new vs(i.baseUri??i.base,i.pattern).toJSON():i}o.from=r;function t(i){let s=i;return s?y.isUri(s.baseUri)&&typeof s.pattern=="string":!1}function e(i){let s=i;return s?typeof s.base=="string"&&typeof s.pattern=="string":!1}function n(i){return typeof i=="string"?i:new vs(y.revive(i.baseUri),i.pattern)}o.to=n})(Ao||={});var h1;(t=>{function r(e){if(e){if(Array.isArray(e))return e.map(r);if(typeof e=="string")return e;{let n=e;return{language:n.language,scheme:n.scheme,pattern:Ao.from(n.pattern)??void 0,exclusive:n.exclusive,notebookType:n.notebookType}}}else return}t.from=r})(h1||={});var wr;(e=>{function r(n){return{start:n.start,end:n.end}}e.from=r;function t(n){return new Yn(n.start,n.end)}e.to=t})(wr||={});var _m;(e=>{function r(n){return{timing:typeof n.runStartTime=="number"&&typeof n.runEndTime=="number"?{startTime:n.runStartTime,endTime:n.runEndTime}:void 0,executionOrder:n.executionOrder,success:n.lastRunSuccess}}e.to=r;function t(n){return{lastRunSuccess:n.success,runStartTime:n.timing?.startTime,runEndTime:n.timing?.endTime,executionOrder:n.executionOrder}}e.from=t})(_m||={});var Ev;(e=>{function r(n){switch(n){case 1:return 1;case 2:default:return 2}}e.from=r;function t(n){switch(n){case 1:return 1;case 2:default:return 2}}e.to=t})(Ev||={});var ed;(e=>{function r(n){let o={metadata:n.metadata??Object.create(null),cells:[]};for(let i of n.cells)cs.validate(i),o.cells.push(wv.from(i));return o}e.from=r;function t(n){let o=new Sc(n.cells.map(wv.to));return $u(n.metadata)||(o.metadata=n.metadata),o}e.to=t})(ed||={});var wv;(e=>{function r(n){return{cellKind:Ev.from(n.kind),language:n.languageId,mime:n.mime,source:n.value,metadata:n.metadata,internalMetadata:_m.from(n.executionSummary??{}),outputs:n.outputs?n.outputs.map(wa.from):[]}}e.from=r;function t(n){return new cs(Ev.to(n.cellKind),n.source,n.language,n.mime,n.outputs?n.outputs.map(wa.to):void 0,n.metadata,n.internalMetadata?_m.to(n.internalMetadata):void 0)}e.to=t})(wv||={});var jc;(e=>{function r(n){return{mime:n.mime,valueBytes:W.wrap(n.data)}}e.from=r;function t(n){return new Cc(n.valueBytes.buffer,n.mime)}e.to=t})(jc||={});var wa;(e=>{function r(n){return{outputId:n.id,items:n.items.map(jc.from),metadata:n.metadata}}e.from=r;function t(n){let o=n.items.map(jc.to);return new us(o,n.outputId,n.metadata)}e.to=t})(wa||={});var Fv;(n=>{function r(o){return e(o)?{include:Ao.from(o.include)??void 0,exclude:Ao.from(o.exclude)??void 0}:Ao.from(o)??void 0}n.from=r;function t(o){return e(o)?{include:Ao.to(o.include),exclude:Ao.to(o.exclude)}:Ao.to(o)}n.to=t;function e(o){let i=o;return i?!At(i.include)&&!At(i.exclude):!1}})(Fv||={});var v1;(t=>{function r(e,n,o){let i=typeof e.command=="string"?{title:"",command:e.command}:e.command;return{alignment:e.alignment===1?1:2,command:n.toInternal(i,o),text:e.text,tooltip:e.tooltip,accessibilityInformation:e.accessibilityInformation,priority:e.priority}}t.from=r})(v1||={});var b1;(t=>{function r(e,n,o){let i=typeof e.command=="string"?{title:"",command:e.command}:e.command;return{command:n.toInternal(i,o),label:e.label,description:e.description,detail:e.detail,documentation:e.documentation}}t.from=r})(b1||={});var y1;(t=>{function r(e){return{transientOutputs:e?.transientOutputs??!1,transientCellMetadata:e?.transientCellMetadata??{},transientDocumentMetadata:e?.transientDocumentMetadata??{},cellContentMetadata:e?.cellContentMetadata??{}}}t.from=r})(y1||={});var DC;(e=>{function r(n){return{uri:n.uri,provides:n.provides}}e.from=r;function t(n){return new nm(y.revive(n.uri),n.provides)}e.to=t})(DC||={});var Lm;(e=>{function r(n){return{message:me.fromStrict(n.message)||"",type:0,expected:n.expectedOutput,actual:n.actualOutput,contextValue:n.contextValue,location:n.location&&{range:K.from(n.location.range),uri:n.location.uri},stackTrace:n.stackTrace?.map(o=>({label:o.label,position:o.position&&dt.from(o.position),uri:o.uri&&y.revive(o.uri).toJSON()}))}}e.from=r;function t(n){let o=new ys(typeof n.message=="string"?n.message:me.to(n.message));return o.actualOutput=n.actual,o.expectedOutput=n.expected,o.contextValue=n.contextValue,o.location=n.location?io.to(n.location):void 0,o}e.to=t})(Lm||={});var Qr;(e=>(e.namespace=Up,e.denamespace=Bx))(Qr||={});var I1;(t=>{function r(e){return{controllerId:e.controllerId,profileId:e.profileId,group:Om.from(e.kind)}}t.from=r})(I1||={});var Om;(e=>{let r={3:8,2:4,1:2};function t(n){return r.hasOwnProperty(n)?r[n]:2}e.from=t})(Om||={});var ks;(e=>{function r(n){let o=Fp(n).controllerId;return{extId:Ze.fromExtHostTestItem(n,o).toString(),label:n.label,uri:y.revive(n.uri),busy:n.busy,tags:n.tags.map(i=>Qr.namespace(o,i.id)),range:Ke.lift(K.from(n.range)),description:n.description||null,sortText:n.sortText||null,error:n.error&&me.fromStrict(n.error)||null}}e.from=r;function t(n){return{parent:void 0,error:void 0,id:Ze.fromString(n.extId).localId,label:n.label,uri:y.revive(n.uri),tags:(n.tags||[]).map(o=>{let{tagId:i}=Qr.denamespace(o);return new pa(i)}),children:{add:()=>{},delete:()=>{},forEach:()=>{},*[Symbol.iterator](){},get:()=>{},replace:()=>{},size:0},range:K.to(n.range||void 0),canResolveChildren:!1,busy:n.busy,description:n.description||void 0,sortText:n.sortText||void 0}}e.toPlain=t})(ks||={});(e=>{function r(n){return{id:n.id}}e.from=r;function t(n){return new pa(n.id)}e.to=t})(Qr||={});var x1;(e=>{let r=(n,o)=>{let i=n.value;if(!i)return;let s={...ks.toPlain(i.item),parent:o,taskStates:i.tasks.map(a=>({state:a.state,duration:a.duration,messages:a.messages.filter(l=>l.type===0).map(Lm.to)})),children:[]};if(n.children)for(let a of n.children.values()){let l=r(a,s);l&&s.children.push(l)}return s};function t(n){let o=new zI;for(let a of n.items)o.insert(Ze.fromString(a.item.extId).path,a);let i=[o.nodes],s=[];for(;i.length;)for(let a of i.pop())a.value?s.push(a):a.children&&i.push(a.children.values());return{completedAt:n.completedAt,results:s.map(a=>r(a)).filter(uo)}}e.to=t})(x1||={});var Hv;(s=>{function r(a){return{covered:a.covered,total:a.total}}function t(a){return"line"in a?dt.from(a):K.from(a)}function e(a){if(a)return"endLineNumber"in a?K.to(a):dt.to(a)}function n(a){if(a.type===1){let l=[];if(a.branches)for(let d of a.branches)l.push({executed:d.count,location:e(d.location),label:d.label});return new rm(a.count,e(a.location),a.branches?.map(d=>new im(d.count,e(d.location),d.label)))}else return new sm(a.name,a.count,e(a.location))}s.to=n;function o(a){if(typeof a.executed=="number"&&a.executed<0)throw new Error(`Invalid coverage count ${a.executed}`);return"branches"in a?{count:a.executed,location:t(a.location),type:1,branches:a.branches.length?a.branches.map(l=>({count:l.executed,location:l.location&&t(l.location),label:l.label})):void 0}:{type:0,name:a.name,count:a.executed,location:t(a.location)}}s.fromDetails=o;function i(a,l,d){return Sv(d.statementCoverage),Sv(d.branchCoverage),Sv(d.declarationCoverage),{id:l,uri:d.uri,statement:r(d.statementCoverage),branch:d.branchCoverage&&r(d.branchCoverage),declaration:d.declarationCoverage&&r(d.declarationCoverage),testIds:d instanceof ma&&d.includesTests.length?d.includesTests.map(c=>Ze.fromExtHostTestItem(c,a).toString()):void 0}}s.fromFile=i})(Hv||={});var S1;(t=>{function r(e){switch(e){case 1:return 1;case 2:return 2}}t.to=r})(S1||={});var Da;(e=>{function r(n){let o=new Bl(Er.to(n.kind),n.name,n.detail||"",y.revive(n.uri),K.to(n.range),K.to(n.selectionRange));return o._sessionId=n._sessionId,o._itemId=n._itemId,o}e.to=r;function t(n,o,i){if(o=o??n._sessionId,i=i??n._itemId,o===void 0||i===void 0)throw new Error("invalid item");return{_sessionId:o,_itemId:i,kind:Er.from(n.kind),name:n.name,detail:n.detail??"",uri:n.uri,range:K.from(n.range),selectionRange:K.from(n.selectionRange),tags:n.tags?.map(Ea.from)}}e.from=t})(Da||={});var Wv;(t=>{function r(e){if(e)return{value:e.value,tooltip:e.tooltip}}t.from=r})(Wv||={});var zc;(o=>{function r(i,s,a){let l=s.fileData;return l?new eS(new tS(l.name,y.revive(l.uri),l.id,qa(()=>a(l.id)))):i===Po.uriList&&s.uriListData?new Wl(n(s.uriListData)):new Wl(s.asString)}o.to=r;async function t(i,s,a=Le()){let l=await s.asString();if(i===Po.uriList)return{id:a,asString:l,fileData:void 0,uriListData:e(l)};let d=s.asFile();return{id:a,asString:l,fileData:d?{name:d.name,uri:d.uri,id:d._itemId??d.id}:void 0}}o.from=t;function e(i){return UI.split(i).map(s=>{if(s.startsWith("#"))return s;try{return y.parse(s)}catch{}return s})}function n(i){return UI.create(i.map(s=>typeof s=="string"?s:y.revive(s)))}})(zc||={});var Xc;(n=>{function r(o,i){let s=o.items.map(([a,l])=>[a,zc.to(a,l,i)]);return new $r(s)}n.toDataTransfer=r;async function t(o){return{items:await Promise.all(Array.from(o,async([s,a])=>[s,await zc.from(s,a)]))}}n.from=t;async function e(o){return{items:await Promise.all(Array.from(o,async([s,a])=>[s,await zc.from(s,a,a.id)]))}}n.fromList=e})(Xc||={});var RC;(e=>{function r(n,o){return{kind:"reply",agentId:n.participant??o?.agentId??"",subCommand:n.command??o?.command,message:n.prompt,title:n.label}}e.from=r;function t(n){return{prompt:n.message,label:n.title,participant:n.agentId,command:n.subCommand}}e.to=t})(RC||={});var kv;(e=>{function r(n){switch(n){case 0:return 3;case 1:return 1;case 2:return 2}}e.to=r;function t(n){switch(n){case 3:return 0;case 1:return 1;case 2:return 2}return 1}e.from=t})(kv||={});var F3;(e=>{function r(n){let o=n.content.map(a=>{if(a.type==="text")return new Jt(a.value,a.audience);if(a.type==="tool_result"){let l=nt(a.value.map(d=>d.type==="text"?new Jt(d.value,d.audience):d.type==="data"?new Ln(d.data.buffer,d.mimeType):d.type==="prompt_tsx"?new jr(d.value):void 0));return new ws(a.toolCallId,l,a.isError)}else{if(a.type==="image_url")return new Ln(a.value.data.buffer,a.value.mimeType);if(a.type==="data")return new Ln(a.data.buffer,a.mimeType);if(a.type==="tool_use")return new Kr(a.toolCallId,a.name,a.parameters)}}).filter(a=>a!==void 0),i=kv.to(n.role);return new Em(i,o,n.name)}e.to=r;function t(n){let o=kv.from(n.role),i=n.name,s=n.content;typeof s=="string"&&(s=[new Jt(s)]);let a=s.map(l=>{if(l instanceof ws)return{type:"tool_result",toolCallId:l.callId,value:nt(l.content.map(d=>d instanceof Jt?{type:"text",value:d.value,audience:d.audience}:d instanceof jr?{type:"prompt_tsx",value:d.value}:d instanceof Ln?{type:"data",mimeType:d.mimeType,data:W.wrap(d.data),audience:d.audience}:void 0)),isError:l.isError};if(l instanceof Ln)return y4(l)?{type:"image_url",value:{mimeType:l.mimeType,data:W.wrap(l.data)}}:{type:"data",mimeType:l.mimeType,data:W.wrap(l.data),audience:l.audience};if(l instanceof Kr)return{type:"tool_use",toolCallId:l.callId,name:l.name,parameters:l.input};if(l instanceof Jt)return{type:"text",value:l.value};if(typeof l!="string")throw new Error("Unexpected chat message content type");return{type:"text",value:l}});return{role:o,name:i,content:a}}e.from=t})(F3||={});var AC;(e=>{function r(n){let o=n.content.map(a=>{if(a.type==="text")return new Jt(a.value,a.audience);if(a.type==="tool_result"){let l=a.value.map(d=>d.type==="text"?new Jt(d.value,d.audience):d.type==="data"?new Ln(d.data.buffer,d.mimeType):new jr(d.value));return new ws(a.toolCallId,l,a.isError)}else return a.type==="image_url"?new Ln(a.value.data.buffer,a.value.mimeType):a.type==="data"?new Ln(a.data.buffer,a.mimeType):a.type==="thinking"?new _i(a.value,a.id,a.metadata):new Kr(a.toolCallId,a.name,a.parameters)}),i=kv.to(n.role);return new wm(i,o,n.name)}e.to=r;function t(n){let o=kv.from(n.role),i=n.name,s=n.content;typeof s=="string"&&(s=[new Jt(s)]);let a=s.map(l=>{if(l instanceof ws)return{type:"tool_result",toolCallId:l.callId,value:nt(l.content.map(d=>d instanceof Jt?{type:"text",value:d.value,audience:d.audience}:d instanceof jr?{type:"prompt_tsx",value:d.value}:d instanceof Ln?{type:"data",mimeType:d.mimeType,data:W.wrap(d.data),audience:d.audience}:void 0)),isError:l.isError};if(l instanceof Ln)return y4(l)?{type:"image_url",value:{mimeType:l.mimeType,data:W.wrap(l.data)}}:{type:"data",mimeType:l.mimeType,data:W.wrap(l.data),audience:l.audience};if(l instanceof Kr)return{type:"tool_use",toolCallId:l.callId,name:l.name,parameters:l.input};if(l instanceof Jt)return{type:"text",value:l.value};if(l instanceof _i)return{type:"thinking",value:l.value,id:l.id,metadata:l.metadata};if(typeof l!="string")throw new Error("Unexpected chat message content type llm 2");return{type:"text",value:l}});return{role:o,name:i,content:a}}e.from=t})(AC||={});function y4(r){switch(typeof r.mimeType=="string"?r.mimeType.toLowerCase():""){case"image/png":case"image/jpeg":case"image/jpg":case"image/gif":case"image/webp":case"image/bmp":return!0;default:return!1}}var Pv;(e=>{function r(n){return{kind:"markdownContent",content:me.from(n.value)}}e.from=r;function t(n){return new fa(me.to(n.content))}e.to=t})(Pv||={});var MC;(e=>{function r(n){return{kind:"codeblockUri",uri:n.value,isEdit:n.isEdit,undoStopId:n.undoStopId}}e.from=r;function t(n){return new Ia(y.revive(n.uri),n.isEdit,n.undoStopId)}e.to=t})(MC||={});var LC;(e=>{function r(n){return{kind:"markdownVuln",content:me.from(n.value),vulnerabilities:n.vulnerabilities}}e.from=r;function t(n){return new xs(me.to(n.content),n.vulnerabilities)}e.to=t})(LC||={});var OC;(t=>{function r(e){return{kind:"confirmation",title:e.title,message:me.from(e.message),data:e.data,buttons:e.buttons}}t.from=r})(OC||={});var NC;(o=>{function r(i){switch(i){case 1:return"text";case 2:return"singleSelect";case 3:return"multiSelect";default:return"text"}}function t(i){switch(i){case"text":return 1;case"singleSelect":return 2;case"multiSelect":return 3;default:return 1}}function e(i){return{kind:"questionCarousel",questions:i.questions.map(s=>({id:s.id,type:r(s.type),title:s.title,message:s.message?me.from(s.message):void 0,options:s.options?.map(a=>({id:a.id,label:a.label,value:String(a.value)})),defaultValue:s.defaultValue,allowFreeformInput:s.allowFreeformInput})),allowSkip:i.allowSkip}}o.from=e;function n(i){let s=i.questions.map(a=>new gm(a.id,t(a.type),a.title,{message:a.message?typeof a.message=="string"?new Gt(a.message):me.to(a.message):void 0,options:a.options?.map(l=>({id:l.id,label:l.label,value:l.value})),defaultValue:a.defaultValue,allowFreeformInput:a.allowFreeformInput}));return new Ts(s,i.allowSkip)}o.to=n})(NC||={});var _v;(e=>{function r(n){let{value:o,baseUri:i}=n;function s(a,l){return a.map(d=>{let c=y.joinPath(l,d.name);return{label:d.name,uri:c,children:d.children&&s(d.children,c)}})}return{kind:"treeData",treeData:{label:qt(i),uri:i,children:s(o,i)}}}e.from=r;function t(n){let o=Ht(n.treeData);function i(l){return l.map(d=>({name:d.label,children:d.children&&i(d.children)}))}let s=o.uri,a=o.children?i(o.children):[];return new va(a,s)}e.to=t})(_v||={});var I4;(e=>{function r(n){return{kind:"multiDiffData",multiDiffData:{title:n.title,resources:n.value.map(o=>({originalUri:o.originalUri,modifiedUri:o.modifiedUri,goToFileUri:o.goToFileUri,added:o.added,removed:o.removed}))},readOnly:n.readOnly}}e.from=r;function t(n){let o=n.multiDiffData.resources.map(i=>({originalUri:i.originalUri?y.revive(i.originalUri):void 0,modifiedUri:i.modifiedUri?y.revive(i.modifiedUri):void 0,goToFileUri:i.goToFileUri?y.revive(i.goToFileUri):void 0,added:i.added,removed:i.removed}));return new Oc(o,n.multiDiffData.title,n.readOnly)}e.to=t})(I4||={});var Dm;(e=>{function r(n){let o=s=>y.isUri(s),i=s=>"name"in s;return{kind:"inlineReference",name:n.title,inlineReference:o(n.value)?n.value:i(n.value)?Zl.from(n.value):Gr.from(n.value)}}e.from=r;function t(n){let o=Ht(n);return new Ss(y.isUri(o.inlineReference)?o.inlineReference:"location"in o.inlineReference?Zl.to(o.inlineReference):Gr.to(o.inlineReference),n.name)}e.to=t})(Dm||={});var Vv;(e=>{function r(n){return{kind:"progressMessage",content:me.from(n.value)}}e.from=r;function t(n){return new Uc(n.content.value)}e.to=t})(Vv||={});var Bv;(e=>{function r(n){return{kind:"thinking",value:n.value,id:n.id,metadata:n.metadata}}e.from=r;function t(n){return new Pi(n.value??"",n.id,n.metadata)}e.to=t})(Bv||={});var UC;(e=>{function r(n){return{kind:"hook",hookType:n.hookType,stopReason:n.stopReason,systemMessage:n.systemMessage,metadata:n.metadata}}e.from=r;function t(n){return new ba(n.hookType,n.stopReason,n.systemMessage,n.metadata)}e.to=t})(UC||={});var $v;(e=>{function r(n){return{kind:"warning",content:me.from(n.value)}}e.from=r;function t(n){return new Cs(n.content.value)}e.to=t})($v||={});var x4;(t=>{function r(e){return{kind:"extensions",extensions:e.extensions}}t.from=r})(x4||={});var S4;(t=>{function r(e,n,o){let i;if(e.command)i=n.toInternal(e.command,o);else{if(!e.uri)throw new Error("Pull request part must have a command if URI is provided");i={title:"Open Pull Request",id:"vscode.open",arguments:[e.uri]}}return{kind:"pullRequest",author:e.author,title:e.title,description:e.description,uri:e.uri,linkTag:e.linkTag,command:i}}t.from=r})(S4||={});var C4;(e=>{function r(n){return{kind:"move",uri:n.uri,range:K.from(n.range)}}e.from=r;function t(n){return new Sa(y.revive(n.uri),K.to(n.range))}e.to=t})(C4||={});var T4;(l=>{function r(d){let c,u;d.toolSpecificData&&t(d.toolSpecificData)?(c=e(d.toolSpecificData,d.isError),u=void 0):u=d.toolSpecificData?n(d.toolSpecificData):void 0;let m=d.presentation==="hidden"?"hidden":d.presentation==="hiddenAfterComplete"?"hiddenAfterComplete":void 0;return d.enablePartialUpdate?{kind:"externalToolInvocationUpdate",toolCallId:d.toolCallId,toolName:d.toolName,isComplete:!!d.isComplete,invocationMessage:d.invocationMessage?me.from(d.invocationMessage):void 0,pastTenseMessage:d.pastTenseMessage?me.from(d.pastTenseMessage):void 0,toolSpecificData:u,subagentInvocationId:d.subAgentInvocationId,resultDetails:c}:{kind:"toolInvocationSerialized",toolCallId:d.toolCallId,toolId:d.toolName,invocationMessage:d.invocationMessage?me.from(d.invocationMessage):d.toolName,originMessage:d.originMessage?me.from(d.originMessage):void 0,pastTenseMessage:d.pastTenseMessage?me.from(d.pastTenseMessage):void 0,isConfirmed:d.isConfirmed,isComplete:!0,source:Sn.External,toolSpecificData:u,resultDetails:c,presentation:m,subAgentInvocationId:d.subAgentInvocationId}}l.from=r;function t(d){return d!==null&&typeof d=="object"&&"input"in d&&typeof d.input=="string"&&"output"in d&&Array.isArray(d.output)}function e(d,c){return{input:d.input,output:d.output.map(u=>{let m=u.mimeType.startsWith("text/");return{type:"embed",mimeType:u.mimeType,value:m?W.wrap(u.data).toString():ir(W.wrap(u.data)),isText:m}}),isError:c??!1}}function n(d){return"command"in d&&"language"in d?{kind:"terminal",command:d.command,language:d.language}:"commandLine"in d&&"language"in d?{kind:"terminal",presentationOverrides:d.presentationOverrides&&typeof d.presentationOverrides.commandLine=="string"?{commandLine:d.presentationOverrides.commandLine,language:d.presentationOverrides.language}:void 0,commandLine:d.commandLine,language:d.language,terminalCommandOutput:typeof d.output?.text=="string"?{text:d.output.text}:void 0,terminalCommandState:d.state?{exitCode:d.state.exitCode,duration:d.state.duration}:void 0}:"todoList"in d&&Array.isArray(d.todoList)?{kind:"todoList",todoList:d.todoList.map(c=>({id:String(c.id),title:c.title,status:o(c.status)}))}:"input"in d&&"output"in d&&!Array.isArray(d.output)?{kind:"simpleToolInvocation",input:typeof d.input=="string"?d.input:"",output:typeof d.output=="string"?d.output:""}:d&&"values"in d&&Array.isArray(d.values)?{kind:"resources",values:d.values.map(c=>c instanceof Qt?Gr.from(c):y.revive(c))}:d instanceof mm?{kind:"subagent",description:d.description,agentName:d.agentName,prompt:d.prompt,result:d.result}:d}function o(d){switch(d){case 1:return"not-started";case 2:return"in-progress";case 3:return"completed";default:return"not-started"}}function i(d){switch(d){case"not-started":return 1;case"in-progress":return 2;case"completed":return 3;default:return 1}}function s(d){let c=new Fc(d.toolId||d.toolName,d.toolCallId,d.errorMessage);return d.invocationMessage&&(c.invocationMessage=d.invocationMessage),d.originMessage&&(c.originMessage=d.originMessage),d.pastTenseMessage&&(c.pastTenseMessage=d.pastTenseMessage),d.isConfirmed!==void 0&&(c.isConfirmed=d.isConfirmed),d.isComplete!==void 0&&(c.isComplete=d.isComplete),d.toolSpecificData&&(c.toolSpecificData=a(d.toolSpecificData)),c.subAgentInvocationId=d.subAgentInvocationId,c.subAgentName=d.subAgentName,c}l.to=s;function a(d){if(d.kind==="terminal")if(d.commandLine){let c={commandLine:d.commandLine,language:d.language};return d.terminalCommandOutput&&(c.output={text:d.terminalCommandOutput.text,truncated:d.terminalCommandOutput.truncated,lineCount:d.terminalCommandOutput.lineCount}),d.terminalCommandState&&(c.state={exitCode:d.terminalCommandState.exitCode,duration:d.terminalCommandState.duration}),c}else return{command:d.command,language:d.language};else{if(d.kind==="terminal2")return{commandLine:d.commandLine,language:d.language};if(d.kind==="todoList")return{todoList:d.todoList.map((c,u)=>{let m=Number(c.id);return{id:Number.isFinite(m)?m:u,title:c.title,status:i(c.status)}})}}return d}})(T4||={});var FC;(t=>{function r(e){return{kind:"progressTask",content:me.from(e.value)}}t.from=r})(FC||={});var C1;(t=>{function r(e){return{kind:"progressTaskResult",content:typeof e=="string"?me.from(e):void 0}}t.from=r})(C1||={});var Dv;(e=>{function r(n,o,i){return{kind:"command",command:o.toInternal(n.value,i)??{command:n.value.command,title:n.value.title}}}e.from=r;function t(n,o){return new ya(o.fromInternal(n.command)??{command:n.command.id,title:n.command.title})}e.to=t})(Dv||={});var HC;(e=>{function r(n){return{kind:"textEdit",uri:n.uri,edits:n.edits.map(o=>Cn.from(o)),done:n.isDone}}e.from=r;function t(n){let o=new Es(y.revive(n.uri),n.edits.map(i=>Cn.to(i)));return o.isDone=n.done,o}e.to=t})(HC||={});var WC;(t=>{function r(e){return e.newCellMetadata?{editType:3,index:e.range.start,metadata:e.newCellMetadata}:e.newNotebookMetadata?{editType:5,metadata:e.newNotebookMetadata}:{editType:1,index:e.range.start,count:e.range.end-e.range.start,cells:e.newCells.map(wv.from)}}t.from=r})(WC||={});var VC;(t=>{function r(e){return{kind:"notebookEdit",uri:e.uri,edits:e.edits.map(WC.from),done:e.isDone}}t.from=r})(VC||={});var BC;(t=>{function r(e){return{kind:"workspaceEdit",edits:e.edits.map(n=>({oldResource:n.oldResource,newResource:n.newResource}))}}t.from=r})(BC||={});var Gc;(e=>{function r(n){let o=Et.isThemeIcon(n.iconPath)?n.iconPath:y.isUri(n.iconPath)?{light:y.revive(n.iconPath)}:n.iconPath&&"light"in n.iconPath&&"dark"in n.iconPath&&y.isUri(n.iconPath.light)&&y.isUri(n.iconPath.dark)?{light:y.revive(n.iconPath.light),dark:y.revive(n.iconPath.dark)}:void 0;return typeof n.value=="object"&&"variableName"in n.value?{kind:"reference",reference:{variableName:n.value.variableName,value:y.isUri(n.value.value)||!n.value.value?n.value.value:Gr.from(n.value.value)},iconPath:o,options:n.options}:{kind:"reference",reference:y.isUri(n.value)||typeof n.value=="string"?n.value:Gr.from(n.value),iconPath:o,options:n.options}}e.from=r;function t(n){let o=Ht(n),i=s=>y.isUri(s)?s:Gr.to(s);return new qr(typeof o.reference=="string"?o.reference:"variableName"in o.reference?{variableName:o.reference.variableName,value:o.reference.value&&i(o.reference.value)}:i(o.reference))}e.to=t})(Gc||={});var $C;(t=>{function r(e){return{kind:"codeCitation",value:e.value,license:e.license,snippet:e.snippet}}t.from=r})($C||={});var Nm;(n=>{function r(o,i,s){return o instanceof fa?Pv.from(o):o instanceof Ss?Dm.from(o):o instanceof qr?Gc.from(o):o instanceof Uc?Vv.from(o):o instanceof Pi?Bv.from(o):o instanceof ba?UC.from(o):o instanceof va?_v.from(o):o instanceof Oc?I4.from(o):o instanceof ya?Dv.from(o,i,s):o instanceof Es?HC.from(o):o instanceof Ca?VC.from(o):o instanceof xs?LC.from(o):o instanceof Ia?MC.from(o):o instanceof Cs?$v.from(o):o instanceof ha?OC.from(o):o instanceof Ts?NC.from(o):o instanceof xa?$C.from(o):o instanceof Sa?C4.from(o):o instanceof Gl?x4.from(o):o instanceof Ql?S4.from(o,i,s):o instanceof Fc?T4.from(o):o instanceof Jl?BC.from(o):{kind:"markdownContent",content:me.from("")}}n.from=r;function t(o,i){switch(o.kind){case"reference":return Gc.to(o);case"markdownContent":case"inlineReference":case"progressMessage":case"treeData":case"command":return e(o,i)}}n.to=t;function e(o,i){switch(o.kind){case"markdownContent":return Pv.to(o);case"inlineReference":return Dm.to(o);case"progressMessage":return;case"treeData":return _v.to(o);case"command":return Dv.to(o,i)}}n.toContent=e})(Nm||={});var Um;(t=>{function r(e,n,o,i,s,a,l){let d=[],c=[];for(let g of e.variables.variables)g.kind==="tool"?d.push(g):g.kind==="toolset"?d.push(...g.value):c.push(g);let u=hl.parseLocalSessionId(e.sessionResource)??e.sessionResource.toString(),m={id:e.requestId,prompt:e.message,command:e.command,attempt:e.attempt??0,enableCommandDetection:e.enableCommandDetection??!0,isParticipantDetected:e.isParticipantDetected??!1,sessionId:u,sessionResource:e.sessionResource,references:c.map(g=>zC.to(g,i,l)).filter(uo),toolReferences:d.map(Qc.to),location:Fm.to(e.location),acceptedConfirmationData:e.acceptedConfirmationData,rejectedConfirmationData:e.rejectedConfirmationData,location2:n,toolInvocationToken:Object.freeze({sessionResource:e.sessionResource}),tools:s,model:o,editedFileEvents:e.editedFileEvents,modeInstructions:e.modeInstructions?.content,modeInstructions2:E4.to(e.modeInstructions),permissionLevel:e.permissionLevel,subAgentInvocationId:e.subAgentInvocationId,subAgentName:e.subAgentName,parentRequestId:e.parentRequestId,hasHooksEnabled:e.hasHooksEnabled??!1,hooks:e.hooks?P4.to(e.hooks):void 0};return Fe(a,"chatParticipantPrivate")||(delete m.id,delete m.attempt,delete m.enableCommandDetection,delete m.isParticipantDetected,delete m.location,delete m.location2,delete m.editedFileEvents,delete m.sessionId,delete m.subAgentInvocationId,delete m.subAgentName,delete m.parentRequestId,delete m.hasHooksEnabled,delete m.hooks),Fe(a,"chatParticipantAdditions")||(delete m.acceptedConfirmationData,delete m.rejectedConfirmationData,delete m.tools),m}t.to=r})(Um||={});var Fm;(e=>{function r(n){switch(n){case"notebook":return 3;case"terminal":return 2;case"panel":return 1;case"editor":return 4}}e.to=r;function t(n){switch(n){case 3:return"notebook";case 2:return"terminal";case 1:return"panel";case 4:return"editor"}}e.from=t})(Fm||={});var zC;(t=>{function r(e,n,o){let i=e.value;if(!i){let a;try{a=JSON.stringify(e)}catch{a=`kind=${e.kind}, id=${e.id}, name=${e.name}`}o.error(`[ChatPromptReference] Ignoring invalid reference in variable: ${a}`);return}if(tl(i))i=y.revive(i);else if(i&&typeof i=="object"&&"uri"in i&&"range"in i&&tl(i.uri))i=Gr.to(Ht(i));else if(c2(e)){let a=e.references?.[0]?.reference;i=new Tm(e.mimeType??"image/png",()=>Promise.resolve(new Uint8Array(Object.values(e.value))),a&&y.isUri(a)?a:void 0)}else if(e.kind==="diagnostic"){let a=e.filterSeverity&&EC.to(e.filterSeverity),l=e.filterUri&&y.revive(e.filterUri).toString();i=new Yl(n.map(([d,c])=>e.filterUri&&d.toString()!==l?[d,[]]:[d,c.filter(u=>!(a&&u.severity>a||e.filterRange&&!Ke.areIntersectingOrTouching(e.filterRange,K.from(u.range))))]).filter(([,d])=>d.length>0))}let s;return(qh(e)||u2(e))&&e.toolReferences&&(s=T1.to(e.toolReferences)),{id:e.id,name:e.name,range:e.range&&[e.range.start,e.range.endExclusive],toolReferences:s,value:i,modelDescription:e.modelDescription}}t.to=r})(zC||={});var Qc;(t=>{function r(e){if(e.value)throw new Error("Invalid tool reference");return{name:e.id,range:e.range&&[e.range.start,e.range.endExclusive]}}t.to=r})(Qc||={});var T1;(t=>{function r(e){let n=[];for(let o of e)if(o.kind==="tool")n.push(Qc.to(o));else if(o.kind==="toolset")n.push(...o.value.map(Qc.to));else throw new Error("Invalid tool reference in prompt variables");return n}t.to=r})(T1||={});var E4;(t=>{function r(e){if(e)return{uri:y.revive(e.uri),name:e.name,content:e.content,toolReferences:T1.to(e.toolReferences),metadata:e.metadata,isBuiltin:e.isBuiltin}}t.to=r})(E4||={});var E1;(t=>{function r(e,n,o){return{id:e.id,label:e.label,fullName:e.fullName,icon:e.icon?.id,value:e.values[0].value,insertText:e.insertText,detail:e.detail,documentation:e.documentation,command:n.toInternal(e.command,o)}}t.from=r})(E1||={});var Hm;(n=>{function r(o){return{errorDetails:o.errorDetails,metadata:e(o.metadata),nextQuestion:o.nextQuestion,details:o.details}}n.to=r;function t(o){return{errorDetails:o.errorDetails,metadata:o.metadata,nextQuestion:o.nextQuestion,details:o.details}}n.from=t;function e(o){return js(o,i=>{if(i.$mid===20)return new Xl(js(i.content,e));if(i.$mid===21)return new Jt(i.value);if(i.$mid===22)return new _i(i.value,i.id,i.metadata);if(i.$mid===23)return new jr(i.value)})}})(Hm||={});var w1;(t=>{function r(e,n,o){if(n.action.kind==="vote")return;let i=Hm.to(e);if(n.action.kind==="command"){let s=n.action.commandButton.command;return{action:{kind:"command",commandButton:{command:o.fromInternal(s)??{command:s.id,title:s.title}}},result:i}}else return n.action.kind==="followUp"?{action:{kind:"followUp",followup:RC.to(n.action.followup)},result:i}:n.action.kind==="inlineChat"?{action:{kind:"editor",accepted:n.action.action==="accepted"},result:i}:n.action.kind==="chatEditingSessionAction"?{action:{kind:"chatEditingSessionAction",outcome:new Map([["accepted",1],["rejected",2],["saved",3]]).get(n.action.outcome)??2,uri:y.revive(n.action.uri),hasRemainingEdits:n.action.hasRemainingEdits},result:i}:n.action.kind==="chatEditingHunkAction"?{action:{kind:"chatEditingHunkAction",outcome:new Map([["accepted",1],["rejected",2]]).get(n.action.outcome)??2,uri:y.revive(n.action.uri),hasRemainingEdits:n.action.hasRemainingEdits,lineCount:n.action.lineCount,linesAdded:n.action.linesAdded,linesRemoved:n.action.linesRemoved},result:i}:{action:n.action,result:i}}t.to=r})(w1||={});var qC;(t=>{function r(e,n,o){return"terminalCommand"in e?{terminalCommand:e.terminalCommand,shouldExecute:e.shouldExecute}:"uri"in e?{uri:e.uri}:n.toInternal(e,o)}t.from=r})(qC||={});var t1;(t=>{function r(e){return{...e,documentation:me.fromStrict(e.documentation)}}t.from=r})(t1||={});var k1;(t=>{function r(e,n){return Array.isArray(e)?{items:e.map(o=>t1.from(o))}:{items:e.items.map(o=>t1.from(o)),resourceOptions:e.resourceOptions?w4.from(e.resourceOptions,n):void 0}}t.from=r})(k1||={});var w4;(t=>{function r(e,n){return{...e,pathSeparator:n,cwd:e.cwd,globPattern:Ao.from(e.globPattern)??void 0}}t.from=r})(w4||={});var P1;(t=>{function r(e){return{kind:k4.to(e.kind),acceptedLength:e.acceptedLength}}t.to=r})(P1||={});var k4;(t=>{function r(e){switch(e){case 0:return 1;case 1:return 2;case 2:return 3;default:return 0}}t.to=r})(k4||={});var _1;(t=>{function r(e,n){if(e.kind===2){let o=e.supersededBy?n(e.supersededBy):void 0;return{kind:2,supersededBy:o,userTypingDisagreed:e.userTypingDisagreed}}else if(e.kind===0)return{kind:0};return{kind:1}}t.to=r})(_1||={});var D1;(e=>{function r(n){return n===2?2:1}e.from=r;function t(n){return n===2?2:1}e.to=t})(D1||={});var R1;(t=>{function r(e,n){return{id:n,label:e.label,description:e.description,canEdit:e.canEdit,collapsibleState:e.collapsibleState||0,contextValue:e.contextValue}}t.from=r})(R1||={});var A1;(t=>{function r(e){return e.type==="mcp"?new Pm(e.label,e.serverLabel||e.label,e.instructions):e.type==="extension"?new km(e.extensionId.value,e.label):void 0}t.to=r})(A1||={});var KC;(e=>{function r(n){let o=new Xl(n.content.map(i=>i.kind==="text"?new Jt(i.value,i.audience):i.kind==="data"?new Ln(i.value.data.buffer,i.value.mimeType,i.audience):new jr(i.value)));return n.toolMetadata!==void 0&&(o.toolMetadata=n.toolMetadata),n.toolResultError&&(o.hasError=!!n.toolResultError),o}e.to=r;function t(n,o){n.toolResultMessage&&A(o,"chatParticipantPrivate");let i=d=>{d.audience&&A(o,"languageModelToolResultAudience")},s=!1,a;Array.isArray(n.toolResultDetails)?a=n.toolResultDetails?.map(d=>y.isUri(d)?d:Gr.from(d)):n.toolResultDetails2&&(a={output:{type:"data",mimeType:n.toolResultDetails2.mime,value:W.wrap(n.toolResultDetails2.value)}},s=!0);let l={content:n.content.map(d=>{if(d instanceof Jt)return i(d),{kind:"text",value:d.value,audience:d.audience};if(d instanceof jr)return{kind:"promptTsx",value:d.value};if(d instanceof Ln)return i(d),s=!0,{kind:"data",value:{mimeType:d.mimeType,data:W.wrap(d.data)},audience:d.audience};throw new Error("Unknown LanguageModelToolResult part type")}),toolResultMessage:me.fromStrict(n.toolResultMessage),toolResultDetails:a,toolMetadata:n.toolMetadata,toolResultError:n.hasError};return s?new $t(l):l}e.from=t})(KC||={});var Ri;(n=>{function r(o){return o}n.fromThemeIcon=r;function t(o){if(o){if(Et.isThemeIcon(o))return o;if(y.isUri(o))return o;if(typeof o=="string")return y.file(o);if(typeof o=="object"&&o!==null&&"dark"in o){let i=typeof o.dark=="string"?y.file(o.dark):o.dark,s=typeof o.light=="string"?y.file(o.light):o.light;return i?{dark:i,light:s??i}:void 0}else return}else return}n.from=t;function e(o){if(o){if(Et.isThemeIcon(o))return o;if(tl(o))return y.revive(o);{let i=o;return{light:y.revive(i.light),dark:y.revive(i.dark)}}}else return}n.to=e})(Ri||={});var M1;(e=>{function r(n){return{query:n.query,kind:t(n.kind),settings:n.settings}}e.fromSettingsSearchResult=r;function t(n){switch(n){case 1:return 1;case 2:return 2;case 3:return 3;default:throw new Error("Unknown AiSettingsSearchResultKind")}}})(M1||={});var Wm;(n=>{function r(o){return!!o.uri}function t(o){return yc.toSerialized(r(o)?{type:2,uri:o.uri,headers:Object.entries(o.headers),authentication:o.authentication?{providerId:o.authentication.providerId,scopes:o.authentication.scopes}:void 0}:{type:1,cwd:o.cwd?.fsPath,args:o.args,command:o.command,env:o.env,envFile:void 0,sandbox:void 0})}n.from=t;function e(o){let i=yc.fromSerialized(o.launch);if(i.type===2)return new Vc(o.label,i.uri,Object.fromEntries(i.headers),o.cacheNonce==="$$NONE"?void 0:o.cacheNonce);{let s=new Wc(o.label,i.command,[...i.args],Object.fromEntries(Object.entries(i.env).map(([a,l])=>[a,l===null?null:String(l)])),o.cacheNonce==="$$NONE"?void 0:o.cacheNonce);return i.cwd&&(s.cwd=y.file(i.cwd)),s}}n.to=e})(Wm||={});var L1;(t=>{function r(e){switch(e){case 0:return 0;case 1:return 1;case 2:return 2;default:throw new Error("Unknown SourceControlInputBoxValidationType")}}t.from=r})(L1||={});var P4;(t=>{function r(e){let n={};for(let[o,i]of Object.entries(e)){if(!i||i.length===0)continue;let s=[];for(let a of i){let l=_4.to(a);l&&s.push(l)}s.length>0&&(n[o]=s)}return n}t.to=r})(P4||={});var _4;(t=>{function r(e){let n=C2(e,Yo);if(n)return{command:n,cwd:e.cwd,env:e.env,timeout:e.timeout}}t.to=r})(_4||={});var Vm;(e=>{function r(n){if(n!==void 0)switch(n){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;default:return}}function t(n){let o=n.timing,i=o?.created??o?.startTime??0,s=o?.lastRequestStarted??o?.startTime,a=o?.lastRequestEnded??o?.endTime;return{resource:n.resource,label:n.label,description:n.description?me.from(n.description):void 0,badge:n.badge?me.from(n.badge):void 0,status:r(n.status),archived:n.archived,tooltip:me.fromStrict(n.tooltip),timing:{created:i,lastRequestStarted:s,lastRequestEnded:a},changes:n.changes instanceof Array?n.changes:void 0,metadata:n.metadata}}e.from=t})(Vm||={});var jC=class r{constructor(t,e){this.line=t;this.character=e}isBefore(t){return!1}isBeforeOrEqual(t){return!1}isAfter(t){return!1}isAfterOrEqual(t){return!1}isEqual(t){return!1}compareTo(t){return 0}translate(t,e){return new r(0,0)}with(t){return new r(0,0)}},Bm=class r{constructor(t,e,n,o){this.isEmpty=!1;this.isSingleLine=!1;this.start=new jC(t,e),this.end=new jC(n,o)}contains(t){return!1}isEqual(t){return!1}intersection(t){}union(t){return new r(0,0,0,0)}with(t){return new r(0,0,0,0)}},Mo=class{constructor(t,e,n){this.uri=t;this.ranges=e;this.previewText=n}},Ps=class{constructor(t,e,n){this.uri=t;this.text=e;this.lineNumber=n}},Zc=class{constructor(t){this.keyword=t}},GC=(n=>(n[n.None=1]="None",n[n.FilesExclude=2]="FilesExclude",n[n.SearchAndFilesExclude=3]="SearchAndFilesExclude",n))(GC||{}),zv=(e=>(e[e.Information=1]="Information",e[e.Warning=2]="Warning",e))(zv||{});var td=2e4,D4="\u27EA ",R4=" characters skipped \u27EB",W3=(D4.length+R4.length+5)*2,V3=R("searchService");function qv(r){return!!r.rangeLocations&&!!r.previewText}var $m=class{constructor(t,e,n,o){this.rangeLocations=[];this.webviewIndex=o;let i=Array.isArray(e)?e:[e];if(n&&n.matchLines===1&&B3(i)){t=$N(t,n.matchLines);let s="",a=0,l=0,d=Math.floor(n.charsPerLine/5);for(let c of i){let u=Math.max(c.startColumn-d,0),m=c.startColumn+n.charsPerLine;if(u>l+d+W3){let g=D4+(u-l)+R4;s+=g+t.slice(u,m),a+=u-(l+g.length)}else s+=t.slice(l,m);l=m,this.rangeLocations.push({source:c,preview:new O1(0,c.startColumn-a,c.endColumn-a)})}this.previewText=s}else{let s=Array.isArray(e)?e[0].startLineNumber:e.startLineNumber,a=Ld(e,l=>({preview:new zm(l.startLineNumber-s,l.startColumn,l.endLineNumber-s,l.endColumn),source:l}));this.rangeLocations=Array.isArray(a)?a:[a],this.previewText=t}}};function B3(r){let t=r[0].startLineNumber;for(let e of r)if(e.startLineNumber!==t||e.endLineNumber!==t)return!1;return!0}var zm=class{constructor(t,e,n,o){this.startLineNumber=t,this.startColumn=e,this.endLineNumber=n,this.endColumn=o}},O1=class extends zm{constructor(t,e,n){super(t,e,t,n)}};function A4(r,t=!0){let e=r&&r.files&&r.files.exclude,n=t&&r&&r.search&&r.search.exclude;if(!e&&!n)return;if(!e||!n)return e||n||void 0;let o=Object.create(null);return o=Uo(o,it(e)),o=Uo(o,it(n),!0),o}function N1(r,t){let e=r.ignoreGlobCase?{ignoreCase:!0}:void 0;return r.excludePattern&&Br(r.excludePattern,t,e)?!1:r.includePattern||r.usingSearchPaths?r.includePattern&&Br(r.includePattern,t,e)?!0:r.usingSearchPaths?!!r.folderQueries&&r.folderQueries.some(n=>{let o=n.folder.fsPath;if(vr(t,o,r.ignoreGlobCase)){let i=ii(o,t);return!n.includePattern||!!Br(n.includePattern,i,e)}else return!1}):!1:!0}var _s=class extends Error{constructor(e,n){super(e);this.code=n}};function U1(r){let t={message:r.message,code:r.code};return new Error(JSON.stringify(t))}function M4(r){return!!r.path}function Kv(r,t,e=!0){let n=r.searchPath?r.searchPath:r.relativePath;return e?VN(n,t):Br(t,n)}function nd(r,t){let e={...r||{},...t||{}};return Object.keys(e).filter(n=>{let o=e[n];return typeof o=="boolean"&&o})}var qm=class{constructor(t,e){this._parsedIncludeExpression=null;let n=t.ignoreGlobCase||e.ignoreGlobCase?{ignoreCase:!0}:void 0;this._excludeExpression=e.excludePattern?.map(i=>({...t.excludePattern||{},...i.pattern||{}}))??[],this._excludeExpression.length===0&&(this._excludeExpression=[t.excludePattern||{}]),this._parsedExcludeExpression=this._excludeExpression.map(i=>vo(i,n));let o=t.includePattern;e.includePattern&&(o?o={...o,...e.includePattern}:o=e.includePattern),o&&(this._parsedIncludeExpression=vo(o,n))}_evalParsedExcludeExpression(t,e,n){let o=null;for(let i of this._parsedExcludeExpression){let s=i(t,e,n);if(typeof s=="string"){o=s;break}}return o}matchesExcludesSync(t,e,n){return!!(this._parsedExcludeExpression&&this._evalParsedExcludeExpression(t,e,n))}includedInQuerySync(t,e,n){return!(this._parsedExcludeExpression&&this._evalParsedExcludeExpression(t,e,n)||this._parsedIncludeExpression&&!this._parsedIncludeExpression(t,e,n))}includedInQuery(t,e,n){let o=()=>this._parsedIncludeExpression?!!this._parsedIncludeExpression(t,e,n):!0;return Promise.all(this._parsedExcludeExpression.map(i=>{let s=i(t,e,n);return Lr(s)?s.then(a=>a?!1:o()):o()})).then(i=>i.some(s=>!!s))}hasSiblingExcludeClauses(){return this._excludeExpression.reduce((t,e)=>$3(e)||t,!1)}};function $3(r){for(let t in r)if(typeof r[t]!="boolean")return!0;return!1}function L4(r){if(!r)return;let t;return e=>(t||(t=(r()||Promise.resolve([])).then(n=>n?O4(n):{})),t.then(n=>!!n[e]))}function jv(r){if(!r)return;let t;return e=>{if(!t){let n=r();t=n?O4(n):{}}return!!t[e]}}function O4(r){let t={};for(let e of r)t[e]=!0;return t}function QC(r){return r.flatMap(t=>t.patterns.map(e=>t.baseUri?{baseUri:t.baseUri,pattern:e}:e))}var Gv={matchLines:100,charsPerLine:1e4};var z3=!1,H1=class{constructor(t,e,n){this.id=t;this.dependencies=e;this.callback=n}};var W1=class r{constructor(){this._isWebWorker=typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope";this._isRenderer=typeof document=="object";this._defineCalls=[];this._state=1}static{this.INSTANCE=new r}_initialize(){if(this._state===1){if(globalThis.define){this._state=3;return}}else return;this._state=2,globalThis.define=(t,e,n)=>{typeof t!="string"&&(n=e,e=t,t=null),(typeof e!="object"||!Array.isArray(e))&&(n=e,e=null),this._defineCalls.push(new H1(t,e,n))},globalThis.define.amd=!0,this._isRenderer?this._amdPolicy=globalThis._VSCODE_WEB_PACKAGE_TTP??window.trustedTypes?.createPolicy("amdLoader",{createScriptURL(t){if(t.startsWith(window.location.origin)||t.startsWith(`${V.vscodeFileResource}://${TP}`))return t;throw new Error(`[trusted_script_src] Invalid script url: ${t}`)}}):this._isWebWorker&&(this._amdPolicy=globalThis._VSCODE_WEB_PACKAGE_TTP??globalThis.trustedTypes?.createPolicy("amdLoader",{createScriptURL(t){return t}}))}async load(t){if(this._initialize(),this._state===3)return new Promise(s=>{let a=Le();globalThis.define(a,[t],function(l){s(l)})});let e=await(this._isWebWorker?this._workerLoadScript(t):this._isRenderer?this._rendererLoadScript(t):this._nodeJSLoadScript(t));if(!e){console.warn(`Did not receive a define call from script ${t}`);return}let n={},o=[],i=[];if(Array.isArray(e.dependencies))for(let s of e.dependencies)s==="exports"?o.push(n):i.push(s);if(i.length>0)throw new Error(`Cannot resolve dependencies for script ${t}. The dependencies are: ${i.join(", ")}`);return typeof e.callback=="function"?e.callback(...o)??n:e.callback}_rendererLoadScript(t){return new Promise((e,n)=>{let o=document.createElement("script");o.setAttribute("async","async"),o.setAttribute("type","text/javascript");let i=()=>{o.removeEventListener("load",s),o.removeEventListener("error",a)},s=l=>{i(),e(this._defineCalls.pop())},a=l=>{i(),n(l)};o.addEventListener("load",s),o.addEventListener("error",a),this._amdPolicy&&(t=this._amdPolicy.createScriptURL(t)),o.setAttribute("src",t),window.document.getElementsByTagName("head")[0].appendChild(o)})}async _workerLoadScript(t){return this._amdPolicy&&(t=this._amdPolicy.createScriptURL(t)),await import(t),this._defineCalls.pop()}async _nodeJSLoadScript(t){try{let e=(await import("fs")).default,n=(await import("vm")).default,o=(await import("module")).default,i=y.parse(t).fsPath,s=e.readFileSync(i).toString(),a=o.wrap(s.replace(/^#!.*/,""));return new n.Script(a).runInThisContext().apply(),this._defineCalls.pop()}catch(e){throw e}}},F1=new Map;async function JC(r,t,e){e===void 0&&(e=!!(globalThis._VSCODE_PRODUCT_JSON??globalThis.vscode?.context?.configuration()?.product)?.commit);let n=t?`${r}/${t}`:r;if(F1.has(n))return F1.get(n);let o;if(/^\w[\w\d+.-]*:\/\//.test(n))o=n;else{let l=`${z3&&e&&!hr?nU:tU}/${n}`;o=nl.asBrowserUri(l).toString(!0)}let i=W1.INSTANCE.load(o);return F1.set(n,i),i}var Jv="utf8",q1="utf8bom",XC="utf16be",ZC="utf16le";var YC=[254,255],B1=[255,254],Qv=[239,187,191],q3=512,K3=512,j3=512*8,G3=512*128;var $1=class extends Error{constructor(e,n){super(e);this.decodeStreamErrorKind=n}},z1=class r{constructor(t){this.iconvLiteDecoder=t}static async create(t){let e;if(t!==Jv)e=(await JC("@vscode/iconv-lite-umd","lib/iconv-lite-umd.js")).getDecoder(F4(t));else{let n=new TextDecoder;e={write(o){return n.decode(o,{stream:!0})},end(){return n.decode()}}}return new r(e)}write(t){return this.iconvLiteDecoder.write(t)}end(){return this.iconvLiteDecoder.end()}};function N4(r,t){let e=t.minBytesRequiredForDetection??(t.guessEncoding?j3:K3);return new Promise((n,o)=>{let i=zd(u=>u.join("")),s=[],a=0,l,d=new Ce,c=async()=>{try{let u=await n6({buffer:W.concat(s),bytesRead:a},t.guessEncoding,t.candidateGuessEncodings);if(u.seemsBinary&&t.acceptTextOnly)throw new $1("Stream is binary but only text is accepted for decoding",1);u.encoding=await t.overwriteEncoding(u.encoding),l=await z1.create(u.encoding);let m=l.write(W.concat(s).buffer);i.write(m),s.length=0,a=0,n({stream:i,detected:u})}catch(u){d.cancel(),i.destroy(),o(u)}};nI(r,{onData:async u=>{l?i.write(l.write(u.buffer)):(s.push(u),a+=u.byteLength,a>=e&&(r.pause(),await c(),setTimeout(()=>r.resume())))},onError:u=>i.error(u),onEnd:async()=>{l||await c(),i.end(l?.end())}},d.token)})}async function U4(r,t,e){let o=(await JC("@vscode/iconv-lite-umd","lib/iconv-lite-umd.js")).getEncoder(F4(t),e),i=!1,s=!1;return{read(){if(s)return null;let a=r.read();if(typeof a!="string"){if(s=!0,!i&&e?.addBOM)switch(t){case Jv:case q1:return W.wrap(Uint8Array.from(Qv));case XC:return W.wrap(Uint8Array.from(YC));case ZC:return W.wrap(Uint8Array.from(B1))}let l=o.end();return l&&l.length>0?(i=!0,W.wrap(l)):null}return i=!0,W.wrap(o.write(a))}}}function F4(r){return r===q1||r===null?Jv:r}function Q3(r,t){if(!r||t<YC.length)return null;let e=r.readUInt8(0),n=r.readUInt8(1);if(e===YC[0]&&n===YC[1])return XC;if(e===B1[0]&&n===B1[1])return ZC;if(t<Qv.length)return null;let o=r.readUInt8(2);return e===Qv[0]&&n===Qv[1]&&o===Qv[2]?q1:null}var J3=["ascii","utf-16","utf-32"];async function Y3(r,t){let e=await JC("jschardet","dist/jschardet.min.js"),n=r.slice(0,G3),o=t6(n.buffer);t&&(t=nt(t.map(a=>e6(a))),t.length===0&&(t=void 0));let i;try{i=e.detect(o,t?{detectEncodings:t}:void 0)}catch{return null}if(!i?.encoding)return null;let s=i.encoding.toLowerCase();return 0<=J3.indexOf(s)?null:Z3(i.encoding)}var X3={ibm866:"cp866",big5:"cp950"};function H4(r){return r.replace(/[^a-zA-Z0-9]/g,"").toLowerCase()}function Z3(r){let t=H4(r);return X3[t]||t}function e6(r){let t=H4(r),e=o6[t];return e?e.guessableName:void 0}function t6(r){let t="";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t}function W4(r){switch(r){case"shiftjis":return"shift-jis";case"utf16le":return"utf-16le";case"utf16be":return"utf-16be";case"big5hkscs":return"big5-hkscs";case"eucjp":return"euc-jp";case"euckr":return"euc-kr";case"koi8r":return"koi8-r";case"koi8u":return"koi8-u";case"macroman":return"x-mac-roman";case"utf8bom":return"utf8";default:{let t=r.match(/windows(\d+)/);return t?"windows-"+t[1]:r}}}function n6({buffer:r,bytesRead:t},e,n){let o=Q3(r,t),i=!1;if(o!==XC&&o!==ZC&&r){let s=!0,a=!0,l=!1;for(let d=0;d<t&&d<q3;d++){let c=d%2===1,u=r.readUInt8(d)===0;if(u&&(l=!0),s&&(c&&!u||!c&&u)&&(s=!1),a&&(c&&u||!c&&!u)&&(a=!1),u&&!s&&!a)break}l&&(s?o=ZC:a?o=XC:i=!0)}return e&&!i&&!o&&r?Y3(r.slice(0,t),n).then(s=>({seemsBinary:!1,encoding:s})):{seemsBinary:i,encoding:o}}var V1={utf8:{labelLong:"UTF-8",labelShort:"UTF-8",order:1,alias:"utf8bom",guessableName:"UTF-8"},utf8bom:{labelLong:"UTF-8 with BOM",labelShort:"UTF-8 with BOM",encodeOnly:!0,order:2,alias:"utf8"},utf16le:{labelLong:"UTF-16 LE",labelShort:"UTF-16 LE",order:3,guessableName:"UTF-16LE"},utf16be:{labelLong:"UTF-16 BE",labelShort:"UTF-16 BE",order:4,guessableName:"UTF-16BE"},windows1252:{labelLong:"Western (Windows 1252)",labelShort:"Windows 1252",order:5,guessableName:"windows-1252"},iso88591:{labelLong:"Western (ISO 8859-1)",labelShort:"ISO 8859-1",order:6},iso88593:{labelLong:"Western (ISO 8859-3)",labelShort:"ISO 8859-3",order:7},iso885915:{labelLong:"Western (ISO 8859-15)",labelShort:"ISO 8859-15",order:8},macroman:{labelLong:"Western (Mac Roman)",labelShort:"Mac Roman",order:9},cp437:{labelLong:"DOS (CP 437)",labelShort:"CP437",order:10},windows1256:{labelLong:"Arabic (Windows 1256)",labelShort:"Windows 1256",order:11},iso88596:{labelLong:"Arabic (ISO 8859-6)",labelShort:"ISO 8859-6",order:12},windows1257:{labelLong:"Baltic (Windows 1257)",labelShort:"Windows 1257",order:13},iso88594:{labelLong:"Baltic (ISO 8859-4)",labelShort:"ISO 8859-4",order:14},iso885914:{labelLong:"Celtic (ISO 8859-14)",labelShort:"ISO 8859-14",order:15},windows1250:{labelLong:"Central European (Windows 1250)",labelShort:"Windows 1250",order:16,guessableName:"windows-1250"},iso88592:{labelLong:"Central European (ISO 8859-2)",labelShort:"ISO 8859-2",order:17,guessableName:"ISO-8859-2"},cp852:{labelLong:"Central European (CP 852)",labelShort:"CP 852",order:18},windows1251:{labelLong:"Cyrillic (Windows 1251)",labelShort:"Windows 1251",order:19,guessableName:"windows-1251"},cp866:{labelLong:"Cyrillic (CP 866)",labelShort:"CP 866",order:20,guessableName:"IBM866"},cp1125:{labelLong:"Cyrillic (CP 1125)",labelShort:"CP 1125",order:21,guessableName:"IBM1125"},iso88595:{labelLong:"Cyrillic (ISO 8859-5)",labelShort:"ISO 8859-5",order:22,guessableName:"ISO-8859-5"},koi8r:{labelLong:"Cyrillic (KOI8-R)",labelShort:"KOI8-R",order:23,guessableName:"KOI8-R"},koi8u:{labelLong:"Cyrillic (KOI8-U)",labelShort:"KOI8-U",order:24},iso885913:{labelLong:"Estonian (ISO 8859-13)",labelShort:"ISO 8859-13",order:25},windows1253:{labelLong:"Greek (Windows 1253)",labelShort:"Windows 1253",order:26,guessableName:"windows-1253"},iso88597:{labelLong:"Greek (ISO 8859-7)",labelShort:"ISO 8859-7",order:27,guessableName:"ISO-8859-7"},windows1255:{labelLong:"Hebrew (Windows 1255)",labelShort:"Windows 1255",order:28,guessableName:"windows-1255"},iso88598:{labelLong:"Hebrew (ISO 8859-8)",labelShort:"ISO 8859-8",order:29,guessableName:"ISO-8859-8"},iso885910:{labelLong:"Nordic (ISO 8859-10)",labelShort:"ISO 8859-10",order:30},iso885916:{labelLong:"Romanian (ISO 8859-16)",labelShort:"ISO 8859-16",order:31},windows1254:{labelLong:"Turkish (Windows 1254)",labelShort:"Windows 1254",order:32},iso88599:{labelLong:"Turkish (ISO 8859-9)",labelShort:"ISO 8859-9",order:33},windows1258:{labelLong:"Vietnamese (Windows 1258)",labelShort:"Windows 1258",order:34},gbk:{labelLong:"Simplified Chinese (GBK)",labelShort:"GBK",order:35},gb18030:{labelLong:"Simplified Chinese (GB18030)",labelShort:"GB18030",order:36},cp950:{labelLong:"Traditional Chinese (Big5)",labelShort:"Big5",order:37,guessableName:"Big5"},big5hkscs:{labelLong:"Traditional Chinese (Big5-HKSCS)",labelShort:"Big5-HKSCS",order:38},shiftjis:{labelLong:"Japanese (Shift JIS)",labelShort:"Shift JIS",order:39,guessableName:"SHIFT_JIS"},eucjp:{labelLong:"Japanese (EUC-JP)",labelShort:"EUC-JP",order:40,guessableName:"EUC-JP"},euckr:{labelLong:"Korean (EUC-KR)",labelShort:"EUC-KR",order:41,guessableName:"EUC-KR"},windows874:{labelLong:"Thai (Windows 874)",labelShort:"Windows 874",order:42},iso885911:{labelLong:"Latin/Thai (ISO 8859-11)",labelShort:"ISO 8859-11",order:43},koi8ru:{labelLong:"Cyrillic (KOI8-RU)",labelShort:"KOI8-RU",order:44},koi8t:{labelLong:"Tajik (KOI8-T)",labelShort:"KOI8-T",order:45},gb2312:{labelLong:"Simplified Chinese (GB 2312)",labelShort:"GB 2312",order:46,guessableName:"GB2312"},cp865:{labelLong:"Nordic DOS (CP 865)",labelShort:"CP 865",order:47},cp850:{labelLong:"Western European DOS (CP 850)",labelShort:"CP 850",order:48}},o6=(()=>{let r={};for(let t in V1)V1[t].guessableName&&(r[t]=V1[t]);return r})();var Bke=R("textFileService");function V4(r){let t=!1;return{read(){return t?null:(t=!0,r)}}}function Xv(r,t,e){return new Ji(n=>tT(n,e)).isEqual(r,t)}function r6(r,t,e){return Xv(r.uri,t.uri,e)?0:si(r.uri.toString(),t.uri.toString())}function i6(r,t,e){return r.index!==t.index?r.index<t.index?-1:1:Xv(r.uri,t.uri,e)?si(r.name,t.name):si(r.uri.toString(),t.uri.toString())}function $4(r,t,e,n){let o=r.slice(0).sort((s,a)=>e(s,a,n)),i=t.slice(0).sort((s,a)=>e(s,a,n));return KO(o,i,(s,a)=>e(s,a,n))}function tT(r,t){let e=t.getCapabilities(r.scheme);return!(e&&e&1024)}var Yv=class r extends OI{constructor(e,n,o,i,s,a,l){super(e,o.map(d=>new ic(d)),i,s,l);this._name=n;this._isUntitled=a;this._workspaceFolders=[];this._structure=Bo.forUris(l,()=>!0),o.forEach(d=>{this._workspaceFolders.push(d),this._structure.set(d.uri,d)})}static toExtHostWorkspace(e,n,o,i){if(!e)return{workspace:null,added:[],removed:[]};let{id:s,name:a,folders:l,configuration:d,transient:c,isUntitled:u}=e,m=[],g=n;n?l.forEach((S,E)=>{let P=y.revive(S.uri),L=r._findFolder(o||n,P,i);L?(L.name=S.name,L.index=S.index,m.push(L)):m.push({uri:P,name:S.name,index:E})}):m.push(...l.map(({uri:S,name:E,index:P})=>({uri:y.revive(S),name:E,index:P}))),m.sort((S,E)=>S.index<E.index?-1:1);let h=new r(s,a,m,!!c,d?y.revive(d):null,!!u,S=>tT(S,i)),{added:f,removed:I}=$4(g?g.workspaceFolders:[],h.workspaceFolders,r6,i);return{workspace:h,added:f,removed:I}}static _findFolder(e,n,o){for(let i=0;i<e.folders.length;i++){let s=e.workspaceFolders[i];if(Xv(s.uri,n,o))return s}}get name(){return this._name}get isUntitled(){return this._isUntitled}get workspaceFolders(){return this._workspaceFolders.slice(0)}getWorkspaceFolder(e,n){return n&&this._structure.get(e)&&(e=li(e)),this._structure.findSubstr(e)}resolveWorkspaceFolder(e){return this._structure.get(e)}},Km=class{constructor(t,e,n,o,i){this._onDidChangeWorkspace=new T;this.onDidChangeWorkspace=this._onDidChangeWorkspace.event;this._onDidGrantWorkspaceTrust=new T;this.onDidGrantWorkspaceTrust=this._onDidGrantWorkspaceTrust.event;this._onDidChangeWorkspaceTrustedFolders=new T;this.onDidChangeWorkspaceTrustedFolders=this._onDidChangeWorkspaceTrustedFolders.event;this._activeSearchCallbacks=[];this._trusted=!1;this._editSessionIdentityProviders=new Map;this._providerHandlePool=0;this._onWillCreateEditSessionIdentityEvent=new Ki;this._canonicalUriProviders=new Map;this._logService=o,this._extHostFileSystemInfo=n,this._uriTransformerService=i,this._requestIdProvider=new RI,this._barrier=new hn,this._proxy=t.getProxy(U.MainThreadWorkspace),this._messageService=t.getProxy(U.MainThreadMessageService);let s=e.workspace;this._confirmedWorkspace=s?new Yv(s.id,s.name,[],!!s.transient,s.configuration?y.revive(s.configuration):null,!!s.isUntitled,a=>tT(a,n)):void 0}$initializeWorkspace(t,e){this._trusted=e,this.$acceptWorkspaceData(t),this._barrier.open()}waitForInitializeCall(){return this._barrier.wait()}get workspace(){return this._actualWorkspace}get name(){return this._actualWorkspace?this._actualWorkspace.name:void 0}get workspaceFile(){if(this._actualWorkspace&&this._actualWorkspace.configuration)return this._actualWorkspace.isUntitled?y.from({scheme:V.untitled,path:qt(li(this._actualWorkspace.configuration))}):this._actualWorkspace.configuration}get _actualWorkspace(){return this._unconfirmedWorkspace||this._confirmedWorkspace}getWorkspaceFolders(){if(this._actualWorkspace)return this._actualWorkspace.workspaceFolders.slice(0)}async getWorkspaceFolders2(){if(await this._barrier.wait(),!!this._actualWorkspace)return this._actualWorkspace.workspaceFolders.slice(0)}updateWorkspaceFolders(t,e,n,...o){let i=[];if(Array.isArray(o)&&o.forEach(c=>{y.isUri(c.uri)&&!i.some(u=>Xv(u.uri,c.uri,this._extHostFileSystemInfo))&&i.push({uri:c.uri,name:c.name||oh(c.uri)})}),this._unconfirmedWorkspace||[e,n].some(c=>typeof c!="number"||c<0)||n===0&&i.length===0)return!1;let s=this._actualWorkspace?this._actualWorkspace.workspaceFolders:[];if(e+n>s.length)return!1;let a=s.slice(0);a.splice(e,n,...i.map(c=>({uri:c.uri,name:c.name||oh(c.uri),index:void 0})));for(let c=0;c<a.length;c++){let u=a[c];if(a.some((m,g)=>g!==c&&Xv(u.uri,m.uri,this._extHostFileSystemInfo)))return!1}a.forEach((c,u)=>c.index=u);let{added:l,removed:d}=$4(s,a,i6,this._extHostFileSystemInfo);if(l.length===0&&d.length===0)return!1;if(this._proxy){let c=t.displayName||t.name;this._proxy.$updateWorkspaceFolders(c,e,n,i).then(void 0,u=>{this._unconfirmedWorkspace=void 0;let m={source:{identifier:t.identifier,label:t.displayName||t.name}};this._messageService.$showMessage(IF.Error,p(3328,null,c,u.toString()),m,[])})}return this.trySetWorkspaceFolders(a),!0}getWorkspaceFolder(t,e){if(this._actualWorkspace)return this._actualWorkspace.getWorkspaceFolder(t,e)}async getWorkspaceFolder2(t,e){if(await this._barrier.wait(),!!this._actualWorkspace)return this._actualWorkspace.getWorkspaceFolder(t,e)}async resolveWorkspaceFolder(t){if(await this._barrier.wait(),!!this._actualWorkspace)return this._actualWorkspace.resolveWorkspaceFolder(t)}getPath(){if(!this._actualWorkspace)return;let{folders:t}=this._actualWorkspace;if(t.length!==0)return t[0].uri.fsPath}getRelativePath(t,e){let n,o="";if(typeof t=="string"?(n=y.file(t),o=t):typeof t<"u"&&(n=t,o=t.fsPath),!n)return o;let i=this.getWorkspaceFolder(n,!0);if(!i)return o;typeof e>"u"&&this._actualWorkspace&&(e=this._actualWorkspace.folders.length>1);let s=rh(i.uri,n);return e&&i.name&&(s=`${i.name}/${s}`),s}trySetWorkspaceFolders(t){this._actualWorkspace&&(this._unconfirmedWorkspace=Yv.toExtHostWorkspace({id:this._actualWorkspace.id,name:this._actualWorkspace.name,configuration:this._actualWorkspace.configuration,folders:t,isUntitled:this._actualWorkspace.isUntitled},this._actualWorkspace,void 0,this._extHostFileSystemInfo).workspace||void 0)}$acceptWorkspaceData(t){let{workspace:e,added:n,removed:o}=Yv.toExtHostWorkspace(t,this._confirmedWorkspace,this._unconfirmedWorkspace,this._extHostFileSystemInfo);this._confirmedWorkspace=e||void 0,this._unconfirmedWorkspace=void 0,this._onDidChangeWorkspace.fire(Object.freeze({added:n,removed:o}))}findFiles(t,e,n,o,i=he.None){this._logService.trace(`extHostWorkspace#findFiles: fileSearch, extension: ${o.value}, entryPoint: findFiles`);let s="",a=!0;return e===null?a=!1:e!==void 0&&(typeof e=="string"?s=e:s=e.pattern),this._findFilesImpl({type:"include",value:t},{exclude:[s],maxResults:n,useExcludeSettings:a?2:1,useIgnoreFiles:{local:!1}},i)}findFiles2(t,e={},n,o=he.None){return this._logService.trace(`extHostWorkspace#findFiles2New: fileSearch, extension: ${n.value}, entryPoint: findFiles2New`),this._findFilesImpl({type:"filePatterns",value:t},e,o)}async _findFilesImpl(t,e,n){if(n.isCancellationRequested)return Promise.resolve([]);let o=t.type==="include"?[t.value]:t.value??[];if(!Array.isArray(o))throw console.error("Invalid file pattern provided",o),new Error(`Invalid file pattern provided ${JSON.stringify(o)}`);let i=o.map(s=>{let a=B4(e.exclude),l={ignoreSymlinks:typeof e.followSymlinks=="boolean"?!e.followSymlinks:void 0,disregardIgnoreFiles:typeof e.useIgnoreFiles?.local=="boolean"?!e.useIgnoreFiles.local:void 0,disregardGlobalIgnoreFiles:typeof e.useIgnoreFiles?.global=="boolean"?!e.useIgnoreFiles.global:void 0,disregardParentIgnoreFiles:typeof e.useIgnoreFiles?.parent=="boolean"?!e.useIgnoreFiles.parent:void 0,disregardExcludeSettings:e.useExcludeSettings!==void 0&&e.useExcludeSettings===1,disregardSearchExcludeSettings:e.useExcludeSettings!==void 0&&e.useExcludeSettings!==3,maxResults:e.maxResults,excludePattern:a.length>0?a:void 0,_reason:"startFileSearch",shouldGlobSearch:t.type==="include"?void 0:!0},d=eT(Ao.from(s)),c=d?.folder;return t.type==="include"?l.includePattern=d?.pattern:l.filePattern=d?.pattern,{folder:c,options:l}});return this._findFilesBase(i,n)}async _findFilesBase(t,e){let o=(await Promise.all(t?.map(a=>this._proxy.$startFileSearch(a.folder??null,a.options,e).then(l=>Array.isArray(l)?l.map(d=>y.revive(d)):[]))??[])).flat(),i=new Ji(a=>tT(a,this._extHostFileSystemInfo)),s=new Map;for(let a of o){let l=i.getComparisonKey(a);s.has(l)||s.set(l,a)}return Array.from(s.values())}findTextInFiles2(t,e,n,o=he.None){this._logService.trace(`extHostWorkspace#findTextInFiles2: textSearch, extension: ${n.value}, entryPoint: findTextInFiles2`);let i=m=>{if(!e)return{folder:void 0,options:{}};let g=m?eT(Ao.from(m)):void 0,h=e.exclude?B4(e.exclude):void 0;return{options:{ignoreSymlinks:typeof e.followSymlinks=="boolean"?!e.followSymlinks:void 0,disregardIgnoreFiles:typeof e.useIgnoreFiles?.local=="boolean"?!e.useIgnoreFiles?.local:void 0,disregardGlobalIgnoreFiles:typeof e.useIgnoreFiles?.global=="boolean"?!e.useIgnoreFiles?.global:void 0,disregardParentIgnoreFiles:typeof e.useIgnoreFiles?.parent=="boolean"?!e.useIgnoreFiles?.parent:void 0,disregardExcludeSettings:e.useExcludeSettings!==void 0&&e.useExcludeSettings===1,disregardSearchExcludeSettings:e.useExcludeSettings!==void 0&&e.useExcludeSettings!==3,fileEncoding:e.encoding,maxResults:e.maxResults,previewOptions:e.previewOptions?{matchLines:e.previewOptions?.numMatchLines??100,charsPerLine:e.previewOptions?.charsPerLine??1e4}:void 0,surroundingContext:e.surroundingContext,includePattern:g?.pattern,excludePattern:h},folder:g?.folder}},a=(e?.include?.map(m=>i(m))??[i(void 0)]).filter(m=>!!m),l=new $,d=l.add(new T),c=this.findTextInFilesBase(t,a,(m,g)=>d.fire({result:m,uri:g}),o);return{results:new tp(async m=>{l.add(d.event(g=>{let h=g.result,f=g.uri;qv(h)?m.emitOne(new Mo(f,h.rangeLocations.map(I=>({previewRange:new ge(I.preview.startLineNumber,I.preview.startColumn,I.preview.endLineNumber,I.preview.endColumn),sourceRange:new ge(I.source.startLineNumber,I.source.startColumn,I.source.endLineNumber,I.source.endColumn)})),h.previewText)):m.emitOne(new Ps(f,h.text,h.lineNumber))})),await c}),complete:c.then(m=>(l.dispose(),{limitHit:m?.limitHit??!1}))}}async findTextInFilesBase(t,e,n,o=he.None){let i=this._requestIdProvider.getNext(),s=!1;if(o.onCancellationRequested(a=>{s=!0}),this._activeSearchCallbacks[i]=a=>{if(s)return;let l=y.revive(a.resource);a.results.forEach(d=>{let c=Ht(d);n(c,l)})},o.isCancellationRequested)return{};try{let a=await Promise.all(e?.map(l=>this._proxy.$startTextSearch(t,l.folder??null,l.options,i,o)||{})??[]);return delete this._activeSearchCallbacks[i],a.reduce((l,d)=>({limitHit:l?.limitHit||(d?.limitHit??!1),message:[l?.message??[],d?.message??[]].flat()}),{})??{limitHit:!1}}catch(a){throw delete this._activeSearchCallbacks[i],a}}async findTextInFiles(t,e,n,o,i=he.None){this._logService.trace(`extHostWorkspace#findTextInFiles: textSearch, extension: ${o.value}, entryPoint: findTextInFiles`);let s=typeof e.previewOptions>"u"?{matchLines:100,charsPerLine:1e4}:e.previewOptions,a=eT(Ao.from(e.include)),l=typeof e.exclude=="string"?e.exclude:e.exclude?e.exclude.pattern:void 0,d={ignoreSymlinks:typeof e.followSymlinks=="boolean"?!e.followSymlinks:void 0,disregardIgnoreFiles:typeof e.useIgnoreFiles=="boolean"?!e.useIgnoreFiles:void 0,disregardGlobalIgnoreFiles:typeof e.useGlobalIgnoreFiles=="boolean"?!e.useGlobalIgnoreFiles:void 0,disregardParentIgnoreFiles:typeof e.useParentIgnoreFiles=="boolean"?!e.useParentIgnoreFiles:void 0,disregardExcludeSettings:typeof e.useDefaultExcludes=="boolean"?!e.useDefaultExcludes:!0,disregardSearchExcludeSettings:typeof e.useSearchExclude=="boolean"?!e.useSearchExclude:!0,fileEncoding:e.encoding,maxResults:e.maxResults,previewOptions:s,surroundingContext:e.afterContext,includePattern:a?.pattern,excludePattern:l?[{pattern:l}]:void 0},c=(u,m)=>{qv(u)?n({uri:m,preview:{text:u.previewText,matches:Ld(u.rangeLocations,g=>new ge(g.preview.startLineNumber,g.preview.startColumn,g.preview.endLineNumber,g.preview.endColumn))},ranges:Ld(u.rangeLocations,g=>new ge(g.source.startLineNumber,g.source.startColumn,g.source.endLineNumber,g.source.endColumn))}):n({uri:m,text:u.text,lineNumber:u.lineNumber})};return this.findTextInFilesBase(t,[{options:d,folder:a?.folder}],c,i)}$handleTextSearchResult(t,e){this._activeSearchCallbacks[e]?.(t)}async save(t){let e=await this._proxy.$save(t,{saveAs:!1});return y.revive(e)}async saveAs(t){let e=await this._proxy.$save(t,{saveAs:!0});return y.revive(e)}saveAll(t){return this._proxy.$saveAll(t)}resolveProxy(t){return this._proxy.$resolveProxy(t)}lookupAuthorization(t){return this._proxy.$lookupAuthorization(t)}lookupKerberosAuthorization(t){return this._proxy.$lookupKerberosAuthorization(t)}loadCertificates(){return this._proxy.$loadCertificates()}get trusted(){return this._trusted}requestResourceTrust(t){return this._proxy.$requestResourceTrust(t)}requestWorkspaceTrust(t){return this._proxy.$requestWorkspaceTrust(t)}$onDidGrantWorkspaceTrust(){this._trusted||(this._trusted=!0,this._onDidGrantWorkspaceTrust.fire())}$onDidChangeWorkspaceTrustedFolders(){this._onDidChangeWorkspaceTrustedFolders.fire()}isResourceTrusted(t){return this._proxy.$isResourceTrusted(t)}registerEditSessionIdentityProvider(t,e){if(this._editSessionIdentityProviders.has(t))throw new Error(`A provider has already been registered for scheme ${t}`);this._editSessionIdentityProviders.set(t,e);let n=this._uriTransformerService.transformOutgoingScheme(t),o=this._providerHandlePool++;return this._proxy.$registerEditSessionIdentityProvider(o,n),G(()=>{this._editSessionIdentityProviders.delete(t),this._proxy.$unregisterEditSessionIdentityProvider(o)})}async $getEditSessionIdentifier(t,e){this._logService.info("Getting edit session identifier for workspaceFolder",t);let n=await this.resolveWorkspaceFolder(y.revive(t));if(!n){this._logService.warn("Unable to resolve workspace folder");return}this._logService.info("Invoking #provideEditSessionIdentity for workspaceFolder",n);let o=this._editSessionIdentityProviders.get(n.uri.scheme);if(this._logService.info(`Provider for scheme ${n.uri.scheme} is defined: `,!!o),!o)return;let i=await o.provideEditSessionIdentity(n,e);if(this._logService.info("Provider returned edit session identifier: ",i),!!i)return i}async $provideEditSessionIdentityMatch(t,e,n,o){this._logService.info("Getting edit session identifier for workspaceFolder",t);let i=await this.resolveWorkspaceFolder(y.revive(t));if(!i){this._logService.warn("Unable to resolve workspace folder");return}this._logService.info("Invoking #provideEditSessionIdentity for workspaceFolder",i);let s=this._editSessionIdentityProviders.get(i.uri.scheme);if(this._logService.info(`Provider for scheme ${i.uri.scheme} is defined: `,!!s),!s)return;let a=await s.provideEditSessionIdentityMatch?.(e,n,o);if(this._logService.info("Provider returned edit session identifier match result: ",a),!!a)return a}getOnWillCreateEditSessionIdentityEvent(t){return(e,n,o)=>{let i=function(a){e.call(n,a)};return i.extension=t,this._onWillCreateEditSessionIdentityEvent.event(i,void 0,o)}}async $onWillCreateEditSessionIdentity(t,e,n){let o=await this.resolveWorkspaceFolder(y.revive(t));if(o===void 0)throw new Error("Unable to resolve workspace folder");await this._onWillCreateEditSessionIdentityEvent.fireAsync({workspaceFolder:o},e,async(i,s)=>{let a=Date.now();await Promise.resolve(i),Date.now()-a>n&&this._logService.warn("SLOW edit session create-participant",s.extension.identifier)}),e.isCancellationRequested}registerCanonicalUriProvider(t,e){if(this._canonicalUriProviders.has(t))throw new Error(`A provider has already been registered for scheme ${t}`);this._canonicalUriProviders.set(t,e);let n=this._uriTransformerService.transformOutgoingScheme(t),o=this._providerHandlePool++;return this._proxy.$registerCanonicalUriProvider(o,n),G(()=>{this._canonicalUriProviders.delete(t),this._proxy.$unregisterCanonicalUriProvider(o)})}async provideCanonicalUri(t,e,n){let o=this._canonicalUriProviders.get(t.scheme);if(!o)return;let i=await o.provideCanonicalUri?.(y.revive(t),e,n);if(i)return i}async $provideCanonicalUri(t,e,n){return this.provideCanonicalUri(y.revive(t),{targetScheme:e},n)}async decode(t,e){let[n,o]=this.toEncodeDecodeParameters(e),i=await this._proxy.$resolveDecoding(n,o),s=(await N4(vU(W.wrap(t)),{...i,acceptTextOnly:!0,overwriteEncoding:a=>a===null||a===i.preferredEncoding?Promise.resolve(i.preferredEncoding):this._proxy.$validateDetectedEncoding(n,a,o)})).stream;return tI(s,a=>a.join(""))}async encode(t,e){let[n,o]=this.toEncodeDecodeParameters(e),{encoding:i,addBOM:s}=await this._proxy.$resolveEncoding(n,o);if(i===Jv&&!s)return W.fromString(t).buffer;let a=await U4(V4(t),i,{addBOM:s});return hU(a).buffer}toEncodeDecodeParameters(t){let e=tl(t?.uri)?t.uri:void 0,n=typeof t?.encoding=="string"?t.encoding:void 0;return[e,n?{encoding:n}:void 0]}};Km=_([C(0,ie),C(1,Ye),C(2,Ur),C(3,oe),C(4,Zi)],Km);var _n=R("IExtHostWorkspace");function eT(r){let t,e;if(r)return typeof r=="string"?t=r:(t=r.pattern,e=y.revive(r.baseUri)),{pattern:t,folder:e}}function B4(r){return(r?.map(t=>{if(typeof t=="string")return t===""?void 0:{pattern:t,uri:void 0};{let e=eT(t);return e?{pattern:e.pattern,uri:e.folder}:void 0}})??[]).filter(t=>!!t)}var z4;(t=>t.DEFAULT={allowTrailingComma:!0})(z4||={});function s6(r,t=!1){let e=0,n=r.length,o="",i=0,s=16,a=0;function l(f){let I=0,S=0;for(;I<f;){let E=r.charCodeAt(e);if(E>=48&&E<=57)S=S*16+E-48;else if(E>=65&&E<=70)S=S*16+E-65+10;else if(E>=97&&E<=102)S=S*16+E-97+10;else break;e++,I++}return I<f&&(S=-1),S}function d(f){e=f,o="",i=0,s=16,a=0}function c(){let f=e;if(r.charCodeAt(e)===48)e++;else for(e++;e<r.length&&jm(r.charCodeAt(e));)e++;if(e<r.length&&r.charCodeAt(e)===46)if(e++,e<r.length&&jm(r.charCodeAt(e)))for(e++;e<r.length&&jm(r.charCodeAt(e));)e++;else return a=3,r.substring(f,e);let I=e;if(e<r.length&&(r.charCodeAt(e)===69||r.charCodeAt(e)===101))if(e++,(e<r.length&&r.charCodeAt(e)===43||r.charCodeAt(e)===45)&&e++,e<r.length&&jm(r.charCodeAt(e))){for(e++;e<r.length&&jm(r.charCodeAt(e));)e++;I=e}else a=3;return r.substring(f,I)}function u(){let f="",I=e;for(;;){if(e>=n){f+=r.substring(I,e),a=2;break}let S=r.charCodeAt(e);if(S===34){f+=r.substring(I,e),e++;break}if(S===92){if(f+=r.substring(I,e),e++,e>=n){a=2;break}switch(r.charCodeAt(e++)){case 34:f+='"';break;case 92:f+="\\";break;case 47:f+="/";break;case 98:f+="\b";break;case 102:f+="\f";break;case 110:f+=`
`;break;case 114:f+="\r";break;case 116:f+="	";break;case 117:{let P=l(4);P>=0?f+=String.fromCharCode(P):a=4;break}default:a=5}I=e;continue}if(S>=0&&S<=31)if(nT(S)){f+=r.substring(I,e),a=2;break}else a=6;e++}return f}function m(){if(o="",a=0,i=e,e>=n)return i=n,s=17;let f=r.charCodeAt(e);if(K1(f)){do e++,o+=String.fromCharCode(f),f=r.charCodeAt(e);while(K1(f));return s=15}if(nT(f))return e++,o+=String.fromCharCode(f),f===13&&r.charCodeAt(e)===10&&(e++,o+=`
`),s=14;switch(f){case 123:return e++,s=1;case 125:return e++,s=2;case 91:return e++,s=3;case 93:return e++,s=4;case 58:return e++,s=6;case 44:return e++,s=5;case 34:return e++,o=u(),s=10;case 47:{let I=e-1;if(r.charCodeAt(e+1)===47){for(e+=2;e<n&&!nT(r.charCodeAt(e));)e++;return o=r.substring(I,e),s=12}if(r.charCodeAt(e+1)===42){e+=2;let S=n-1,E=!1;for(;e<S;){if(r.charCodeAt(e)===42&&r.charCodeAt(e+1)===47){e+=2,E=!0;break}e++}return E||(e++,a=1),o=r.substring(I,e),s=13}return o+=String.fromCharCode(f),e++,s=16}case 45:if(o+=String.fromCharCode(f),e++,e===n||!jm(r.charCodeAt(e)))return s=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return o+=c(),s=11;default:for(;e<n&&g(f);)e++,f=r.charCodeAt(e);if(i!==e){switch(o=r.substring(i,e),o){case"true":return s=8;case"false":return s=9;case"null":return s=7}return s=16}return o+=String.fromCharCode(f),e++,s=16}}function g(f){if(K1(f)||nT(f))return!1;switch(f){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function h(){let f;do f=m();while(f>=12&&f<=15);return f}return{setPosition:d,getPosition:()=>e,scan:t?h:m,getToken:()=>s,getTokenValue:()=>o,getTokenOffset:()=>i,getTokenLength:()=>e-i,getTokenError:()=>a}}function K1(r){return r===32||r===9||r===11||r===12||r===160||r===5760||r>=8192&&r<=8203||r===8239||r===8287||r===12288||r===65279}function nT(r){return r===10||r===13||r===8232||r===8233}function jm(r){return r>=48&&r<=57}function q4(r,t,e=z4.DEFAULT){let n=s6(r,!1);function o(Y){return Y?()=>Y(n.getTokenOffset(),n.getTokenLength()):()=>!0}function i(Y){return Y?X=>Y(X,n.getTokenOffset(),n.getTokenLength()):()=>!0}let s=o(t.onObjectBegin),a=i(t.onObjectProperty),l=o(t.onObjectEnd),d=o(t.onArrayBegin),c=o(t.onArrayEnd),u=i(t.onLiteralValue),m=i(t.onSeparator),g=o(t.onComment),h=i(t.onError),f=e&&e.disallowComments,I=e&&e.allowTrailingComma;function S(){for(;;){let Y=n.scan();switch(n.getTokenError()){case 4:E(14);break;case 5:E(15);break;case 3:E(13);break;case 1:f||E(11);break;case 2:E(12);break;case 6:E(16);break}switch(Y){case 12:case 13:f?E(10):g();break;case 16:E(1);break;case 15:case 14:break;default:return Y}}}function E(Y,X=[],q=[]){if(h(Y),X.length+q.length>0){let He=n.getToken();for(;He!==17;){if(X.indexOf(He)!==-1){S();break}else if(q.indexOf(He)!==-1)break;He=S()}}}function P(Y){let X=n.getTokenValue();return Y?u(X):a(X),S(),!0}function L(){switch(n.getToken()){case 11:{let Y=0;try{Y=JSON.parse(n.getTokenValue()),typeof Y!="number"&&(E(2),Y=0)}catch{E(2)}u(Y);break}case 7:u(null);break;case 8:u(!0);break;case 9:u(!1);break;default:return!1}return S(),!0}function j(){return n.getToken()!==10?(E(3,[],[2,5]),!1):(P(!1),n.getToken()===6?(m(":"),S(),J()||E(4,[],[2,5])):E(5,[],[2,5]),!0)}function F(){s(),S();let Y=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(Y||E(4,[],[]),m(","),S(),n.getToken()===2&&I)break}else Y&&E(6,[],[]);j()||E(4,[],[2,5]),Y=!0}return l(),n.getToken()!==2?E(7,[2],[]):S(),!0}function z(){d(),S();let Y=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(Y||E(4,[],[]),m(","),S(),n.getToken()===4&&I)break}else Y&&E(6,[],[]);J()||E(4,[],[4,5]),Y=!0}return c(),n.getToken()!==4?E(8,[4],[]):S(),!0}function J(){switch(n.getToken()){case 3:return z();case 1:return F();case 10:return P(!0);default:return L()}}return S(),n.getToken()===17?e.allowEmptyContent?!0:(E(4,[],[]),!1):J()?(n.getToken()!==17&&E(9,[],[]),!0):(E(4,[],[]),!1)}function Zv(r){return Object.isFrozen(r)?r:bh(r)}var rd=class r{constructor(t,e,n,o,i){this._contents=t;this._keys=e;this._overrides=n;this._raw=o;this.logService=i;this.overrideConfigurations=new Map}static createEmptyModel(t){return new r({},[],[],void 0,t)}get rawConfiguration(){if(!this._rawConfiguration)if(this._raw){let t=(Array.isArray(this._raw)?this._raw:[this._raw]).map(e=>{if(e instanceof r)return e;let n=new j1("",this.logService);return n.parseRaw(e),n.configurationModel});this._rawConfiguration=t.reduce((e,n)=>n===e?n:e.merge(n),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}get raw(){if(this._raw&&!(Array.isArray(this._raw)&&this._raw.every(t=>t instanceof r)))return this._raw}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(t){return t?ev(this.contents,t):this.contents}inspect(t,e){let n=this;return{get value(){return Zv(n.rawConfiguration.getValue(t))},get override(){return e?Zv(n.rawConfiguration.getOverrideValue(t,e)):void 0},get merged(){return Zv(e?n.rawConfiguration.override(e).getValue(t):n.rawConfiguration.getValue(t))},get overrides(){let o=[];for(let{contents:i,identifiers:s,keys:a}of n.rawConfiguration.overrides){let l=new r(i,a,[],void 0,n.logService).getValue(t);l!==void 0&&o.push({identifiers:s,value:l})}return o.length?Zv(o):void 0}}}getOverrideValue(t,e){let n=this.getContentsForOverrideIdentifer(e);return n?t?ev(n,t):n:void 0}getKeysForOverrideIdentifier(t){let e=[];for(let n of this.overrides)n.identifiers.includes(t)&&e.push(...n.keys);return Dr(e)}getAllOverrideIdentifiers(){let t=[];for(let e of this.overrides)t.push(...e.identifiers);return Dr(t)}override(t){let e=this.overrideConfigurations.get(t);return e||(e=this.createOverrideConfigurationModel(t),this.overrideConfigurations.set(t,e)),e}merge(...t){let e=it(this.contents),n=it(this.overrides),o=[...this.keys],i=this._raw?Array.isArray(this._raw)?[...this._raw]:[this._raw]:[this];for(let s of t)if(i.push(...s._raw?Array.isArray(s._raw)?s._raw:[s._raw]:[s]),!s.isEmpty()){this.mergeContents(e,s.contents);for(let a of s.overrides){let[l]=n.filter(d=>Xt(d.identifiers,a.identifiers));l?(this.mergeContents(l.contents,a.contents),l.keys.push(...a.keys),l.keys=Dr(l.keys)):n.push(it(a))}for(let a of s.keys)o.indexOf(a)===-1&&o.push(a)}return new r(e,o,n,!i.length||i.every(s=>s instanceof r)?void 0:i,this.logService)}createOverrideConfigurationModel(t){let e=this.getContentsForOverrideIdentifer(t);if(!e||typeof e!="object"||!Object.keys(e).length)return this;let n={};for(let o of Dr([...Object.keys(this.contents),...Object.keys(e)])){let i=this.contents[o],s=e[o];s&&(typeof i=="object"&&typeof s=="object"?(i=it(i),this.mergeContents(i,s)):i=s),n[o]=i}return new r(n,this.keys,this.overrides,void 0,this.logService)}mergeContents(t,e){for(let n of Object.keys(e)){if(n in t&&ot(t[n])&&ot(e[n])){this.mergeContents(t[n],e[n]);continue}t[n]=it(e[n])}}getContentsForOverrideIdentifer(t){let e=null,n=null,o=i=>{i&&(n?this.mergeContents(n,i):n=it(i))};for(let i of this.overrides)i.identifiers.length===1&&i.identifiers[0]===t?e=i.contents:i.identifiers.includes(t)&&o(i.contents);return o(e),n}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(t,e){this.updateValue(t,e,!0)}setValue(t,e){this.updateValue(t,e,!1)}removeValue(t){let e=this.keys.indexOf(t);e!==-1&&(this.keys.splice(e,1),j2(this.contents,t),Vr.test(t)&&this.overrides.splice(this.overrides.findIndex(n=>Xt(n.identifiers,kp(t))),1))}updateValue(t,e,n){if(dR(this.contents,t,e,o=>this.logService.error(o)),n=n||this.keys.indexOf(t)===-1,n&&this.keys.push(t),Vr.test(t)){let o=this.contents[t],i=kp(t),s={identifiers:i,keys:Object.keys(o),contents:ix(o,l=>this.logService.error(l))},a=this.overrides.findIndex(l=>Xt(l.identifiers,i));a!==-1?this.overrides[a]=s:this.overrides.push(s)}}},j1=class{constructor(t,e){this._name=t;this.logService=e;this._raw=null;this._configurationModel=null;this._restrictedConfigurations=[];this._parseErrors=[]}get configurationModel(){return this._configurationModel||rd.createEmptyModel(this.logService)}get restrictedConfigurations(){return this._restrictedConfigurations}get errors(){return this._parseErrors}parse(t,e){if(!At(t)){let n=this.doParseContent(t);this.parseRaw(n,e)}}reparse(t){this._raw&&this.parseRaw(this._raw,t)}parseRaw(t,e){this._raw=t;let{contents:n,keys:o,overrides:i,restricted:s,hasExcludedProperties:a}=this.doParseRaw(t,e);this._configurationModel=new rd(n,o,i,a?[t]:void 0,this.logService),this._restrictedConfigurations=s||[]}doParseContent(t){let e={},n=null,o=[],i=[],s=[];function a(d){Array.isArray(o)?o.push(d):n!==null&&(o[n]=d)}let l={onObjectBegin:()=>{let d={};a(d),i.push(o),o=d,n=null},onObjectProperty:d=>{n=d},onObjectEnd:()=>{o=i.pop()},onArrayBegin:()=>{let d=[];a(d),i.push(o),o=d,n=null},onArrayEnd:()=>{o=i.pop()},onLiteralValue:a,onError:(d,c,u)=>{s.push({error:d,offset:c,length:u})}};if(t)try{q4(t,l),e=o[0]||{}}catch(d){this.logService.error(`Error while parsing settings file ${this._name}: ${d}`),this._parseErrors=[d]}return e}doParseRaw(t,e){let n=gt.as(ur.Configuration),o=n.getConfigurationProperties(),i=n.getExcludedConfigurationProperties(),s=this.filter(t,o,i,!0,e);t=s.raw;let a=ix(t,c=>this.logService.error(`Conflict in settings file ${this._name}: ${c}`)),l=Object.keys(t),d=this.toOverrides(t,c=>this.logService.error(`Conflict in settings file ${this._name}: ${c}`));return{contents:a,keys:l,overrides:d,restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(t,e,n,o,i){let s=!1;if(!i?.scopes&&!i?.skipRestricted&&!i?.skipUnregistered&&!i?.exclude?.length)return{raw:t,restricted:[],hasExcludedProperties:s};let a={},l=[];for(let d in t)if(Vr.test(d)&&o){let c=this.filter(t[d],e,n,!1,i);a[d]=c.raw,s=s||c.hasExcludedProperties,l.push(...c.restricted)}else{let c=e[d];c?.restricted&&l.push(d),this.shouldInclude(d,c,n,i)?a[d]=t[d]:s=!0}return{raw:a,restricted:l,hasExcludedProperties:s}}shouldInclude(t,e,n,o){if(o.exclude?.includes(t))return!1;if(o.include?.includes(t))return!0;if(o.skipRestricted&&e?.restricted||o.skipUnregistered&&!e)return!1;let i=e??n[t],s=i?typeof i.scope<"u"?i.scope:4:void 0;return s===void 0||o.scopes===void 0?!0:o.scopes.includes(s)}toOverrides(t,e){let n=[];for(let o of Object.keys(t))if(Vr.test(o)){let i={},s=t[o];for(let a in s)i[a]=s[a];n.push({identifiers:kp(o),keys:Object.keys(i),contents:ix(i,e)})}return n}};var G1=class{constructor(t,e,n,o,i,s,a,l,d,c,u,m,g){this.key=t;this.overrides=e;this._value=n;this.overrideIdentifiers=o;this.defaultConfiguration=i;this.policyConfiguration=s;this.applicationConfiguration=a;this.userConfiguration=l;this.localUserConfiguration=d;this.remoteUserConfiguration=c;this.workspaceConfiguration=u;this.folderConfigurationModel=m;this.memoryConfigurationModel=g}get value(){return Zv(this._value)}toInspectValue(t){return t?.value!==void 0||t?.override!==void 0||t?.overrides!==void 0?t:void 0}get defaultInspectValue(){return this._defaultInspectValue||(this._defaultInspectValue=this.defaultConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._defaultInspectValue}get defaultValue(){return this.defaultInspectValue.merged}get default(){return this.toInspectValue(this.defaultInspectValue)}get policyInspectValue(){return this._policyInspectValue===void 0&&(this._policyInspectValue=this.policyConfiguration?this.policyConfiguration.inspect(this.key):null),this._policyInspectValue}get policyValue(){return this.policyInspectValue?.merged}get policy(){return this.policyInspectValue?.value!==void 0?{value:this.policyInspectValue.value}:void 0}get applicationInspectValue(){return this._applicationInspectValue===void 0&&(this._applicationInspectValue=this.applicationConfiguration?this.applicationConfiguration.inspect(this.key):null),this._applicationInspectValue}get applicationValue(){return this.applicationInspectValue?.merged}get application(){return this.toInspectValue(this.applicationInspectValue)}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get userValue(){return this.userInspectValue.merged}get user(){return this.toInspectValue(this.userInspectValue)}get userLocalInspectValue(){return this._userLocalInspectValue||(this._userLocalInspectValue=this.localUserConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userLocalInspectValue}get userLocalValue(){return this.userLocalInspectValue.merged}get userLocal(){return this.toInspectValue(this.userLocalInspectValue)}get userRemoteInspectValue(){return this._userRemoteInspectValue||(this._userRemoteInspectValue=this.remoteUserConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userRemoteInspectValue}get userRemoteValue(){return this.userRemoteInspectValue.merged}get userRemote(){return this.toInspectValue(this.userRemoteInspectValue)}get workspaceInspectValue(){return this._workspaceInspectValue===void 0&&(this._workspaceInspectValue=this.workspaceConfiguration?this.workspaceConfiguration.inspect(this.key,this.overrides.overrideIdentifier):null),this._workspaceInspectValue}get workspaceValue(){return this.workspaceInspectValue?.merged}get workspace(){return this.toInspectValue(this.workspaceInspectValue)}get workspaceFolderInspectValue(){return this._workspaceFolderInspectValue===void 0&&(this._workspaceFolderInspectValue=this.folderConfigurationModel?this.folderConfigurationModel.inspect(this.key,this.overrides.overrideIdentifier):null),this._workspaceFolderInspectValue}get workspaceFolderValue(){return this.workspaceFolderInspectValue?.merged}get workspaceFolder(){return this.toInspectValue(this.workspaceFolderInspectValue)}get memoryInspectValue(){return this._memoryInspectValue===void 0&&(this._memoryInspectValue=this.memoryConfigurationModel.inspect(this.key,this.overrides.overrideIdentifier)),this._memoryInspectValue}get memoryValue(){return this.memoryInspectValue.merged}get memory(){return this.toInspectValue(this.memoryInspectValue)}},Gm=class r{constructor(t,e,n,o,i,s,a,l,d,c){this._defaultConfiguration=t;this._policyConfiguration=e;this._applicationConfiguration=n;this._localUserConfiguration=o;this._remoteUserConfiguration=i;this._workspaceConfiguration=s;this._folderConfigurations=a;this._memoryConfiguration=l;this._memoryConfigurationByResource=d;this.logService=c;this._workspaceConsolidatedConfiguration=null;this._foldersConsolidatedConfigurations=new Ge;this._userConfiguration=null}getValue(t,e,n){return this.getConsolidatedConfigurationModel(t,e,n).getValue(t)}updateValue(t,e,n={}){let o;n.resource?(o=this._memoryConfigurationByResource.get(n.resource),o||(o=rd.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(n.resource,o))):o=this._memoryConfiguration,e===void 0?o.removeValue(t):o.setValue(t,e),n.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(t,e,n){let o=this.getConsolidatedConfigurationModel(t,e,n),i=this.getFolderConfigurationModelForResource(e.resource,n),s=e.resource?this._memoryConfigurationByResource.get(e.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(let l of o.overrides)for(let d of l.identifiers)o.getOverrideValue(t,d)!==void 0&&a.add(d);return new G1(t,e,o.getValue(t),a.size?[...a]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,n?this._workspaceConfiguration:void 0,i||void 0,s)}keys(t){let e=this.getFolderConfigurationModelForResource(void 0,t);return{default:this._defaultConfiguration.keys.slice(0),policy:this._policyConfiguration.keys.slice(0),user:this.userConfiguration.keys.slice(0),workspace:this._workspaceConfiguration.keys.slice(0),workspaceFolder:e?e.keys.slice(0):[]}}updateDefaultConfiguration(t){this._defaultConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updatePolicyConfiguration(t){this._policyConfiguration=t}updateApplicationConfiguration(t){this._applicationConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateLocalUserConfiguration(t){this._localUserConfiguration=t,this._userConfiguration=null,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateRemoteUserConfiguration(t){this._remoteUserConfiguration=t,this._userConfiguration=null,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateWorkspaceConfiguration(t){this._workspaceConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateFolderConfiguration(t,e){this._folderConfigurations.set(t,e),this._foldersConsolidatedConfigurations.delete(t)}deleteFolderConfiguration(t){this.folderConfigurations.delete(t),this._foldersConsolidatedConfigurations.delete(t)}compareAndUpdateDefaultConfiguration(t,e){let n=[];if(!e){let{added:o,updated:i,removed:s}=od(this._defaultConfiguration,t);e=[...o,...i,...s]}for(let o of e)for(let i of kp(o)){let s=this._defaultConfiguration.getKeysForOverrideIdentifier(i),a=t.getKeysForOverrideIdentifier(i),l=[...a.filter(d=>s.indexOf(d)===-1),...s.filter(d=>a.indexOf(d)===-1),...s.filter(d=>!tn(this._defaultConfiguration.override(i).getValue(d),t.override(i).getValue(d)))];n.push([i,l])}return this.updateDefaultConfiguration(t),{keys:e,overrides:n}}compareAndUpdatePolicyConfiguration(t){let{added:e,updated:n,removed:o}=od(this._policyConfiguration,t),i=[...e,...n,...o];return i.length&&this.updatePolicyConfiguration(t),{keys:i,overrides:[]}}compareAndUpdateApplicationConfiguration(t){let{added:e,updated:n,removed:o,overrides:i}=od(this.applicationConfiguration,t),s=[...e,...n,...o];return s.length&&this.updateApplicationConfiguration(t),{keys:s,overrides:i}}compareAndUpdateLocalUserConfiguration(t){let{added:e,updated:n,removed:o,overrides:i}=od(this.localUserConfiguration,t),s=[...e,...n,...o];return s.length&&this.updateLocalUserConfiguration(t),{keys:s,overrides:i}}compareAndUpdateRemoteUserConfiguration(t){let{added:e,updated:n,removed:o,overrides:i}=od(this.remoteUserConfiguration,t),s=[...e,...n,...o];return s.length&&this.updateRemoteUserConfiguration(t),{keys:s,overrides:i}}compareAndUpdateWorkspaceConfiguration(t){let{added:e,updated:n,removed:o,overrides:i}=od(this.workspaceConfiguration,t),s=[...e,...n,...o];return s.length&&this.updateWorkspaceConfiguration(t),{keys:s,overrides:i}}compareAndUpdateFolderConfiguration(t,e){let n=this.folderConfigurations.get(t),{added:o,updated:i,removed:s,overrides:a}=od(n,e),l=[...o,...i,...s];return(l.length||!n)&&this.updateFolderConfiguration(t,e),{keys:l,overrides:a}}compareAndDeleteFolderConfiguration(t){let e=this.folderConfigurations.get(t);if(!e)throw new Error("Unknown folder");this.deleteFolderConfiguration(t);let{added:n,updated:o,removed:i,overrides:s}=od(e,void 0);return{keys:[...n,...o,...i],overrides:s}}get defaults(){return this._defaultConfiguration}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){if(!this._userConfiguration)if(this._remoteUserConfiguration.isEmpty())this._userConfiguration=this._localUserConfiguration;else{let t=this._localUserConfiguration.merge(this._remoteUserConfiguration);this._userConfiguration=new rd(t.contents,t.keys,t.overrides,void 0,this.logService)}return this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}get workspaceConfiguration(){return this._workspaceConfiguration}get folderConfigurations(){return this._folderConfigurations}getConsolidatedConfigurationModel(t,e,n){let o=this.getConsolidatedConfigurationModelForResource(e,n);if(e.overrideIdentifier&&(o=o.override(e.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(t)!==void 0){o=o.merge();for(let i of this._policyConfiguration.keys)o.setValue(i,this._policyConfiguration.getValue(i))}return o}getConsolidatedConfigurationModelForResource({resource:t},e){let n=this.getWorkspaceConsolidatedConfiguration();if(e&&t){let o=e.getFolder(t);o&&(n=this.getFolderConsolidatedConfiguration(o.uri)||n);let i=this._memoryConfigurationByResource.get(t);i&&(n=n.merge(i))}return n}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(t){let e=this._foldersConsolidatedConfigurations.get(t);if(!e){let n=this.getWorkspaceConsolidatedConfiguration(),o=this._folderConfigurations.get(t);o?(e=n.merge(o),this._foldersConsolidatedConfigurations.set(t,e)):e=n}return e}getFolderConfigurationModelForResource(t,e){if(e&&t){let n=e.getFolder(t);if(n)return this._folderConfigurations.get(n.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys,raw:Array.isArray(this.applicationConfiguration.raw)?void 0:this.applicationConfiguration.raw},userLocal:{contents:this.localUserConfiguration.contents,overrides:this.localUserConfiguration.overrides,keys:this.localUserConfiguration.keys,raw:Array.isArray(this.localUserConfiguration.raw)?void 0:this.localUserConfiguration.raw},userRemote:{contents:this.remoteUserConfiguration.contents,overrides:this.remoteUserConfiguration.overrides,keys:this.remoteUserConfiguration.keys,raw:Array.isArray(this.remoteUserConfiguration.raw)?void 0:this.remoteUserConfiguration.raw},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((t,e)=>{let{contents:n,overrides:o,keys:i}=this._folderConfigurations.get(e);return t.push([e,{contents:n,overrides:o,keys:i}]),t},[])}}allKeys(){let t=new Set;return this._defaultConfiguration.keys.forEach(e=>t.add(e)),this.userConfiguration.keys.forEach(e=>t.add(e)),this._workspaceConfiguration.keys.forEach(e=>t.add(e)),this._folderConfigurations.forEach(e=>e.keys.forEach(n=>t.add(n))),[...t.values()]}allOverrideIdentifiers(){let t=new Set;return this._defaultConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this.userConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this._workspaceConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this._folderConfigurations.forEach(e=>e.getAllOverrideIdentifiers().forEach(n=>t.add(n))),[...t.values()]}getAllKeysForOverrideIdentifier(t){let e=new Set;return this._defaultConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this.userConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this._workspaceConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this._folderConfigurations.forEach(n=>n.getKeysForOverrideIdentifier(t).forEach(o=>e.add(o))),[...e.values()]}static parse(t,e){let n=this.parseConfigurationModel(t.defaults,e),o=this.parseConfigurationModel(t.policy,e),i=this.parseConfigurationModel(t.application,e),s=this.parseConfigurationModel(t.userLocal,e),a=this.parseConfigurationModel(t.userRemote,e),l=this.parseConfigurationModel(t.workspace,e),d=t.folders.reduce((c,u)=>(c.set(y.revive(u[0]),this.parseConfigurationModel(u[1],e)),c),new Ge);return new r(n,o,i,s,a,l,d,rd.createEmptyModel(e),new Ge,e)}static parseConfigurationModel(t,e){return new rd(t.contents,t.keys,t.overrides,t.raw,e)}};var oT=class{constructor(t,e,n,o,i){this.change=t;this.previous=e;this.currentConfiguraiton=n;this.currentWorkspace=o;this.logService=i;this._marker=`
`;this._markerCode1=this._marker.charCodeAt(0);this._markerCode2=46;this.affectedKeys=new Set;this._previousConfiguration=void 0;for(let s of t.keys)this.affectedKeys.add(s);for(let[,s]of t.overrides)for(let a of s)this.affectedKeys.add(a);this._affectsConfigStr=this._marker;for(let s of this.affectedKeys)this._affectsConfigStr+=s+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=Gm.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(t,e){let n=this._marker+t,o=this._affectsConfigStr.indexOf(n);if(o<0)return!1;let i=o+n.length;if(i>=this._affectsConfigStr.length)return!1;let s=this._affectsConfigStr.charCodeAt(i);if(s!==this._markerCode1&&s!==this._markerCode2)return!1;if(e){let a=this.previousConfiguration?this.previousConfiguration.getValue(t,e,this.previous?.workspace):void 0,l=this.currentConfiguraiton.getValue(t,e,this.currentWorkspace);return!tn(a,l)}return!0}};function od(r,t){let{added:e,removed:n,updated:o}=K4(t?.rawConfiguration,r?.rawConfiguration),i=[],s=r?.getAllOverrideIdentifiers()||[],a=t?.getAllOverrideIdentifiers()||[];if(t){let l=a.filter(d=>!s.includes(d));for(let d of l)i.push([d,t.getKeysForOverrideIdentifier(d)])}if(r){let l=s.filter(d=>!a.includes(d));for(let d of l)i.push([d,r.getKeysForOverrideIdentifier(d)])}if(t&&r){for(let l of s)if(a.includes(l)){let d=K4({contents:r.getOverrideValue(void 0,l)||{},keys:r.getKeysForOverrideIdentifier(l)},{contents:t.getOverrideValue(void 0,l)||{},keys:t.getKeysForOverrideIdentifier(l)});i.push([l,[...d.added,...d.removed,...d.updated]])}}return{added:e,removed:n,updated:o,overrides:i}}function K4(r,t){let e=r?t?r.keys.filter(i=>t.keys.indexOf(i)===-1):[...r.keys]:[],n=t?r?t.keys.filter(i=>r.keys.indexOf(i)===-1):[...t.keys]:[],o=[];if(r&&t){for(let i of t.keys)if(r.keys.indexOf(i)!==-1){let s=ev(t.contents,i),a=ev(r.contents,i);tn(s,a)||o.push(i)}}return{added:e,removed:n,updated:o}}function rT(r,t){if(t){let e=t.split("."),n=r;for(let o=0;n&&o<e.length;o++)n=n[e[o]];return n}}function d6(r){return r instanceof y}function c6(r){return ot(r)&&r.uri instanceof y&&!!r.languageId&&typeof r.languageId=="string"}function u6(r){return ot(r)&&!r.uri&&!!r.languageId&&typeof r.languageId=="string"}function p6(r){return ot(r)&&r.uri instanceof y&&(!r.name||typeof r.name=="string")&&(!r.index||typeof r.index=="number")}function j4(r){if(d6(r))return{resource:r};if(c6(r))return{resource:r.uri,overrideIdentifier:r.languageId};if(u6(r))return{overrideIdentifier:r.languageId};if(p6(r))return{resource:r.uri};if(r===null)return{resource:null}}var Qm=class{constructor(t,e,n){this._proxy=t.getProxy(U.MainThreadConfiguration),this._extHostWorkspace=e,this._logService=n,this._barrier=new hn,this._actual=null}getConfigProvider(){return this._barrier.wait().then(t=>this._actual)}$initializeConfiguration(t){this._actual=new Q1(this._proxy,this._extHostWorkspace,t,this._logService),this._barrier.open()}$acceptConfigurationChanged(t,e){this.getConfigProvider().then(n=>n.$acceptConfigurationChanged(t,e))}};Qm=_([C(0,ie),C(1,_n),C(2,oe)],Qm);var Q1=class{constructor(t,e,n,o){this._onDidChangeConfiguration=new T;this._proxy=t,this._logService=o,this._extHostWorkspace=e,this._configuration=Gm.parse(n,o),this._configurationScopes=this._toMap(n.configurationScopes)}get onDidChangeConfiguration(){return this._onDidChangeConfiguration&&this._onDidChangeConfiguration.event}$acceptConfigurationChanged(t,e){let n={data:this._configuration.toData(),workspace:this._extHostWorkspace.workspace};this._configuration=Gm.parse(t,this._logService),this._configurationScopes=this._toMap(t.configurationScopes),this._onDidChangeConfiguration.fire(this._toConfigurationChangeEvent(e,n))}getConfiguration(t,e,n){let o=j4(e)||{},i=this._toReadonlyValue(this._configuration.getValue(t,o,this._extHostWorkspace.workspace));t&&this._validateConfigurationAccess(t,o,n?.identifier);function s(l){if(l==null)return null;if(typeof l=="boolean")return l?2:5;switch(l){case 1:return 2;case 2:return 5;case 3:return 6}}let a={has(l){return typeof rT(i,l)<"u"},get:(l,d)=>{this._validateConfigurationAccess(t?`${t}.${l}`:l,o,n?.identifier);let c=rT(i,l);if(typeof c>"u")c=d;else{let u,m=(g,h)=>{if(ot(g)){let f,I=()=>{u=u||it(i),f=f||rT(u,h)};return new Proxy(g,{get:(S,E)=>{if(typeof E=="string"&&E.toLowerCase()==="tojson")return I(),()=>f;if(u)return f=f||rT(u,h),f[E];let P=S[E];return typeof E=="string"?m(P,`${h}.${E}`):P},set:(S,E,P)=>(I(),f&&(f[E]=P),!0),deleteProperty:(S,E)=>(I(),f&&delete f[E],!0),defineProperty:(S,E,P)=>(I(),f&&Object.defineProperty(f,E,P),!0)})}return Array.isArray(g)?it(g):g};c=m(c,l)}return c},update:(l,d,c,u)=>{l=t?`${t}.${l}`:l;let m=s(c);return d!==void 0?this._proxy.$updateConfigurationOption(m,l,d,o,u):this._proxy.$removeConfigurationOption(m,l,o,u)},inspect:l=>{l=t?`${t}.${l}`:l;let d=this._configuration.inspect(l,o,this._extHostWorkspace.workspace);if(d)return{key:l,defaultValue:it(d.policy?.value??d.default?.value),globalLocalValue:it(d.userLocal?.value),globalRemoteValue:it(d.userRemote?.value),globalValue:it(d.user?.value??d.application?.value),workspaceValue:it(d.workspace?.value),workspaceFolderValue:it(d.workspaceFolder?.value),defaultLanguageValue:it(d.default?.override),globalLocalLanguageValue:it(d.userLocal?.override),globalRemoteLanguageValue:it(d.userRemote?.override),globalLanguageValue:it(d.user?.override??d.application?.override),workspaceLanguageValue:it(d.workspace?.override),workspaceFolderLanguageValue:it(d.workspaceFolder?.override),languageIds:it(d.overrideIdentifiers)}}};return typeof i=="object"&&Uo(a,i,!1),Object.freeze(a)}_toReadonlyValue(t){let e=n=>ot(n)?new Proxy(n,{get:(o,i)=>e(o[i]),set:(o,i,s)=>{throw new Error(`TypeError: Cannot assign to read only property '${String(i)}' of object`)},deleteProperty:(o,i)=>{throw new Error(`TypeError: Cannot delete read only property '${String(i)}' of object`)},defineProperty:(o,i)=>{throw new Error(`TypeError: Cannot define property '${String(i)}' for a readonly object`)},setPrototypeOf:o=>{throw new Error("TypeError: Cannot set prototype for a readonly object")},isExtensible:()=>!1,preventExtensions:()=>!0}):n;return e(t)}_validateConfigurationAccess(t,e,n){let o=Vr.test(t)?5:this._configurationScopes.get(t),i=n?`[${n.value}] `:"";if(5===o){typeof e?.resource>"u"&&this._logService.warn(`${i}Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for '${t}', provide the URI of a resource or 'null' for any resource.`);return}if(4===o){e?.resource&&this._logService.warn(`${i}Accessing a window scoped configuration for a resource is not expected. To associate '${t}' to a resource, define its scope to 'resource' in configuration contributions in 'package.json'.`);return}}_toConfigurationChangeEvent(t,e){let n=new oT(t,e,this._configuration,this._extHostWorkspace.workspace,this._logService);return Object.freeze({affectsConfiguration:(o,i)=>n.affectsConfiguration(o,j4(i))})}_toMap(t){return t.reduce((e,n)=>(e.set(n[0],n[1]),e),new Map)}},vn=R("IExtHostConfiguration");var Y1=class{constructor(t,e){this.versionId=t;this.removedDueToLooping=e}},Ra=class r extends O{constructor(e,n){super();this._activationEventsReader=e;this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event;this._versionId=0;this._extensionDescriptions=n,this._initialize()}static isHostExtension(e,n,o){if(n.getExtensionDescription(e))return!1;let i=o.getExtensionDescription(e);return i?!!((i.main||i.browser)&&i.api==="none"):!1}_initialize(){this._extensionDescriptions.sort(m6),this._extensionsMap=new no,this._extensionsArr=[],this._activationMap=new Map;for(let e of this._extensionDescriptions){if(this._extensionsMap.has(e.identifier)){console.error("Extension `"+e.identifier.value+"` is already registered");continue}this._extensionsMap.set(e.identifier,e),this._extensionsArr.push(e);let n=this._activationEventsReader.readActivationEvents(e);for(let o of n)this._activationMap.has(o)||this._activationMap.set(o,[]),this._activationMap.get(o).push(e)}}set(e){return this._extensionDescriptions=e,this._initialize(),this._versionId++,this._onDidChange.fire(void 0),{versionId:this._versionId}}deltaExtensions(e,n){this._extensionDescriptions=G4(this._extensionDescriptions,n),this._extensionDescriptions=this._extensionDescriptions.concat(e);let o=r._findLoopingExtensions(this._extensionDescriptions);return this._extensionDescriptions=G4(this._extensionDescriptions,o.map(i=>i.identifier)),this._initialize(),this._versionId++,this._onDidChange.fire(void 0),new Y1(this._versionId,o)}static _findLoopingExtensions(e){let n=new class{constructor(){this._arcs=new Map;this._nodesSet=new Set;this._nodesArr=[]}addNode(l){this._nodesSet.has(l)||(this._nodesSet.add(l),this._nodesArr.push(l))}addArc(l,d){this.addNode(l),this.addNode(d),this._arcs.has(l)?this._arcs.get(l).push(d):this._arcs.set(l,[d])}getArcs(l){return this._arcs.has(l)?this._arcs.get(l):[]}hasOnlyGoodArcs(l,d){let c=n.getArcs(l);for(let u=0;u<c.length;u++)if(!d.has(c[u]))return!1;return!0}getNodes(){return this._nodesArr}},o=new no;for(let l of e)if(o.set(l.identifier,l),l.extensionDependencies)for(let d of l.extensionDependencies)n.addArc(_e.toKey(l.identifier),_e.toKey(d));let i=new Set;n.getNodes().filter(l=>n.getArcs(l).length===0).forEach(l=>i.add(l));let s=n.getNodes().filter(l=>!i.has(l)),a;do{a=!1;for(let l=0;l<s.length;l++){let d=s[l];n.hasOnlyGoodArcs(d,i)&&(s.splice(l,1),l--,i.add(d),a=!0)}}while(a);return s.map(l=>o.get(l))}containsActivationEvent(e){return this._activationMap.has(e)}containsExtension(e){return this._extensionsMap.has(e)}getExtensionDescriptionsForActivationEvent(e){let n=this._activationMap.get(e);return n?n.slice(0):[]}getAllExtensionDescriptions(){return this._extensionsArr.slice(0)}getSnapshot(){return new X1(this._versionId,this.getAllExtensionDescriptions())}getExtensionDescription(e){let n=this._extensionsMap.get(e);return n||void 0}getExtensionDescriptionByUUID(e){for(let n of this._extensionsArr)if(n.uuid===e)return n}getExtensionDescriptionByIdOrUUID(e,n){return this.getExtensionDescription(e)??(n?this.getExtensionDescriptionByUUID(n):void 0)}},X1=class{constructor(t,e){this.versionId=t;this.extensions=e}};function m6(r,t){let e=r.isBuiltin?0:r.isUnderDevelopment?2:1,n=t.isBuiltin?0:t.isUnderDevelopment?2:1;if(e!==n)return e-n;let o=ze.basename(r.extensionLocation.path),i=ze.basename(t.extensionLocation.path);return o<i?-1:o>i?1:0}function G4(r,t){let e=new ko(t);return r.filter(n=>!e.has(n.identifier))}var eu=class r{static{this.NONE=new r(!1,-1,-1,-1)}constructor(t,e,n,o){this.startup=t,this.codeLoadingTime=e,this.activateCallTime=n,this.activateResolvedTime=o}},Ym=class{constructor(t){this._startup=t,this._codeLoadingStart=-1,this._codeLoadingStop=-1,this._activateCallStart=-1,this._activateCallStop=-1,this._activateResolveStart=-1,this._activateResolveStop=-1}_delta(t,e){return t===-1||e===-1?-1:e-t}build(){return new eu(this._startup,this._delta(this._codeLoadingStart,this._codeLoadingStop),this._delta(this._activateCallStart,this._activateCallStop),this._delta(this._activateResolveStart,this._activateResolveStop))}codeLoadingStart(){this._codeLoadingStart=Date.now()}codeLoadingStop(){this._codeLoadingStop=Date.now()}activateCallStart(){this._activateCallStart=Date.now()}activateCallStop(){this._activateCallStop=Date.now()}activateResolveStart(){this._activateResolveStart=Date.now()}activateResolveStop(){this._activateResolveStop=Date.now()}},tu=class{constructor(t,e,n,o,i,s){this.activationFailed=t,this.activationFailedError=e,this.activationTimes=n,this.module=o,this.exports=i,this.disposable=s}},iT=class extends tu{constructor(t){super(!1,null,t,{activate:void 0,deactivate:void 0},void 0,O.None)}},sT=class extends tu{constructor(){super(!1,null,eu.NONE,{activate:void 0,deactivate:void 0},void 0,O.None)}},Xm=class extends tu{constructor(t){super(!0,t,eu.NONE,{activate:void 0,deactivate:void 0},void 0,O.None)}},Jm=class{constructor(t,e,n,o){this._logService=o;this._registry=t,this._globalRegistry=e,this._host=n,this._operations=new no,this._alreadyActivatedEvents=Object.create(null)}dispose(){for(let[t,e]of this._operations)e.dispose()}async waitForActivatingExtensions(){let t=[];for(let[e,n]of this._operations)t.push(n.wait());await Promise.all(t)}isActivated(t){let e=this._operations.get(t);return!!(e&&e.value)}getActivatedExtension(t){let e=this._operations.get(t);if(!e||!e.value)throw new Error(`Extension '${t.value}' is not known or not activated`);return e.value}async activateByEvent(t,e){if(this._alreadyActivatedEvents[t])return;let n=this._registry.getExtensionDescriptionsForActivationEvent(t);await this._activateExtensions(n.map(o=>({id:o.identifier,reason:{startup:e,extensionId:o.identifier,activationEvent:t}}))),this._alreadyActivatedEvents[t]=!0}activateById(t,e){let n=this._registry.getExtensionDescription(t);if(!n)throw new Error(`Extension '${t.value}' is not known`);return this._activateExtensions([{id:n.identifier,reason:e}])}async _activateExtensions(t){let e=t.filter(n=>!this.isActivated(n.id)).map(n=>this._handleActivationRequest(n));await Promise.all(e.map(n=>n.wait()))}_handleActivationRequest(t){if(this._operations.has(t.id))return this._operations.get(t.id);if(this._isHostExtension(t.id))return this._createAndSaveOperation(t,null,[],null);let e=this._registry.getExtensionDescription(t.id);if(!e){let i=new Error(`Cannot activate unknown extension '${t.id.value}'`),s=this._createAndSaveOperation(t,null,[],new Xm(i));return this._host.onExtensionActivationError(t.id,i,new rv(t.id.value)),s}let n=[],o=typeof e.extensionDependencies>"u"?[]:e.extensionDependencies;for(let i of o){if(this._isResolvedExtension(i))continue;let s=this._operations.get(i);if(s){n.push(s);continue}if(this._isHostExtension(i)){n.push(this._handleActivationRequest({id:this._globalRegistry.getExtensionDescription(i).identifier,reason:t.reason}));continue}let a=this._registry.getExtensionDescription(i);if(a){if(!a.main&&!a.browser)continue;n.push(this._handleActivationRequest({id:a.identifier,reason:t.reason}));continue}let l=e.displayName||e.identifier.value,d=new Error(`Cannot activate the '${l}' extension because it depends on unknown extension '${i}'`),c=this._createAndSaveOperation(t,e.displayName,[],new Xm(d));return this._host.onExtensionActivationError(e.identifier,d,new rv(i)),c}return this._createAndSaveOperation(t,e.displayName,n,null)}_createAndSaveOperation(t,e,n,o){let i=new eb(t.id,e,t.reason,n,o,this._host,this._logService);return this._operations.set(t.id,i),i}_isHostExtension(t){return Ra.isHostExtension(t,this._registry,this._globalRegistry)}_isResolvedExtension(t){let e=this._globalRegistry.getExtensionDescription(t);return e?!e.main&&!e.browser:!1}};Jm=_([C(3,oe)],Jm);var eb=class{constructor(t,e,n,o,i,s,a){this._id=t;this._displayName=e;this._reason=n;this._deps=o;this._value=i;this._host=s;this._logService=a;this._barrier=new hn;this._isDisposed=!1;this._initialize()}get value(){return this._value}get friendlyName(){return this._displayName||this._id.value}dispose(){this._isDisposed=!0}wait(){return this._barrier.wait()}async _initialize(){await this._waitForDepsThenActivate(),this._barrier.open()}async _waitForDepsThenActivate(){if(!this._value){for(;this._deps.length>0;){for(let t=0;t<this._deps.length;t++){let e=this._deps[t];if(e.value&&!e.value.activationFailed){this._deps.splice(t,1),t--;continue}if(e.value&&e.value.activationFailed){let n=new Error(`Cannot activate the '${this.friendlyName}' extension because its dependency '${e.friendlyName}' failed to activate`);n.detail=e.value.activationFailedError,this._value=new Xm(n),this._host.onExtensionActivationError(this._id,n,null);return}}this._deps.length>0&&await Promise.race(this._deps.map(t=>t.wait()))}await this._activate()}}async _activate(){try{this._value=await this._host.actualActivateExtension(this._id,this._reason)}catch(t){let e=new Error;if(t&&t.name&&(e.name=t.name),t&&t.message?e.message=`Activating extension '${this._id.value}' failed: ${t.message}.`:e.message=`Activating extension '${this._id.value}' failed: ${t}.`,t&&t.stack&&(e.stack=t.stack),this._value=new Xm(e),this._isDisposed&&zt(t))return;this._host.onExtensionActivationError(this._id,e,null),this._logService.error(`Activating extension ${this._id.value} failed due to an error:`),this._logService.error(t)}}};eb=_([C(6,oe)],eb);var Zm=class{constructor(t,e){this._logService=e;this._onDidChangeStorage=new T;this.onDidChangeStorage=this._onDidChangeStorage.event;this._proxy=t.getProxy(U.MainThreadStorage)}registerExtensionStorageKeysToSync(t,e){this._proxy.$registerExtensionStorageKeysToSync(t,e)}async initializeExtensionStorage(t,e,n){let o=await this._proxy.$initializeExtensionStorage(t,e),i;return o&&(i=this.safeParseValue(t,e,o)),i||n}setValue(t,e,n){return this._proxy.$setValue(t,e,n)}$acceptValue(t,e,n){let o=this.safeParseValue(t,e,n);o&&this._onDidChangeStorage.fire({shared:t,key:e,value:o})}safeParseValue(t,e,n){try{return JSON.parse(n)}catch(o){this._logService.error(`[extHostStorage] unexpected error parsing storage contents (extensionId: ${e}, global: ${t}): ${o}`)}}},eg=R("IExtHostStorage");var tb=class{constructor(t,e,n){this._deferredPromises=new Map;this._id=t,this._shared=e,this._storage=n,this._init=this._storage.initializeExtensionStorage(this._shared,this._id,Object.create(null)).then(o=>(this._value=o,this)),this._storageListener=this._storage.onDidChangeStorage(o=>{o.shared===this._shared&&o.key===this._id&&(this._value=o.value)}),this._scheduler=new Wn(()=>{let o=this._deferredPromises;this._deferredPromises=new Map,(async()=>{try{await this._storage.setValue(this._shared,this._id,this._value);for(let i of o.values())i.complete()}catch(i){for(let s of o.values())s.error(i)}})()},0)}keys(){return Object.entries(this._value??{}).filter(([,t])=>t!==void 0).map(([t])=>t)}get whenReady(){return this._init}get(t,e){let n=this._value[t];return typeof n>"u"&&(n=e),n}update(t,e){e!==null&&typeof e=="object"?this._value[t]=JSON.parse(JSON.stringify(e)):this._value[t]=e;let n=this._deferredPromises.get(t);if(n!==void 0)return n.p;let o=new Kt;return this._deferredPromises.set(t,o),this._scheduler.isScheduled()||this._scheduler.schedule(),o.p}dispose(){this._storageListener.dispose()}},aT=class extends tb{setKeysForSync(t){this._storage.registerExtensionStorageKeysToSync({id:this._id,version:this._extension.version},t)}constructor(t,e){super(t.identifier.value,!0,e),this._extension=t}};var qo=class{constructor(t,e){this._fileSystemProvider=new Map;this._writeQueue=new Yu;this._proxy=t.getProxy(U.MainThreadFileSystem);let n=this;this.value=Object.freeze({async stat(o){try{let i,s=n._fileSystemProvider.get(o.scheme);return s?(await n._proxy.$ensureActivation(o.scheme),i=await s.impl.stat(o)):i=await n._proxy.$stat(o),{type:i.type,ctime:i.ctime,mtime:i.mtime,size:i.size,permissions:i.permissions===1?1:void 0}}catch(i){qo._handleError(i)}},async readDirectory(o){try{let i=n._fileSystemProvider.get(o.scheme);return i?(await n._proxy.$ensureActivation(o.scheme),(await i.impl.readDirectory(o)).slice()):await n._proxy.$readdir(o)}catch(i){return qo._handleError(i)}},async createDirectory(o){try{let i=n._fileSystemProvider.get(o.scheme);return i&&!i.isReadonly?(await n._proxy.$ensureActivation(o.scheme),await n.mkdirp(i.impl,i.extUri,o)):await n._proxy.$mkdir(o)}catch(i){return qo._handleError(i)}},async readFile(o){try{let i=n._fileSystemProvider.get(o.scheme);return i?(await n._proxy.$ensureActivation(o.scheme),(await i.impl.readFile(o)).slice()):(await n._proxy.$readFile(o)).buffer}catch(i){return qo._handleError(i)}},async writeFile(o,i){try{let s=n._fileSystemProvider.get(o.scheme);return s&&!s.isReadonly?(await n._proxy.$ensureActivation(o.scheme),await n.mkdirp(s.impl,s.extUri,s.extUri.dirname(o)),await n._writeQueue.queueFor(o,()=>Promise.resolve(s.impl.writeFile(o,i,{create:!0,overwrite:!0})))):await n._proxy.$writeFile(o,W.wrap(i))}catch(s){return qo._handleError(s)}},async delete(o,i){try{let s=n._fileSystemProvider.get(o.scheme);return s&&!s.isReadonly&&!i?.useTrash?(await n._proxy.$ensureActivation(o.scheme),await s.impl.delete(o,{recursive:!1,...i})):await n._proxy.$delete(o,{recursive:!1,useTrash:!1,atomic:!1,...i})}catch(s){return qo._handleError(s)}},async rename(o,i,s){try{return await n._proxy.$rename(o,i,{overwrite:!1,...s})}catch(a){return qo._handleError(a)}},async copy(o,i,s){try{return await n._proxy.$copy(o,i,{overwrite:!1,...s})}catch(a){return qo._handleError(a)}},isWritableFileSystem(o){let i=e.getCapabilities(o);if(typeof i=="number")return!(i&2048)}})}async mkdirp(t,e,n){let o=[];for(;!e.isEqual(n,e.dirname(n));)try{if(((await t.stat(n)).type&2)===0)throw ft.FileExists(`Unable to create folder '${n.scheme===V.file?n.fsPath:n.toString(!0)}' that already exists but is not a directory`);break}catch(i){if(mp(i)!=="EntryNotFound")throw i;o.push(e.basename(n)),n=e.dirname(n)}for(let i=o.length-1;i>=0;i--){n=e.joinPath(n,o[i]);try{await t.createDirectory(n)}catch(s){if(mp(s)!=="EntryExists")throw s}}}static _handleError(t){if(t instanceof ft)throw t;if(t instanceof pl)switch(t.code){case"EntryExists":throw ft.FileExists(t.message);case"EntryNotFound":throw ft.FileNotFound(t.message);case"EntryNotADirectory":throw ft.FileNotADirectory(t.message);case"EntryIsADirectory":throw ft.FileIsADirectory(t.message);case"NoPermissions":throw ft.NoPermissions(t.message);case"Unavailable":throw ft.Unavailable(t.message);default:throw new ft(t.message,t.name)}if(!(t instanceof Error))throw new ft(String(t));if(t.name==="ENOPRO"||t.message.includes("ENOPRO"))throw ft.Unavailable(t.message);switch(t.name){case"EntryExists":throw ft.FileExists(t.message);case"EntryNotFound":throw ft.FileNotFound(t.message);case"EntryNotADirectory":throw ft.FileNotADirectory(t.message);case"EntryIsADirectory":throw ft.FileIsADirectory(t.message);case"NoPermissions":throw ft.NoPermissions(t.message);case"Unavailable":throw ft.Unavailable(t.message);default:throw new ft(t.message,t.name)}}addFileSystemProvider(t,e,n){return this._fileSystemProvider.set(t,{impl:e,extUri:n?.isCaseSensitive?mt:EP,isReadonly:!!n?.isReadonly}),G(()=>this._fileSystemProvider.delete(t))}getFileSystemProviderExtUri(t){return this._fileSystemProvider.get(t)?.extUri??mt}};qo=_([C(0,ie),C(1,Ur)],qo);var Ds=R("IExtHostConsumerFileSystem");var ng=R("IExtensionStoragePaths"),tg=class{constructor(t,e,n){this._logService=e;this._extHostFileSystem=n;this._workspace=t.workspace??void 0,this._environment=t.environment,this.whenReady=this._getOrCreateWorkspaceStoragePath().then(o=>this._value=o)}async _getWorkspaceStorageURI(t){return y.joinPath(this._environment.workspaceStorageHome,t)}async _getOrCreateWorkspaceStoragePath(){if(!this._workspace)return Promise.resolve(void 0);let t=this._workspace.id,e=await this._getWorkspaceStorageURI(t);try{return await this._extHostFileSystem.value.stat(e),this._logService.trace("[ExtHostStorage] storage dir already exists",e),e}catch{}try{return this._logService.trace("[ExtHostStorage] creating dir and metadata-file",e),await this._extHostFileSystem.value.createDirectory(e),await this._extHostFileSystem.value.writeFile(y.joinPath(e,"meta.json"),new TextEncoder().encode(JSON.stringify({id:this._workspace.id,configuration:y.revive(this._workspace.configuration)?.toString(),name:this._workspace.name},void 0,2))),e}catch(n){this._logService.error("[ExtHostStorage]",n);return}}workspaceValue(t){if(this._value)return y.joinPath(this._value,t.identifier.value)}globalValue(t){return y.joinPath(this._environment.globalStorageHome,t.identifier.value.toLowerCase())}onWillDeactivateAll(){}};tg=_([C(0,Ye),C(1,oe),C(2,Ds)],tg);var Q4=R("tunnelService"),ADe=R("sharedTunnelsService");function J4(r){return!!r.forwardPort}function g6(r){if(r.scheme!=="http"&&r.scheme!=="https")return;let t=/^(localhost|127\.0\.0\.1|0\.0\.0\.0):(\d+)$/.exec(r.authority);if(t)return{address:t[1],port:+t[2]}}var rg=["localhost","127.0.0.1","0:0:0:0:0:0:0:1","::1"];function Rs(r){return rg.indexOf(r)>=0}var nb=["0.0.0.0","0:0:0:0:0:0:0:0","::"];function Jr(r){return nb.indexOf(r)>=0}function Y4(r,t,e,n){if(e===1)return!1;if(e===2&&Jr(t)){let o=/(\d+)\.(\d+)\.(\d+)/g.exec(n);if(o?.length===4&&parseInt(o[1])>=18)return!1}return r<1024}var lT=class{constructor(t,e,n){this.remoteAddress=t;this.localAddress=e;this._dispose=n;this._onDispose=new T;this.onDidDispose=this._onDispose.event}dispose(){return this._onDispose.fire(),this._onDispose.dispose(),this._dispose()}},og=class extends O{constructor(e,n){super();this.logService=e;this.configurationService=n;this._onTunnelOpened=this._register(new T);this.onTunnelOpened=this._onTunnelOpened.event;this._onTunnelClosed=this._register(new T);this.onTunnelClosed=this._onTunnelClosed.event;this._onAddedTunnelProvider=this._register(new T);this.onAddedTunnelProvider=this._onAddedTunnelProvider.event;this._tunnels=new Map;this._canElevate=!1;this._canChangeProtocol=!0;this._privacyOptions=[];this._factoryInProgress=new Set}get hasTunnelProvider(){return!!this._tunnelProvider}get defaultTunnelHost(){let e=this.configurationService.getValue("remote.localPortHost");return!e||e==="localhost"?"127.0.0.1":"0.0.0.0"}setTunnelProvider(e){return this._tunnelProvider=e,e?(this._onAddedTunnelProvider.fire(),{dispose:()=>{this._tunnelProvider=void 0,this._canElevate=!1,this._privacyOptions=[]}}):(this._canElevate=!1,this._privacyOptions=[],this._onAddedTunnelProvider.fire(),{dispose:()=>{}})}setTunnelFeatures(e){this._canElevate=e.elevation,this._privacyOptions=e.privacyOptions,this._canChangeProtocol=e.protocol}get canChangeProtocol(){return this._canChangeProtocol}get canElevate(){return this._canElevate}get canChangePrivacy(){return this._privacyOptions.length>0}get privacyOptions(){return this._privacyOptions}get tunnels(){return this.getTunnels()}async getTunnels(){let e=[],n=Array.from(this._tunnels.values());for(let o of n){let i=Array.from(o.values());for(let s of i){let a=await s.value;a&&typeof a!="string"&&e.push(a)}}return e}async dispose(){super.dispose();for(let e of this._tunnels.values()){for(let{value:n}of e.values())await n.then(o=>typeof o!="string"?o?.dispose():void 0);e.clear()}this._tunnels.clear()}setEnvironmentTunnel(e,n,o,i,s){this.addTunnelToMap(e,n,Promise.resolve({tunnelRemoteHost:e,tunnelRemotePort:n,localAddress:o,privacy:i,protocol:s,dispose:()=>Promise.resolve()}))}async getExistingTunnel(e,n){(Jr(e)||Rs(e))&&(e=rg[0]);let o=this.getTunnelFromMap(e,n);if(o)return++o.refcount,o.value}openTunnel(e,n,o,i,s,a=!1,l,d){this.logService.trace(`ForwardedPorts: (TunnelService) openTunnel request for ${n}:${o} on local port ${s}.`);let c=this._tunnelProvider??e;if(!c)return;if(n||(n="localhost"),i||(i=this.defaultTunnelHost),this._tunnelProvider&&this._factoryInProgress.has(o)){this.logService.debug("ForwardedPorts: (TunnelService) Another call to create a tunnel with the same address has occurred before the last one completed. This call will be ignored.");return}let u=this.retainOrCreateTunnel(c,n,o,i,s,a,l,d);return u?u.then(m=>{if(m){if(typeof m=="string")return this.logService.trace("ForwardedPorts: (TunnelService) The tunnel provider returned an error when creating the tunnel."),this.removeEmptyOrErrorTunnelFromMap(n,o),m}else{this.logService.trace("ForwardedPorts: (TunnelService) New tunnel is undefined."),this.removeEmptyOrErrorTunnelFromMap(n,o);return}this.logService.trace("ForwardedPorts: (TunnelService) New tunnel established.");let g=this.makeTunnel(m);return(m.tunnelRemoteHost!==n||m.tunnelRemotePort!==o)&&this.logService.warn("ForwardedPorts: (TunnelService) Created tunnel does not match requirements of requested tunnel. Host or port mismatch."),l&&m.privacy!==l&&this.logService.warn("ForwardedPorts: (TunnelService) Created tunnel does not match requirements of requested tunnel. Privacy mismatch."),this._onTunnelOpened.fire(g),g}):(this.logService.trace("ForwardedPorts: (TunnelService) Tunnel was not created."),u)}makeTunnel(e){return{tunnelRemotePort:e.tunnelRemotePort,tunnelRemoteHost:e.tunnelRemoteHost,tunnelLocalPort:e.tunnelLocalPort,localAddress:e.localAddress,privacy:e.privacy,protocol:e.protocol,dispose:async()=>{this.logService.trace(`ForwardedPorts: (TunnelService) dispose request for ${e.tunnelRemoteHost}:${e.tunnelRemotePort} `);let n=this._tunnels.get(e.tunnelRemoteHost);if(n){let o=n.get(e.tunnelRemotePort);o&&(o.refcount--,await this.tryDisposeTunnel(e.tunnelRemoteHost,e.tunnelRemotePort,o))}}}}async tryDisposeTunnel(e,n,o){if(o.refcount<=0){this.logService.trace(`ForwardedPorts: (TunnelService) Tunnel is being disposed ${e}:${n}.`);let i=o.value.then(async s=>{s&&typeof s!="string"&&(await s.dispose(!0),this._onTunnelClosed.fire({host:s.tunnelRemoteHost,port:s.tunnelRemotePort}))});return this._tunnels.has(e)&&this._tunnels.get(e).delete(n),i}}async closeTunnel(e,n){this.logService.trace(`ForwardedPorts: (TunnelService) close request for ${e}:${n} `);let o=this._tunnels.get(e);if(o&&o.has(n)){let i=o.get(n);i.refcount=0,await this.tryDisposeTunnel(e,n,i)}}addTunnelToMap(e,n,o){this._tunnels.has(e)||this._tunnels.set(e,new Map),this._tunnels.get(e).set(n,{refcount:1,value:o})}async removeEmptyOrErrorTunnelFromMap(e,n){let o=this._tunnels.get(e);if(o){let i=o.get(n),s=i?await i.value:void 0;(!s||typeof s=="string")&&o.delete(n),o.size===0&&this._tunnels.delete(e)}}getTunnelFromMap(e,n){let o=[e];Rs(e)?(o.push(...rg),o.push(...nb)):Jr(e)&&o.push(...nb);let i=o.map(s=>this._tunnels.get(s));for(let s of i){let a=s?.get(n);if(a)return a}}canTunnel(e){return!!g6(e)}createWithProvider(e,n,o,i,s,a,l){this.logService.trace(`ForwardedPorts: (TunnelService) Creating tunnel with provider ${n}:${o} on local port ${i}.`);let d=o;this._factoryInProgress.add(d);let c=i===void 0?o:i,u={elevationRequired:s?this.isPortPrivileged(c):!1},m={remoteAddress:{host:n,port:o},localAddressPort:i,privacy:a,public:a?a!=="private":void 0,protocol:l},g=e.forwardPort(m,u);return g?(this.addTunnelToMap(n,o,g),g.finally(()=>{this.logService.trace("ForwardedPorts: (TunnelService) Tunnel created by provider."),this._factoryInProgress.delete(d)})):this._factoryInProgress.delete(d),g}};og=_([C(0,oe),C(1,sn)],og);var Z1=class extends lT{},Z4;(e=>{function r(n){return{remoteAddress:n.remoteAddress,localAddress:n.localAddress,public:!!n.public,privacy:n.privacy??(n.public?"public":"private"),protocol:n.protocol}}e.fromApiTunnel=r;function t(n){return{remoteAddress:{host:n.tunnelRemoteHost,port:n.tunnelRemotePort},localAddress:n.localAddress,public:n.privacy!=="constantPrivate"&&n.privacy!=="constantPrivate",privacy:n.privacy,protocol:n.protocol}}e.fromServiceTunnel=t})(Z4||={});var sd=R("IExtHostTunnelService"),id=class extends O{constructor(e,n,o){super();this.logService=o;this._showCandidatePort=()=>Promise.resolve(!0);this._extensionTunnels=new Map;this._onDidChangeTunnels=this._register(new T);this.onDidChangeTunnels=this._onDidChangeTunnels.event;this._providerHandleCounter=0;this._portAttributesProviders=new Map;this._proxy=e.getProxy(U.MainThreadTunnelService)}async openTunnel(e,n){this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) ${e.identifier.value} called openTunnel API for ${n.remoteAddress.host}:${n.remoteAddress.port}.`);let o=await this._proxy.$openTunnel(n,e.displayName);if(o){let i=new Z1(o.remoteAddress,o.localAddress,()=>this._proxy.$closeTunnel(o.remoteAddress));return this._register(i),i}}async getTunnels(){return this._proxy.$getTunnels()}nextPortAttributesProviderHandle(){return this._providerHandleCounter++}registerPortsAttributesProvider(e,n){e.portRange===void 0&&e.commandPattern===void 0&&this.logService.error("PortAttributesProvider must specify either a portRange or a commandPattern");let o=this.nextPortAttributesProviderHandle();return this._portAttributesProviders.set(o,{selector:e,provider:n}),this._proxy.$registerPortsAttributesProvider(e,o),new be(()=>{this._portAttributesProviders.delete(o),this._proxy.$unregisterPortsAttributesProvider(o)})}async $providePortAttributes(e,n,o,i,s){let a=[];for(let d of e){let c=this._portAttributesProviders.get(d);if(!c)return[];a.push(...await Promise.all(n.map(async u=>{let m;try{m=await c.provider.providePortAttributes({port:u,pid:o,commandLine:i},s)}catch{m=await c.provider.providePortAttributes(u,o,i,s)}return{providedAttributes:m,port:u}})))}let l=a.filter(d=>!!d.providedAttributes);return l.length>0?l.map(d=>({autoForwardAction:d.providedAttributes.autoForwardAction,port:d.port})):[]}async $registerCandidateFinder(e){}registerTunnelProvider(e,n){if(this._forwardPortProvider)throw new Error("A tunnel provider has already been registered. Only the first tunnel provider to be registered will be used.");this._forwardPortProvider=async(i,s)=>await e.provideTunnel(i,s,he.None)??void 0;let o=n.tunnelFeatures?{elevation:!!n.tunnelFeatures?.elevation,privacyOptions:n.tunnelFeatures?.privacyOptions,protocol:n.tunnelFeatures.protocol===void 0?!0:n.tunnelFeatures.protocol}:void 0;return this._proxy.$setTunnelProvider(o,!0),Promise.resolve(G(()=>{this._forwardPortProvider=void 0,this._proxy.$setTunnelProvider(void 0,!1)}))}hasTunnelProvider(){return this._proxy.$hasTunnelProvider()}async setTunnelFactory(e,n){if(e){e.candidatePortSource!==void 0&&this._proxy.$setCandidatePortSource(e.candidatePortSource),e.showCandidatePort&&(this._showCandidatePort=e.showCandidatePort,this._proxy.$setCandidateFilter());let o=e.tunnelFactory??(n?this.makeManagedTunnelFactory(n):void 0);if(o){this._forwardPortProvider=o;let i=e.tunnelFeatures?.privacyOptions??[];e.tunnelFeatures?.public&&i.length===0&&(i=[{id:"private",label:p(3326,null),themeIcon:"lock"},{id:"public",label:p(3327,null),themeIcon:"eye"}]);let s=e.tunnelFeatures?{elevation:!!e.tunnelFeatures?.elevation,public:!!e.tunnelFeatures?.public,privacyOptions:i,protocol:!0}:void 0;this._proxy.$setTunnelProvider(s,!!e.tunnelFactory)}}else this._forwardPortProvider=void 0;return G(()=>{this._forwardPortProvider=void 0})}makeManagedTunnelFactory(e){}async $closeTunnel(e,n){if(this._extensionTunnels.has(e.host)){let o=this._extensionTunnels.get(e.host);o.has(e.port)&&(n&&o.get(e.port).disposeListener.dispose(),await o.get(e.port).tunnel.dispose(),o.delete(e.port))}}async $onDidTunnelsChange(){this._onDidChangeTunnels.fire()}async $forwardPort(e,n){if(this._forwardPortProvider)try{this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Getting tunnel from provider.");let o=this._forwardPortProvider(e,n);if(this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Got tunnel promise from provider."),o!==void 0){let i=await o;if(this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Successfully awaited tunnel from provider."),i===void 0){this.logService.error("ForwardedPorts: (ExtHostTunnelService) Resolved tunnel is undefined");return}this._extensionTunnels.has(e.remoteAddress.host)||this._extensionTunnels.set(e.remoteAddress.host,new Map);let s=this._register(i.onDidDispose(()=>(this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Extension fired tunnel's onDidDispose."),this._proxy.$closeTunnel(i.remoteAddress))));return this._extensionTunnels.get(e.remoteAddress.host).set(e.remoteAddress.port,{tunnel:i,disposeListener:s}),Z4.fromApiTunnel(i)}else this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Tunnel is undefined")}catch(o){if(this.logService.trace("ForwardedPorts: (ExtHostTunnelService) tunnel provider error"),o instanceof Error)return o.message}}async $applyCandidateFilter(e){let n=await Promise.all(e.map(i=>this._showCandidatePort(i.host,i.port,i.detail??""))),o=e.filter((i,s)=>n[s]);return this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) filtered from ${e.map(i=>i.port).join(", ")} to ${o.map(i=>i.port).join(", ")}`),o}};id=_([C(0,ie),C(1,Ye),C(2,oe)],id);function eW(r){return[...r.entries()]}function tW(r){return r?[...r.entries()]:[]}var iRe=R("ptyService");var f6={Backend:"workbench.contributions.terminal.processBackend"},e0=class{constructor(){this._backends=new Map}get backends(){return this._backends}registerTerminalBackend(t){let e=this._sanitizeRemoteAuthority(t.remoteAuthority);if(this._backends.has(e))throw new Error(`A terminal backend with remote authority '${e}' was already registered.`);this._backends.set(e,t)}getTerminalBackend(t){return this._backends.get(this._sanitizeRemoteAuthority(t))}_sanitizeRemoteAuthority(t){return t?.toLowerCase()??""}};gt.add(f6.Backend,new e0);var sRe=R("localPtyService"),aRe=R("terminalLogService");var dT=class{constructor(t){this._callback=t;this._terminalBufferMap=new Map}dispose(){for(let t of this._terminalBufferMap.values())t.dispose()}startBuffering(t,e,n=5){let o=e(i=>{let s=Pe(i)?i:i.data,a=this._terminalBufferMap.get(t);if(a){a.data.push(s);return}let l=setTimeout(()=>this.flushBuffer(t),n);a={data:[s],timeoutId:l,dispose:()=>{clearTimeout(l),this.flushBuffer(t),o.dispose()}},this._terminalBufferMap.set(t,a)});return o}stopBuffering(t){this._terminalBufferMap.get(t)?.dispose()}flushBuffer(t){let e=this._terminalBufferMap.get(t);e&&(this._terminalBufferMap.delete(t),this._callback(t,e.data.join("")))}};var nu=(r,t,e,n)=>{let o=t;return{enumerable:!0,configurable:!1,get(){return o},set(i){if(!e(o,i)){let s=o;o=i,r.listener?.(n(i,s))}}}},ig=(r,t)=>r===t,ad={range:(r,t)=>r===t?!0:!r||!t?!1:r.isEqual(t),label:ig,description:ig,sortText:ig,busy:ig,error:ig,canResolveChildren:ig,tags:(r,t)=>!(r.length!==t.length||r.some(e=>!t.find(n=>e.id===n.id)))},sg=r=>t=>({op:4,update:r(t)}),h6=(r,t)=>({range:(()=>{let e,n=sg(o=>({range:Ke.lift(K.from(o))}));return{enumerable:!0,configurable:!1,get(){return e},set(o){r.listener?.({op:6}),ad.range(e,o)||(e=o,r.listener?.(n(o)))}}})(),label:nu(r,t,ad.label,sg(e=>({label:e}))),description:nu(r,void 0,ad.description,sg(e=>({description:e}))),sortText:nu(r,void 0,ad.sortText,sg(e=>({sortText:e}))),canResolveChildren:nu(r,!1,ad.canResolveChildren,e=>({op:2,state:e})),busy:nu(r,!1,ad.busy,sg(e=>({busy:e}))),error:nu(r,void 0,ad.error,sg(e=>({error:me.fromStrict(e)||null}))),tags:nu(r,[],ad.tags,(e,n)=>({op:1,new:e.map(Qr.from),old:n.map(Qr.from)}))}),v6=r=>{let t=Ze.fromString(r.extId),e=new Aa(t.controllerId,t.localId,r.label,y.revive(r.uri)||void 0);return e.range=K.to(r.range||void 0),e.description=r.description||void 0,e.sortText=r.sortText||void 0,e.tags=r.tags.map(n=>Qr.to({id:Bx(n).tagId})),e},t0=r=>{let t;for(let e of r.tests){let n=v6(e.item);Fp(n).parent=t,t=n}return t},Aa=class r{constructor(t,e,n,o){if(e.includes("\0"))throw new Error(`Test IDs may not include the ${JSON.stringify(e)} symbol`);let i=s4(this,t);Object.defineProperties(this,{id:{value:e,enumerable:!0,writable:!1},uri:{value:o,enumerable:!0,writable:!1},parent:{enumerable:!1,get(){return i.parent instanceof ag?void 0:i.parent}},children:{value:r4(i,Fp,r),enumerable:!0,writable:!1},...h6(i,n)})}},ag=class extends Aa{constructor(e,n){super(e,e,n,void 0);this._isRoot=!0}},cT=class extends qx{constructor(t,e,n){super({controllerId:t,getDocumentVersion:o=>o&&n.getDocument(o)?.version,getApiFor:Fp,getChildren:o=>o.children,root:new ag(t,e),toITestItem:ks.from})}};var uT=(e=>(e[e.Desktop=1]="Desktop",e[e.Web=2]="Web",e))(uT||{});function n0(r){let t=W.alloc(1);switch(r){case 0:t.writeUInt8(1,0);break;case 1:t.writeUInt8(2,0);break;case 2:t.writeUInt8(3,0);break}return t}function nW(r,t){if(r.byteLength!==1)return!1;switch(r.readUInt8(0)){case 1:return t===0;case 2:return t===1;case 3:return t===2;default:return!1}}var lg=class extends O{constructor(e,n,o){super();this.initData=n;this._onDidChangeTelemetryEnabled=this._register(new T);this.onDidChangeTelemetryEnabled=this._onDidChangeTelemetryEnabled.event;this._onDidChangeTelemetryConfiguration=this._register(new T);this.onDidChangeTelemetryConfiguration=this._onDidChangeTelemetryConfiguration.event;this._productConfig={usage:!0,error:!0};this._level=0;this._inLoggingOnlyMode=!1;this._telemetryLoggers=new Map;this._inLoggingOnlyMode=this.initData.environment.isExtensionTelemetryLoggingOnly;let i=n.remote.isRemote?"remoteExtHostTelemetry":e?"workerExtHostTelemetry":"extHostTelemetry";this._outputLogger=this._register(o.createLogger(i,{name:p(3324,null,this._inLoggingOnlyMode?" (Not Sent)":""),hidden:!0,group:mH}))}getTelemetryConfiguration(){return this._level===3}getTelemetryDetails(){return{isCrashEnabled:this._level>=1,isErrorsEnabled:this._productConfig.error?this._level>=2:!1,isUsageEnabled:this._productConfig.usage?this._level>=3:!1}}instantiateLogger(e,n,o){let i=this.getTelemetryDetails(),s=new ob(n,o,e,this._outputLogger,this._inLoggingOnlyMode,this.getBuiltInCommonProperties(e),{isUsageEnabled:i.isUsageEnabled,isErrorsEnabled:i.isErrorsEnabled}),a=this._telemetryLoggers.get(e.identifier.value)??[];return this._telemetryLoggers.set(e.identifier.value,[...a,s]),s.apiTelemetryLogger}$initializeTelemetryLevel(e,n,o){this._level=e,this._productConfig=o??{usage:!0,error:!0}}getBuiltInCommonProperties(e){let n=Object.create(null);switch(n["common.extname"]=`${e.publisher}.${e.name}`,n["common.extversion"]=e.version,n["common.vscodemachineid"]=this.initData.telemetryInfo.machineId,n["common.vscodesessionid"]=this.initData.telemetryInfo.sessionId,n["common.vscodecommithash"]=this.initData.commit,n["common.sqmid"]=this.initData.telemetryInfo.sqmId,n["common.devDeviceId"]=this.initData.telemetryInfo.devDeviceId??this.initData.telemetryInfo.machineId,n["common.vscodeversion"]=this.initData.version,n["common.vscodereleasedate"]=this.initData.date,n["common.isnewappinstall"]=o0(this.initData.telemetryInfo.firstSessionDate),n["common.product"]=this.initData.environment.appHost,this.initData.uiKind){case 2:n["common.uikind"]="web";break;case 1:n["common.uikind"]="desktop";break;default:n["common.uikind"]="unknown"}return n["common.remotename"]=gH(this.initData.remote.authority,this.initData),n}$onDidChangeTelemetryLevel(e){this._oldTelemetryEnablement=this.getTelemetryConfiguration(),this._level=e;let n=this.getTelemetryDetails();this._telemetryLoggers.forEach((o,i)=>{let s=o.filter(a=>!a.isDisposed);s.length===0?this._telemetryLoggers.delete(i):this._telemetryLoggers.set(i,s)}),this._telemetryLoggers.forEach(o=>{for(let i of o)i.updateTelemetryEnablements(n.isUsageEnabled,n.isErrorsEnabled)}),this._oldTelemetryEnablement!==this.getTelemetryConfiguration()&&this._onDidChangeTelemetryEnabled.fire(this.getTelemetryConfiguration()),this._onDidChangeTelemetryConfiguration.fire(this.getTelemetryDetails())}onExtensionError(e,n){let i=this._telemetryLoggers.get(e.value)?.filter(a=>!a.isDisposed);if(!i)return this._telemetryLoggers.delete(e.value),!1;let s=!1;for(let a of i)a.ignoreUnhandledExtHostErrors||(a.logError(n),s=!0);return s}};lg=_([C(1,Ye),C(2,Wo)],lg);var ob=class{constructor(t,e,n,o,i,s,a){this._extension=n;this._logger=o;this._inLoggingOnlyMode=i;this._commonProperties=s;this._onDidChangeEnableStates=new T;this.ignoreUnhandledExtHostErrors=e?.ignoreUnhandledErrors??!1,this._ignoreBuiltinCommonProperties=e?.ignoreBuiltInCommonProperties??!1,this._additionalCommonProperties=e?.additionalCommonProperties,this._sender=t,this._telemetryEnablements={isUsageEnabled:a.isUsageEnabled,isErrorsEnabled:a.isErrorsEnabled}}static validateSender(t){if(typeof t!="object")throw new TypeError("TelemetrySender argument is invalid");if(typeof t.sendEventData!="function")throw new TypeError("TelemetrySender.sendEventData must be a function");if(typeof t.sendErrorData!="function")throw new TypeError("TelemetrySender.sendErrorData must be a function");if(typeof t.flush<"u"&&typeof t.flush!="function")throw new TypeError("TelemetrySender.flush must be a function or undefined")}updateTelemetryEnablements(t,e){this._apiObject&&(this._telemetryEnablements={isUsageEnabled:t,isErrorsEnabled:e},this._onDidChangeEnableStates.fire(this._apiObject))}mixInCommonPropsAndCleanData(t){let e=t.properties?t.properties??{}:t;return e=yR(e,[]),this._additionalCommonProperties&&(e=Uo(e,this._additionalCommonProperties)),this._ignoreBuiltinCommonProperties||(e=Uo(e,this._commonProperties)),t.properties?t.properties=e:t=e,t}logEvent(t,e){this._sender&&(this._extension.publisher==="vscode"?t=this._extension.name+"/"+t:t=this._extension.identifier.value+"/"+t,e=this.mixInCommonPropsAndCleanData(e||{}),this._inLoggingOnlyMode||this._sender?.sendEventData(t,e),this._logger.trace(t,e))}logUsage(t,e){this._telemetryEnablements.isUsageEnabled&&this.logEvent(t,e)}logError(t,e){if(!(!this._telemetryEnablements.isErrorsEnabled||!this._sender))if(typeof t=="string")this.logEvent(t,e);else{let n={name:t.name,message:t.message,stack:t.stack,cause:t.cause},o=yR(n,[]),i=new Error(typeof o.message=="string"?o.message:void 0,{cause:o.cause});i.stack=typeof o.stack=="string"?o.stack:void 0,i.name=typeof o.name=="string"?o.name:"unknown",e=this.mixInCommonPropsAndCleanData(e||{}),this._inLoggingOnlyMode||this._sender.sendErrorData(i,e),this._logger.trace("exception",e)}}get apiTelemetryLogger(){if(!this._apiObject){let t=this,e={logUsage:t.logUsage.bind(t),get isUsageEnabled(){return t._telemetryEnablements.isUsageEnabled},get isErrorsEnabled(){return t._telemetryEnablements.isErrorsEnabled},logError:t.logError.bind(t),dispose:t.dispose.bind(t),onDidChangeEnableStates:t._onDidChangeEnableStates.event.bind(t)};this._apiObject=Object.freeze(e)}return this._apiObject}get isDisposed(){return!this._sender}dispose(){if(this._sender?.flush){let t=this._sender;this._sender=void 0,Promise.resolve(t.flush()).then(t=void 0),this._apiObject=void 0}else this._sender=void 0;this._onDidChangeEnableStates.dispose()}};function o0(r){let t=Date.now()-new Date(r).getTime();return isNaN(t)?!1:t<1e3*60*60*24}var ld=R("IExtHostTelemetry");var dg=class{constructor(t,e,n){this._commands=new Map;this._apiCommands=new Map;this.#e=t.getProxy(U.MainThreadCommands),this._logService=e,this.#n=n,this.#t=t.getProxy(U.MainThreadTelemetry),this.converter=new r0(this,o=>{let i=this._apiCommands.get(o);return i?.result===we.Void?i:void 0},e),this._argumentProcessors=[{processArgument(o){return Ht(o)}},{processArgument(o){return js(o,function(i){if(Ke.isIRange(i))return K.to(i);if(kn.isIPosition(i))return dt.to(i);if(Ke.isIRange(i.range)&&y.isUri(i.uri))return io.to(i);if(i instanceof W)return i.buffer.buffer;if(!Array.isArray(i))return i})}}]}#e;#t;#n;registerArgumentProcessor(t){this._argumentProcessors.push(t)}registerApiCommand(t){let e=this.registerCommand(!1,t.id,async(...n)=>{let o=t.args.map((s,a)=>{if(!s.validate(n[a]))throw new Error(`Invalid argument '${s.name}' when running '${t.id}', received: ${typeof n[a]=="object"?JSON.stringify(n[a],null,"	"):n[a]} `);return s.convert(n[a])}),i=await this.executeCommand(t.internalId,...o);return t.result.convert(i,n,this.converter)},void 0,{description:t.description,args:t.args,returns:t.result.description});return this._apiCommands.set(t.id,t),new be(()=>{e.dispose(),this._apiCommands.delete(t.id)})}registerCommand(t,e,n,o,i,s){if(this._logService.trace("ExtHostCommands#registerCommand",e),!e.trim().length)throw new Error("invalid id");if(this._commands.has(e))throw new Error(`command '${e}' already exists`);return this._commands.set(e,{callback:n,thisArg:o,metadata:i,extension:s}),t&&this.#e.$registerCommand(e),new be(()=>{this._commands.delete(e)&&t&&this.#e.$unregisterCommand(e)})}executeCommand(t,...e){return this._logService.trace("ExtHostCommands#executeCommand",t),this._doExecuteCommand(t,e,!0)}async _doExecuteCommand(t,e,n){if(this._commands.has(t))return this.#e.$fireCommandActivationEvent(t),this._executeContributedCommand(t,e,!1);{let o=!1,i=js(e,function(s){if(s instanceof Ee)return dt.from(s);if(s instanceof ge)return K.from(s);if(s instanceof Qt)return io.from(s);if(Yn.isNotebookRange(s))return wr.from(s);if(s instanceof ArrayBuffer)return o=!0,W.wrap(new Uint8Array(s));if(s instanceof Uint8Array)return o=!0,W.wrap(s);if(s instanceof W)return o=!0,s;if(!Array.isArray(s))return s});try{let s=await this.#e.$executeCommand(t,o?new $t(i):i,n);return Ht(s)}catch(s){if(s instanceof Error&&s.message==="$executeCommand:retry")return this._doExecuteCommand(t,e,!1);throw s}}}async _executeContributedCommand(t,e,n){let o=this._commands.get(t);if(!o)throw new Error("Unknown command");let{callback:i,thisArg:s,metadata:a}=o;if(a?.args)for(let d=0;d<a.args.length;d++)try{qk(e[d],a.args[d].constraint)}catch{throw new Error(`Running the contributed command: '${t}' failed. Illegal argument '${a.args[d].name}' - ${a.args[d].description}`)}let l=Zt.create();try{return await i.apply(s,e)}catch(d){if(t===this.converter.delegatingCommandId){let c=this.converter.getActualCommand(...e);c&&(t=c.command)}if(zt(d)||this._logService.error(d,t,o.extension?.identifier),!n)throw d;if(o.extension?.identifier){let c=this.#n.onExtensionError(o.extension.identifier,d);this._logService.trace("forwarded error to extension?",c,o.extension?.identifier)}throw new class extends Error{constructor(){super(fo(d));this.id=t;this.source=o.extension?.displayName??o.extension?.name}}}finally{this._reportTelemetry(o,t,l.elapsed())}}_reportTelemetry(t,e,n){t.extension&&(e.startsWith("code.copilot.logStructured")||this.#t.$publicLog2("Extension:ActionExecuted",{extensionId:t.extension.identifier.value,id:new Il(e),duration:n}))}$executeContributedCommand(t,...e){this._logService.trace("ExtHostCommands#$executeContributedCommand",t);let n=this._commands.get(t);return n?(e=e.map(o=>this._argumentProcessors.reduce((i,s)=>s.processArgument(i,n.extension),o)),this._executeContributedCommand(t,e,!0)):Promise.reject(new Error(`Contributed command '${t}' does not exist.`))}getCommands(t=!1){return this._logService.trace("ExtHostCommands#getCommands",t),this.#e.$getCommands().then(e=>(t&&(e=e.filter(n=>n[0]!=="_")),e))}$getContributedCommandMetadata(){let t=Object.create(null);for(let[e,n]of this._commands){let{metadata:o}=n;o&&(t[e]=o)}return Promise.resolve(t)}};dg=_([C(0,ie),C(1,oe),C(2,ld)],dg);var Dn=R("IExtHostCommands"),r0=class{constructor(t,e,n){this._commands=t;this._lookupApiCommand=e;this._logService=n;this.delegatingCommandId=`__vsc${Le()}`;this._cache=new Map;this._cachIdPool=0;this._commands.registerCommand(!0,this.delegatingCommandId,this._executeConvertedCommand,this)}toInternal(t,e){if(!t)return;let n={$ident:void 0,id:t.command,title:t.title,tooltip:t.tooltip};if(!t.command)return n;let o=this._lookupApiCommand(t.command);if(o)n.id=o.internalId,n.arguments=o.args.map((i,s)=>i.convert(t.arguments&&t.arguments[s]));else if(Ka(t.arguments)){let i=`${t.command} /${++this._cachIdPool}`;this._cache.set(i,t),e.add(G(()=>{this._cache.delete(i),this._logService.trace("CommandsConverter#DISPOSE",i)})),n.$ident=i,n.id=this.delegatingCommandId,n.arguments=[i],this._logService.trace("CommandsConverter#CREATE",t.command,i)}return n}fromInternal(t){return typeof t.$ident=="string"?this._cache.get(t.$ident):{command:t.id,title:t.title,arguments:t.arguments}}getActualCommand(...t){return this._cache.get(t[0])}_executeConvertedCommand(...t){let e=this.getActualCommand(...t);return this._logService.trace("CommandsConverter#EXECUTE",t[0],e?e.command:"MISSING"),e?this._commands.executeCommand(e.command,...e.arguments||[]):Promise.reject(`Actual command not found, wanted to execute ${t[0]}`)}},Z=class r{constructor(t,e,n,o){this.name=t;this.description=e;this.validate=n;this.convert=o}static{this.Uri=new r("uri","Uri of a text document",t=>y.isUri(t),t=>t)}static{this.Position=new r("position","A position in a text document",t=>Ee.isPosition(t),dt.from)}static{this.Range=new r("range","A range in a text document",t=>ge.isRange(t),K.from)}static{this.Selection=new r("selection","A selection in a text document",t=>$n.isSelection(t),yo.from)}static{this.Number=new r("number","",t=>typeof t=="number",t=>t)}static{this.String=new r("string","",t=>typeof t=="string",t=>t)}static Arr(t){return new r(`${t.name}_array`,`Array of ${t.name}, ${t.description}`,e=>Array.isArray(e)&&e.every(n=>t.validate(n)),e=>e.map(n=>t.convert(n)))}static{this.CallHierarchyItem=new r("item","A call hierarchy item",t=>t instanceof Hl,Pa.from)}static{this.TypeHierarchyItem=new r("item","A type hierarchy item",t=>t instanceof Bl,Da.from)}static{this.TestItem=new r("testItem","A VS Code TestItem",t=>t instanceof Aa,ks.from)}static{this.TestProfile=new r("testProfile","A VS Code test profile",t=>t instanceof om,I1.from)}optional(){return new r(this.name,`(optional) ${this.description}`,t=>t==null||this.validate(t),t=>t===void 0?void 0:t===null?null:this.convert(t))}with(t,e){return new r(t??this.name,e??this.description,this.validate,this.convert)}},we=class r{constructor(t,e){this.description=t;this.convert=e}static{this.Void=new r("no result",t=>t)}},De=class{constructor(t,e,n,o,i){this.id=t;this.internalId=e;this.description=n;this.args=o;this.result=i}};var Io=R("IExtHostTerminalService"),ru=class extends O{constructor(e,n,o,i){super();this._proxy=e;this._id=n;this._creationOptions=o;this._name=i;this._disposed=!1;this._state={isInteractedWith:!1,shell:void 0};this.isOpen=!1;this._onWillDispose=this._register(new T);this.onWillDispose=this._onWillDispose.event;this._creationOptions=Object.freeze(this._creationOptions),this._pidPromise=new Promise(a=>this._pidPromiseComplete=a);let s=this;this.value={get name(){return s._name||""},get processId(){return s._pidPromise},get creationOptions(){return s._creationOptions},get exitStatus(){return s._exitStatus},get state(){return s._state},get selection(){return s._selection},get shellIntegration(){return s.shellIntegration},sendText(a,l=!0){s._checkDisposed(),s._proxy.$sendText(s._id,a,l)},show(a){s._checkDisposed(),s._proxy.$show(s._id,a)},hide(){s._checkDisposed(),s._proxy.$hide(s._id)},dispose(){s._disposed||(s._disposed=!0,s._proxy.$dispose(s._id))},get dimensions(){if(!(s._cols===void 0||s._rows===void 0))return{columns:s._cols,rows:s._rows}}}}dispose(){this._onWillDispose.fire(),super.dispose()}async create(e,n){if(typeof this._id!="string")throw new Error("Terminal has already been created");await this._proxy.$createTerminal(this._id,{name:e.name,shellPath:e.shellPath??void 0,shellArgs:e.shellArgs??void 0,cwd:e.cwd??n?.cwd??void 0,env:e.env??void 0,icon:rW(e.iconPath)??void 0,color:fp.isThemeColor(e.color)?e.color.id:void 0,initialText:e.message??void 0,strictEnv:e.strictEnv??void 0,hideFromUser:e.hideFromUser??void 0,forceShellIntegration:n?.forceShellIntegration??void 0,isFeatureTerminal:n?.isFeatureTerminal??void 0,isExtensionOwnedTerminal:!0,useShellEnvironment:n?.useShellEnvironment??void 0,location:n?.location||this._serializeParentTerminal(e.location,n?.resolvedExtHostIdentifier),isTransient:e.isTransient??void 0,shellIntegrationNonce:e.shellIntegrationNonce??void 0,titleTemplate:e.titleTemplate??void 0})}async createExtensionTerminal(e,n,o,i,s,a,l){if(typeof this._id!="string")throw new Error("Terminal has already been created");if(await this._proxy.$createTerminal(this._id,{name:this._name,isExtensionCustomPtyTerminal:!0,icon:i,color:fp.isThemeColor(s)?s.id:void 0,location:n?.location||this._serializeParentTerminal(e,o),isTransient:!0,shellIntegrationNonce:a??void 0,titleTemplate:l??void 0}),typeof this._id=="string")throw new Error("Terminal creation failed");return this._id}_serializeParentTerminal(e,n){return typeof e=="object"?Qo(e,{parentTerminal:!0})&&e.parentTerminal&&n?{parentTerminal:n}:Qo(e,{viewColumn:!0})?{viewColumn:Ut.from(e.viewColumn),preserveFocus:e.preserveFocus}:void 0:e}_checkDisposed(){if(this._disposed)throw new Error("Terminal has already been disposed")}set name(e){this._name=e}setExitStatus(e,n){this._exitStatus=Object.freeze({code:e,reason:n})}setDimensions(e,n){return e===this._cols&&n===this._rows||e===0||n===0?!1:(this._cols=e,this._rows=n,!0)}setInteractedWith(){return this._state.isInteractedWith?!1:(this._state={...this._state,isInteractedWith:!0},!0)}setShellType(e){return this._state.shell!==e?(this._state={...this._state,shell:e},!0):!1}setSelection(e){this._selection=e}_setProcessId(e){this._pidPromiseComplete?(this._pidPromiseComplete(e),this._pidPromiseComplete=void 0):this._pidPromise.then(n=>{n!==e&&(this._pidPromise=Promise.resolve(e))})}},rb=class{constructor(t){this._pty=t;this.id=0;this.shouldPersist=!1;this._onProcessData=new T;this.onProcessData=this._onProcessData.event;this._onProcessReady=new T;this._onDidChangeProperty=new T;this.onDidChangeProperty=this._onDidChangeProperty.event;this._onProcessExit=new T;this.onProcessExit=this._onProcessExit.event}get onProcessReady(){return this._onProcessReady.event}refreshProperty(t){throw new Error(`refreshProperty is not suppported in extension owned terminals. property: ${t}`)}updateProperty(t,e){throw new Error(`updateProperty is not suppported in extension owned terminals. property: ${t}, value: ${e}`)}async start(){}shutdown(){this._pty.close()}input(t){this._pty.handleInput?.(t)}sendSignal(t){}resize(t,e){this._pty.setDimensions?.({columns:t,rows:e})}clearBuffer(){}async processBinary(t){}acknowledgeDataEvent(t){}async setUnicodeVersion(t){}getInitialCwd(){return Promise.resolve("")}getCwd(){return Promise.resolve("")}startSendingEvents(t){this._pty.onDidWrite(e=>this._onProcessData.fire(e)),this._pty.onDidClose?.((e=void 0)=>{this._onProcessExit.fire(e===void 0?void 0:e)}),this._pty.onDidOverrideDimensions?.(e=>{e&&this._onDidChangeProperty.fire({type:"overrideDimensions",value:{cols:e.columns,rows:e.rows}})}),this._pty.onDidChangeName?.(e=>{this._onDidChangeProperty.fire({type:"title",value:e})}),this._pty.open(t||void 0),t&&this._pty.setDimensions?.(t),this._onProcessReady.fire({pid:-1,cwd:"",windowsPty:void 0})}},b6=1,ou=class extends O{constructor(e,n,o){super();this._extHostCommands=n;this._terminals=[];this._terminalProcesses=new Map;this._terminalProcessDisposables={};this._extensionTerminalAwaitingStart={};this._getTerminalPromises={};this._environmentVariableCollections=new Map;this._lastQuickFixCommands=this._register(new En);this._linkProviders=new Set;this._completionProviders=new Map;this._profileProviders=new Map;this._quickFixProviders=new Map;this._terminalLinkCache=new Map;this._terminalLinkCancellationSource=new Map;this._onDidCloseTerminal=new T;this.onDidCloseTerminal=this._onDidCloseTerminal.event;this._onDidOpenTerminal=new T;this.onDidOpenTerminal=this._onDidOpenTerminal.event;this._onDidChangeActiveTerminal=new T;this.onDidChangeActiveTerminal=this._onDidChangeActiveTerminal.event;this._onDidChangeTerminalDimensions=new T;this.onDidChangeTerminalDimensions=this._onDidChangeTerminalDimensions.event;this._onDidChangeTerminalState=new T;this.onDidChangeTerminalState=this._onDidChangeTerminalState.event;this._onDidChangeShell=new T;this.onDidChangeShell=this._onDidChangeShell.event;this._onDidWriteTerminalData=new T({onWillAddFirstListener:()=>this._proxy.$startSendingDataEvents(),onDidRemoveLastListener:()=>this._proxy.$stopSendingDataEvents()});this.onDidWriteTerminalData=this._onDidWriteTerminalData.event;this._onDidExecuteCommand=new T({onWillAddFirstListener:()=>this._proxy.$startSendingCommandEvents(),onDidRemoveLastListener:()=>this._proxy.$stopSendingCommandEvents()});this.onDidExecuteTerminalCommand=this._onDidExecuteCommand.event;this._proxy=o.getProxy(U.MainThreadTerminalService),this._bufferer=new dT(this._proxy.$sendProcessData),this._proxy.$registerProcessSupport(e),this._extHostCommands.registerArgumentProcessor({processArgument:i=>{let s=a=>this.getTerminalById(a.instanceId)?.value;switch(i?.$mid){case 15:return s(i);default:{if(Array.isArray(i))for(let a=0;a<i.length&&i[a].$mid===15;a++)i[a]=s(i[a]);return i}}}}),this._register({dispose:()=>{for(let[i,s]of this._terminalProcesses)s.shutdown(!0)}})}get activeTerminal(){return this._activeTerminal?.value}get terminals(){return this._terminals.map(e=>e.value)}getDefaultShell(e){return(e?this._defaultAutomationProfile:this._defaultProfile)?.path||""}getDefaultShellArgs(e){return(e?this._defaultAutomationProfile:this._defaultProfile)?.args||[]}createExtensionTerminal(e,n){let o=new ru(this._proxy,Le(),e,e.name),i=new rb(e.pty);return o.createExtensionTerminal(e.location,n,this._serializeParentTerminal(e,n).resolvedExtHostIdentifier,rW(e.iconPath),y6(e.color),e.shellIntegrationNonce,e.titleTemplate).then(s=>{let a=this._setupExtHostProcessListeners(s,i);this._terminalProcessDisposables[s]=a}),this._terminals.push(o),o.value}_serializeParentTerminal(e,n){if(n=n||{},e.location&&typeof e.location=="object"&&Qo(e.location,{parentTerminal:!0})){let o=e.location.parentTerminal;if(o){let i=this._terminals.find(s=>s.value===o);i&&(n.resolvedExtHostIdentifier=i._id)}}else e.location&&typeof e.location!="object"?n.location=e.location:n.location&&typeof n.location=="object"&&Qo(n.location,{splitActiveTerminal:!0})&&(n.location={splitActiveTerminal:!0});return n}attachPtyToTerminal(e,n){if(!this.getTerminalById(e))throw new Error(`Cannot resolve terminal with id ${e} for virtual process`);let i=new rb(n),s=this._setupExtHostProcessListeners(e,i);this._terminalProcessDisposables[e]=s}async $acceptActiveTerminalChanged(e){let n=this._activeTerminal;if(e===null){this._activeTerminal=void 0,n!==this._activeTerminal&&this._onDidChangeActiveTerminal.fire(this._activeTerminal);return}let o=this.getTerminalById(e);o&&(this._activeTerminal=o,n!==this._activeTerminal&&this._onDidChangeActiveTerminal.fire(this._activeTerminal.value))}async $acceptTerminalProcessData(e,n){let o=this.getTerminalById(e);o&&this._onDidWriteTerminalData.fire({terminal:o.value,data:n})}async $acceptTerminalDimensions(e,n,o){let i=this.getTerminalById(e);i&&i.setDimensions(n,o)&&this._onDidChangeTerminalDimensions.fire({terminal:i.value,dimensions:i.value.dimensions})}async $acceptDidExecuteCommand(e,n){let o=this.getTerminalById(e);o&&this._onDidExecuteCommand.fire({terminal:o.value,...n})}async $acceptTerminalMaximumDimensions(e,n,o){this._terminalProcesses.get(e)?.resize(n,o)}async $acceptTerminalTitleChange(e,n){let o=this.getTerminalById(e);o&&(o.name=n)}async $acceptTerminalClosed(e,n,o){let i=this._getTerminalObjectIndexById(this._terminals,e);if(i!==null){let s=this._terminals.splice(i,1)[0];s.setExitStatus(n,o),this._onDidCloseTerminal.fire(s.value)}}$acceptTerminalOpened(e,n,o,i){if(n){let l=this._getTerminalObjectIndexById(this._terminals,n);if(l!==null){this._terminals[l]._id=e,this._onDidOpenTerminal.fire(this.terminals[l]),this._terminals[l].isOpen=!0;return}}let s={name:i.name,shellPath:i.executable,shellArgs:i.args,cwd:typeof i.cwd=="string"?i.cwd:y.revive(i.cwd),env:i.env,hideFromUser:i.hideFromUser,titleTemplate:i.titleTemplate},a=new ru(this._proxy,e,s,o);this._terminals.push(a),this._onDidOpenTerminal.fire(a.value),a.isOpen=!0}async $acceptTerminalProcessId(e,n){this.getTerminalById(e)?._setProcessId(n)}async $startExtensionTerminal(e,n){let o=this.getTerminalById(e);if(!o)return{message:p(3325,null,e)};o.isOpen||await new Promise(s=>{let a=this.onDidOpenTerminal(async l=>{l===o.value&&(a.dispose(),s())})});let i=this._terminalProcesses.get(e);i?i.startSendingEvents(n):this._extensionTerminalAwaitingStart[e]={initialDimensions:n}}_setupExtHostProcessListeners(e,n){let o=new $;o.add(n.onProcessReady(s=>this._proxy.$sendProcessReady(e,s.pid,s.cwd,s.windowsPty))),o.add(n.onDidChangeProperty(s=>this._proxy.$sendProcessProperty(e,s))),this._bufferer.startBuffering(e,n.onProcessData),o.add(n.onProcessExit(s=>this._onProcessExit(e,s))),this._terminalProcesses.set(e,n);let i=this._extensionTerminalAwaitingStart[e];return i&&n instanceof rb&&(n.startSendingEvents(i.initialDimensions),delete this._extensionTerminalAwaitingStart[e]),o}$acceptProcessAckDataEvent(e,n){this._terminalProcesses.get(e)?.acknowledgeDataEvent(n)}$acceptProcessInput(e,n){this._terminalProcesses.get(e)?.input(n)}$acceptTerminalInteraction(e){let n=this.getTerminalById(e);n?.setInteractedWith()&&this._onDidChangeTerminalState.fire(n.value)}$acceptTerminalSelection(e,n){this.getTerminalById(e)?.setSelection(n)}$acceptProcessResize(e,n,o){try{this._terminalProcesses.get(e)?.resize(n,o)}catch(i){if(i.code!=="EPIPE"&&i.code!=="ERR_IPC_CHANNEL_CLOSED")throw i}}$acceptProcessShutdown(e,n){this._terminalProcesses.get(e)?.shutdown(n)}$acceptProcessRequestInitialCwd(e){this._terminalProcesses.get(e)?.getInitialCwd().then(n=>this._proxy.$sendProcessProperty(e,{type:"initialCwd",value:n}))}$acceptProcessRequestCwd(e){this._terminalProcesses.get(e)?.getCwd().then(n=>this._proxy.$sendProcessProperty(e,{type:"cwd",value:n}))}$acceptProcessRequestLatency(e){return Promise.resolve(e)}registerProfileProvider(e,n,o){if(this._profileProviders.has(n))throw new Error(`Terminal profile provider "${n}" already registered`);return this._profileProviders.set(n,{provider:o,extension:e}),this._proxy.$registerProfileProvider(n,e.identifier.value),new be(()=>{this._profileProviders.delete(n),this._proxy.$unregisterProfileProvider(n)})}registerTerminalCompletionProvider(e,n,...o){if(this._completionProviders.has(e.identifier.value))throw new Error(`Terminal completion provider "${e.identifier.value}" already registered`);return this._completionProviders.set(e.identifier.value,n),this._proxy.$registerCompletionProvider(e.identifier.value,e.identifier.value,...o),new be(()=>{this._completionProviders.delete(e.identifier.value),this._proxy.$unregisterCompletionProvider(e.identifier.value)})}async $provideTerminalCompletions(e,n){let o=new Ce().token;if(o.isCancellationRequested||!this.activeTerminal)return;let i=this._completionProviders.get(e);if(!i)return;let s=await i.provideTerminalCompletions(this.activeTerminal,n,o);if(s==null)return;let a=!Ie||this.activeTerminal.state?.shell==="gitbash"?"/":"\\";return k1.from(s,a)}$acceptTerminalShellType(e,n){let o=this.getTerminalById(e);o?.setShellType(n)&&this._onDidChangeTerminalState.fire(o.value)}registerTerminalQuickFixProvider(e,n,o){if(this._quickFixProviders.has(e))throw new Error(`Terminal quick fix provider "${e}" is already registered`);return this._quickFixProviders.set(e,o),this._proxy.$registerQuickFixProvider(e,n),new be(()=>{this._quickFixProviders.delete(e),this._proxy.$unregisterQuickFixProvider(e)})}async $provideTerminalQuickFixes(e,n){let o=new Ce().token;if(o.isCancellationRequested)return;let i=this._quickFixProviders.get(e);if(!i)return;let s=await i.provideTerminalQuickFixes(n,o);if(s===null||Array.isArray(s)&&s.length===0)return;let a=new $;if(this._lastQuickFixCommands.value=a,!Array.isArray(s))return s?qC.from(s,this._extHostCommands.converter,a):void 0;let l=[];for(let d of s){let c=qC.from(d,this._extHostCommands.converter,a);c&&l.push(c)}return l}async $createContributedProfileTerminal(e,n){let o=new Ce().token,i=this._profileProviders.get(e);if(!i)throw new Error(`No terminal profile provider registered for id "${e}"`);let s=await i.provider.provideTerminalProfile(o);if(o.isCancellationRequested)return;if(s&&!Qo(s,{options:!0})&&(s={options:s}),!s||!Qo(s,{options:!0}))throw new Error(`No terminal profile options provided for id "${e}"`);let a=Fe(i.extension,"terminalTitle");!a&&s.options.titleTemplate!==void 0&&(console.error(`[${i.extension.identifier.value}] \`titleTemplate\` returned from TerminalProfileProvider is ignored because the \`terminalTitle\` proposed API is not enabled.`),s={options:{...s.options,titleTemplate:void 0}}),!a&&n.titleTemplate!==void 0&&console.error(`[${i.extension.identifier.value}] \`titleTemplate\` passed to createContributedTerminalProfile is ignored because the \`terminalTitle\` proposed API is not enabled.`);let l=a&&n.titleTemplate&&!s.options.titleTemplate?{...s.options,titleTemplate:n.titleTemplate}:s.options;if(Qo(l,{pty:!0})){this.createExtensionTerminal(l,n);return}this.createTerminalFromOptions(l,n)}registerLinkProvider(e){return this._linkProviders.add(e),this._linkProviders.size===1&&this._proxy.$startLinkProvider(),new be(()=>{this._linkProviders.delete(e),this._linkProviders.size===0&&this._proxy.$stopLinkProvider()})}async $provideLinks(e,n){let o=this.getTerminalById(e);if(!o)return[];this._terminalLinkCache.delete(e),this._terminalLinkCancellationSource.get(e)?.dispose(!0);let s=new Ce;this._terminalLinkCancellationSource.set(e,s);let a=[],l={terminal:o.value,line:n},d=[];for(let m of this._linkProviders)d.push(Or.withAsyncBody(async g=>{s.token.onCancellationRequested(()=>g({provider:m,links:[]}));let h=await m.provideTerminalLinks(l,s.token)||[];s.token.isCancellationRequested||g({provider:m,links:h})}));let c=await Promise.all(d);if(s.token.isCancellationRequested)return[];let u=new Map;for(let m of c)m&&m.links.length>0&&a.push(...m.links.map(g=>{let h={id:b6++,startIndex:g.startIndex,length:g.length,label:g.tooltip};return u.set(h.id,{provider:m.provider,link:g}),h}));return this._terminalLinkCache.set(e,u),a}$activateLink(e,n){let o=this._terminalLinkCache.get(e)?.get(n);o&&o.provider.handleTerminalLink(o.link)}_onProcessExit(e,n){this._bufferer.stopBuffering(e),this._terminalProcesses.delete(e),delete this._extensionTerminalAwaitingStart[e];let o=this._terminalProcessDisposables[e];o&&(o.dispose(),delete this._terminalProcessDisposables[e]),this._proxy.$sendProcessExit(e,n)}getTerminalById(e){return this._getTerminalObjectById(this._terminals,e)}getTerminalIdByApiObject(e){let n=this._terminals.findIndex(o=>o.value===e);return n>=0?n:null}_getTerminalObjectById(e,n){let o=this._getTerminalObjectIndexById(e,n);return o!==null?e[o]:null}_getTerminalObjectIndexById(e,n){let o=e.findIndex(i=>i._id===n);return o>=0?o:null}getEnvironmentVariableCollection(e){let n=this._environmentVariableCollections.get(e.identifier.value);return n||(n=this._register(new pT),this._setEnvironmentVariableCollection(e.identifier.value,n)),n.getScopedEnvironmentVariableCollection(void 0)}_syncEnvironmentVariableCollection(e,n){let o=eW(n.map),i=tW(n.descriptionMap);this._proxy.$setEnvironmentVariableCollection(e,n.persistent,o.length===0?void 0:o,i)}$initEnvironmentVariableCollections(e){e.forEach(n=>{let o=n[0],i=this._register(new pT(n[1]));this._setEnvironmentVariableCollection(o,i)})}$acceptDefaultProfile(e,n){let o=this._defaultProfile;this._defaultProfile=e,this._defaultAutomationProfile=n,o?.path!==e.path&&this._onDidChangeShell.fire(e.path)}_setEnvironmentVariableCollection(e,n){this._environmentVariableCollections.set(e,n),this._register(n.onDidChangeCollection(()=>{this._syncEnvironmentVariableCollection(e,n)}))}};ou=_([C(1,Dn),C(2,ie)],ou);var pT=class extends O{constructor(e){super();this.map=new Map;this.scopedCollections=new Map;this.descriptionMap=new Map;this._persistent=!0;this._onDidChangeCollection=this._register(new T);this.map=new Map(e)}get persistent(){return this._persistent}set persistent(e){this._persistent=e,this._onDidChangeCollection.fire()}get onDidChangeCollection(){return this._onDidChangeCollection&&this._onDidChangeCollection.event}getScopedEnvironmentVariableCollection(e){let n=this.getScopeKey(e),o=this.scopedCollections.get(n);return o||(o=new i0(this,e),this.scopedCollections.set(n,o),this._register(o.onDidChangeCollection(()=>this._onDidChangeCollection.fire()))),o}replace(e,n,o,i){this._setIfDiffers(e,{value:n,type:1,options:o??{applyAtProcessCreation:!0},scope:i})}append(e,n,o,i){this._setIfDiffers(e,{value:n,type:2,options:o??{applyAtProcessCreation:!0},scope:i})}prepend(e,n,o,i){this._setIfDiffers(e,{value:n,type:3,options:o??{applyAtProcessCreation:!0},scope:i})}_setIfDiffers(e,n){if(n.options&&n.options.applyAtProcessCreation===!1&&!n.options.applyAtShellIntegration)throw new Error("EnvironmentVariableMutatorOptions must apply at either process creation or shell integration");let o=this.getKey(e,n.scope),i=this.map.get(o),s=n.options?{applyAtProcessCreation:n.options.applyAtProcessCreation??!1,applyAtShellIntegration:n.options.applyAtShellIntegration??!1}:{applyAtProcessCreation:!0};if(!i||i.value!==n.value||i.type!==n.type||i.options?.applyAtProcessCreation!==s.applyAtProcessCreation||i.options?.applyAtShellIntegration!==s.applyAtShellIntegration||i.scope?.workspaceFolder?.index!==n.scope?.workspaceFolder?.index){let a=this.getKey(e,n.scope),l={variable:e,...n,options:s};this.map.set(a,l),this._onDidChangeCollection.fire()}}get(e,n){let o=this.getKey(e,n),i=this.map.get(o);return i?oW(i):void 0}getKey(e,n){let o=this.getScopeKey(n);return o.length?`${e}:::${o}`:e}getScopeKey(e){return this.getWorkspaceKey(e?.workspaceFolder)??""}getWorkspaceKey(e){return e?e.uri.toString():void 0}getVariableMap(e){let n=new Map;for(let[o,i]of this.map)this.getScopeKey(i.scope)===this.getScopeKey(e)&&n.set(i.variable,oW(i));return n}delete(e,n){let o=this.getKey(e,n);this.map.delete(o),this._onDidChangeCollection.fire()}clear(e){if(e?.workspaceFolder){for(let[n,o]of this.map)o.scope?.workspaceFolder?.index===e.workspaceFolder.index&&this.map.delete(n);this.clearDescription(e)}else this.map.clear(),this.descriptionMap.clear();this._onDidChangeCollection.fire()}setDescription(e,n){let o=this.getScopeKey(n),i=this.descriptionMap.get(o);if(!i||i.description!==e){let s;typeof e=="string"?s=e:s=e?.value.split(`

`)[0];let a={description:s,scope:n};this.descriptionMap.set(o,a),this._onDidChangeCollection.fire()}}getDescription(e){let n=this.getScopeKey(e);return this.descriptionMap.get(n)?.description}clearDescription(e){let n=this.getScopeKey(e);this.descriptionMap.delete(n)}},i0=class{constructor(t,e){this.collection=t;this.scope=e;this._onDidChangeCollection=new T}get persistent(){return this.collection.persistent}set persistent(t){this.collection.persistent=t}get onDidChangeCollection(){return this._onDidChangeCollection&&this._onDidChangeCollection.event}getScoped(t){return this.collection.getScopedEnvironmentVariableCollection(t)}replace(t,e,n){this.collection.replace(t,e,n,this.scope)}append(t,e,n){this.collection.append(t,e,n,this.scope)}prepend(t,e,n){this.collection.prepend(t,e,n,this.scope)}get(t){return this.collection.get(t,this.scope)}forEach(t,e){this.collection.getVariableMap(this.scope).forEach((n,o)=>t.call(e,o,n,this),this.scope)}[Symbol.iterator](){return this.collection.getVariableMap(this.scope).entries()}delete(t){this.collection.delete(t,this.scope),this._onDidChangeCollection.fire(void 0)}clear(){this.collection.clear(this.scope)}set description(t){this.collection.setDescription(t,this.scope)}get description(){return this.collection.getDescription(this.scope)}},cg=class extends ou{constructor(t,e,n){super(!1,t,e),this._hasRemoteAuthority=!!n.remote.authority}createTerminal(t,e,n){if(!this._hasRemoteAuthority)throw new Ad;return this.createTerminalFromOptions({name:t,shellPath:e,shellArgs:n})}createTerminalFromOptions(t,e){if(!this._hasRemoteAuthority)throw new Ad;let n=new ru(this._proxy,Le(),t,t.name);return this._terminals.push(n),n.create(t,this._serializeParentTerminal(t,e)),n.value}};cg=_([C(0,Dn),C(1,ie),C(2,Ye)],cg);function rW(r){if(!(!r||typeof r=="string"))return Qo(r,{id:!0})?{id:r.id,color:r.color}:r}function y6(r){return fp.isThemeColor(r)?r:void 0}function oW(r){let t={...r};return delete t.scope,t.options=t.options??void 0,t}var iW={label:p(8317,null),order:Number.MAX_SAFE_INTEGER};var a0="/.well-known",I6=`${a0}/oauth-protected-resource`,x6=`${a0}/oauth-authorization-server`,s0=`${a0}/openid-configuration`,mT=" ";function S6(r){if(typeof r!="object"||r===null)return!1;let t=r;return!(!t.resource||t.scopes_supported!==void 0&&!Array.isArray(t.scopes_supported))}var C6=["issuer","authorization_endpoint","token_endpoint","registration_endpoint","jwks_uri"];function T6(r){if(typeof r!="object"||r===null)return!1;let t=r;if(!t.issuer)throw new Error("Authorization server metadata must have an issuer");for(let e of C6)if(t[e]){if(typeof t[e]!="string")throw new Error(`Authorization server metadata '${e}' must be a string`);if(!t[e].startsWith("https://")&&!t[e].startsWith("http://"))throw new Error(`Authorization server metadata '${e}' must start with http:// or https://`)}return!0}function E6(r){return typeof r!="object"||r===null?!1:r.client_id!==void 0}function ib(r){if(typeof r!="object"||r===null)return!1;let t=r;return t.access_token!==void 0&&t.token_type!==void 0}function aW(r){if(typeof r!="object"||r===null)return!1;let t=r;return t.device_code!==void 0&&t.user_code!==void 0&&t.verification_uri!==void 0&&t.expires_in!==void 0}function l0(r){return typeof r!="object"||r===null?!1:r.error!==void 0}function w6(r){return typeof r!="object"||r===null?!1:r.error!==void 0}function lW(r){return{issuer:r.toString(),authorization_endpoint:new URL("/authorize",r).toString(),token_endpoint:new URL("/token",r).toString(),registration_endpoint:new URL("/register",r).toString(),response_types_supported:["code","id_token","id_token token"]}}var sW=["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],d0=33418;async function c0(r,t,e){if(!r.registration_endpoint)throw new Error("Server does not support dynamic registration");let n={client_name:t,client_uri:"https://code.visualstudio.com",grant_types:r.grant_types_supported?r.grant_types_supported.filter(s=>sW.includes(s)):sW,response_types:["code"],redirect_uris:["https://insiders.vscode.dev/redirect","https://vscode.dev/redirect","http://127.0.0.1/",`http://127.0.0.1:${d0}/`],scope:e?.join(mT),token_endpoint_auth_method:"none",application_type:"native"},o=await fetch(r.registration_endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!o.ok){let s=await o.text(),a=s;try{let l=JSON.parse(s);w6(l)&&(a=`${l.error}${l.error_description?`: ${l.error_description}`:""}`)}catch{}throw new Error(`Registration to ${r.registration_endpoint} failed: ${a}`)}let i=await o.json();if(E6(i))return i;throw new Error(`Invalid authorization dynamic client registration response: ${JSON.stringify(i)}`)}function u0(r){let t=[],e=[],n="",o=!1;for(let s=0;s<r.length;s++){let a=r[s];a==='"'?(o=!o,n+=a):a===","&&!o?(n.trim()&&e.push(n.trim()),n=""):n+=a}n.trim()&&e.push(n.trim());let i;for(let s of e)if(!s.includes("="))i&&t.push(i),i={scheme:s.trim(),params:{}};else{let l=s.indexOf(" ");if(l>0){let d=s.substring(0,l),c=s.substring(l+1);if(!d.includes("=")&&c.includes("=")){i&&t.push(i),i={scheme:d.trim(),params:{}};let u=c.indexOf("=");if(u>0){let m=c.substring(0,u).trim(),g=c.substring(u+1).trim().replace(/^"|"$/g,"");m&&g!==void 0&&(i.params[m]=g)}continue}}if(i){let d=s.indexOf("=");if(d>0){let c=s.substring(0,d).trim(),u=s.substring(d+1).trim().replace(/^"|"$/g,"");c&&u!==void 0&&(i.params[c]=u)}}}return i&&t.push(i),t}function p0(r){let t=r.split(".");if(t.length!==3)throw new Error("Invalid JWT token format: token must have three parts separated by dots");let[e,n,o]=t;try{if(typeof JSON.parse(Ir(e).toString())!="object")throw new Error("Invalid JWT token format: header is not a JSON object");let s=JSON.parse(Ir(n).toString());if(typeof s!="object")throw new Error("Invalid JWT token format: payload is not a JSON object");return s}catch(i){throw i instanceof Error?new Error(`Failed to parse JWT token: ${i.message}`):new Error("Failed to parse JWT token")}}function dW(r,t){if(r===t)return!0;if(!r||!t||r.length!==t.length)return!1;let e=[...r].sort(),n=[...t].sort();return e.every((o,i)=>o===n[i])}async function cW(r,t,e={}){let{sameOriginHeaders:n={},fetch:o=fetch}=e,i=new URL(r),s=async(c,u)=>{let m={Accept:"application/json"};new URL(c).origin===i.origin&&(m={...m,...n});let h=await o(c,{method:"GET",headers:m});if(h.status!==200){let I;try{I=await h.text()}catch{I=h.statusText}throw new Error(`Failed to fetch resource metadata from ${c}: ${h.status} ${I}`)}let f=await h.json();if(S6(f)){let I=new URL(f.resource).toString(),S=new URL(u).toString();if(I!==S)throw new Error(`Protected Resource Metadata 'resource' property value "${I}" does not match expected value "${S}" for URL ${c}. Per RFC 9728, these MUST match. See https://datatracker.ietf.org/doc/html/rfc9728#PRConfigurationValidation`);return f}else throw new Error(`Invalid resource metadata from ${c}. Expected to follow shape of https://datatracker.ietf.org/doc/html/rfc9728#name-protected-resource-metadata (Hints: is scopes_supported an array? Is resource a string?). Current payload: ${JSON.stringify(f)}`)},a=[];if(t)try{return{metadata:await s(t,r),discoveryUrl:t,errors:a}}catch(c){a.push(c instanceof Error?c:new Error(String(c)))}let l=i.pathname!=="/",d=`${i.origin}${I6}`;if(l){let c=`${d}${i.pathname}`;try{return{metadata:await s(c,r),discoveryUrl:c,errors:a}}catch(u){a.push(u instanceof Error?u:new Error(String(u)))}}try{return{metadata:await s(d,i.origin),discoveryUrl:d,errors:a}}catch(c){a.push(c instanceof Error?c:new Error(String(c)))}throw a.length===1?a[0]:new AggregateError(a,"Failed to fetch resource metadata from all attempted URLs")}async function k6(r){if(r.status===200)try{let t=await r.json();if(T6(t))return t}catch{}}async function P6(r){try{return await r.text()}catch{return r.statusText}}async function uW(r,t={}){let{additionalHeaders:e={},fetch:n=fetch}=t,o=new URL(r),i=o.pathname==="/"?"":o.pathname,s=[],a=async m=>{try{let g=await n(m,{method:"GET",headers:{...e,Accept:"application/json"}}),h=await k6(g);if(h)return h;s.push(new Error(`Failed to fetch authorization server metadata from ${m}: ${g.status} ${await P6(g)}`));return}catch(g){s.push(g instanceof Error?g:new Error(String(g)));return}},l=new URL(x6,r).toString()+i,d=await a(l);if(d)return{metadata:d,discoveryUrl:l,errors:s};let c=new URL(s0,r).toString()+i;if(d=await a(c),d)return{metadata:d,discoveryUrl:c,errors:s};let u=r.endsWith("/")?r+s0.substring(1):r+s0;if(d=await a(u),d)return{metadata:d,discoveryUrl:u,errors:s};throw s.length===1?s[0]:new AggregateError(s,"Failed to fetch authorization server metadata from all attempted URLs")}var dd=class{constructor(t,e){this._onDidChangeWindowState=new T;this.onDidChangeWindowState=this._onDidChangeWindowState.event;this._state=dd.InitialState;t.handle&&(this._nativeHandle=Ir(t.handle).buffer),this._proxy=e.getProxy(U.MainThreadWindow),this._proxy.$getInitialState().then(({isFocused:n,isActive:o})=>{this.onDidChangeWindowProperty("focused",n),this.onDidChangeWindowProperty("active",o)})}static{this.InitialState={focused:!0,active:!0}}getState(){let t=this._state;return{get focused(){return t.focused},get active(){return t.active}}}get nativeHandle(){return this._nativeHandle}$onDidChangeActiveNativeWindowHandle(t){this._nativeHandle=t?Ir(t).buffer:void 0}$onDidChangeWindowFocus(t){this.onDidChangeWindowProperty("focused",t)}$onDidChangeWindowActive(t){this.onDidChangeWindowProperty("active",t)}onDidChangeWindowProperty(t,e){e!==this._state[t]&&(this._state={...this._state,[t]:e},this._onDidChangeWindowState.fire(this._state))}openUri(t,e){let n;if(typeof t=="string"){n=t;try{t=y.parse(t)}catch{return Promise.reject(`Invalid uri - '${t}'`)}}return Gi(t.scheme)?Promise.reject("Invalid scheme - cannot be empty"):t.scheme===V.command?Promise.reject(`Invalid scheme '${t.scheme}'`):this._proxy.$openUri(t,n,e)}async asExternalUri(t,e){if(Gi(t.scheme))return Promise.reject("Invalid scheme - cannot be empty");let n=await this._proxy.$asExternalUri(t,e);return y.from(n)}};dd=_([C(0,Ye),C(1,ie)],dd);var iu=R("IExtHostWindow");var cd=class{constructor(t){this.handles=new ko;this.handlers=new Map;this._proxy=t.getProxy(U.MainThreadUrls)}static{this.HandlePool=0}registerUriHandler(t,e){let n=t.identifier;if(this.handles.has(n))throw new Error(`Protocol handler already registered for extension ${n}`);let o=cd.HandlePool++;return this.handles.add(n),this.handlers.set(o,e),this._proxy.$registerUriHandler(o,n,t.displayName||t.name),G(()=>{this.handles.delete(n),this.handlers.delete(o),this._proxy.$unregisterUriHandler(o)})}$handleExternalUri(t,e){let n=this.handlers.get(t);if(!n)return Promise.resolve(void 0);try{n.handleUri(y.revive(e))}catch(o){$e(o)}return Promise.resolve(void 0)}async createAppUri(t){return y.revive(await this._proxy.$createAppUri(t))}};cd=_([C(0,ie)],cd);var su=R("IExtHostUrlsService");var au=R("IExtHostProgress"),ug=class{constructor(t){this._handles=0;this._mapHandleToCancellationSource=new Map;this._proxy=t.getProxy(U.MainThreadProgress)}async withProgress(t,e,n){let o=this._handles++,{title:i,location:s,cancellable:a}=e,l={label:t.displayName||t.name,id:t.identifier.value};return this._proxy.$startProgress(o,{location:_C.from(s),title:i,source:l,cancellable:a},t.isUnderDevelopment?void 0:t.identifier.value).catch(Md),this._withProgress(o,n,!!a)}async withProgressFromSource(t,e,n){let o=this._handles++,{title:i,location:s,cancellable:a}=e;return this._proxy.$startProgress(o,{location:_C.from(s),title:i,source:t,cancellable:a},void 0).catch(Md),this._withProgress(o,n,!!a)}_withProgress(t,e,n){let o;n&&(o=new Ce,this._mapHandleToCancellationSource.set(t,o));let i=a=>{this._proxy.$progressEnd(a),this._mapHandleToCancellationSource.delete(a),o?.dispose()},s;try{s=e(new gT(this._proxy,t),n&&o?o.token:he.None)}catch(a){throw i(t),a}return s.then(a=>i(t),a=>i(t)),s}$acceptProgressCanceled(t){let e=this._mapHandleToCancellationSource.get(t);e&&(e.cancel(),this._mapHandleToCancellationSource.delete(t))}};ug=_([C(0,ie)],ug);function _6(r,t){return r.message=t.message,typeof t.increment=="number"&&(typeof r.increment=="number"?r.increment+=t.increment:r.increment=t.increment),r}var gT=class extends ts{constructor(e,n){super(o=>this.throttledReport(o));this._proxy=e;this._handle=n}throttledReport(e){this._proxy.$progressReport(this._handle,e)}};_([MU(100,(e,n)=>_6(e,n),()=>Object.create(null))],gT.prototype,"throttledReport",1);var mg=R("IExtHostAuthentication"),pg=class{constructor(t,e,n,o,i,s,a){this._initData=e;this._extHostWindow=n;this._extHostUrls=o;this._extHostProgress=i;this._extHostLoggerService=s;this._logService=a;this._dynamicAuthProviderCtor=lu;this._authenticationProviders=new Map;this._providerOperations=new ol;this._onDidChangeSessions=new T;this._getSessionTaskSingler=new m0;this._onDidDynamicAuthProviderTokensChange=new T;this._proxy=t.getProxy(U.MainThreadAuthentication)}getExtensionScopedSessionsEvent(t){let e=t.toLowerCase();return fe.chain(this._onDidChangeSessions.event,n=>n.filter(o=>!o.extensionIdFilter||o.extensionIdFilter.includes(e)).map(o=>({provider:o.provider})))}async getSession(t,e,n,o={}){let i=_e.toKey(t.identifier),a=Object.keys(o).map(d=>{switch(d){case"account":return`${d}:${o.account?.id}`;case"createIfNone":case"forceNewSession":{let c=typeof o[d]=="boolean"?`${o[d]}`:`'${o[d]?.detail}/${o[d]?.learnMore?.toString()}'`;return`${d}:${c}`}case"authorizationServer":return`${d}:${o.authorizationServer?.toString(!0)}`;default:return`${d}:${!!o[d]}`}}).sort().join(", "),l;if(kH(n)){let d=n,c=d.wwwAuthenticate,u=d.fallbackScopes?[...d.fallbackScopes].sort().join(" "):"";l=`${i} ${e} challenge:${c} ${u} ${a}`}else{let d=[...n].sort().join(" ");l=`${i} ${e} ${d} ${a}`}return await this._getSessionTaskSingler.getOrCreate(l,async()=>{await this._proxy.$ensureProvider(e);let d=t.displayName||t.name;return this._proxy.$getSession(e,n,i,d,o)})}async getAccounts(t){return await this._proxy.$ensureProvider(t),await this._proxy.$getAccounts(t)}registerAuthenticationProvider(t,e,n,o){return this._providerOperations.queue(t,async()=>{if(this._authenticationProviders.get(t)){this._logService.error(`An authentication provider with id '${t}' is already registered. The existing provider will not be replaced.`);return}let i=n.onDidChangeSessions(s=>this._proxy.$sendDidChangeSessions(t,s));this._authenticationProviders.set(t,{label:e,provider:n,disposable:i,options:o??{supportsMultipleAccounts:!1}}),await this._proxy.$registerAuthenticationProvider({id:t,label:e,supportsMultipleAccounts:o?.supportsMultipleAccounts??!1,supportedAuthorizationServers:o?.supportedAuthorizationServers,supportsChallenges:o?.supportsChallenges})}),new be(()=>{this._providerOperations.queue(t,async()=>{let i=this._authenticationProviders.get(t);i&&(i.disposable?.dispose(),this._authenticationProviders.delete(t),await this._proxy.$unregisterAuthenticationProvider(t))})})}$createSession(t,e,n){return this._providerOperations.queue(t,async()=>{let o=this._authenticationProviders.get(t);if(o)return n.authorizationServer=y.revive(n.authorizationServer),await o.provider.createSession(e,n);throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$removeSession(t,e){return this._providerOperations.queue(t,async()=>{let n=this._authenticationProviders.get(t);if(n)return await n.provider.removeSession(e);throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$getSessions(t,e,n){return this._providerOperations.queue(t,async()=>{let o=this._authenticationProviders.get(t);if(o)return n.authorizationServer=y.revive(n.authorizationServer),await o.provider.getSessions(e,n);throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$getSessionsFromChallenges(t,e,n){return this._providerOperations.queue(t,async()=>{let o=this._authenticationProviders.get(t);if(o){let i=o.provider;if(typeof i.getSessionsFromChallenges=="function")return n.authorizationServer=y.revive(n.authorizationServer),await i.getSessionsFromChallenges(e,n);throw new Error(`Authentication provider with handle: ${t} does not support getSessionsFromChallenges`)}throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$createSessionFromChallenges(t,e,n){return this._providerOperations.queue(t,async()=>{let o=this._authenticationProviders.get(t);if(o){let i=o.provider;if(typeof i.createSessionFromChallenges=="function")return n.authorizationServer=y.revive(n.authorizationServer),await i.createSessionFromChallenges(e,n);throw new Error(`Authentication provider with handle: ${t} does not support createSessionFromChallenges`)}throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$onDidChangeAuthenticationSessions(t,e,n){return t.startsWith(Dx)||this._onDidChangeSessions.fire({provider:{id:t,label:e},extensionIdFilter:n}),Promise.resolve()}$onDidUnregisterAuthenticationProvider(t){return this._providerOperations.queue(t,async()=>{let e=this._authenticationProviders.get(t);e&&(e.disposable?.dispose(),this._authenticationProviders.delete(t))})}async $registerDynamicAuthProvider(t,e,n,o,i,s){if(!o){let l=y.revive(t);if(e.registration_endpoint)try{let d=await c0(e,this._initData.environment.appName,n?.scopes_supported);o=d.client_id,i=d.client_secret}catch(d){this._logService.warn(`Dynamic registration failed for ${l.toString()}: ${d.message}. Prompting user for client ID and client secret...`)}if(!o){this._logService.info(`Prompting user for client registration details for ${l.toString()}`);let d=await this._proxy.$promptForClientRegistration(l.toString());if(!d)throw new Error("User did not provide client details");o=d.clientId,i=d.clientSecret,this._logService.info(`User provided client registration for ${l.toString()}`),i?this._logService.trace(`User provided client secret for ${l.toString()}`):this._logService.trace(`User did not provide client secret for ${l.toString()}`)}}let a=new this._dynamicAuthProviderCtor(this._extHostWindow,this._extHostUrls,this._initData,this._extHostProgress,this._extHostLoggerService,this._proxy,y.revive(t),e,n,o,i,this._onDidDynamicAuthProviderTokensChange,s||[]);return await this._providerOperations.queue(a.id,async()=>{this._authenticationProviders.set(a.id,{label:a.label,provider:a,disposable:be.from(a,a.onDidChangeSessions(l=>this._proxy.$sendDidChangeSessions(a.id,l)),a.onDidChangeClientId(()=>this._proxy.$sendDidChangeDynamicProviderInfo({providerId:a.id,clientId:a.clientId,clientSecret:a.clientSecret}))),options:{supportsMultipleAccounts:!0}}),await this._proxy.$registerDynamicAuthenticationProvider({id:a.id,label:a.label,supportsMultipleAccounts:!0,authorizationServer:t,resourceServer:n?y.parse(n.resource):void 0,clientId:a.clientId,clientSecret:a.clientSecret})}),a.id}async $onDidChangeDynamicAuthProviderTokens(t,e,n){this._onDidDynamicAuthProviderTokensChange.fire({authProviderId:t,clientId:e,tokens:n})}};pg=_([C(0,ie),C(1,Ye),C(2,iu),C(3,su),C(4,au),C(5,Wo),C(6,oe)],pg);var m0=class{constructor(){this._inFlightPromises=new Map}getOrCreate(t,e){let n=this._inFlightPromises.get(t);if(n)return n;let o=e().finally(()=>this._inFlightPromises.delete(t));return this._inFlightPromises.set(t,o),o}},lu=class{constructor(t,e,n,o,i,s,a,l,d,c,u,m,g){this._extHostWindow=t;this._extHostUrls=e;this._initData=n;this._extHostProgress=o;this._proxy=s;this.authorizationServer=a;this._serverMetadata=l;this._resourceMetadata=d;this._clientId=c;this._clientSecret=u;this._onDidChangeSessions=new T;this.onDidChangeSessions=this._onDidChangeSessions.event;this._onDidChangeClientId=new T;this.onDidChangeClientId=this._onDidChangeClientId.event;let h=a.toString(!0);this.id=d?.resource?h+" "+d?.resource:h,this.label=d?.resource_name??this.authorizationServer.authority,this._logger=i.createLogger(this.id,{name:`Auth: ${this.label}`}),this._disposable=new $,this._disposable.add(this._onDidChangeSessions),this._disposable.add(this._onDidChangeClientId);let f=fe.chain(m.event,I=>I.filter(S=>S.authProviderId===this.id&&S.clientId===c).map(S=>S.tokens));this._tokenStore=this._disposable.add(new g0({onDidChange:f,set:I=>s.$setSessionsForDynamicAuthProvider(this.id,this.clientId,I)},g,this._logger)),this._disposable.add(this._tokenStore.onDidChangeSessions(I=>this._onDidChangeSessions.fire(I))),this._createFlows=[],l.authorization_endpoint&&this._createFlows.push({label:p(3309,null),handler:(I,S,E)=>this._createWithUrlHandler(I,S,E)})}get clientId(){return this._clientId}get clientSecret(){return this._clientSecret}async getSessions(t,e){if(this._logger.info(`Getting sessions for scopes: ${t?.join(" ")??"all"}`),!t)return this._tokenStore.sessions;let n=[...t].sort(),o=t.join(" "),i=this._tokenStore.sessions.filter(s=>Xt([...s.scopes].sort(),n));if(this._logger.info(`Found ${i.length} sessions for scopes: ${o}`),i.length){let s=[],a=[],l=new Map(this._tokenStore.tokens.map(d=>[d.access_token,d]));for(let d of i){let c=l.get(d.accessToken);if(c&&c.expires_in){let u=Date.now(),m=c.expires_in*1e3;if(u>c.created_at+m-300*1e3){if(this._logger.info(`Token for session ${d.id} is about to expire, refreshing...`),a.push(c),!c.refresh_token){this._logger.warn(`No refresh token available for scopes ${d.scopes.join(" ")}. Throwing away token.`);continue}try{let g=await this.exchangeRefreshTokenForToken(c.refresh_token);g.scope!==o&&(this._logger.warn(`Token scopes '${g.scope}' do not match requested scopes '${o}'. Overwriting token with what was requested...`),g.scope=o),this._logger.info(`Successfully created a new token for scopes ${d.scopes.join(" ")}.`),s.push(g)}catch(g){this._logger.error(`Failed to refresh token: ${g}`)}}}}return(s.length||a.length)&&(this._tokenStore.update({added:s,removed:a}),i=this._tokenStore.sessions.filter(d=>Xt([...d.scopes].sort(),n))),this._logger.info(`Found ${i.length} sessions for scopes: ${o}`),i}return[]}async createSession(t,e){this._logger.info(`Creating session for scopes: ${t.join(" ")}`);let n;for(let i=0;i<this._createFlows.length;i++){let{handler:s}=this._createFlows[i];try{if(n=await this._extHostProgress.withProgressFromSource({label:this.label,id:this.id},{location:15,title:p(3306,null,this.label),cancellable:!0},(a,l)=>s(t,a,l)),n)break}catch(a){let l=this._createFlows[i+1]?.label;if(!l)break;let d=zt(a)?p(3310,null,this.label,l):p(3308,null,this.label,l);if(!await this._proxy.$showContinueNotification(d))throw new Be;this._logger.error(`Failed to create token via flow '${l}': ${a}`)}}if(!n)throw new Error("Failed to create authentication token");n.scope!==t.join(" ")&&(this._logger.warn(`Token scopes '${n.scope}' do not match requested scopes '${t.join(" ")}'. Overwriting token with what was requested...`),n.scope=t.join(" ")),this._tokenStore.update({added:[{...n,created_at:Date.now()}],removed:[]});let o=this._tokenStore.sessions.find(i=>i.accessToken===n.access_token);return this._logger.info(`Created ${n.refresh_token?"refreshable":"non-refreshable"} session for scopes: ${n.scope}${n.expires_in?` that expires in ${n.expires_in} seconds`:""}`),o}async removeSession(t){this._logger.info(`Removing session with id: ${t}`);let e=this._tokenStore.sessions.find(o=>o.id===t);if(!e){this._logger.error(`Session with id ${t} not found`);return}let n=this._tokenStore.tokens.find(o=>o.access_token===e.accessToken);if(!n){this._logger.error(`Failed to retrieve token for removed session: ${e.id}`);return}this._tokenStore.update({added:[],removed:[n]}),this._logger.info(`Removed token for session: ${e.id} with scopes: ${e.scopes.join(" ")}`)}dispose(){this._disposable.dispose()}async _createWithUrlHandler(t,e,n){if(!this._serverMetadata.authorization_endpoint)throw new Error("Authorization Endpoint required");if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let o=this.generateRandomString(64),i=await this.generateCodeChallenge(o),s=this.generateRandomString(32),a=y.parse(`${this._initData.environment.appUriScheme}://dynamicauthprovider/${this.authorizationServer.authority}/authorize?nonce=${s}`),l;try{l=await this._extHostUrls.createAppUri(a)}catch(I){throw new Error(`Failed to create external URI: ${I}`)}let d=new URL(this._serverMetadata.authorization_endpoint);d.searchParams.append("client_id",this._clientId),d.searchParams.append("response_type","code"),d.searchParams.append("state",l.toString()),d.searchParams.append("code_challenge",i),d.searchParams.append("code_challenge_method","S256");let c=t.join(" ");c&&d.searchParams.append("scope",c),this._resourceMetadata?.resource&&d.searchParams.append("resource",this._resourceMetadata.resource);let u="https://vscode.dev/redirect";d.searchParams.append("redirect_uri",u);let m=this.waitForAuthorizationCode(a);if(this._logger.info(`Opening authorization URL for scopes: ${c}`),this._logger.trace(`Authorization URL: ${d.toString()}`),!await this._extHostWindow.openUri(d.toString(),{}))throw new Be;e.report({message:p(3307,null)});let h;try{h=(await rl(m,n)).code}catch(I){throw zt(I)?(this._logger.info("Authorization code request was cancelled by the user."),I):(this._logger.error(`Failed to receive authorization code: ${I}`),new Error(`Failed to receive authorization code: ${I}`))}return this._logger.info(`Authorization code received for scopes: ${c}`),await this.exchangeCodeForToken(h,o,u)}generateRandomString(t){let e=new Uint8Array(t);return crypto.getRandomValues(e),Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("").substring(0,t)}async generateCodeChallenge(t){let n=new TextEncoder().encode(t),o=await crypto.subtle.digest("SHA-256",n);return ir(W.wrap(new Uint8Array(o)),!1,!1).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async waitForAuthorizationCode(t){let e=await this._proxy.$waitForUriHandler(t),n=/[?&]code=([^&]+)/.exec(e.query||"");if(!n||n.length<2)throw new Error("Authentication failed: No authorization code received");return{code:n[1]}}async exchangeCodeForToken(t,e,n){if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let o=new URLSearchParams;o.append("client_id",this._clientId),o.append("grant_type","authorization_code"),o.append("code",t),o.append("redirect_uri",n),o.append("code_verifier",e),this._resourceMetadata?.resource&&o.append("resource",this._resourceMetadata.resource),this._clientSecret&&o.append("client_secret",this._clientSecret),this._logger.info("Exchanging authorization code for token..."),this._logger.trace(`Url: ${this._serverMetadata.token_endpoint}`),this._logger.trace(`Token request body: ${o.toString()}`);let i;try{i=await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:o.toString()})}catch(a){throw this._logger.error(`Failed to exchange authorization code for token: ${a}`),new Error(`Failed to exchange authorization code for token: ${a}`)}if(!i.ok){let a=await i.text();throw new Error(`Token exchange failed: ${i.status} ${i.statusText} - ${a}`)}let s=await i.json();if(ib(s))return this._logger.info("Successfully exchanged authorization code for token."),s;throw l0(s)&&s.error==="invalid_client"?(this._logger.warn(`Client ID (${this._clientId}) was invalid, generated a new one.`),await this._generateNewClientId(),new Error("Client ID was invalid, generated a new one. Please try again.")):new Error(`Invalid authorization token response: ${JSON.stringify(s)}`)}async exchangeRefreshTokenForToken(t){if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let e=new URLSearchParams;e.append("client_id",this._clientId),e.append("grant_type","refresh_token"),e.append("refresh_token",t),this._resourceMetadata?.resource&&e.append("resource",this._resourceMetadata.resource),this._clientSecret&&e.append("client_secret",this._clientSecret);let o=await(await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:e.toString()})).json();if(ib(o))return{...o,created_at:Date.now()};throw l0(o)&&o.error==="invalid_client"?(this._logger.warn(`Client ID (${this._clientId}) was invalid, generated a new one.`),await this._generateNewClientId(),new Error("Client ID was invalid, generated a new one. Please try again.")):new Error(`Invalid authorization token response: ${JSON.stringify(o)}`)}async _generateNewClientId(){try{let t=await c0(this._serverMetadata,this._initData.environment.appName,this._resourceMetadata?.scopes_supported);this._clientId=t.client_id,this._clientSecret=t.client_secret,this._onDidChangeClientId.fire()}catch(t){this._logger.info(`Dynamic registration failed for ${this.authorizationServer.toString()}: ${t}. Prompting user for client ID and client secret.`);try{let e=await this._proxy.$promptForClientRegistration(this.authorizationServer.toString());if(!e)throw new Error("User did not provide client details");this._clientId=e.clientId,this._clientSecret=e.clientSecret,this._logger.info(`User provided client ID for ${this.authorizationServer.toString()}`),e.clientSecret?this._logger.info(`User provided client secret for ${this.authorizationServer.toString()}`):this._logger.info(`User did not provide client secret for ${this.authorizationServer.toString()} (optional)`),this._onDidChangeClientId.fire()}catch{throw this._logger.error(`Failed to fetch new client ID and user did not provide one: ${t}`),new Error(`Failed to fetch new client ID and user did not provide one: ${t}`)}}}};lu=_([C(0,iu),C(1,su),C(2,Ye),C(3,au),C(4,Wo)],lu);var g0=class{constructor(t,e,n){this._persistence=t;this._logger=n;this._onDidChangeSessions=new T;this.onDidChangeSessions=this._onDidChangeSessions.event;this._disposable=new $,this._tokensObservable=mc("tokens",e),this._sessionsObservable=Yh({equalsFn:(o,i)=>Xt(o,i,(s,a)=>s.accessToken===a.accessToken)},o=>this._tokensObservable.read(o).map(i=>this._getSessionFromToken(i))),this._disposable.add(this._registerChangeEventAutorun()),this._disposable.add(this._persistence.onDidChange(o=>this._tokensObservable.set(o,void 0)))}get tokens(){return this._tokensObservable.get()}get sessions(){return this._sessionsObservable.get()}dispose(){this._disposable.dispose()}update({added:t,removed:e}){this._logger.trace(`Updating tokens: added ${t.length}, removed ${e.length}`);let n=[...this._tokensObservable.get()];for(let o of e){let i=n.findIndex(s=>s.access_token===o.access_token);i!==-1&&n.splice(i,1)}for(let o of t){let i=n.findIndex(s=>s.access_token===o.access_token);i===-1?n.push(o):n[i]=o}(t.length||e.length)&&(this._tokensObservable.set(n,void 0),this._persistence.set(n)),this._logger.trace(`Tokens updated: ${n.length} tokens stored.`)}_registerChangeEventAutorun(){let t=[];return os(e=>{this._logger.trace("Checking for session changes...");let n=this._sessionsObservable.read(e);if(t===n){this._logger.trace("No session changes detected.");return}if(!n||n.length===0){this._logger.trace("All sessions removed."),t.length>0&&(this._onDidChangeSessions.fire({added:[],removed:t,changed:[]}),t=[]);return}let o=[],i=[];for(let s of n)t.some(l=>l.accessToken===s.accessToken)||o.push(s);for(let s of t)n.some(l=>l.accessToken===s.accessToken)||i.push(s);(o.length>0||i.length>0)&&(this._logger.trace(`Sessions changed: added ${o.length}, removed ${i.length}`),this._onDidChangeSessions.fire({added:o,removed:i,changed:[]})),t=n})}_getSessionFromToken(t){let e;if(t.id_token)try{e=p0(t.id_token)}catch{}if(!e)try{e=p0(t.access_token)}catch{}let n=t.scope?t.scope.split(" "):e?.scope?e.scope.split(" "):[];return{id:xI(t.access_token,0).toString(),accessToken:t.access_token,account:{id:e?.sub||"unknown",label:e?.preferred_username||e?.name||e?.email||"MCP"},scopes:n,idToken:t.id_token}}};var gg=R("IExtHostLanguageModels"),f0=class{constructor(){this._defaultStream=new eI;this._isDone=!1;let t=this,[e,n]=tp.tee(t._defaultStream.asyncIterable);this.apiObject={get stream(){return e},get text(){return n.map(o=>{if(o instanceof Jt)return o.value}).coalesce()}}}handleResponsePart(t){if(this._isDone)return;let e=[];for(let n of Mt.wrap(t)){let o;n.type==="text"?o=new Jt(n.value,n.audience):n.type==="thinking"?o=new _i(n.value,n.id,n.metadata):n.type==="data"?o=new Ln(n.data.buffer,n.mimeType,n.audience):o=new Kr(n.toolCallId,n.name,n.parameters),e.push(o)}this._defaultStream.emitMany(e)}reject(t){this._isDone=!0,this._defaultStream.reject(t)}resolve(){this._isDone=!0,this._defaultStream.resolve()}},ud=class{constructor(t,e,n){this._logService=e;this._extHostAuthentication=n;this._onDidChangeModelAccess=new T;this._onDidChangeProviders=new T;this.onDidChangeProviders=this._onDidChangeProviders.event;this._onDidChangeModelProxyAvailability=new T;this.onDidChangeModelProxyAvailability=this._onDidChangeModelProxyAvailability.event;this._languageModelProviders=new Map;this._localModels=new Map;this._modelAccessList=new no;this._pendingRequest=new Map;this._ignoredFileProviders=new Map;this._languageAccessInformationExtensions=new Set;this._proxy=t.getProxy(U.MainThreadLanguageModels)}static{this._idPool=1}dispose(){this._onDidChangeModelAccess.dispose(),this._onDidChangeProviders.dispose(),this._onDidChangeModelProxyAvailability.dispose()}registerLanguageModelChatProvider(t,e,n){this._languageModelProviders.set(e,{extension:t,provider:n}),this._proxy.$registerLanguageModelProvider(e);let o;return n.onDidChangeLanguageModelChatInformation&&(o=n.onDidChangeLanguageModelChatInformation(()=>{this._proxy.$onLMProviderChange(e)})),G(()=>{this._languageModelProviders.delete(e),this._localModels.forEach((i,s)=>{i.metadata.vendor===e&&this._localModels.delete(s)}),o?.dispose(),this._proxy.$unregisterProvider(e)})}toModelIdentifier(t,e,n){return e?`${t}/${e}/${n}`:`${t}/${n}`}getVendorFromModelIdentifier(t){let e=t.indexOf("/");return e===-1?void 0:t.substring(0,e)}async $provideLanguageModelChatInfo(t,e,n){let o=this._languageModelProviders.get(t);if(!o)return[];let i=await o.provider.provideLanguageModelChatInformation({silent:e.silent,configuration:e.configuration},n)??[],s=i.map(a=>{let l;a.requiresAuthorization&&Fe(o.extension,"chatProvider")&&(l={providerLabel:o.extension.displayName||o.extension.name,accountLabel:typeof a.requiresAuthorization=="object"?a.requiresAuthorization.label:void 0}),a.capabilities.editTools&&A(o.extension,"chatProvider");let d={};if(Fe(o.extension,"chatProvider")){if(a.isDefault===!0)for(let c of Object.values(ns))typeof c=="string"&&(d[c]=!0);else if(typeof a.isDefault=="object")for(let c of Object.keys(a.isDefault)){let u=parseInt(c);d[Fm.from(u)]=a.isDefault[u]}}return{metadata:{extension:o.extension.identifier,id:a.id,vendor:t,name:a.name??"",family:a.family??"",detail:a.detail,tooltip:a.tooltip,version:a.version,multiplier:a.multiplier,multiplierNumeric:a.multiplierNumeric,maxInputTokens:a.maxInputTokens,maxOutputTokens:a.maxOutputTokens,auth:l,isDefaultForLocation:d,isUserSelectable:a.isUserSelectable,statusIcon:a.statusIcon,targetChatSessionType:a.targetChatSessionType,modelPickerCategory:a.category??iW,capabilities:a.capabilities?{vision:a.capabilities.imageInput,editTools:a.capabilities.editTools,toolCalling:!!a.capabilities.toolCalling,agentMode:!!a.capabilities.toolCalling}:void 0},identifier:this.toModelIdentifier(t,e.group,a.id)}});this._localModels.forEach((a,l)=>{a.metadata.vendor===t&&a.group===e.group&&this._localModels.delete(l)});for(let a=0;a<s.length;a++)this._localModels.set(s[a].identifier,{group:e.group,metadata:s[a].metadata,info:i[a]});return s}async $startChatRequest(t,e,n,o,i,s){let a=this._localModels.get(t);if(!a)throw new Error("Model not found");let l=this._languageModelProviders.get(a.metadata.vendor);if(!l)throw new Error(`Language model provider for '${a.metadata.id}' not found.`);let d=[],c=()=>{d.length>0&&(this._proxy.$reportResponsePart(e,new $t(d)),d.length=0)},u=new Wn(c,30),m=f=>{d.push(f)>30?(c(),u.cancel()):u.schedule()},g=new ts(async f=>{if(s.isCancellationRequested){this._logService.warn(`[CHAT](${l.extension.identifier.value}) CANNOT send progress because the REQUEST IS CANCELLED`);return}let I;if(f instanceof Kr?I={type:"tool_use",name:f.name,parameters:f.input,toolCallId:f.callId}:f instanceof Jt?I={type:"text",value:f.value,audience:f.audience}:f instanceof Ln?I={type:"data",mimeType:f.mimeType,data:W.wrap(f.data),audience:f.audience}:f instanceof _i&&(I={type:"thinking",value:f.value,id:f.id,metadata:f.metadata}),!I){this._logService.warn(`[CHAT](${l.extension.identifier.value}) UNKNOWN part ${JSON.stringify(f)}`);return}m(I)}),h;try{h=l.provider.provideLanguageModelChatResponse(a.info,o.value.map(AC.to),{...i,modelOptions:i.modelOptions??{},requestInitiator:n?_e.toKey(n):"core",toolMode:i.toolMode??1},g,s)}catch(f){throw f}Promise.resolve(h).then(()=>{c(),this._proxy.$reportResponseDone(e,void 0)},f=>{c(),this._proxy.$reportResponseDone(e,Vi(f))})}$provideTokenLength(t,e,n){let o=this._localModels.get(t);if(!o)return Promise.resolve(0);let i=this._languageModelProviders.get(o.metadata.vendor);return i?Promise.resolve(i.provider.provideTokenCount(o.info,e,n)):Promise.resolve(0)}async getDefaultLanguageModel(t,e){let n;e&&await this.selectLanguageModels(t,{});for(let[o,i]of this._localModels)if(i.metadata.isDefaultForLocation.panel&&i.metadata.vendor==="copilot"){n=o;break}return!n&&!e?this.getDefaultLanguageModel(t,!0):this.getLanguageModelByIdentifier(t,n)}async getLanguageModelByIdentifier(t,e){if(!e)return;let n=this._localModels.get(e);if(!n){this._logService.warn(`[LanguageModelProxy](${t.identifier.value}) Could not find model '${e}' in local cache. Trying to resolve model again.`);let i=this.getVendorFromModelIdentifier(e);if(!i){this._logService.warn(`[LanguageModelProxy](${t.identifier.value}) Could not extract vendor from model identifier '${e}'.`);return}if(await this.selectLanguageModels(t,{vendor:i}),n=this._localModels.get(e),!n){this._logService.warn(`[LanguageModelProxy](${t.identifier.value}) Could not find model '${e}' in local cache after re-resolving models.`);return}}this._isUsingAuth(t.identifier,n.metadata)&&await this._fakeAuthPopulate(n.metadata);let o;if(!o){let i=this;o={id:n.info.id,vendor:n.metadata.vendor,family:n.info.family,version:n.info.version,name:n.info.name,capabilities:{supportsImageToText:n.metadata.capabilities?.vision??!1,supportsToolCalling:!!n.metadata.capabilities?.toolCalling,editToolsHint:n.metadata.capabilities?.editTools},maxInputTokens:n.metadata.maxInputTokens,countTokens(s,a){if(!i._localModels.has(e))throw mr.NotFound(e);return i._computeTokenLength(e,s,a??he.None)},sendRequest(s,a,l){if(!i._localModels.has(e))throw mr.NotFound(e);return i._sendChatRequest(t,e,s,a??{},l??he.None)}},Object.freeze(o)}return o}async selectLanguageModels(t,e){let n=await this._proxy.$selectChatModels({...e,extension:t.identifier}),o=[],i=n.map(a=>this.getLanguageModelByIdentifier(t,a)),s=await Promise.all(i);for(let a of s)a&&o.push(a);return o}async _sendChatRequest(t,e,n,o,i){let s=this._convertMessages(t,n),a=t.identifier,l=this._localModels.get(e)?.metadata;if(!l||!this._localModels.has(e))throw mr.NotFound(`Language model '${e}' is unknown.`);if(this._isUsingAuth(a,l)&&(!await this._getAuthAccess(t,{identifier:l.extension,displayName:l.auth.providerLabel},o.justification,!1)||!this._modelAccessList.get(a)?.has(l.extension)))throw mr.NoPermissions(`Language model '${e}' cannot be used by '${a.value}'.`);let d=Math.random()*1e6|0,c=new f0;this._pendingRequest.set(d,{languageModelId:e,res:c});try{await this._proxy.$tryStartChatRequest(a,e,d,new $t(s),o,i)}catch(u){throw this._pendingRequest.delete(d),mr.tryDeserialize(u)??u}return c.apiObject}_convertMessages(t,e){let n=[];for(let o of e)o.role===3&&A(t,"languageModelSystem"),n.push(AC.from(o));return n}async $acceptResponsePart(t,e){let n=this._pendingRequest.get(t);n&&n.res.handleResponsePart(e.value)}async $acceptResponseDone(t,e){let n=this._pendingRequest.get(t);n&&(this._pendingRequest.delete(t),e?n.res.reject(mr.tryDeserialize(e)??Uk(e)):n.res.resolve())}async _getAuthAccess(t,e,n,o){let i=Dx+e.identifier.value;if(await this._extHostAuthentication.getSession(t,i,[],{silent:!0}))return this.$updateModelAccesslist([{from:t.identifier,to:e.identifier,enabled:!0}]),!0;if(o)return!1;try{let a=n?p(3316,null,e.displayName,n):void 0;return await this._extHostAuthentication.getSession(t,i,[],{forceNewSession:{detail:a}}),this.$updateModelAccesslist([{from:t.identifier,to:e.identifier,enabled:!0}]),!0}catch{return!1}}_isUsingAuth(t,e){return!!e.auth&&!_e.equals(e.extension,t)}async _fakeAuthPopulate(t){if(t.auth)for(let e of this._languageAccessInformationExtensions)try{await this._getAuthAccess(e,{identifier:t.extension,displayName:""},void 0,!0)}catch(n){this._logService.error("Fake Auth request failed"),this._logService.error(n)}}async _computeTokenLength(t,e,n){let o=this._localModels.get(t);if(!o)throw mr.NotFound(`Language model '${t}' is unknown.`);return this._languageModelProviders.get(o.metadata.vendor)?.provider.provideTokenCount(o.info,e,n)??0}$updateModelAccesslist(t){let e=new Array;for(let{from:n,to:o,enabled:i}of t){let s=this._modelAccessList.get(n)??new ko;if(s.has(o)!==i){i?s.add(o):s.delete(o),this._modelAccessList.set(n,s);let l={from:n,to:o};e.push(l),this._onDidChangeModelAccess.fire(l)}}}createLanguageModelAccessInformation(t){this._languageAccessInformationExtensions.add(t);let e=fe.signal(fe.filter(this._onDidChangeModelAccess.event,o=>_e.equals(o.from,t.identifier))),n=fe.signal(this._onDidChangeProviders.event);return{get onDidChange(){return fe.any(e,n)},canSendRequest(o){return!0}}}fileIsIgnored(t,e,n=he.None){return A(t,"chatParticipantAdditions"),this._proxy.$fileIsIgnored(e,n)}get isModelProxyAvailable(){return!!this._languageModelProxyProvider}async getModelProxy(t){if(A(t,"languageModelProxy"),!this._languageModelProxyProvider)throw this._logService.trace("[LanguageModelProxy] No LanguageModelProxyProvider registered"),new Error("No language model proxy provider is registered.");let e=_e.toKey(t.identifier);try{let n=await Promise.resolve(this._languageModelProxyProvider.provideModelProxy(e,he.None));if(!n)throw this._logService.warn(`[LanguageModelProxy] Provider returned no proxy for ${e}`),new Error("Language model proxy is not available.");return n}catch(n){throw this._logService.error(`[LanguageModelProxy] Provider failed to return proxy for ${e}`,n),n}}async $isFileIgnored(t,e,n){let o=this._ignoredFileProviders.get(t);if(!o)throw new Error("Unknown LanguageModelIgnoredFileProvider");return await o.provideFileIgnored(y.revive(e),n)??!1}registerIgnoredFileProvider(t,e){A(t,"chatParticipantPrivate");let n=ud._idPool++;return this._proxy.$registerFileIgnoreProvider(n),this._ignoredFileProviders.set(n,e),G(()=>{this._proxy.$unregisterFileIgnoreProvider(n),this._ignoredFileProviders.delete(n)})}registerLanguageModelProxyProvider(t,e){return A(t,"chatParticipantPrivate"),this._languageModelProxyProvider=e,this._onDidChangeModelProxyAvailability.fire(),G(()=>{this._languageModelProxyProvider===e&&(this._languageModelProxyProvider=void 0,this._onDidChangeModelProxyAvailability.fire())})}};ud=_([C(0,ie),C(1,oe),C(2,mg)],ud);var R6=60,A6=R6*60,h0=A6*24,EMe=h0*7,wMe=h0*30,kMe=h0*365;function pW(r){return r.getFullYear()+"-"+String(r.getMonth()+1).padStart(2,"0")+"-"+String(r.getDate()).padStart(2,"0")+"T"+String(r.getHours()).padStart(2,"0")+":"+String(r.getMinutes()).padStart(2,"0")+":"+String(r.getSeconds()).padStart(2,"0")+"."+(r.getMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"}var fg={DateTimeFormat(r,t){return new pt(()=>{try{return new Intl.DateTimeFormat(r,t)}catch{return new Intl.DateTimeFormat(void 0,t)}})},Collator(r,t){return new pt(()=>{try{return new Intl.Collator(r,t)}catch{return new Intl.Collator(void 0,t)}})},Segmenter(r,t){return new pt(()=>{try{return new Intl.Segmenter(r,t)}catch{return new Intl.Segmenter(void 0,t)}})},Locale(r,t){return new pt(()=>{try{return new Intl.Locale(r,t)}catch{return new Intl.Locale(zi,t)}})},NumberFormat(r,t){return new pt(()=>{try{return new Intl.NumberFormat(r,t)}catch{return new Intl.NumberFormat(void 0,t)}})}};var hg=class r{constructor(t){let e=aP(t);this._defaultValue=e,this._asciiMap=r._createAsciiMap(e),this._map=new Map}static _createAsciiMap(t){let e=new Uint8Array(256);return e.fill(t),e}set(t,e){let n=aP(e);t>=0&&t<256?this._asciiMap[t]=n:this._map.set(t,n)}get(t){return t>=0&&t<256?this._asciiMap[t]:this._map.get(t)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}};var v0=class extends hg{constructor(e,n){super(0);this._segmenter=null;this._cachedLine=null;this._cachedSegments=[];this.intlSegmenterLocales=n,this.intlSegmenterLocales.length>0?this._segmenter=fg.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let o=0,i=e.length;o<i;o++)this.set(e.charCodeAt(o),2);this.set(32,1),this.set(9,1)}findPrevIntlWordBeforeOrAtOffset(e,n){let o=null;for(let i of this._getIntlSegmenterWordsOnLine(e)){if(i.index>n)break;o=i}return o}findNextIntlWordAtOrAfterOffset(e,n){for(let o of this._getIntlSegmenterWordsOnLine(e))if(!(o.index<n))return o;return null}_getIntlSegmenterWordsOnLine(e){return this._segmenter?this._cachedLine===e?this._cachedSegments:(this._cachedLine=e,this._cachedSegments=this._filterWordSegments(this._segmenter.value.segment(e)),this._cachedSegments):[]}_filterWordSegments(e){let n=[];for(let o of e)this._isWordLike(o)&&n.push(o);return n}_isWordLike(e){return!!e.isWordLike}},mW=new Ar(10);function gW(r,t){let e=`${r}/${t.join(",")}`,n=mW.get(e);return n||(n=new v0(r,t),mW.set(e,n)),n}var sb=class{constructor(t,e,n,o){this.searchString=t,this.isRegex=e,this.matchCase=n,this.wordSeparators=o}parseSearchRequest(){if(this.searchString==="")return null;let t;this.isRegex?t=b0(this.searchString):t=this.searchString.indexOf(`
`)>=0;let e=null;try{e=Uy(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:t,global:!0,unicode:!0})}catch{return null}if(!e)return null;let n=!this.isRegex&&!t;return n&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(n=this.matchCase),new jI(e,this.wordSeparators?gW(this.wordSeparators,[]):null,n?this.searchString:null)}};function b0(r){if(!r||r.length===0)return!1;for(let t=0,e=r.length;t<e;t++){let n=r.charCodeAt(t);if(n===10)return!0;if(n===92){if(t++,t>=e)break;let o=r.charCodeAt(t);if(o===110||o===114||o===87)return!0}}return!1}function y0(r,t,e){if(!e)return new lc(r,null);let n=[];for(let o=0,i=t.length;o<i;o++)n[o]=t[o];return new lc(r,n)}function L6(r,t,e,n,o){if(n===0)return!0;let i=t.charCodeAt(n-1);if(r.get(i)!==0||i===13||i===10)return!0;if(o>0){let s=t.charCodeAt(n);if(r.get(s)!==0)return!0}return!1}function O6(r,t,e,n,o){if(n+o===e)return!0;let i=t.charCodeAt(n+o);if(r.get(i)!==0||i===13||i===10)return!0;if(o>0){let s=t.charCodeAt(n+o-1);if(r.get(s)!==0)return!0}return!1}function I0(r,t,e,n,o){return L6(r,t,e,n,o)&&O6(r,t,e,n,o)}var fT=class{constructor(t,e){this._wordSeparators=t,this._searchRegex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(t){this._searchRegex.lastIndex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(t){let e=t.length,n;do{if(this._prevMatchStartIndex+this._prevMatchLength===e||(n=this._searchRegex.exec(t),!n))return null;let o=n.index,i=n[0].length;if(o===this._prevMatchStartIndex&&i===this._prevMatchLength){if(i===0){gP(t,e,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=o,this._prevMatchLength=i,!this._wordSeparators||I0(this._wordSeparators,t,e,o,i))return n}while(n);return null}};function fW(r){return r.scheme!==V.file&&r.scheme!==V.vscodeRemote}function N6(r){if(r.folders.length)return r.folders.every(t=>fW(t.uri))?r.folders[0].uri:void 0;if(r.configuration&&fW(r.configuration))return r.configuration}function hW(r){return N6(r)?.scheme}var vg=R("remoteAgentService"),GMe=new class{constructor(){this.maxSampleCount=5;this.sampleDelay=2e3;this.initial=[];this.maxInitialCount=3;this.average=[];this.maxAverageCount=100;this.highLatencyMultiple=2;this.highLatencyMinThreshold=500;this.highLatencyMaxThreshold=1500;this.lastMeasurement=void 0}get latency(){return this.lastMeasurement}async measure(r){let t=1/0;for(let n=0;n<this.maxSampleCount;n++){let o=await r.getRoundTripTime();if(o===void 0)return;t=Math.min(t,o/2),await Lt(this.sampleDelay)}this.average.push(t),this.average.length>this.maxAverageCount&&this.average.shift();let e;return this.initial.length<this.maxInitialCount?this.initial.push(t):e=this.initial.reduce((n,o)=>n+o,0)/this.initial.length,this.lastMeasurement={initial:e,current:t,average:this.average.reduce((n,o)=>n+o,0)/this.average.length,high:typeof e>"u"?!1:t>this.highLatencyMaxThreshold||t>this.highLatencyMinThreshold&&t>e*this.highLatencyMultiple},this.lastMeasurement}};var vW=R("pathService"),bg=class{constructor(t,e,n,o){this.localUserHome=t;this.remoteAgentService=e;this.environmentService=n;this.contextService=o;this.resolveOS=(async()=>(await this.remoteAgentService.getEnvironment())?.os||Yo)(),this.resolveUserHome=(async()=>{let i=await this.remoteAgentService.getEnvironment();return this.maybeUnresolvedUserHome=i?.userHome??t})()}hasValidBasename(t,e,n){return typeof e=="string"||typeof e>"u"?this.resolveOS.then(o=>this.doHasValidBasename(t,o,e)):this.doHasValidBasename(t,e,n)}doHasValidBasename(t,e,n){return t.scheme===V.file||t.scheme===V.vscodeRemote?qN(n??qt(t),e===1):!0}get defaultUriScheme(){return bg.findDefaultUriScheme(this.environmentService,this.contextService)}static findDefaultUriScheme(t,e){if(t.remoteAuthority)return V.vscodeRemote;let n=hW(e.getWorkspace());if(n)return n;let o=e.getWorkspace().folders[0];if(o)return o.uri.scheme;let i=e.getWorkspace().configuration;return i?i.scheme:V.file}userHome(t){return t?.preferLocal?this.localUserHome:this.resolveUserHome}get resolvedUserHome(){return this.maybeUnresolvedUserHome}get path(){return this.resolveOS.then(t=>t===1?un:ze)}async fileURI(t){let e="";if(await this.resolveOS===1&&(t=t.replace(/\\/g,"/")),t[0]==="/"&&t[1]==="/"){let o=t.indexOf("/",2);o===-1?(e=t.substring(2),t="/"):(e=t.substring(2,o),t=t.substring(o)||"/")}return y.from({scheme:V.file,authority:e,path:t,query:"",fragment:""})}};bg=_([C(1,vg),C(2,Op),C(3,es)],bg);function F6(r){return typeof r=="object"&&"uri"in r&&"pattern"in r}var ab=class{constructor(t,e,n,o,i,s){this.configurationService=t;this.workspaceContextService=e;this.editorGroupsService=n;this.logService=o;this.pathService=i;this.uriIdentityService=s}aiText(t,e,n={}){return{...this.commonQuery(e?.map(Oh),n),type:3,contentPattern:t}}text(t,e,n={}){t=this.getContentPattern(t,n);let o=this.configurationService.getValue(),i=e&&e.some(a=>!this.configurationService.getValue({resource:a}).search.useRipgrep);return{...this.commonQuery(e?.map(Oh),n),type:2,contentPattern:t,previewOptions:n.previewOptions,maxFileSize:n.maxFileSize,usePCRE2:o.search.usePCRE2||i||!1,surroundingContext:n.surroundingContext,userDisabledExcludesAndIgnoreFiles:n.disregardExcludeSettings&&n.disregardIgnoreFiles}}getContentPattern(t,e){let n=this.configurationService.getValue();t.isRegExp&&(t.pattern=t.pattern.replace(/\r?\n/g,"\\n"));let o={...t,wordSeparators:n.editor.wordSeparators};return this.isCaseSensitive(t,e)&&(o.isCaseSensitive=!0),this.isMultiline(t)&&(o.isMultiline=!0),e.notebookSearchConfig?.includeMarkupInput&&(o.notebookInfo||(o.notebookInfo={}),o.notebookInfo.isInNotebookMarkdownInput=e.notebookSearchConfig.includeMarkupInput),e.notebookSearchConfig?.includeMarkupPreview&&(o.notebookInfo||(o.notebookInfo={}),o.notebookInfo.isInNotebookMarkdownPreview=e.notebookSearchConfig.includeMarkupPreview),e.notebookSearchConfig?.includeCodeInput&&(o.notebookInfo||(o.notebookInfo={}),o.notebookInfo.isInNotebookCellInput=e.notebookSearchConfig.includeCodeInput),e.notebookSearchConfig?.includeOutput&&(o.notebookInfo||(o.notebookInfo={}),o.notebookInfo.isInNotebookCellOutput=e.notebookSearchConfig.includeOutput),o}file(t,e={}){return{...this.commonQuery(t,e),type:1,filePattern:e.filePattern?e.filePattern.trim():e.filePattern,exists:e.exists,sortByScore:e.sortByScore,cacheKey:e.cacheKey,shouldGlobMatchFilePattern:e.shouldGlobSearch}}handleIncludeExclude(t,e){if(!t)return{};if(Array.isArray(t)){if(t=t.filter(n=>n.length>0).map(hT),!t.length)return{}}else t=hT(t);return e?this.parseSearchPaths(t):{pattern:x0(...Array.isArray(t)?t:[t])}}commonQuery(t=[],e={}){let n=Array.isArray(e.excludePattern)?e.excludePattern.map(c=>c.pattern).flat():e.excludePattern;n=n?.length===1?n[0]:n;let o=this.handleIncludeExclude(e.includePattern,e.expandPatterns),i=this.handleIncludeExclude(n,e.expandPatterns),s=t.length>1,a=(o.searchPaths&&o.searchPaths.length?o.searchPaths.map(c=>this.getFolderQueryForSearchPath(c,e,i)):t.map(c=>this.getFolderQueryForRoot(c,e,i,s))).filter(c=>!!c),l={_reason:e._reason,folderQueries:a,usingSearchPaths:!!(o.searchPaths&&o.searchPaths.length),extraFileResources:e.extraFileResources,excludePattern:i.pattern,includePattern:o.pattern,ignoreGlobCase:e.ignoreGlobCase,onlyOpenEditors:e.onlyOpenEditors,maxResults:e.maxResults,onlyFileScheme:e.onlyFileScheme};if(e.onlyOpenEditors){let c=nt(this.editorGroupsService.groups.flatMap(g=>g.editors.map(h=>h.resource)));this.logService.trace("QueryBuilder#commonQuery - openEditor URIs",JSON.stringify(c));let u=c.filter(g=>N1(l,g.fsPath)),m=this.commonQueryFromFileList(u);return this.logService.trace("QueryBuilder#commonQuery - openEditor Query",JSON.stringify(m)),{...l,...m}}let d=e.extraFileResources&&e.extraFileResources.filter(c=>N1(l,c.fsPath));return l.extraFileResources=d&&d.length?d:void 0,l}commonQueryFromFileList(t){let e=[],n=new Ge,o={},i=!1;return t.forEach(s=>{if(s.scheme===V.walkThrough)return;if(iU(s)){let l=this.workspaceContextService.getWorkspaceFolder(s)?.uri??this.uriIdentityService.extUri.dirname(s),d=n.get(l);d||(i=!0,d={folder:l,includePattern:{}},e.push(d),n.set(l,d));let c=ii(l.fsPath,s.fsPath);oi(d.includePattern)[bW(c.replace(/\\/g,"/"))]=!0}else s.fsPath&&(i=!0,o[bW(s.fsPath)]=!0)}),{folderQueries:e,includePattern:o,usingSearchPaths:!0,excludePattern:i?void 0:{"**/*":!0}}}isCaseSensitive(t,e){if(e.isSmartCase){if(t.isRegExp){if(hP(t.pattern,!0))return!0}else if(hP(t.pattern))return!0}return!!t.isCaseSensitive}isMultiline(t){return t.isMultiline||t.isRegExp&&b0(t.pattern)||t.pattern.indexOf(`
`)>=0?!0:!!t.isMultiline}parseSearchPaths(t){let e=u=>In(u)||/^\.\.?([\/\\]|$)/.test(u),o=(Array.isArray(t)?t:W6(t)).map(u=>{let m=this.pathService.resolvedUserHome;return m?cc(u,m.scheme===V.file?m.fsPath:m.path):u}),i=Ou(o,u=>e(u)?"searchPaths":"exprSegments"),s=(i.exprSegments||[]).map(u=>nr(u,"/")).map(u=>nr(u,"\\")).map(u=>(u[0]==="."&&(u="*"+u),V6(u))),a={},l=this.expandSearchPathPatterns(i.searchPaths||[]);l&&l.length&&(a.searchPaths=l);let d=s.flat(),c=x0(...d);return c&&(a.pattern=c),a}getExcludesForFolder(t,e){return e.disregardExcludeSettings?void 0:A4(t,!e.disregardSearchExcludeSettings)}expandSearchPathPatterns(t){if(!t||!t.length)return[];let e=t.flatMap(o=>{let{pathPortion:i,globPortion:s}=H6(o);return s&&(s=S0(s)),this.expandOneSearchPath(i).flatMap(l=>this.resolveOneSearchPathPattern(l,s))}),n=new Map;return e.forEach(o=>{let i=o.searchPath.toString(),s=n.get(i);s?o.pattern&&(s.pattern=s.pattern||{},s.pattern[o.pattern]=!0):n.set(i,{searchPath:o.searchPath,pattern:o.pattern?x0(o.pattern):void 0})}),Array.from(n.values())}expandOneSearchPath(t){if(In(t)){let e=this.workspaceContextService.getWorkspace().folders;return e[0]&&e[0].uri.scheme!==V.file?[{searchPath:e[0].uri.with({path:t})}]:[{searchPath:y.file(mo(t))}]}if(this.workspaceContextService.getWorkbenchState()===2){let e=this.workspaceContextService.getWorkspace().folders[0].uri;if(t=hT(t),t.startsWith("../")||t===".."){let o=ze.resolve(e.path,t);return[{searchPath:e.with({path:o})}]}let n=S0(t);return[{searchPath:e,pattern:n}]}else{if(t==="./"||t===".\\")return[];{let e=t.replace(/^\.[\/\\]/,""),o=this.workspaceContextService.getWorkspace().folders.map(i=>{let s=e.match(new RegExp(`^${tr(i.name)}(?:/(.*)|$)`));return s?{match:s,folder:i}:null}).filter(uo);if(o.length)return o.map(i=>{let s=i.match[1];return{searchPath:i.folder.uri,pattern:s&&S0(s)}});{let i=t.match(/\.[\/\\](.+)[\/\\]?/),s=i?i[1]:t,a=p(17504,null,s);throw new Error(a)}}}}resolveOneSearchPathPattern(t,e){let n=t.pattern&&e?`${t.pattern}/${e}`:t.pattern||e,o=[{searchPath:t.searchPath,pattern:n}];return n&&!n.endsWith("**")&&o.push({searchPath:t.searchPath,pattern:n+"/**"}),o}getFolderQueryForSearchPath(t,e,n){let o=this.getFolderQueryForRoot(Oh(t.searchPath),e,n,!1);return o?{...o,includePattern:t.pattern}:null}getFolderQueryForRoot(t,e,n,o){let i,s=y.isUri(t)?t:t.uri,a=e.excludePattern?.map(g=>{let h=e.excludePattern&&F6(g)?g.uri:void 0;return!h||!(y.isUri(t)&&this.uriIdentityService.extUri.isEqual(t,h))?h:void 0});if(a?.length||(a=[void 0]),n.searchPaths){let g=n.searchPaths.filter(h=>yr(h.searchPath,s))[0];if(g&&!g.pattern)return null;g&&(i=g.pattern)}let l=this.configurationService.getValue({resource:s}),c={...this.getExcludesForFolder(l,e)||{},...i||{}},u=y.isUri(t)?qt(t):t.name,m=a.map(g=>Object.keys(c).length>0?{folder:g,pattern:c}:void 0).filter(g=>g);return{folder:s,folderName:o?u:void 0,excludePattern:m,fileEncoding:l.files&&l.files.encoding,disregardIgnoreFiles:typeof e.disregardIgnoreFiles=="boolean"?e.disregardIgnoreFiles:!l.search.useIgnoreFiles,disregardGlobalIgnoreFiles:typeof e.disregardGlobalIgnoreFiles=="boolean"?e.disregardGlobalIgnoreFiles:!l.search.useGlobalIgnoreFiles,disregardParentIgnoreFiles:typeof e.disregardParentIgnoreFiles=="boolean"?e.disregardParentIgnoreFiles:!l.search.useParentIgnoreFiles,ignoreSymlinks:typeof e.ignoreSymlinks=="boolean"?e.ignoreSymlinks:!l.search.followSymlinks,ignoreGlobCase:e.ignoreGlobCase}}};ab=_([C(0,sn),C(1,es),C(2,xH),C(3,oe),C(4,vW),C(5,vx)],ab);function H6(r){let t=r.match(/[\*\{\}\(\)\[\]\?]/);if(t){let e=t.index,n=r.substr(0,e).match(/[/|\\][^/\\]*$/);if(n){let o=r.substr(0,n.index);return o.match(/[/\\]/)||(o+="/"),{pathPortion:o,globPortion:r.substr((n.index||0)+1)}}}return{pathPortion:r}}function x0(...r){return r.length?r.reduce((t,e)=>(t[e]=!0,t),Object.create(null)):void 0}function W6(r){return ia(r,",").map(t=>t.trim()).filter(t=>!!t.length)}function V6(r){return[`**/${r}/**`,`**/${r}`].map(e=>e.replace(/\*\*\/\*\*/g,"**"))}function hT(r){return r.replace(/\\/g,"/")}function S0(r){return hT(r).replace(/^\.\//,"").replace(/\/+$/g,"")}function bW(r){return r.replace(/([?*[\]])/g,"[$1]")}var B6=7e3;function IW(r,t){let e=t.activationEvents;if(!e)return Promise.resolve(void 0);let n=[],o=[];for(let c of e)if(/^workspaceContains:/.test(c)){let u=c.substr(18);u.indexOf("*")>=0||u.indexOf("?")>=0||r.forceUsingSearch?o.push(u):n.push(u)}if(n.length===0&&o.length===0)return Promise.resolve(void 0);let{promise:i,resolve:s}=lh(),a=c=>s({activationEvent:c}),l=Promise.all(n.map(c=>$6(r,c,a))).then(()=>{}),d=z6(r,t.identifier,o,a);return Promise.all([l,d]).then(()=>{s(void 0)}),i}async function $6(r,t,e){for(let n of r.folders)if(await r.exists(St(y.revive(n),t))){e(`workspaceContains:${t}`);return}}async function z6(r,t,e,n){if(e.length===0)return Promise.resolve(void 0);let o=new Ce,i=r.checkExists(r.folders,e,o.token),s=setTimeout(async()=>{o.cancel(),r.logService.info(`Not activating extension '${t.value}': Timed out while searching for 'workspaceContains' pattern ${e.join(",")}`)},B6),a=!1;try{a=await i}catch(l){zt(l)||$e(l)}o.dispose(),clearTimeout(s),a&&n(`workspaceContains:${e.join(",")}`)}var yg=class{constructor(t){this._onDidChangePassword=new T;this.onDidChangePassword=this._onDidChangePassword.event;this._proxy=t.getProxy(U.MainThreadSecretState)}async $onDidChangePassword(t){this._onDidChangePassword.fire(t)}get(t,e){return this._proxy.$getPassword(t,e)}store(t,e,n){return this._proxy.$setPassword(t,e,n)}delete(t,e){return this._proxy.$deletePassword(t,e)}keys(t){return this._proxy.$getKeys(t)}},Ig=R("IExtHostSecretState");var vT=class{constructor(t,e){this.disposables=new $;this._id=_e.toKey(t.identifier),this.#e=e,this.onDidChange=fe.map(fe.filter(this.#e.onDidChangePassword,n=>n.extensionId===this._id),n=>({key:n.key}),this.disposables)}#e;dispose(){this.disposables.dispose()}get(t){return this.#e.get(this._id,t)}store(t,e){return this.#e.store(this._id,t,e)}delete(t){return this.#e.delete(this._id,t)}keys(){return this.#e.keys(this._id)||[]}};var xg=class{constructor(t,e,n){this.logService=n;this.bundleCache=new Map;this._proxy=e.getProxy(U.MainThreadLocalization),this.currentLanguage=t.environment.appLanguage,this.isDefaultLanguage=this.currentLanguage===zi}getMessage(t,e){let{message:n,args:o,comment:i}=e;if(this.isDefaultLanguage)return uP(n,o??{});let s=n;i&&i.length>0&&(s+=`/${Array.isArray(i)?i.join(""):i}`);let a=this.bundleCache.get(t)?.contents[s];return a||this.logService.warn(`Using default string since no string found in i18n bundle that has the key: ${s}`),uP(a??n,o??{})}getBundle(t){return this.bundleCache.get(t)?.contents}getBundleUri(t){return this.bundleCache.get(t)?.uri}async initializeLocalizedMessages(t){if(this.isDefaultLanguage||!t.l10n&&!t.isBuiltin||this.bundleCache.has(t.identifier.value))return;let e,n=await this.getBundleLocation(t);if(!n){this.logService.error(`No bundle location found for extension ${t.identifier.value}`);return}try{let o=await this._proxy.$fetchBundleContents(n),i=JSON.parse(o);e=t.isBuiltin?i.contents?.bundle:i}catch(o){this.logService.error(`Failed to load translations for ${t.identifier.value} from ${n}: ${o.message}`);return}e&&this.bundleCache.set(t.identifier.value,{contents:e,uri:n})}async getBundleLocation(t){if(t.isBuiltin){let e=await this._proxy.$fetchBuiltInBundleUri(t.identifier.value,this.currentLanguage);return y.revive(e)}return t.l10n?y.joinPath(t.extensionLocation,t.l10n,`bundle.l10n.${this.currentLanguage}.json`):void 0}};xg=_([C(0,Ye),C(1,ie),C(2,oe)],xg);var Sg=R("IExtHostLocalizationService");var Tg=R("IExtHostManagedSockets"),Cg=class{constructor(t){this._remoteSocketIdCounter=0;this._factory=null;this._managedRemoteSockets=new Map;this._proxy=t.getProxy(U.MainThreadManagedSockets)}setFactory(t,e){for(let n of this._managedRemoteSockets.values())n.dispose();this._factory&&this._proxy.$unregisterSocketFactory(this._factory.socketFactoryId),this._factory=new C0(t,e),this._proxy.$registerSocketFactory(this._factory.socketFactoryId)}async $openRemoteSocket(t){if(!this._factory||this._factory.socketFactoryId!==t)throw new Error(`No socket factory with id ${t}`);let e=++this._remoteSocketIdCounter,n=await this._factory.makeConnection(),o=new $;return this._managedRemoteSockets.set(e,new T0(e,n,o)),o.add(G(()=>this._managedRemoteSockets.delete(e))),o.add(n.onDidEnd(()=>{this._proxy.$onDidManagedSocketEnd(e),o.dispose()})),o.add(n.onDidClose(i=>{this._proxy.$onDidManagedSocketClose(e,i?.stack??i?.message),o.dispose()})),o.add(n.onDidReceiveMessage(i=>this._proxy.$onDidManagedSocketHaveData(e,W.wrap(i)))),e}$remoteSocketWrite(t,e){this._managedRemoteSockets.get(t)?.actual.send(e.buffer)}$remoteSocketEnd(t){let e=this._managedRemoteSockets.get(t);e&&(e.actual.end(),e.dispose())}async $remoteSocketDrain(t){await this._managedRemoteSockets.get(t)?.actual.drain?.()}};Cg=_([C(0,ie)],Cg);var C0=class{constructor(t,e){this.socketFactoryId=t;this.makeConnection=e}},T0=class extends O{constructor(e,n,o){super();this.socketId=e;this.actual=n;this._register(o)}};var k0=R("IHostUtils"),pd=class extends O{constructor(e,n,o,i,s,a,l,d,c,u,m,g,h){super();this._extHostManagedSockets=g;this._extHostLanguageModels=h;this._onDidChangeRemoteConnectionData=this._register(new T);this.onDidChangeRemoteConnectionData=this._onDidChangeRemoteConnectionData.event;this._realPathCache=new Map;this._isTerminating=!1;this._hostUtils=n,this._extHostContext=o,this._initData=l,this._extHostWorkspace=i,this._extHostConfiguration=s,this._logService=a,this._extHostTunnelService=c,this._extHostTerminalService=u,this._extHostLocalizationService=m,this._mainThreadWorkspaceProxy=this._extHostContext.getProxy(U.MainThreadWorkspace),this._mainThreadTelemetryProxy=this._extHostContext.getProxy(U.MainThreadTelemetry),this._mainThreadExtensionsProxy=this._extHostContext.getProxy(U.MainThreadExtensionService),this._almostReadyToRunExtensions=new hn,this._readyToStartExtensionHost=new hn,this._readyToRunExtensions=new hn,this._eagerExtensionsActivated=new hn,this._activationEventsReader=new w0(this._initData.extensions.activationEvents),this._globalRegistry=new Ra(this._activationEventsReader,this._initData.extensions.allExtensions);let f=new ko(this._initData.extensions.myExtensions);this._myRegistry=new Ra(this._activationEventsReader,CW(this._globalRegistry,f)),Ya&&(this._logService.info(`Creating extension host with the following global extensions: ${Eg(this._globalRegistry)}`),this._logService.info(`Creating extension host with the following local extensions: ${Eg(this._myRegistry)}`)),this._storage=new Zm(this._extHostContext,this._logService),this._secretState=new yg(this._extHostContext),this._storagePath=d,this._instaService=this._store.add(e.createChild(new ul([eg,this._storage],[Ig,this._secretState]))),this._activator=this._register(new Jm(this._myRegistry,this._globalRegistry,{onExtensionActivationError:(I,S,E)=>{this._mainThreadExtensionsProxy.$onExtensionActivationError(I,Vi(S),E)},actualActivateExtension:async(I,S)=>{if(Ra.isHostExtension(I,this._myRegistry,this._globalRegistry))return await this._mainThreadExtensionsProxy.$activateExtension(I,S),new sT;let E=this._myRegistry.getExtensionDescription(I);return this._activateExtension(E,S)}},this._logService)),this._extensionPathIndex=null,this._resolvers=Object.create(null),this._started=!1,this._remoteConnectionData=this._initData.remote.connectionData}getRemoteConnectionData(){return this._remoteConnectionData}async initialize(){try{await this._beforeAlmostReadyToRunExtensions(),this._almostReadyToRunExtensions.open(),await this._extHostWorkspace.waitForInitializeCall(),Ft("code/extHost/ready"),this._readyToStartExtensionHost.open(),this._initData.autoStart&&this._startExtensionHost()}catch(e){$e(e)}}async _deactivateAll(){this._storagePath.onWillDeactivateAll();let e=[];try{e=this._myRegistry.getAllExtensionDescriptions().map(s=>s.identifier).filter(s=>this.isActivated(s)).map(s=>this._deactivate(s))}catch{}await Promise.all(e)}terminate(e,n=0){if(this._isTerminating)return;this._isTerminating=!0,this._logService.info(`Extension host terminating: ${e}`),this._logService.flush(),this._extHostTerminalService.dispose(),this._activator.dispose(),qf(i=>{this._logService.error(i)}),this._extHostContext.dispose();let o=this._deactivateAll();Promise.race([Lt(5e3),o]).finally(()=>{this._hostUtils.pid?this._logService.info(`Extension host with pid ${this._hostUtils.pid} exiting with code ${n}`):this._logService.info(`Extension host exiting with code ${n}`),this._logService.flush(),this._logService.dispose(),this._hostUtils.exit(n)})}isActivated(e){return this._readyToRunExtensions.isOpen()?this._activator.isActivated(e):!1}async getExtension(e){let n=await this._mainThreadExtensionsProxy.$getExtension(e);return n&&{...n,identifier:new _e(n.identifier.value),extensionLocation:y.revive(n.extensionLocation)}}_activateByEvent(e,n){return this._activator.activateByEvent(e,n)}_activateById(e,n){return this._activator.activateById(e,n)}activateByIdWithErrors(e,n){return this._activateById(e,n).then(()=>{let o=this._activator.getActivatedExtension(e);if(o.activationFailed)return Promise.reject(o.activationFailedError)})}getExtensionRegistry(){return this._readyToRunExtensions.wait().then(e=>this._myRegistry)}getExtensionExports(e){if(this._readyToRunExtensions.isOpen())return this._activator.getActivatedExtension(e).exports;try{return this._activator.getActivatedExtension(e).exports}catch{return null}}async _realPathExtensionUri(e){if(e.scheme===V.file&&this._hostUtils.fsRealpath){let n=e.fsPath;this._realPathCache.has(n)||this._realPathCache.set(n,this._hostUtils.fsRealpath(n));let o=await this._realPathCache.get(n);return y.file(o)}return e}async getExtensionPathIndex(){return this._extensionPathIndex||(this._extensionPathIndex=this._createExtensionPathIndex(this._myRegistry.getAllExtensionDescriptions()).then(e=>new E0(e))),this._extensionPathIndex}async _createExtensionPathIndex(e){let n=Bo.forUris(o=>$d.ignorePathCasing(o));return await Promise.all(e.map(async o=>{if(this._getEntryPoint(o)){let i=await this._realPathExtensionUri(o.extensionLocation);n.set(i,o)}})),n}_deactivate(e){let n=Promise.resolve(void 0);if(!this._readyToRunExtensions.isOpen()||!this._activator.isActivated(e))return n;let o=this._activator.getActivatedExtension(e);if(!o)return n;try{typeof o.module.deactivate=="function"&&(n=Promise.resolve(o.module.deactivate()).then(void 0,i=>(this._logService.error(i),Promise.resolve(void 0))))}catch(i){this._logService.error(`An error occurred when deactivating the extension '${e.value}':`),this._logService.error(i)}try{o.disposable.dispose()}catch(i){this._logService.error(`An error occurred when disposing the subscriptions for extension '${e.value}':`),this._logService.error(i)}return n}async _activateExtension(e,n){return this._initData.remote.isRemote?this._mainThreadExtensionsProxy.$onWillActivateExtension(e.identifier):await this._mainThreadExtensionsProxy.$onWillActivateExtension(e.identifier),this._doActivateExtension(e,n).then(o=>{let i=o.activationTimes;return this._mainThreadExtensionsProxy.$onDidActivateExtension(e.identifier,i.codeLoadingTime,i.activateCallTime,i.activateResolvedTime,n),this._logExtensionActivationTimes(e,n,"success",i),o},o=>{throw this._logExtensionActivationTimes(e,n,"failure"),o})}_logExtensionActivationTimes(e,n,o,i){let s=SW(e,n);this._mainThreadTelemetryProxy.$publicLog2("extensionActivationTimes",{...s,...i||{},outcome:o})}_doActivateExtension(e,n){let o=SW(e,n);this._mainThreadTelemetryProxy.$publicLog2("activatePlugin",o);let i=this._getEntryPoint(e);if(!i)return Promise.resolve(new iT(eu.NONE));this._logService.info(`ExtensionService#_doActivateExtension ${e.identifier.value}, startup: ${n.startup}, activationEvent: '${n.activationEvent}'${e.identifier.value!==n.extensionId.value?`, root cause: ${n.extensionId.value}`:""}`),this._logService.flush();let s=this._isESM(e),a=new $,l=new Ym(n.startup);return Promise.all([s?this._loadESMModule(e,St(e.extensionLocation,i),l):this._loadCommonJSModule(e,St(e.extensionLocation,i),l),this._loadExtensionContext(e,a)]).then(d=>(Ft(`code/extHost/willActivateExtension/${e.identifier.value}`),pd._callActivate(this._logService,e.identifier,d[0],d[1],a,l))).then(d=>(Ft(`code/extHost/didActivateExtension/${e.identifier.value}`),d))}_loadExtensionContext(e,n){let o=this._extHostLanguageModels.createLanguageModelAccessInformation(e),i=n.add(new aT(e,this._storage)),s=n.add(new tb(e.identifier.value,!1,this._storage)),a=n.add(new vT(e,this._secretState)),l=e.isUnderDevelopment?this._initData.environment.extensionTestsLocationURI?3:2:1,d=this._initData.remote.isRemote?2:1;return this._logService.trace(`ExtensionService#loadExtensionContext ${e.identifier.value}`),Promise.all([i.whenReady,s.whenReady,this._storagePath.whenReady]).then(()=>{let c=this,u,m,g=Fe(e,"ipc")?this._initData.messagePorts?.get(_e.toKey(e.identifier)):void 0;return Object.freeze({globalState:i,workspaceState:s,secrets:a,subscriptions:[],get languageModelAccessInformation(){return o},get extensionUri(){return e.extensionLocation},get extensionPath(){return e.extensionLocation.fsPath},asAbsolutePath(h){return Oe(e.extensionLocation.fsPath,h)},get storagePath(){return c._storagePath.workspaceValue(e)?.fsPath},get globalStoragePath(){return c._storagePath.globalValue(e).fsPath},get logPath(){return Oe(c._initData.logsLocation.fsPath,e.identifier.value)},get logUri(){return y.joinPath(c._initData.logsLocation,e.identifier.value)},get storageUri(){return c._storagePath.workspaceValue(e)},get globalStorageUri(){return c._storagePath.globalValue(e)},get extensionMode(){return l},get extension(){return u===void 0&&(u=new md(c,e.identifier,e,d,!1)),u},get extensionRuntime(){return A(e,"extensionRuntime"),c.extensionRuntime},get environmentVariableCollection(){return c._extHostTerminalService.getEnvironmentVariableCollection(e)},get messagePassingProtocol(){if(!m){if(!g)return;let h=fe.buffer(fe.fromDOMEventEmitter(g,"message",f=>f.data),"onDidReceiveMessage");g.start(),m={onDidReceiveMessage:h,postMessage:g.postMessage.bind(g)}}return m}})})}static _callActivate(e,n,o,i,s,a){return o=o||{activate:void 0,deactivate:void 0},this._callActivateOptional(e,n,o,i,a).then(l=>new tu(!1,null,a.build(),o,l,G(()=>{s.dispose(),bn(i.subscriptions)})))}static _callActivateOptional(e,n,o,i,s){if(typeof o.activate=="function")try{s.activateCallStart(),e.trace(`ExtensionService#_callActivateOptional ${n.value}`);let a=o.activate.apply(globalThis,[i]);return s.activateCallStop(),s.activateResolveStart(),Promise.resolve(a).then(l=>(s.activateResolveStop(),l))}catch(a){return Promise.reject(a)}else return Promise.resolve(o)}_activateOneStartupFinished(e,n){this._activateById(e.identifier,{startup:!1,extensionId:e.identifier,activationEvent:n}).then(void 0,o=>{this._logService.error(o)})}_activateAllStartupFinishedDeferred(e,n=0){let i=Date.now();wy(()=>{for(let s=n;s<e.length;s+=1){let a=e[s];for(let l of a.activationEvents??[])if(l==="onStartupFinished")if(Date.now()-i>50){this._activateAllStartupFinishedDeferred(e,s);break}else this._activateOneStartupFinished(a,l)}})}_activateAllStartupFinished(){this._mainThreadExtensionsProxy.$setPerformanceMarks(SU()),this._extHostConfiguration.getConfigProvider().then(e=>{let n=e.getConfiguration("extensions.experimental").get("deferredStartupFinishedActivation"),o=this._myRegistry.getAllExtensionDescriptions();if(n)this._activateAllStartupFinishedDeferred(o);else for(let i of o)if(i.activationEvents)for(let s of i.activationEvents)s==="onStartupFinished"&&this._activateOneStartupFinished(i,s)})}_handleEagerExtensions(){let e=this._activateByEvent("*",!0).then(void 0,a=>{this._logService.error(a)});this._register(this._extHostWorkspace.onDidChangeWorkspace(a=>this._handleWorkspaceContainsEagerExtensions(a.added)));let n=this._extHostWorkspace.workspace?this._extHostWorkspace.workspace.folders:[],o=this._handleWorkspaceContainsEagerExtensions(n),i=this._handleRemoteResolverEagerExtensions(),s=Promise.all([i,e,o]).then(()=>{});return Promise.race([s,Lt(1e4)]).then(()=>{this._activateAllStartupFinished()}),s}_handleWorkspaceContainsEagerExtensions(e){return e.length===0?Promise.resolve(void 0):Promise.all(this._myRegistry.getAllExtensionDescriptions().map(n=>this._handleWorkspaceContainsEagerExtension(e,n))).then(()=>{})}async _handleWorkspaceContainsEagerExtension(e,n){if(this.isActivated(n.identifier))return;let o=!this._initData.remote.isRemote&&!!this._initData.remote.authority,i={logService:this._logService,folders:e.map(a=>a.uri),forceUsingSearch:o||!this._hostUtils.fsExists,exists:a=>this._hostUtils.fsExists(a.fsPath),checkExists:(a,l,d)=>this._mainThreadWorkspaceProxy.$checkExists(a,l,d)},s=await IW(i,n);if(s)return this._activateById(n.identifier,{startup:!0,extensionId:n.identifier,activationEvent:s.activationEvent}).then(void 0,a=>this._logService.error(a))}async _handleRemoteResolverEagerExtensions(){if(this._initData.remote.authority)return this._activateByEvent(`onResolveRemoteAuthority:${this._initData.remote.authority}`,!1)}async $extensionTestsExecute(){await this._eagerExtensionsActivated.wait();try{return await this._doHandleExtensionTests()}catch(e){throw console.error(e),e}}async _doHandleExtensionTests(){let{extensionDevelopmentLocationURI:e,extensionTestsLocationURI:n}=this._initData.environment;if(!e||!n)throw new Error(p(3313,null));let o=(await this.getExtensionPathIndex()).findSubstr(n),s=await(this._isESM(o,n.path)?this._loadESMModule(null,n,new Ym(!1)):this._loadCommonJSModule(null,n,new Ym(!1)));if(!s||typeof s.run!="function")throw new Error(p(3312,null,n.toString()));return new Promise((a,l)=>{let d=(m,g)=>{m?(Ya&&this._logService.error("Test runner called back with error",m),l(m)):(Ya&&(g?this._logService.info(`Test runner called back with ${g} failures.`):this._logService.info("Test runner called back with successful outcome.")),a(typeof g=="number"&&g>0?1:0))},c=Mr(n),u=s.run(c,d);u&&u.then&&u.then(()=>{Ya&&this._logService.info("Test runner finished successfully."),a(0)}).catch(m=>{Ya&&this._logService.error("Test runner finished with error",m),l(m instanceof Error&&m.stack?m.stack:String(m))})})}_startExtensionHost(){if(this._started)throw new Error("Extension host is already started!");return this._started=!0,this._readyToStartExtensionHost.wait().then(()=>this._readyToRunExtensions.open()).then(()=>Promise.race([this._activator.waitForActivatingExtensions(),Lt(1e3)])).then(()=>this._handleEagerExtensions()).then(()=>{this._eagerExtensionsActivated.open(),this._logService.info("Eager extensions activated")})}registerRemoteAuthorityResolver(e,n){return this._resolvers[e]=n,G(()=>{delete this._resolvers[e]})}async getRemoteExecServer(e){let{resolver:n}=await this._activateAndGetResolver(e);return n?.resolveExecServer?.(e,{resolveAttempt:0})}async _activateAndGetResolver(e){let n=e.indexOf("+");if(n===-1)throw new Is("Not an authority that can be resolved!","InvalidAuthority");let o=e.substr(0,n);return await this._almostReadyToRunExtensions.wait(),await this._activateByEvent(`onResolveRemoteAuthority:${o}`,!1),{authorityPrefix:o,resolver:this._resolvers[o]}}async $resolveAuthority(e,n){let o=Zt.create(!1),i=()=>`[resolveAuthority(${sA(e)},${n})][${o.elapsed()}ms] `,s=P=>this._logService.info(`${i()}${P}`),a=P=>this._logService.warn(`${i()}${P}`),l=(P,L=void 0)=>this._logService.error(`${i()}${P}`,L),d=P=>{if(P instanceof Is)return{type:"error",error:{code:P._code,message:P._message,detail:P._detail}};throw P},c=async P=>{s(`activating resolver for ${P}...`);let{resolver:L,authorityPrefix:j}=await this._activateAndGetResolver(P);if(!L)throw l(`no resolver for ${j}`),new Is(`No remote extension installed to resolve ${j}.`,"NoResolverFound");return{resolver:L,authorityPrefix:j,remoteAuthority:P}},u=e.split(/@|%40/g).reverse();s(`activating remote resolvers ${u.join(" -> ")}`);let m;try{m=await Promise.all(u.map(c)).catch(async P=>{if(!(P instanceof Is)||P._code!=="InvalidAuthority")throw P;return a(`resolving nested authorities failed: ${P.message}`),[await c(e)]})}catch(P){return d(P)}let g=new Xu;g.cancelAndSet(()=>s("waiting..."),1e3);let h,f;for(let[P,{authorityPrefix:L,resolver:j,remoteAuthority:F}]of m.entries())try{if(P===m.length-1)s("invoking final resolve()..."),Ft(`code/extHost/willResolveAuthority/${L}`),h=await j.resolve(F,{resolveAttempt:n,execServer:f}),Ft(`code/extHost/didResolveAuthorityOK/${L}`),s("setting tunnel factory..."),this._register(await this._extHostTunnelService.setTunnelFactory(j,Fl.isManagedResolvedAuthority(h)?h:void 0));else{if(s(`invoking resolveExecServer() for ${F}`),Ft(`code/extHost/willResolveExecServer/${L}`),f=await j.resolveExecServer?.(F,{resolveAttempt:n,execServer:f}),!f)throw new Is(`Exec server was not available for ${F}`,"NoResolverFound");Ft(`code/extHost/didResolveExecServerOK/${L}`)}}catch(z){return Ft(`code/extHost/didResolveAuthorityError/${L}`),l("returned an error",z),g.dispose(),d(z)}g.dispose();let I={environmentTunnels:h.environmentTunnels,features:h.tunnelFeatures?{elevation:h.tunnelFeatures.elevation,privacyOptions:h.tunnelFeatures.privacyOptions,protocol:h.tunnelFeatures.protocol===void 0?!0:h.tunnelFeatures.protocol}:void 0},S={extensionHostEnv:h.extensionHostEnv,isTrusted:h.isTrusted,authenticationSession:h.authenticationSessionForInitializingExtensions?{id:h.authenticationSessionForInitializingExtensions.id,providerId:h.authenticationSessionForInitializingExtensions.providerId}:void 0};s(`returned ${Fl.isManagedResolvedAuthority(h)?"managed authority":`${h.host}:${h.port}`}`);let E;if(Fl.isManagedResolvedAuthority(h)){let P=n;this._extHostManagedSockets.setFactory(P,h.makeConnection),E={authority:e,connectTo:new Hp(P),connectionToken:h.connectionToken}}else E={authority:e,connectTo:new Kx(h.host,h.port),connectionToken:h.connectionToken};return{type:"ok",value:{authority:E,options:S,tunnelInformation:I}}}async $getCanonicalURI(e,n){this._logService.info(`$getCanonicalURI invoked for authority (${sA(e)})`);let{resolver:o}=await this._activateAndGetResolver(e);if(!o)return null;let i=y.revive(n);if(typeof o.getCanonicalURI>"u")return i;let s=await pn(()=>o.getCanonicalURI(i));return s||i}async $startExtensionHost(e){e.toAdd.forEach(a=>a.extensionLocation=y.revive(a.extensionLocation));let{globalRegistry:n,myExtensions:o}=xW(this._activationEventsReader,this._globalRegistry,this._myRegistry,e),i=await this._createExtensionPathIndex(o);return(await this.getExtensionPathIndex()).setSearchTree(i),this._globalRegistry.set(n.getAllExtensionDescriptions()),this._myRegistry.set(o),Ya&&(this._logService.info(`$startExtensionHost: global extensions: ${Eg(this._globalRegistry)}`),this._logService.info(`$startExtensionHost: local extensions: ${Eg(this._myRegistry)}`)),this._startExtensionHost()}$activateByEvent(e,n){return n===1?this._almostReadyToRunExtensions.wait().then(o=>this._activateByEvent(e,!1)):this._readyToRunExtensions.wait().then(o=>this._activateByEvent(e,!1))}async $activate(e,n){return await this._readyToRunExtensions.wait(),this._myRegistry.getExtensionDescription(e)?(await this._activateById(e,n),!0):!1}async $deltaExtensions(e){e.toAdd.forEach(a=>a.extensionLocation=y.revive(a.extensionLocation));let{globalRegistry:n,myExtensions:o}=xW(this._activationEventsReader,this._globalRegistry,this._myRegistry,e),i=await this._createExtensionPathIndex(o);return(await this.getExtensionPathIndex()).setSearchTree(i),this._globalRegistry.set(n.getAllExtensionDescriptions()),this._myRegistry.set(o),Ya&&(this._logService.info(`$deltaExtensions: global extensions: ${Eg(this._globalRegistry)}`),this._logService.info(`$deltaExtensions: local extensions: ${Eg(this._myRegistry)}`)),Promise.resolve(void 0)}async $test_latency(e){return e}async $test_up(e){return e.byteLength}async $test_down(e){let n=W.alloc(e),o=Math.random()%256;for(let i=0;i<e;i++)n.writeUInt8(o,i);return n}async $updateRemoteConnectionData(e){this._remoteConnectionData=e,this._onDidChangeRemoteConnectionData.fire()}_isESM(e,n){return n??=e?this._getEntryPoint(e):n,n?.endsWith(".mjs")||e?.type==="module"&&!n?.endsWith(".cjs")}};pd=_([C(0,Fo),C(1,k0),C(2,ie),C(3,_n),C(4,vn),C(5,oe),C(6,Ye),C(7,ng),C(8,sd),C(9,Io),C(10,Sg),C(11,Tg),C(12,gg)],pd);function xW(r,t,e,n){r.addActivationEvents(n.addActivationEvents);let o=new Ra(r,t.getAllExtensionDescriptions());o.deltaExtensions(n.toAdd,n.toRemove);let i=new ko(e.getAllExtensionDescriptions().map(a=>a.identifier));for(let a of n.myToRemove)i.delete(a);for(let a of n.myToAdd)i.add(a);let s=CW(o,i);return{globalRegistry:o,myExtensions:s}}function SW(r,t){return{id:r.identifier.value,name:r.name,extensionVersion:r.version,publisherDisplayName:r.publisher,activationEvents:r.activationEvents?r.activationEvents.join(","):null,isBuiltin:r.isBuiltin,reason:t.activationEvent,reasonId:t.extensionId.value}}function Eg(r){return r.getAllExtensionDescriptions().map(t=>t.identifier.value).join(",")}var ao=R("IExtHostExtensionService"),md=class{#e;#t;#n;constructor(t,e,n,o,i){this.#e=t,this.#t=e,this.#n=n.identifier,this.id=n.identifier.value,this.extensionUri=n.extensionLocation,this.extensionPath=mo(Mr(n.extensionLocation)),this.packageJSON=n,this.extensionKind=o,this.isFromDifferentExtensionHost=i}get isActive(){return this.#e.isActivated(this.#n)}get exports(){if(!(this.packageJSON.api==="none"||this.isFromDifferentExtensionHost))return this.#e.getExtensionExports(this.#n)}async activate(){if(this.isFromDifferentExtensionHost)throw new Error("Cannot activate foreign extension");return await this.#e.activateByIdWithErrors(this.#n,{startup:!1,extensionId:this.#t,activationEvent:"api"}),this.exports}};function CW(r,t){return r.getAllExtensionDescriptions().filter(e=>t.has(e.identifier))}var E0=class{constructor(t){this._searchTree=t}setSearchTree(t){this._searchTree=t}findSubstr(t){return this._searchTree.findSubstr(t)}forEach(t){return this._searchTree.forEach(t)}},w0=class{constructor(t){this._map=new no;this.addActivationEvents(t)}readActivationEvents(t){return this._map.get(t.identifier)??[]}addActivationEvents(t){for(let e of Object.keys(t))this._map.set(e,t[e])}};var Ai=R("IExtHostApiDeprecationService"),wg=class{constructor(t,e){this._extHostLogService=e;this._reportedUsages=new Set;this._telemetryShape=t.getProxy(U.MainThreadTelemetry)}report(t,e,n,o){let i=this.getUsageKey(t,e,o?.usageId);this._reportedUsages.has(i)||(this._reportedUsages.add(i),e.isUnderDevelopment&&this._extHostLogService.warn(`[Deprecation Warning] '${t}' is deprecated. ${n}`),this._telemetryShape.$publicLog2("extHostDeprecatedApiUsage",{extensionId:e.identifier.value,apiId:t,usageId:o?.usageId??""}))}getUsageKey(t,e,n){let o=`${t}-${e.identifier.value}`;return n?`${o}-${n}`:o}};wg=_([C(0,ie),C(1,oe)],wg);var NNe=Object.freeze(new class{report(r,t,e){}});var bT=class{static async installEarlyHandler(t){Error.stackTraceLimit=100;let e=t.get(oe),o=t.get(ie).getProxy(U.MainThreadErrors);qf(i=>{e.error(i);let s=Vi(i);o.$onUnexpectedError(s)})}static async installFullHandler(t){let e=t.get(oe),n=t.get(ie),o=t.get(ao),i=t.get(ld),s=t.get(Ai),a=n.getProxy(U.MainThreadExtensionService),l=n.getProxy(U.MainThreadErrors),d=await o.getExtensionRegistry(),c=await o.getExtensionPathIndex(),u=new WeakMap;function m(f,I){if(u.has(f))return u.get(f).stack;let S="",E,P;for(let j of I)S+=`
	at ${j.toString()}`,P=j.getFileName(),!E&&P&&(E=c.findSubstr(y.file(P)));let L=`${f.name||"Error"}: ${f.message||""}${S}`;return u.set(f,{extensionIdentifier:E?.identifier,stack:L}),L}let g=Symbol("prepareStackTrace wrapped"),h=m;Object.defineProperty(Error,"prepareStackTrace",{configurable:!1,get(){return h},set(f){if(f===m||!f||f[g]){h=f||m;return}h=function(I,S){return m(I,S),f.call(Error,I,S)},Object.assign(h,{[g]:!0})}}),qf(f=>{Rd.is(f)||e.error(f);let I=Vi(f),S;if(f instanceof cp?S=f.extension:S=u.get(f)?.extensionIdentifier,!!S)if(Rd.is(f)){let E=d.getExtensionDescription(S);E&&s.report(f.name,E,`${f.message}
 FROM: ${f.stack}`)}else{a.$onExtensionRuntimeError(S,I);let E=i.onExtensionError(S,f);e.trace("forwarded error to extension?",E,S)}}),Nu.addListener(f=>{l.$onUnexpectedError(f)})}},yT=class r{constructor(t,e,n,o,i){this._hostUtils=n,this._rpcProtocol=new yI(t,null,o),e=r._transform(e,this._rpcProtocol);let s=new ul(...mF());s.set(Ye,{_serviceBrand:void 0,...e,messagePorts:i}),s.set(ie,new PI(this._rpcProtocol)),s.set(Zi,new _I(o)),s.set(k0,n);let a=new kI(s,!0);a.invokeFunction(bT.installEarlyHandler),this._logService=a.invokeFunction(l=>l.get(oe)),Ft("code/extHost/didCreateServices"),this._hostUtils.pid?this._logService.info(`Extension host with pid ${this._hostUtils.pid} started`):this._logService.info("Extension host started"),this._logService.trace("initData",e),this._extensionService=a.invokeFunction(l=>l.get(ao)),this._extensionService.initialize(),a.invokeFunction(bT.installFullHandler)}async asBrowserUri(t){let e=this._rpcProtocol.getProxy(U.MainThreadExtensionService);return y.revive(await e.$asBrowserUri(t))}terminate(t){this._extensionService.terminate(t)}static _transform(t,e){t.extensions.allExtensions.forEach(o=>{o.extensionLocation=y.revive(e.transformIncomingURIs(o.extensionLocation))}),t.environment.appRoot=y.revive(e.transformIncomingURIs(t.environment.appRoot));let n=t.environment.extensionDevelopmentLocationURI;return n&&(t.environment.extensionDevelopmentLocationURI=n.map(o=>y.revive(e.transformIncomingURIs(o)))),t.environment.extensionTestsLocationURI=y.revive(e.transformIncomingURIs(t.environment.extensionTestsLocationURI)),t.environment.globalStorageHome=y.revive(e.transformIncomingURIs(t.environment.globalStorageHome)),t.environment.workspaceStorageHome=y.revive(e.transformIncomingURIs(t.environment.workspaceStorageHome)),t.nlsBaseUrl=y.revive(e.transformIncomingURIs(t.nlsBaseUrl)),t.logsLocation=y.revive(e.transformIncomingURIs(t.logsLocation)),t.workspace=e.transformIncomingURIs(t.workspace),t}};function q6(r){return{transformIncoming:t=>t.scheme==="vscode-remote"?{scheme:"file",path:t.path,query:t.query,fragment:t.fragment}:t.scheme==="file"?{scheme:"vscode-local",path:t.path,query:t.query,fragment:t.fragment}:t,transformOutgoing:t=>t.scheme==="file"?{scheme:"vscode-remote",authority:r,path:t.path,query:t.query,fragment:t.fragment}:t.scheme==="vscode-local"?{scheme:"file",path:t.path,query:t.query,fragment:t.fragment}:t,transformOutgoingScheme:t=>t==="file"?"vscode-remote":t==="vscode-local"?"file":t}}function TW(r){return new vI(q6(r))}var kg=class r{constructor(t){this.pipeName=t;this.type=1}static{this.ENV_KEY="VSCODE_EXTHOST_IPC_HOOK"}serialize(t){t[r.ENV_KEY]=this.pipeName}},lb=class r{constructor(){this.type=2}static{this.ENV_KEY="VSCODE_EXTHOST_WILL_SEND_SOCKET"}serialize(t){t[r.ENV_KEY]="1"}},db=class r{constructor(){this.type=3}static{this.ENV_KEY="VSCODE_WILL_SEND_MESSAGE_PORT"}serialize(t){t[r.ENV_KEY]="1"}};function K6(r){delete r[kg.ENV_KEY],delete r[lb.ENV_KEY],delete r[db.ENV_KEY]}function EW(r){if(r[kg.ENV_KEY])return P0(r,new kg(r[kg.ENV_KEY]));if(r[lb.ENV_KEY])return P0(r,new lb);if(r[db.ENV_KEY])return P0(r,new db);throw new Error("No connection information defined in environment!")}function P0(r,t){return K6(r),t}var hUe=new w("inOutput",!1),vUe=new w("activeLogOutput",!1),bUe=new w("activeLogOutput.isLog",!1),yUe=new w("activeLogOutput.levelSettable",!1),IUe=new w("activeLogOutput.level",""),xUe=new w("activeLogOutput.levelIsDefault",!1),SUe=new w("outputView.scrollLock",!1),CUe=new w("activeOutputChannel",""),TUe=new w("output.filter.trace",!0),EUe=new w("output.filter.debug",!0),wUe=new w("output.filter.info",!0),kUe=new w("output.filter.warning",!0),PUe=new w("output.filter.error",!0),_Ue=new w("outputFilterFocus",!1),DUe=new w("output.filter.categories",""),RUe=R("outputService");var j6={OutputChannels:"workbench.contributions.outputChannels"};function G6(r){return Array.isArray(r.source)}var _0=class extends O{constructor(){super(...arguments);this.channels=new Map;this._onDidRegisterChannel=this._register(new T);this.onDidRegisterChannel=this._onDidRegisterChannel.event;this._onDidRemoveChannel=this._register(new T);this.onDidRemoveChannel=this._onDidRemoveChannel.event;this._onDidUpdateChannelFiles=this._register(new T);this.onDidUpdateChannelSources=this._onDidUpdateChannelFiles.event}registerChannel(e){this.channels.has(e.id)||(this.channels.set(e.id,e),this._onDidRegisterChannel.fire(e.id))}getChannels(){let e=[];return this.channels.forEach(n=>e.push(n)),e}getChannel(e){return this.channels.get(e)}updateChannelSources(e,n){let o=this.channels.get(e);o&&G6(o)&&(o.source=n,this._onDidUpdateChannelFiles.fire(o))}removeChannel(e){let n=this.channels.get(e);n&&(this.channels.delete(e),this._onDidRemoveChannel.fire(n))}};gt.add(j6.OutputChannels,new _0);var IT=class extends cl{constructor(e,n,o,i,s){super();this.id=e;this.name=n;this.logger=o;this.proxy=i;this.extension=s;this.offset=0;this.visible=!1;this.setLevel(o.getLevel()),this._register(o.onDidChangeLogLevel(a=>this.setLevel(a))),this._register(G(()=>this.proxy.$dispose(this.id)))}get logLevel(){return this.getLevel()}appendLine(e){this.append(e+`
`)}append(e){this.info(e)}clear(){let e=this.offset;this.logger.flush(),this.proxy.$update(this.id,3,e)}replace(e){let n=this.offset;this.info(e),this.proxy.$update(this.id,2,n),this.visible&&this.logger.flush()}show(e,n){this.logger.flush(),this.proxy.$reveal(this.id,!!(typeof e=="boolean"?e:n))}hide(){this.proxy.$close(this.id)}log(e,n){this.offset+=W.fromString(n).byteLength,uF(this.logger,e,n),this.visible&&(this.logger.flush(),this.proxy.$update(this.id,1))}},D0=class extends IT{appendLine(t){this.append(t)}},Pg=class{constructor(t,e,n,o,i,s){this.initData=e;this.extHostFileSystem=n;this.extHostFileSystemInfo=o;this.loggerService=i;this.logService=s;this.extensionLogDirectoryCreationPromise=new Ge;this.logOutputChannels=new Ge;this.namePool=1;this.channels=new Map;this.visibleChannelId=null;this.proxy=t.getProxy(U.MainThreadOutputService),this.outputsLocation=this.extHostFileSystemInfo.extUri.joinPath(e.logsLocation,`output_logging_${pW(new Date).replace(/-|:|\.\d+Z$/g,"")}`)}$setVisibleChannel(t){this.visibleChannelId=t;for(let[e,n]of this.channels)n.visible=e===this.visibleChannelId}createOutputChannel(t,e,n){if(t=t.trim(),!t)throw new Error("illegal argument `name`. must not be falsy");let o=typeof e=="object"&&e.log,i=Pe(e)?e:void 0;if(Pe(i)&&!i.trim())throw new Error("illegal argument `languageId`. must not be empty");let s=new $,a,l=this.initData.environment.extensionLogLevel?.find(([c])=>_e.equals(n.identifier,c))?.[1],d;if(o){let c=this.extHostFileSystemInfo.extUri.joinPath(this.initData.logsLocation,n.identifier.value);d=this.extHostFileSystemInfo.extUri.joinPath(c,`${t.replace(/[\\/:\*\?"<>\|]/g,"")}.log`);let u=this.logOutputChannels.get(d);if(u)return u;let m=this.loggerService.getRegisteredLogger(d);m?.logLevel!==void 0&&(l=m.logLevel),a=this.doCreateLogOutputChannel(t,d,l,n,s)}else a=this.doCreateOutputChannel(t,i,n,s);if(a.then(c=>{this.channels.set(c.id,c),c.visible=c.id===this.visibleChannelId,s.add(G(()=>{this.channels.delete(c.id),d&&this.logOutputChannels.delete(d)}))}),d){let c=this.createExtHostLogOutputChannel(t,l??this.logService.getLevel(),a,s);return this.logOutputChannels.set(d,c),c}return this.createExtHostOutputChannel(t,a,s)}async doCreateOutputChannel(t,e,n,o){this.outputDirectoryPromise||(this.outputDirectoryPromise=this.extHostFileSystem.value.createDirectory(this.outputsLocation).then(()=>this.outputsLocation));let i=await this.outputDirectoryPromise,s=this.extHostFileSystemInfo.extUri.joinPath(i,`${this.namePool++}-${t.replace(/[\\/:\*\?"<>\|]/g,"")}.log`),a=o.add(this.loggerService.createLogger(s,{logLevel:"always",donotRotate:!0,donotUseFormatters:!0,hidden:!0})),l=await this.proxy.$register(t,s,e,n.identifier.value);return o.add(G(()=>this.loggerService.deregisterLogger(s))),new IT(l,t,a,this.proxy,n)}async doCreateLogOutputChannel(t,e,n,o,i){await this.createExtensionLogDirectory(e);let s=`${o.identifier.value}.${this.extHostFileSystemInfo.extUri.basename(e)}`,a=i.add(this.loggerService.createLogger(e,{id:s,name:t,logLevel:n,extensionId:o.identifier.value}));return i.add(G(()=>this.loggerService.deregisterLogger(e))),new D0(s,t,a,this.proxy,o)}createExtensionLogDirectory(t){let e=this.extHostFileSystemInfo.extUri.dirname(t),n=this.extensionLogDirectoryCreationPromise.get(e);return n||this.extensionLogDirectoryCreationPromise.set(e,n=(async()=>{try{await this.extHostFileSystem.value.createDirectory(e)}catch(o){if(mp(o)!=="EntryExists")throw o}})()),n}createExtHostOutputChannel(t,e,n){let o=()=>{if(n.isDisposed)throw new Error("Channel has been closed")};return e.then(i=>n.add(i)),{get name(){return t},append(i){o(),e.then(s=>s.append(i))},appendLine(i){o(),e.then(s=>s.appendLine(i))},clear(){o(),e.then(i=>i.clear())},replace(i){o(),e.then(s=>s.replace(i))},show(i,s){o(),e.then(a=>a.show(i,s))},hide(){o(),e.then(i=>i.hide())},dispose(){n.dispose()}}}createExtHostLogOutputChannel(t,e,n,o){let i=()=>{if(o.isDisposed)throw new Error("Channel has been closed")},s=o.add(new T);function a(l){e=l,s.fire(l)}return n.then(l=>{l.logLevel!==e&&a(l.logLevel),o.add(l.onDidChangeLogLevel(d=>a(d)))}),{...this.createExtHostOutputChannel(t,n,o),get logLevel(){return e},onDidChangeLogLevel:s.event,trace(l,...d){i(),n.then(c=>c.trace(l,...d))},debug(l,...d){i(),n.then(c=>c.debug(l,...d))},info(l,...d){i(),n.then(c=>c.info(l,...d))},warn(l,...d){i(),n.then(c=>c.warn(l,...d))},error(l,...d){i(),n.then(c=>c.error(l,...d))}}}};Pg=_([C(0,ie),C(1,Ye),C(2,Ds),C(3,Ur),C(4,Wo),C(5,oe)],Pg);var xT=R("IExtHostOutputService");var As=class{constructor(t,e){this._logService=e;this._provider=new Map;this._proxy=t.getProxy(U.MainThreadDecorations)}static{this._handlePool=0}static{this._maxEventSize=250}registerFileDecorationProvider(t,e){let n=As._handlePool++;this._provider.set(n,{provider:t,extensionDescription:e}),this._proxy.$registerDecorationProvider(n,e.identifier.value);let o=t.onDidChangeFileDecorations&&t.onDidChangeFileDecorations(i=>{if(!i){this._proxy.$onDidChange(n,null);return}let s=Un(i);if(s.length<=As._maxEventSize){this._proxy.$onDidChange(n,s);return}this._logService.warn("[Decorations] CAPPING events from decorations provider",e.identifier.value,s.length);let a=s.map(c=>({uri:c,rank:LN(c.path,"/")})),l=qO(a,(c,u)=>c.rank-u.rank||si(c.uri.path,u.uri.path)),d=[];e:for(let c of l){let u;for(let m of c){let g=on(m.uri.path);if(u!==g&&(u=g,d.push(m.uri)>=As._maxEventSize))break e}}this._proxy.$onDidChange(n,d)});return new be(()=>{o?.dispose(),this._proxy.$unregisterDecorationProvider(n),this._provider.delete(n)})}async $provideDecorations(t,e,n){if(!this._provider.has(t))return Object.create(null);let o=Object.create(null),{provider:i,extensionDescription:s}=this._provider.get(t);return await Promise.all(e.map(async a=>{try{let{uri:l,id:d}=a,c=await Promise.resolve(i.provideFileDecoration(y.revive(l),n));if(!c)return;try{Lc.validate(c),c.badge&&typeof c.badge!="string"&&A(s,"codiconDecoration"),o[d]=[c.propagate,c.tooltip,c.badge,c.color]}catch(u){this._logService.warn(`INVALID decoration from extension '${s.identifier.value}': ${u}`)}}catch(l){this._logService.error(l)}})),o}};As=_([C(0,ie),C(1,oe)],As);var ST=R("IExtHostDecorations");var CT=class{constructor(t){this.values=t,this.prefixSum=new Uint32Array(t.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}getCount(){return this.values.length}insertValues(t,e){t=Wd(t);let n=this.values,o=this.prefixSum,i=e.length;return i===0?!1:(this.values=new Uint32Array(n.length+i),this.values.set(n.subarray(0,t),0),this.values.set(n.subarray(t),t+i),this.values.set(e,t),t-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=t-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(t,e){return t=Wd(t),e=Wd(e),this.values[t]===e?!1:(this.values[t]=e,t-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=t-1),!0)}removeValues(t,e){t=Wd(t),e=Wd(e);let n=this.values,o=this.prefixSum;if(t>=n.length)return!1;let i=n.length-t;return e>=i&&(e=i),e===0?!1:(this.values=new Uint32Array(n.length-e),this.values.set(n.subarray(0,t),0),this.values.set(n.subarray(t+e),t),this.prefixSum=new Uint32Array(this.values.length),t-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=t-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(t){return t<0?0:(t=Wd(t),this._getPrefixSum(t))}_getPrefixSum(t){if(t<=this.prefixSumValidIndex[0])return this.prefixSum[t];let e=this.prefixSumValidIndex[0]+1;e===0&&(this.prefixSum[0]=this.values[0],e++),t>=this.values.length&&(t=this.values.length-1);for(let n=e;n<=t;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],t),this.prefixSum[t]}getIndexOf(t){t=Math.floor(t),this.getTotalSum();let e=0,n=this.values.length-1,o=0,i=0,s=0;for(;e<=n;)if(o=e+(n-e)/2|0,i=this.prefixSum[o],s=i-this.values[o],t<s)n=o-1;else if(t>=i)e=o+1;else break;return new R0(o,t-s)}};var R0=class{constructor(t,e){this.index=t;this.remainder=e;this._prefixSumIndexOfResultBrand=void 0;this.index=t,this.remainder=e}};var TT=class{constructor(t,e,n,o){this._uri=t,this._lines=e,this._eol=n,this._versionId=o,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return this._cachedTextValue===null&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(t){t.eol&&t.eol!==this._eol&&(this._eol=t.eol,this._lineStarts=null);let e=t.changes;for(let n of e)this._acceptDeleteRange(n.range),this._acceptInsertText(new kn(n.range.startLineNumber,n.range.startColumn),n.text);this._versionId=t.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){let t=this._eol.length,e=this._lines.length,n=new Uint32Array(e);for(let o=0;o<e;o++)n[o]=this._lines[o].length+t;this._lineStarts=new CT(n)}}_setLineText(t,e){this._lines[t]=e,this._lineStarts&&this._lineStarts.setValue(t,this._lines[t].length+this._eol.length)}_acceptDeleteRange(t){if(t.startLineNumber===t.endLineNumber){if(t.startColumn===t.endColumn)return;this._setLineText(t.startLineNumber-1,this._lines[t.startLineNumber-1].substring(0,t.startColumn-1)+this._lines[t.startLineNumber-1].substring(t.endColumn-1));return}this._setLineText(t.startLineNumber-1,this._lines[t.startLineNumber-1].substring(0,t.startColumn-1)+this._lines[t.endLineNumber-1].substring(t.endColumn-1)),this._lines.splice(t.startLineNumber,t.endLineNumber-t.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(t.startLineNumber,t.endLineNumber-t.startLineNumber)}_acceptInsertText(t,e){if(e.length===0)return;let n=Hy(e);if(n.length===1){this._setLineText(t.lineNumber-1,this._lines[t.lineNumber-1].substring(0,t.column-1)+n[0]+this._lines[t.lineNumber-1].substring(t.column-1));return}n[n.length-1]+=this._lines[t.lineNumber-1].substring(t.column-1),this._setLineText(t.lineNumber-1,this._lines[t.lineNumber-1].substring(0,t.column-1)+n[0]);let o=new Uint32Array(n.length-1);for(let i=1;i<n.length;i++)this._lines.splice(t.lineNumber+i-1,0,n[i]),o[i-1]=n[i].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(t.lineNumber,o)}};var A0=new Map;function wW(r,t){t?A0.set(r,t):A0.delete(r)}function Q6(r){return A0.get(r)}var ET=class extends TT{constructor(e,n,o,i,s,a,l,d,c=!0){super(n,o,i,s);this._proxy=e;this._languageId=a;this._isDirty=l;this._encoding=d;this._strictInstanceofChecks=c;this._isDisposed=!1}dispose(){Fn(!this._isDisposed),this._isDisposed=!0,this._isDirty=!1}equalLines(e){return Xt(this._lines,e)}get document(){if(!this._document){let e=this;this._document={get uri(){return e._uri},get fileName(){return e._uri.fsPath},get isUntitled(){return e._uri.scheme===V.untitled},get languageId(){return e._languageId},get version(){return e._versionId},get isClosed(){return e._isDisposed},get isDirty(){return e._isDirty},get encoding(){return e._encoding},save(){return e._save()},getText(n){return n?e._getTextInRange(n):e.getText()},get eol(){return e._eol===`
`?1:2},get lineCount(){return e._lines.length},lineAt(n){return e._lineAt(n)},offsetAt(n){return e._offsetAt(n)},positionAt(n){return e._positionAt(n)},validateRange(n){return e._validateRange(n)},validatePosition(n){return e._validatePosition(n)},getWordRangeAtPosition(n,o){return e._getWordRangeAtPosition(n,o)},[Symbol.for("debug.description")](){return`TextDocument(${e._uri.toString()})`}}}return Object.freeze(this._document)}_acceptLanguageId(e){Fn(!this._isDisposed),this._languageId=e}_acceptIsDirty(e){Fn(!this._isDisposed),this._isDirty=e}_acceptEncoding(e){Fn(!this._isDisposed),this._encoding=e}_save(){return this._isDisposed?Promise.reject(new Error("Document has been closed")):this._proxy.$trySaveDocument(this._uri)}_getTextInRange(e){let n=this._validateRange(e);if(n.isEmpty)return"";if(n.isSingleLine)return this._lines[n.start.line].substring(n.start.character,n.end.character);let o=this._eol,i=n.start.line,s=n.end.line,a=[];a.push(this._lines[i].substring(n.start.character));for(let l=i+1;l<s;l++)a.push(this._lines[l]);return a.push(this._lines[s].substring(0,n.end.character)),a.join(o)}_lineAt(e){let n;if(e instanceof Ee?n=e.line:typeof e=="number"?n=e:!this._strictInstanceofChecks&&Ee.isPosition(e)&&(n=e.line),typeof n!="number"||n<0||n>=this._lines.length||Math.floor(n)!==n)throw new Error("Illegal value for `line`");return new M0(n,this._lines[n],n===this._lines.length-1)}_offsetAt(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getPrefixSum(e.line-1)+e.character}_positionAt(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();let n=this._lineStarts.getIndexOf(e),o=this._lines[n.index].length;return new Ee(n.index,Math.min(n.remainder,o))}_validateRange(e){if(this._strictInstanceofChecks){if(!(e instanceof ge))throw new Error("Invalid argument")}else if(!ge.isRange(e))throw new Error("Invalid argument");let n=this._validatePosition(e.start),o=this._validatePosition(e.end);return n===e.start&&o===e.end?e:new ge(n.line,n.character,o.line,o.character)}_validatePosition(e){if(this._strictInstanceofChecks){if(!(e instanceof Ee))throw new Error("Invalid argument")}else if(!Ee.isPosition(e))throw new Error("Invalid argument");if(this._lines.length===0)return e.with(0,0);let{line:n,character:o}=e,i=!1;if(n<0)n=0,o=0,i=!0;else if(n>=this._lines.length)n=this._lines.length-1,o=this._lines[n].length,i=!0;else{let s=this._lines[n].length;o<0?(o=0,i=!0):o>s&&(o=s,i=!0)}return i?new Ee(n,o):e}_getWordRangeAtPosition(e,n){let o=this._validatePosition(e);if(!n)n=Q6(this._languageId);else if(Fy(n))throw new Error(`[getWordRangeAtPosition]: ignoring custom regexp '${n.source}' because it matches the empty string.`);let i=g_(o.character+1,m_(n),this._lines[o.line],0);if(i)return new ge(o.line,i.startColumn-1,o.line,i.endColumn-1)}},M0=class{constructor(t,e,n){this._line=t,this._text=e,this._isLastLine=n}get lineNumber(){return this._line}get text(){return this._text}get range(){return new ge(this._line,0,this._line,this._text.length)}get rangeIncludingLineBreak(){return this._isLastLine?this.range:new ge(this._line,0,this._line+1,0)}get firstNonWhitespaceCharacterIndex(){return/^(\s*)/.exec(this._text)[1].length}get isEmptyOrWhitespace(){return this.firstNonWhitespaceCharacterIndex===this._text.length}};var gd=class{constructor(t){this._prefix=t,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}},FFe=new gd("id#");var wT=class r{static{this._Keys=new gd("TextEditorDecorationType")}constructor(t,e,n){let o=r._Keys.nextId();t.$registerTextEditorDecorationType(e.identifier,o,i1.from(n)),this.value=Object.freeze({key:o,dispose(){t.$removeTextEditorDecorationType(o)}})}},L0=class{constructor(t,e){this._collectedEdits=[];this._setEndOfLine=void 0;this._finalized=!1;this._document=t,this._documentVersionId=t.version,this._undoStopBefore=e.undoStopBefore,this._undoStopAfter=e.undoStopAfter}finalize(){return this._finalized=!0,{documentVersionId:this._documentVersionId,edits:this._collectedEdits,setEndOfLine:this._setEndOfLine,undoStopBefore:this._undoStopBefore,undoStopAfter:this._undoStopAfter}}_throwIfFinalized(){if(this._finalized)throw new Error("Edit is only valid while callback runs")}replace(t,e){this._throwIfFinalized();let n=null;if(t instanceof Ee)n=new ge(t,t);else if(t instanceof ge)n=t;else throw new Error("Unrecognized location");this._pushEdit(n,e,!1)}insert(t,e){this._throwIfFinalized(),this._pushEdit(new ge(t,t),e,!0)}delete(t){this._throwIfFinalized();let e=null;if(t instanceof ge)e=t;else throw new Error("Unrecognized location");this._pushEdit(e,null,!0)}_pushEdit(t,e,n){let o=this._document.validateRange(t);this._collectedEdits.push({range:o,text:e,forceMoveMarkers:n})}setEndOfLine(t){if(this._throwIfFinalized(),t!==1&&t!==2)throw Ue("endOfLine");this._setEndOfLine=t}},O0=class{constructor(t,e,n,o){this._proxy=t,this._id=e,this._accept(n),this._logService=o;let i=this;this.value={get tabSize(){return i._tabSize},set tabSize(s){i._setTabSize(s)},get indentSize(){return i._indentSize},set indentSize(s){i._setIndentSize(s)},get insertSpaces(){return i._insertSpaces},set insertSpaces(s){i._setInsertSpaces(s)},get cursorStyle(){return i._cursorStyle},set cursorStyle(s){i._setCursorStyle(s)},get lineNumbers(){return i._lineNumbers},set lineNumbers(s){i._setLineNumbers(s)}}}_accept(t){this._tabSize=t.tabSize,this._indentSize=t.indentSize,this._originalIndentSize=t.originalIndentSize,this._insertSpaces=t.insertSpaces,this._cursorStyle=t.cursorStyle,this._lineNumbers=Yc.to(t.lineNumbers)}_validateTabSize(t){if(t==="auto")return"auto";if(typeof t=="number"){let e=Math.floor(t);return e>0?e:null}if(typeof t=="string"){let e=parseInt(t,10);return isNaN(e)?null:e>0?e:null}return null}_setTabSize(t){let e=this._validateTabSize(t);if(e!==null){if(typeof e=="number"){if(this._tabSize===e)return;this._tabSize=e}this._warnOnError("setTabSize",this._proxy.$trySetOptions(this._id,{tabSize:e}))}}_validateIndentSize(t){if(t==="tabSize")return"tabSize";if(typeof t=="number"){let e=Math.floor(t);return e>0?e:null}if(typeof t=="string"){let e=parseInt(t,10);return isNaN(e)?null:e>0?e:null}return null}_setIndentSize(t){let e=this._validateIndentSize(t);if(e!==null){if(typeof e=="number"){if(this._originalIndentSize===e)return;this._indentSize=e,this._originalIndentSize=e}this._warnOnError("setIndentSize",this._proxy.$trySetOptions(this._id,{indentSize:e}))}}_validateInsertSpaces(t){return t==="auto"?"auto":t==="false"?!1:!!t}_setInsertSpaces(t){let e=this._validateInsertSpaces(t);if(typeof e=="boolean"){if(this._insertSpaces===e)return;this._insertSpaces=e}this._warnOnError("setInsertSpaces",this._proxy.$trySetOptions(this._id,{insertSpaces:e}))}_setCursorStyle(t){this._cursorStyle!==t&&(this._cursorStyle=t,this._warnOnError("setCursorStyle",this._proxy.$trySetOptions(this._id,{cursorStyle:t})))}_setLineNumbers(t){this._lineNumbers!==t&&(this._lineNumbers=t,this._warnOnError("setLineNumbers",this._proxy.$trySetOptions(this._id,{lineNumbers:Yc.from(t)})))}assign(t){let e={},n=!1;if(typeof t.tabSize<"u"){let o=this._validateTabSize(t.tabSize);o==="auto"?(n=!0,e.tabSize=o):typeof o=="number"&&this._tabSize!==o&&(this._tabSize=o,n=!0,e.tabSize=o)}if(typeof t.indentSize<"u"){let o=this._validateIndentSize(t.indentSize);o==="tabSize"?(n=!0,e.indentSize=o):typeof o=="number"&&this._originalIndentSize!==o&&(this._indentSize=o,this._originalIndentSize=o,n=!0,e.indentSize=o)}if(typeof t.insertSpaces<"u"){let o=this._validateInsertSpaces(t.insertSpaces);o==="auto"?(n=!0,e.insertSpaces=o):this._insertSpaces!==o&&(this._insertSpaces=o,n=!0,e.insertSpaces=o)}typeof t.cursorStyle<"u"&&this._cursorStyle!==t.cursorStyle&&(this._cursorStyle=t.cursorStyle,n=!0,e.cursorStyle=t.cursorStyle),typeof t.lineNumbers<"u"&&this._lineNumbers!==t.lineNumbers&&(this._lineNumbers=t.lineNumbers,n=!0,e.lineNumbers=Yc.from(t.lineNumbers)),n&&this._warnOnError("setOptions",this._proxy.$trySetOptions(this._id,e))}_warnOnError(t,e){e.catch(n=>{this._logService.warn(`ExtHostTextEditorOptions '${t}' failed:'`),this._logService.warn(n)})}},kT=class{constructor(t,e,n,o,i,s,a,l){this.id=t;this._proxy=e;this._logService=n;this._disposed=!1;this._hasDecorationsForKey=new Set;this._selections=i,this._options=new O0(this._proxy,this.id,s,n),this._visibleRanges=a,this._viewColumn=l;let d=this;this.value=Object.freeze({get document(){return o.value},set document(c){throw new ni("document")},get selection(){return d._selections&&d._selections[0]},set selection(c){if(!(c instanceof $n))throw Ue("selection");d._selections=[c],d._trySetSelection()},get selections(){return d._selections},set selections(c){if(!Array.isArray(c)||c.some(u=>!(u instanceof $n)))throw Ue("selections");c.length===0&&(c=[new $n(0,0,0,0)]),d._selections=c,d._trySetSelection()},get visibleRanges(){return d._visibleRanges},set visibleRanges(c){throw new ni("visibleRanges")},get diffInformation(){return d._diffInformation},get options(){return d._options.value},set options(c){d._disposed||d._options.assign(c)},get viewColumn(){return d._viewColumn},set viewColumn(c){throw new ni("viewColumn")},edit(c,u={undoStopBefore:!0,undoStopAfter:!0}){if(d._disposed)return Promise.reject(new Error("TextEditor#edit not possible on closed editors"));let m=new L0(o.value,u);return c(m),d._applyEdit(m)},insertSnippet(c,u,m={undoStopBefore:!0,undoStopAfter:!0}){if(d._disposed)return Promise.reject(new Error("TextEditor#insertSnippet not possible on closed editors"));let g;if(!u||Array.isArray(u)&&u.length===0)g=d._selections.map(h=>K.from(h));else if(u instanceof Ee){let{lineNumber:h,column:f}=dt.from(u);g=[{startLineNumber:h,startColumn:f,endLineNumber:h,endColumn:f}]}else if(u instanceof ge)g=[K.from(u)];else{g=[];for(let h of u)if(h instanceof ge)g.push(K.from(h));else{let{lineNumber:f,column:I}=dt.from(h);g.push({startLineNumber:f,startColumn:I,endLineNumber:f,endColumn:I})}}return m.keepWhitespace===void 0&&(m.keepWhitespace=!1),e.$tryInsertSnippet(t,o.value.version,c.value,g,m)},setDecorations(c,u){let m=u.length===0;m&&!d._hasDecorationsForKey.has(c.key)||(m?d._hasDecorationsForKey.delete(c.key):d._hasDecorationsForKey.add(c.key),d._runOnProxy(()=>{if(r1(u))return e.$trySetDecorations(t,c.key,f4(u));{let g=new Array(4*u.length);for(let h=0,f=u.length;h<f;h++){let I=u[h];g[4*h]=I.start.line+1,g[4*h+1]=I.start.character+1,g[4*h+2]=I.end.line+1,g[4*h+3]=I.end.character+1}return e.$trySetDecorationsFast(t,c.key,g)}}))},revealRange(c,u){d._runOnProxy(()=>e.$tryRevealRange(t,K.from(c),u||0))},show(c){e.$tryShowEditor(t,Ut.from(c))},hide(){e.$tryHideEditor(t)},[Symbol.for("debug.description")](){return`TextEditor(${this.document.uri.toString()})`}})}dispose(){Fn(!this._disposed),this._disposed=!0}_acceptOptions(t){Fn(!this._disposed),this._options._accept(t)}_acceptVisibleRanges(t){Fn(!this._disposed),this._visibleRanges=t}_acceptViewColumn(t){Fn(!this._disposed),this._viewColumn=t}_acceptSelections(t){Fn(!this._disposed),this._selections=t}_acceptDiffInformation(t){Fn(!this._disposed),this._diffInformation=t}async _trySetSelection(){let t=this._selections.map(yo.from);return await this._runOnProxy(()=>this._proxy.$trySetSelections(this.id,t)),this.value}_applyEdit(t){let e=t.finalize();if(e.edits.length===0&&!e.setEndOfLine)return Promise.resolve(!0);let n=e.edits.map(i=>i.range);n.sort((i,s)=>i.end.line===s.end.line?i.end.character===s.end.character?i.start.line===s.start.line?i.start.character-s.start.character:i.start.line-s.start.line:i.end.character-s.end.character:i.end.line-s.end.line);for(let i=0,s=n.length-1;i<s;i++){let a=n[i].end;if(n[i+1].start.isBefore(a))return Promise.reject(new Error("Overlapping ranges are not allowed!"))}let o=e.edits.map(i=>({range:K.from(i.range),text:i.text,forceMoveMarkers:i.forceMoveMarkers}));return this._proxy.$tryApplyEdits(this.id,e.documentVersionId,o,{setEndOfLine:typeof e.setEndOfLine=="number"?Kc.from(e.setEndOfLine):void 0,undoStopBefore:e.undoStopBefore,undoStopAfter:e.undoStopAfter})}_runOnProxy(t){return this._disposed?(this._logService.warn("TextEditor is closed/disposed"),Promise.resolve(void 0)):t().then(()=>this,e=>(e instanceof Error&&e.name==="DISPOSED"||this._logService.warn(e),null))}};var N0=class{constructor(t){this.value=t;this._count=0}ref(){this._count++}unref(){return--this._count===0}},_g=class{constructor(t,e){this._extHostRpc=t;this._logService=e;this._activeEditorId=null;this._editors=new Map;this._documents=new Ge;this._onDidAddDocuments=new T;this._onDidRemoveDocuments=new T;this._onDidChangeVisibleTextEditors=new T;this._onDidChangeActiveTextEditor=new T;this.onDidAddDocuments=this._onDidAddDocuments.event;this.onDidRemoveDocuments=this._onDidRemoveDocuments.event;this.onDidChangeVisibleTextEditors=this._onDidChangeVisibleTextEditors.event;this.onDidChangeActiveTextEditor=this._onDidChangeActiveTextEditor.event}$acceptDocumentsAndEditorsDelta(t){this.acceptDocumentsAndEditorsDelta(t)}acceptDocumentsAndEditorsDelta(t){let e=[],n=[],o=[];if(t.removedDocuments)for(let i of t.removedDocuments){let s=y.revive(i),a=this._documents.get(s);a?.unref()&&(this._documents.delete(s),e.push(a.value))}if(t.addedDocuments)for(let i of t.addedDocuments){let s=y.revive(i.uri),a=this._documents.get(s);if(a&&s.scheme!==V.vscodeNotebookCell&&s.scheme!==V.vscodeInteractiveInput)throw new Error(`document '${s} already exists!'`);a||(a=new N0(new ET(this._extHostRpc.getProxy(U.MainThreadDocuments),s,i.lines,i.EOL,i.versionId,i.languageId,i.isDirty,i.encoding)),this._documents.set(s,a),n.push(a.value)),a.ref()}if(t.removedEditors)for(let i of t.removedEditors){let s=this._editors.get(i);this._editors.delete(i),s&&o.push(s)}if(t.addedEditors)for(let i of t.addedEditors){let s=y.revive(i.documentUri);Fn(this._documents.has(s),`document '${s}' does not exist`),Fn(!this._editors.has(i.id),`editor '${i.id}' already exists!`);let a=this._documents.get(s).value,l=new kT(i.id,this._extHostRpc.getProxy(U.MainThreadTextEditors),this._logService,new pt(()=>a.document),i.selections.map(yo.to),i.options,i.visibleRanges.map(d=>K.to(d)),typeof i.editorPosition=="number"?Ut.to(i.editorPosition):void 0);this._editors.set(i.id,l)}t.newActiveEditor!==void 0&&(Fn(t.newActiveEditor===null||this._editors.has(t.newActiveEditor),`active editor '${t.newActiveEditor}' does not exist`),this._activeEditorId=t.newActiveEditor),bn(e),bn(o),t.removedDocuments&&this._onDidRemoveDocuments.fire(e),t.addedDocuments&&this._onDidAddDocuments.fire(n),(t.removedEditors||t.addedEditors)&&this._onDidChangeVisibleTextEditors.fire(this.allEditors().map(i=>i.value)),t.newActiveEditor!==void 0&&this._onDidChangeActiveTextEditor.fire(this.activeEditor())}getDocument(t){return this._documents.get(t)?.value}allDocuments(){return Mt.map(this._documents.values(),t=>t.value)}getEditor(t){return this._editors.get(t)}activeEditor(t){if(!this._activeEditorId)return;let e=this._editors.get(this._activeEditorId);return t?e:e?.value}allEditors(){return[...this._editors.values()]}};_g=_([C(0,ie),C(1,oe)],_g);var kr=R("IExtHostDocumentsAndEditors");var J6={type:"object",additionalProperties:!1,properties:{type:{type:"string",description:p(14291,null)},required:{type:"array",items:{type:"string"}},properties:{type:"object",description:p(14292,null),additionalProperties:{$ref:"http://json-schema.org/draft-07/schema#"}},when:{type:"string",markdownDescription:p(14293,null),default:""}}},kW;(t=>{function r(e,n,o){if(!e)return;let i=Pe(e.type)?e.type:void 0;if(!i||i.length===0){o.error(p(14295,null));return}let s=[];if(Array.isArray(e.required))for(let a of e.required)Pe(a)&&s.push(a);return{extensionId:n.value,taskType:i,required:s,properties:e.properties?it(e.properties):{},when:e.when?Nt.deserialize(e.when):void 0}}t.from=r})(kW||={});var Y6=Ex.registerExtensionPoint({extensionPoint:"taskDefinitions",activationEventsGenerator:function*(r){for(let t of r)t.type&&(yield`onTaskType:${t.type}`)},jsonSchema:{description:p(14294,null),type:"array",items:J6}}),U0=class{constructor(){this._onDefinitionsChanged=new T;this.onDefinitionsChanged=this._onDefinitionsChanged.event;this.taskTypes=Object.create(null),this.readyPromise=new Promise((t,e)=>{Y6.setHandler((n,o)=>{this._schema=void 0;try{for(let i of o.removed){let s=i.value;for(let a of s)this.taskTypes&&a.type&&this.taskTypes[a.type]&&delete this.taskTypes[a.type]}for(let i of o.added){let s=i.value;for(let a of s){let l=kW.from(a,i.description.identifier,i.collector);l&&(this.taskTypes[l.taskType]=l)}}(o.removed.length>0||o.added.length>0)&&this._onDefinitionsChanged.fire()}catch{}t(void 0)})})}onReady(){return this.readyPromise}get(t){return this.taskTypes[t]}all(){return Object.keys(this.taskTypes).map(t=>this.taskTypes[t])}getJsonSchema(){if(this._schema===void 0){let t=[];for(let e of this.all()){let n={type:"object",additionalProperties:!1};e.required.length>0&&(n.required=e.required.slice(0)),e.properties!==void 0?n.properties=it(e.properties):n.properties=Object.create(null),n.properties.type={type:"string",enum:[e.taskType]},t.push(n)}this._schema={oneOf:t}}return this._schema}},PW=new U0;var X6={IconContribution:"base.contributions.icons"},Z6;(t=>{function r(e,n){let o=e.defaults;for(;Et.isThemeIcon(o);){let i=Dg.getIcon(o.id);if(!i)return;o=i.defaults}return o}t.getDefinition=r})(Z6||={});var eq;(e=>{function r(n){return{weight:n.weight,style:n.style,src:n.src.map(o=>({format:o.format,location:o.location.toString()}))}}e.toJSONObject=r;function t(n){let o=i=>Pe(i)?i:void 0;if(n&&Array.isArray(n.src)&&n.src.every(i=>Pe(i.format)&&Pe(i.location)))return{weight:o(n.weight),style:o(n.style),src:n.src.map(i=>({format:i.format,location:y.parse(i.location)}))}}e.fromJSONObject=t})(eq||={});var tq=/^([\w_-]+)$/;var nq=p(2616,null),F0=class extends O{constructor(){super();this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event;this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:p(2613,null),pattern:tq.source,patternErrorMessage:nq},fontCharacter:{type:"string",description:p(2612,null)}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}};this.iconReferenceSchema={type:"string",pattern:`^${Et.iconNameExpression}$`,enum:[],enumDescriptions:[]};this.iconsById={},this.iconFontsById={}}registerIcon(e,n,o,i){let s=this.iconsById[e];if(s){if(o&&!s.description){s.description=o,this.iconSchema.properties[e].markdownDescription=`${o} $(${e})`;let d=this.iconReferenceSchema.enum.indexOf(e);d!==-1&&(this.iconReferenceSchema.enumDescriptions[d]=o),this._onDidChange.fire()}return s}let a={id:e,description:o,defaults:n,deprecationMessage:i};this.iconsById[e]=a;let l={$ref:"#/definitions/icons"};return i&&(l.deprecationMessage=i),o&&(l.markdownDescription=`${o}: $(${e})`),this.iconSchema.properties[e]=l,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(o||""),this._onDidChange.fire(),{id:e}}deregisterIcon(e){delete this.iconsById[e],delete this.iconSchema.properties[e];let n=this.iconReferenceSchema.enum.indexOf(e);n!==-1&&(this.iconReferenceSchema.enum.splice(n,1),this.iconReferenceSchema.enumDescriptions.splice(n,1)),this._onDidChange.fire()}getIcons(){return Object.keys(this.iconsById).map(e=>this.iconsById[e])}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}getIconReferenceSchema(){return this.iconReferenceSchema}registerIconFont(e,n){let o=this.iconFontsById[e];return o||(this.iconFontsById[e]=n,this._onDidChange.fire(),n)}deregisterIconFont(e){delete this.iconFontsById[e]}getIconFont(e){return this.iconFontsById[e]}toString(){let e=(s,a)=>s.id.localeCompare(a.id),n=s=>{for(;Et.isThemeIcon(s.defaults);)s=this.iconsById[s.defaults.id];return`codicon codicon-${s?s.id:""}`},o=[];o.push("| preview     | identifier                        | default codicon ID                | description"),o.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");let i=Object.keys(this.iconsById).map(s=>this.iconsById[s]);for(let s of i.filter(a=>!!a.description).sort(e))o.push(`|<i class="${n(s)}"></i>|${s.id}|${Et.isThemeIcon(s.defaults)?s.defaults.id:s.id}|${s.description||""}|`);o.push("| preview     | identifier                        "),o.push("| ----------- | --------------------------------- |");for(let s of i.filter(a=>!Et.isThemeIcon(a.defaults)).sort(e))o.push(`|<i class="${n(s)}"></i>|${s.id}|`);return o.join(`
`)}},Dg=new F0;gt.add(X6.IconContribution,Dg);function du(r,t,e,n){return Dg.registerIcon(r,t,e,n)}function oq(){let r=MF();for(let t in r){let e="\\"+r[t].toString(16);Dg.registerIcon(t,{fontCharacter:e})}}oq();var DW="vscode://schemas/icons",RW=gt.as(hc.JSONContribution);RW.registerSchema(DW,Dg.getIconSchema());var _W=new Wn(()=>RW.notifySchemaChanged(DW),200);Dg.onDidChange(()=>{_W.isScheduled()||_W.schedule()});var D2e=du("widget-close",de.close,p(2617,null)),R2e=du("goto-previous-location",de.arrowUp,p(2615,null)),A2e=du("goto-next-location",de.arrowDown,p(2614,null)),M2e=Et.modify(de.sync,"spin"),L2e=Et.modify(de.loading,"spin");var AW="settings",B2e=new w("taskRunning",!1,p(14298,null)),$2e=new w("taskTerminalActive",!1,p(14300,null)),z2e=Ud(14299,"Tasks"),W0=(n=>(n[n.Escape=1]="Escape",n[n.Strong=2]="Strong",n[n.Weak=3]="Weak",n))(W0||{});(t=>{function r(e){if(!e)return 2;switch(e.toLowerCase()){case"escape":return 1;case"strong":return 2;case"weak":return 3;default:return 2}}t.from=r})(W0||={});var rq;(t=>t.defaults={cwd:"${workspaceFolder}"})(rq||={});var V0=(n=>(n[n.Always=1]="Always",n[n.Silent=2]="Silent",n[n.Never=3]="Never",n))(V0||{});(t=>{function r(e){switch(e.toLowerCase()){case"always":return 1;case"silent":return 2;case"never":return 3;default:return 1}}t.fromString=r})(V0||={});var B0=(n=>(n[n.Never=1]="Never",n[n.OnProblem=2]="OnProblem",n[n.Always=3]="Always",n))(B0||{});(t=>{function r(e){switch(e.toLowerCase()){case"always":return 3;case"never":return 1;case"onproblem":return 2;default:return 2}}t.fromString=r})(B0||={});var $0=(n=>(n[n.Shared=1]="Shared",n[n.Dedicated=2]="Dedicated",n[n.New=3]="New",n))($0||{});(t=>{function r(e){switch(e.toLowerCase()){case"shared":return 1;case"dedicated":return 2;case"new":return 3;default:return 1}}t.fromString=r})($0||={});var iq;(t=>t.defaults={echo:!0,reveal:1,revealProblems:1,focus:!1,panel:1,showReuseMessage:!0,clear:!1,preserveTerminalName:!1})(iq||={});var z0=(n=>(n[n.Shell=1]="Shell",n[n.Process=2]="Process",n[n.CustomExecution=3]="CustomExecution",n))(z0||{});(e=>{function r(n){switch(n.toLowerCase()){case"shell":return 1;case"process":return 2;case"customExecution":return 3;default:return 2}}e.fromString=r;function t(n){switch(n){case 1:return"shell";case 2:return"process";case 3:return"customExecution";default:return"process"}}e.toString=t})(z0||={});var sq;(t=>{function r(e){return Pe(e)?e:e.value}t.value=r})(sq||={});var aq;(s=>{s.Clean={_id:"clean",isDefault:!1},s.Build={_id:"build",isDefault:!1},s.Rebuild={_id:"rebuild",isDefault:!1},s.Test={_id:"test",isDefault:!1};function o(a){return a===s.Clean._id||a===s.Build._id||a===s.Rebuild._id||a===s.Test._id}s.is=o;function i(a){if(a!==void 0)return Pe(a)?o(a)?{_id:a,isDefault:!1}:void 0:a}s.from=i})(aq||={});var lq;(s=>{s.Workspace="workspace",s.Extension="extension",s.InMemory="inMemory",s.WorkspaceFile="workspaceFile",s.User="user";function i(a){switch(a){case s.User:return 2;case s.WorkspaceFile:return 5;default:return 6}}s.toConfigurationTarget=i})(lq||={});var dq;(t=>t.defaults={reevaluateOnRerun:!0,runOn:1,instanceLimit:1,instancePolicy:"prompt"})(dq||={});var q0=(e=>(e[e.Process=1]="Process",e[e.Terminal=2]="Terminal",e))(q0||{});(t=>t._default=2)(q0||={});var cq;(d=>{function r(c){return{taskId:c._id,taskName:c.configurationProperties.name,runType:c.configurationProperties.isBackground?"background":"singleRun",group:c.configurationProperties.group,__task:c}}function t(c,u,m){return{...r(c),kind:"start",terminalId:u,resolvedVariables:m}}d.start=t;function e(c,u,m){return{...r(c),kind:"processStarted",terminalId:u,processId:m}}d.processStarted=e;function n(c,u,m,g){return{...r(c),kind:"processEnded",terminalId:u,exitCode:m,durationMs:g}}d.processEnded=n;function o(c,u,m){return{...r(c),kind:"inactive",terminalId:u,durationMs:m}}d.inactive=o;function i(c,u,m){return{...r(c),kind:"terminated",exitReason:m,terminalId:u}}d.terminated=i;function s(c,u,m){return{...r(u),kind:c,terminalId:m}}d.general=s;function a(c,u,m){return{...r(c),kind:"problemMatcherEnded",hasErrors:u}}d.problemMatcherEnded=a;function l(){return{kind:"changed"}}d.changed=l})(cq||={});var H0;(e=>{function r(n){let o=Object.keys(n).sort(),i="";for(let s of o){let a=n[s];a instanceof Object?a=r(a):typeof a=="string"&&(a=a.replace(/,/g,",,")),i+=s+","+a+","}return i}function t(n){let i={_key:r(n),type:n.taskType};return Object.assign(i,n),i}e.create=t})(H0||={});var uq;(t=>{function r(e,n){let o=PW.get(e.type);if(o===void 0){let l=it(e);return delete l._key,H0.create(l)}let i=Object.create(null);i.type=o.taskType;let s=new Set;o.required.forEach(l=>s.add(l));let a=o.properties;for(let l of Object.keys(a)){let d=e[l];if(d!=null)i[l]=d;else if(s.has(l)){let c=a[l];if(c.default!==void 0)i[l]=it(c.default);else switch(c.type){case"boolean":i[l]=!1;break;case"number":case"integer":i[l]=0;break;case"string":i[l]="";break;default:n.error(p(14297,null,JSON.stringify(e,void 0,0),l));return}}}return H0.create(i)}t.createTaskIdentifier=r})(uq||={});var q2e=du("rerun-task",de.refresh,p(14296,null));var K0;(e=>{function r(n){if(n!=null)return n}e.from=r;function t(n){if(n!=null)return n}e.to=t})(K0||={});var j0;(e=>{function r(n){if(n!=null)return n}e.from=r;function t(n){if(n!=null)return n}e.to=t})(j0||={});var MW;(e=>{function r(n){if(n!=null)return n}e.from=r;function t(n){if(n!=null)return n}e.to=t})(MW||={});var PT;(n=>{function r(o){if(o){let i=o;return i&&!!i.process}else return!1}n.is=r;function t(o){if(o==null)return;let i={process:o.process,args:o.args};return o.options&&(i.options=MW.from(o.options)),i}n.from=t;function e(o){if(o!=null)return new fs(o.process,o.args,o.options)}n.to=e})(PT||={});var LW;(e=>{function r(n){if(n!=null)return n}e.from=r;function t(n){if(n!=null)return n}e.to=t})(LW||={});var _T;(n=>{function r(o){if(o){let i=o;return i&&(!!i.commandLine||!!i.command)}else return!1}n.is=r;function t(o){if(o==null)return;let i={};return o.commandLine!==void 0?i.commandLine=o.commandLine:(i.command=o.command,i.args=o.args),o.options&&(i.options=LW.from(o.options)),i}n.from=t;function e(o){if(!(o==null||o.command===void 0&&o.commandLine===void 0))return o.commandLine?new Si(o.commandLine,o.options):new Si(o.command,o.args?o.args:[],o.options)}n.to=e})(_T||={});var Mi;(n=>{function r(o){if(o){let i=o;return i&&i.customExecution==="customExecution"}else return!1}n.is=r;function t(o){return{customExecution:"customExecution"}}n.from=t;function e(o,i){return i.get(o)}n.to=e})(Mi||={});var G0;(t=>{function r(e,n){let o;return e.scope!==void 0&&typeof e.scope!="number"?o=e.scope.uri:e.scope!==void 0&&typeof e.scope=="number"&&(e.scope===2&&n&&n.workspaceFile?o=n.workspaceFile:o=AW),{id:e._id,workspaceFolder:o}}t.from=r})(G0||={});var OW;(t=>{function r(e){if(e!=null)return{_id:e.id,isDefault:e.isDefault}}t.from=r})(OW||={});var Ms;(n=>{function r(o,i){if(o==null)return[];let s=[];for(let a of o){let l=t(a,i);l&&s.push(l)}return s}n.fromMany=r;function t(o,i){if(o==null)return;let s;o.execution instanceof fs?s=PT.from(o.execution):o.execution instanceof Si?s=_T.from(o.execution):o.execution&&o.execution instanceof Ac&&(s=Mi.from(o.execution));let a=K0.from(o.definition),l;return o.scope?typeof o.scope=="number"?l=o.scope:l=o.scope.uri:l=2,!a||!l?void 0:{_id:o._id,definition:a,name:o.name,source:{extensionId:i.identifier.value,label:o.source,scope:l},execution:s,isBackground:o.isBackground,group:OW.from(o.group),presentationOptions:j0.from(o.presentationOptions),problemMatchers:Un(o.problemMatchers),hasDefinedMatchers:o.hasDefinedMatchers,runOptions:o.runOptions?o.runOptions:{reevaluateOnRerun:!0},detail:o.detail}}n.from=t;async function e(o,i,s){if(o==null)return;let a;PT.is(o.execution)?a=PT.to(o.execution):_T.is(o.execution)?a=_T.to(o.execution):Mi.is(o.execution)&&(a=Mi.to(o._id,s));let l=K0.to(o.definition),d;if(o.source&&(o.source.scope!==void 0?typeof o.source.scope=="number"?d=o.source.scope:d=await i.resolveWorkspaceFolder(y.revive(o.source.scope)):d=2),!l||!d)return;let c=new Mn(l,d,o.name,o.source.label,a,o.problemMatchers);return o.isBackground!==void 0&&(c.isBackground=o.isBackground),o.group!==void 0&&(c.group=Pn.from(o.group._id),c.group&&o.group.isDefault&&(c.group=new Pn(c.group.id,c.group.label),o.group.isDefault===!0&&(c.group.isDefault=o.group.isDefault))),o.presentationOptions&&(c.presentationOptions=j0.to(o.presentationOptions)),o.runOptions&&(c.runOptions=o.runOptions),o._id&&(c._id=o._id),o.detail&&(c.detail=o.detail),c}n.to=e})(Ms||={});var NW;(e=>{function r(n){return n}e.from=r;function t(n){if(n)return Object.assign(Object.create(null),n)}e.to=t})(NW||={});var cb=class{constructor(t,e,n){this._id=e;this._task=n;this.#e=t}#e;get task(){return this._task}terminate(){this.#e.terminateTask(this)}fireDidStartProcess(t){}fireDidEndProcess(t){}get terminal(){return this._terminal}set terminal(t){this._terminal=t}},cu=class{constructor(t,e,n,o,i,s,a,l){this._onDidExecuteTask=new T;this._onDidTerminateTask=new T;this._onDidTaskProcessStarted=new T;this._onDidTaskProcessEnded=new T;this._onDidStartTaskProblemMatchers=new T;this._onDidEndTaskProblemMatchers=new T;this._proxy=t.getProxy(U.MainThreadTask),this._workspaceProvider=n,this._editorService=o,this._configurationService=i,this._terminalService=s,this._handleCounter=0,this._handlers=new Map,this._taskExecutions=new Map,this._taskExecutionPromises=new Map,this._providedCustomExecutions2=new Map,this._notProvidedCustomExecutions=new Set,this._activeCustomExecutions2=new Map,this._logService=a,this._deprecationService=l,this._proxy.$registerSupportedExecutions(!0)}registerTaskProvider(t,e,n){if(!n)return new be(()=>{});let o=this.nextHandle();return this._handlers.set(o,{type:e,provider:n,extension:t}),this._proxy.$registerTaskProvider(o,e),new be(()=>{this._handlers.delete(o),this._proxy.$unregisterTaskProvider(o)})}registerTaskSystem(t,e){this._proxy.$registerTaskSystem(t,e)}fetchTasks(t){return this._proxy.$fetchTasks(NW.from(t)).then(async e=>{let n=[];for(let o of e){let i=await Ms.to(o,this._workspaceProvider,this._providedCustomExecutions2);i&&n.push(i)}return n})}get taskExecutions(){let t=[];return this._taskExecutions.forEach(e=>t.push(e)),t}terminateTask(t){if(!(t instanceof cb))throw new Error("No valid task execution provided");return this._proxy.$terminateTask(t._id)}get onDidStartTask(){return this._onDidExecuteTask.event}async $onDidStartTask(t,e,n){let o=this._providedCustomExecutions2.get(t.id);o&&(this._activeCustomExecutions2.set(t.id,o),this._terminalService.attachPtyToTerminal(e,await o.callback(n))),this._lastStartedTask=t.id;let i=await this.getTaskExecution(t),s=this._terminalService.getTerminalById(e)?.value;i&&(i.terminal=s),this._onDidExecuteTask.fire({execution:i})}get onDidEndTask(){return this._onDidTerminateTask.event}async $OnDidEndTask(t){if(!this._taskExecutionPromises.has(t.id))return;let e=await this.getTaskExecution(t);this._taskExecutionPromises.delete(t.id),this._taskExecutions.delete(t.id),this.customExecutionComplete(t),this._onDidTerminateTask.fire({execution:e})}get onDidStartTaskProcess(){return this._onDidTaskProcessStarted.event}async $onDidStartTaskProcess(t){let e=await this.getTaskExecution(t.id);this._onDidTaskProcessStarted.fire({execution:e,processId:t.processId})}get onDidEndTaskProcess(){return this._onDidTaskProcessEnded.event}async $onDidEndTaskProcess(t){let e=await this.getTaskExecution(t.id);this._onDidTaskProcessEnded.fire({execution:e,exitCode:t.exitCode})}get onDidStartTaskProblemMatchers(){return this._onDidStartTaskProblemMatchers.event}async $onDidStartTaskProblemMatchers(t){let e;try{e=await this.getTaskExecution(t.execution.id)}catch{return}this._onDidStartTaskProblemMatchers.fire({execution:e})}get onDidEndTaskProblemMatchers(){return this._onDidEndTaskProblemMatchers.event}async $onDidEndTaskProblemMatchers(t){let e;try{e=await this.getTaskExecution(t.execution.id)}catch{return}this._onDidEndTaskProblemMatchers.fire({execution:e,hasErrors:t.hasErrors})}$provideTasks(t,e){let n=this._handlers.get(t);if(!n)return Promise.reject(new Error("no handler found"));let o=[],i=pn(()=>n.provider.provideTasks(he.None)).then(s=>this.provideTasksInternal(e,o,n,s));return new Promise(s=>{i.then(a=>{Promise.all(o).then(()=>{s(a)})})})}async $resolveTask(t,e){let n=this._handlers.get(t);if(!n)return Promise.reject(new Error("no handler found"));if(e.definition.type!==n.type)throw new Error(`Unexpected: Task of type [${e.definition.type}] cannot be resolved by provider of type [${n.type}].`);let o=await Ms.to(e,this._workspaceProvider,this._providedCustomExecutions2);if(!o)throw new Error("Unexpected: Task cannot be resolved.");let i=await n.provider.resolveTask(o,he.None);if(!i)return;this.checkDeprecation(i,n);let s=Ms.from(i,n.extension);if(!s)throw new Error("Unexpected: Task cannot be resolved.");if(i.definition!==o.definition)throw new Error("Unexpected: The resolved task definition must be the same object as the original task definition. The task definition cannot be changed.");return Mi.is(s.execution)&&await this.addCustomExecution(s,i,!0),await this.resolveTaskInternal(s)}nextHandle(){return this._handleCounter++}async addCustomExecution(t,e,n){let o=await this._proxy.$createTaskId(t);!n&&!this._providedCustomExecutions2.has(o)&&(this._notProvidedCustomExecutions.add(o),this._activeCustomExecutions2.set(o,e.execution)),this._providedCustomExecutions2.set(o,e.execution)}async getTaskExecution(t,e){if(typeof t=="string"){let i=this._taskExecutionPromises.get(t);if(!i)throw new co("Unexpected: The specified task is missing an execution");return i}let n=this._taskExecutionPromises.get(t.id);if(n)return n;let o;return e?o=Promise.resolve(new cb(this,t.id,e)):o=Ms.to(t.task,this._workspaceProvider,this._providedCustomExecutions2).then(i=>{if(!i)throw new co("Unexpected: Task does not exist.");return new cb(this,t.id,i)}),this._taskExecutionPromises.set(t.id,o),o.then(i=>(this._taskExecutions.set(t.id,i),i))}checkDeprecation(t,e){t._deprecated&&this._deprecationService.report("Task.constructor",e.extension,"Use the Task constructor that takes a `scope` instead.")}customExecutionComplete(t){this._activeCustomExecutions2.get(t.id)&&this._activeCustomExecutions2.delete(t.id),this._notProvidedCustomExecutions.has(t.id)&&this._lastStartedTask!==t.id&&(this._providedCustomExecutions2.delete(t.id),this._notProvidedCustomExecutions.delete(t.id));let n=this._notProvidedCustomExecutions.values(),o=n.next();for(;!o.done;)!this._activeCustomExecutions2.has(o.value)&&this._lastStartedTask!==o.value&&(this._providedCustomExecutions2.delete(o.value),this._notProvidedCustomExecutions.delete(o.value)),o=n.next()}};cu=_([C(0,ie),C(1,Ye),C(2,_n),C(3,kr),C(4,vn),C(5,Io),C(6,oe),C(7,Ai)],cu);var Rg=class extends cu{constructor(t,e,n,o,i,s,a,l){super(t,e,n,o,i,s,a,l),this.registerTaskSystem(V.vscodeRemote,{scheme:V.vscodeRemote,authority:"",platform:Jk(0)})}async executeTask(t,e){if(!e.execution)throw new Error("Tasks to execute must include an execution");let n=Ms.from(e,t);if(n===void 0)throw new Error("Task is not valid");if(Mi.is(n.execution))await this.addCustomExecution(n,e,!1);else throw new Ad;let o=await this.getTaskExecution(await this._proxy.$getTaskExecution(n),e);return this._proxy.$executeTask(n).catch(i=>{throw new Error(i)}),o}provideTasksInternal(t,e,n,o){let i=[];if(o)for(let s of o){if(this.checkDeprecation(s,n),!s.definition||!t[s.definition.type]){let l=s.source?s.source:"No task source";this._logService.warn(`The task [${l}, ${s.name}] uses an undefined task type. The task will be ignored in the future.`)}let a=Ms.from(s,n.extension);a&&Mi.is(a.execution)?(i.push(a),e.push(this.addCustomExecution(a,s,!0))):this._logService.warn("Only custom execution tasks supported.")}return{tasks:i,extension:n.extension}}async resolveTaskInternal(t){if(Mi.is(t.execution))return t;this._logService.warn("Only custom execution tasks supported.")}async $resolveVariables(t,e){return{process:void 0,variables:Object.create(null)}}async $jsonTasksSupported(){return!1}async $findExecutable(t,e,n){}};Rg=_([C(0,ie),C(1,Ye),C(2,_n),C(3,kr),C(4,vn),C(5,Io),C(6,oe),C(7,Ai)],Rg);var Ag=R("IExtHostTask");var Mg=class{constructor(){this.pendingRequests=new Map;this.queue=[];this._onError=new T;this._onExit=new T;this.sequence=1}get onError(){return this._onError.event}get onExit(){return this._onExit.event}onMessage(t){this.messageCallback&&this._onError.fire(new Error("attempt to set more than one 'Message' callback")),this.messageCallback=t}onEvent(t){this.eventCallback&&this._onError.fire(new Error("attempt to set more than one 'Event' callback")),this.eventCallback=t}onRequest(t){this.requestCallback&&this._onError.fire(new Error("attempt to set more than one 'Request' callback")),this.requestCallback=t}sendResponse(t){t.seq>0?this._onError.fire(new Error(`attempt to send more than one response for command ${t.command}`)):this.internalSend("response",t)}sendRequest(t,e,n,o){let i={command:t};if(e&&Object.keys(e).length>0&&(i.arguments=e),this.internalSend("request",i),typeof o=="number"){let s=setTimeout(()=>{clearTimeout(s);let a=this.pendingRequests.get(i.seq);if(a){this.pendingRequests.delete(i.seq);let l={type:"response",seq:0,request_seq:i.seq,success:!1,command:t,message:p(9440,null,o,t)};a(l)}},o)}return n&&this.pendingRequests.set(i.seq,n),i.seq}acceptMessage(t){this.messageCallback?this.messageCallback(t):(this.queue.push(t),this.queue.length===1&&this.processQueue())}needsTaskBoundaryBetween(t,e){return t.type!=="event"||e.type!=="event"}async processQueue(){let t;for(;this.queue.length;){if((!t||this.needsTaskBoundaryBetween(this.queue[0],t))&&await Lt(0),t=this.queue.shift(),!t)return;switch(t.type){case"event":this.eventCallback?.(t);break;case"request":this.requestCallback?.(t);break;case"response":{let e=t,n=this.pendingRequests.get(e.request_seq);n&&(this.pendingRequests.delete(e.request_seq),n(e));break}}}}internalSend(t,e){e.type=t,e.seq=this.sequence++,this.sendMessage(e)}async cancelPendingRequests(){if(this.pendingRequests.size===0)return Promise.resolve();let t=new Map;this.pendingRequests.forEach((e,n)=>t.set(n,e)),await Lt(500),t.forEach((e,n)=>{e({type:"response",seq:0,request_seq:n,success:!1,command:"canceled",message:"canceled"}),this.pendingRequests.delete(n)})}getPendingRequestIds(){return Array.from(this.pendingRequests.keys())}dispose(){this._onError.dispose(),this._onExit.dispose(),this.queue=[]}};function UW(r){return r.type&&(r.label||r.program||r.runtime)}var pq=/^[a-zA-Z][a-zA-Z0-9\+\-\.]+:/;function mq(r){return!!(r&&r.match(pq))}function FW(r){if(typeof r.path=="string"&&!(typeof r.sourceReference=="number"&&r.sourceReference>0)){if(mq(r.path))return y.parse(r.path);if(In(r.path))return y.file(r.path)}return r.path}function HW(r){if(typeof r.path=="object"){let t=y.revive(r.path);if(t)return t.scheme===V.file?t.fsPath:t.toString()}return r.path}function WW(r,t){let e=t?FW:HW,n=it(r);return BW(n,(o,i)=>{o&&i&&(i.path=e(i))}),n}function VW(r,t){let e=t?FW:HW,n=it(r);return BW(n,(o,i)=>{!o&&i&&(i.path=e(i))}),n}function BW(r,t){switch(r.type){case"event":{let e=r;switch(e.event){case"output":t(!1,e.body.source);break;case"loadedSource":t(!1,e.body.source);break;case"breakpoint":t(!1,e.body.breakpoint.source);break;default:break}break}case"request":{let e=r;switch(e.command){case"setBreakpoints":t(!0,e.arguments.source);break;case"breakpointLocations":t(!0,e.arguments.source);break;case"source":t(!0,e.arguments.source);break;case"gotoTargets":t(!0,e.arguments.source);break;case"launchVSCode":e.arguments.args.forEach(n=>t(!1,n));break;default:break}break}case"response":{let e=r;if(e.success&&e.body)switch(e.command){case"stackTrace":e.body.stackFrames.forEach(n=>t(!1,n.source));break;case"loadedSources":e.body.sources.forEach(n=>t(!1,n));break;case"scopes":e.body.scopes.forEach(n=>t(!1,n.source));break;case"setFunctionBreakpoints":e.body.breakpoints.forEach(n=>t(!1,n.source));break;case"setBreakpoints":e.body.breakpoints.forEach(n=>t(!1,n.source));break;case"disassemble":e.body?.instructions.forEach(o=>t(!1,o.location));break;case"locations":t(!1,e.body?.source);break;default:break}break}}}var Li=R("IExtHostEditorTabs"),DT=class{constructor(t,e,n){this._activeTabIdGetter=n,this._parentGroup=e,this.acceptDtoUpdate(t)}get apiObject(){if(!this._apiObject){let t=this,e={get isActive(){return t._dto.id===t._activeTabIdGetter()},get label(){return t._dto.label},get input(){return t._input},get isDirty(){return t._dto.isDirty},get isPinned(){return t._dto.isPinned},get isPreview(){return t._dto.isPreview},get group(){return t._parentGroup.apiObject}};this._apiObject=Object.freeze(e)}return this._apiObject}get tabId(){return this._dto.id}acceptDtoUpdate(t){this._dto=t,this._input=this._initInput()}_initInput(){switch(this._dto.input.kind){case 1:return new $l(y.revive(this._dto.input.uri));case 2:return new ga(y.revive(this._dto.input.original),y.revive(this._dto.input.modified));case 3:return new am(y.revive(this._dto.input.base),y.revive(this._dto.input.input1),y.revive(this._dto.input.input2),y.revive(this._dto.input.result));case 6:return new zl(y.revive(this._dto.input.uri),this._dto.input.viewType);case 7:return new lm(this._dto.input.viewType);case 4:return new ql(y.revive(this._dto.input.uri),this._dto.input.notebookType);case 5:return new Kl(y.revive(this._dto.input.original),y.revive(this._dto.input.modified),this._dto.input.notebookType);case 8:return new dm;case 9:return new cm(y.revive(this._dto.input.uri),y.revive(this._dto.input.inputBoxUri));case 10:return new um;case 11:return new pm(this._dto.input.diffEditors.map(t=>new ga(y.revive(t.original),y.revive(t.modified))));default:return}}},Q0=class{constructor(t,e){this._tabs=[];this._activeTabId="";this._dto=t,this._activeGroupIdGetter=e;for(let n of t.tabs)n.isActive&&(this._activeTabId=n.id),this._tabs.push(new DT(n,this,()=>this.activeTabId()))}get apiObject(){if(!this._apiObject){let t=this,e={get isActive(){return t._dto.groupId===t._activeGroupIdGetter()},get viewColumn(){return Ut.to(t._dto.viewColumn)},get activeTab(){return t._tabs.find(n=>n.tabId===t._activeTabId)?.apiObject},get tabs(){return Object.freeze(t._tabs.map(n=>n.apiObject))}};this._apiObject=Object.freeze(e)}return this._apiObject}get groupId(){return this._dto.groupId}get tabs(){return this._tabs}acceptGroupDtoUpdate(t){this._dto=t}acceptTabOperation(t){if(t.kind===0){let n=new DT(t.tabDto,this,()=>this.activeTabId());return this._tabs.splice(t.index,0,n),t.tabDto.isActive&&(this._activeTabId=n.tabId),n}else if(t.kind===1){let n=this._tabs.splice(t.index,1)[0];if(!n)throw new Error(`Tab close updated received for index ${t.index} which does not exist`);return n.tabId===this._activeTabId&&(this._activeTabId=""),n}else if(t.kind===3){if(t.oldIndex===void 0)throw new Error("Invalid old index on move IPC");let n=this._tabs.splice(t.oldIndex,1)[0];if(!n)throw new Error(`Tab move updated received for index ${t.oldIndex} which does not exist`);return this._tabs.splice(t.index,0,n),n}let e=this._tabs.find(n=>n.tabId===t.tabDto.id);if(!e)throw new Error("INVALID tab");return t.tabDto.isActive?this._activeTabId=t.tabDto.id:this._activeTabId===t.tabDto.id&&!t.tabDto.isActive&&(this._activeTabId=""),e.acceptDtoUpdate(t.tabDto),e}activeTabId(){return this._activeTabId}},Lg=class{constructor(t){this._onDidChangeTabs=new T;this._onDidChangeTabGroups=new T;this._extHostTabGroups=[];this._proxy=t.getProxy(U.MainThreadEditorTabs)}get tabGroups(){if(!this._apiObject){let t=this,e={onDidChangeTabGroups:t._onDidChangeTabGroups.event,onDidChangeTabs:t._onDidChangeTabs.event,get all(){return Object.freeze(t._extHostTabGroups.map(n=>n.apiObject))},get activeTabGroup(){let n=t._activeGroupId;return oi(t._extHostTabGroups.find(i=>i.groupId===n)?.apiObject)},close:async(n,o)=>{let i=Array.isArray(n)?n:[n];return i.length?gq(i[0])?this._closeGroups(i,o):this._closeTabs(i,o):!0}};this._apiObject=Object.freeze(e)}return this._apiObject}$acceptEditorTabModel(t){let e=new Set(this._extHostTabGroups.map(d=>d.groupId)),n=new Set(t.map(d=>d.groupId)),o=Ok(e,n),i=this._extHostTabGroups.filter(d=>o.removed.includes(d.groupId)).map(d=>d.apiObject),s=[],a=[];this._extHostTabGroups=t.map(d=>{let c=new Q0(d,()=>this._activeGroupId);return o.added.includes(c.groupId)?s.push(c.apiObject):a.push(c.apiObject),c});let l=oi(t.find(d=>d.isActive===!0)?.groupId);l!==void 0&&this._activeGroupId!==l&&(this._activeGroupId=l),this._onDidChangeTabGroups.fire(Object.freeze({opened:s,closed:i,changed:a}))}$acceptTabGroupUpdate(t){let e=this._extHostTabGroups.find(n=>n.groupId===t.groupId);if(!e)throw new Error("Update Group IPC call received before group creation.");e.acceptGroupDtoUpdate(t),t.isActive&&(this._activeGroupId=t.groupId),this._onDidChangeTabGroups.fire(Object.freeze({changed:[e.apiObject],opened:[],closed:[]}))}$acceptTabOperation(t){let e=this._extHostTabGroups.find(o=>o.groupId===t.groupId);if(!e)throw new Error("Update Tabs IPC call received before group creation.");let n=e.acceptTabOperation(t);switch(t.kind){case 0:this._onDidChangeTabs.fire(Object.freeze({opened:[n.apiObject],closed:[],changed:[]}));return;case 1:this._onDidChangeTabs.fire(Object.freeze({opened:[],closed:[n.apiObject],changed:[]}));return;case 3:case 2:this._onDidChangeTabs.fire(Object.freeze({opened:[],closed:[],changed:[n.apiObject]}));return}}_findExtHostTabFromApi(t){for(let e of this._extHostTabGroups)for(let n of e.tabs)if(n.apiObject===t)return n}_findExtHostTabGroupFromApi(t){return this._extHostTabGroups.find(e=>e.apiObject===t)}async _closeTabs(t,e){let n=[];for(let o of t){let i=this._findExtHostTabFromApi(o);if(!i)throw new Error("Tab close: Invalid tab not found!");n.push(i.tabId)}return this._proxy.$closeTab(n,e)}async _closeGroups(t,e){let n=[];for(let o of t){let i=this._findExtHostTabGroupFromApi(o);if(!i)throw new Error("Group close: Invalid group not found!");n.push(i.groupId)}return this._proxy.$closeGroup(n,e)}};Lg=_([C(0,ie)],Lg);function gq(r){return r.tabs!==void 0}var i4e={6:p(15618,null),4:p(15619,null),3:p(15620,null),1:p(15621,null),2:p(15622,null),5:p(15623,null),0:p(15624,null)};var s4e={4:p(15615,null),2:p(15616,null),8:p(15614,null)};var hq=0,$W=new WeakMap,Ma=R("IExtHostTesting"),Og=class extends O{constructor(e,n,o,i){super();this.logService=n;this.commands=o;this.editors=i;this.resultsChangedEmitter=this._register(new T);this.controllers=new Map;this.defaultProfilesChangedEmitter=this._register(new T);this.followupProviders=new Set;this.testFollowups=new Map;this.onResultsChanged=this.resultsChangedEmitter.event;this.results=[];this.proxy=e.getProxy(U.MainThreadTesting),this.observer=new eM(this.proxy),this.runTracker=new Y0(this.proxy,n),o.registerArgumentProcessor({processArgument:s=>{switch(s?.$mid){case 16:{let a=s,l=a.tests[a.tests.length-1].item.extId;return this.controllers.get(Ze.root(l))?.collection.tree.get(l)?.actual??t0(s)}case 18:{let{test:a,message:l}=s,d=a.item.extId;return{test:this.controllers.get(Ze.root(d))?.collection.tree.get(d)?.actual??t0({$mid:16,tests:[a]}),message:Lm.to(l)}}default:return s}}}),o.registerCommand(!1,"testing.getExplorerSelection",async()=>{let s=await o.executeCommand("_testing.getExplorerSelection"),a=l=>{let d=this.controllers.get(Ze.root(l));if(d)return Ze.isRoot(l)?d.controller:d.collection.tree.get(l)?.actual};return{include:s?.include.map(a).filter(uo)||[],exclude:s?.exclude.map(a).filter(uo)||[]}})}createTestController(e,n,o,i){if(this.controllers.has(n))throw new Error(`Attempt to insert a duplicate controller with ID "${n}"`);let s=new $,a=s.add(new cT(n,o,this.editors));a.root.label=o;let l=new Map,d=new Set,c=this.proxy,u=()=>{let h=0;i&&(h|=2);let f=g.relatedCodeProvider;return f&&(f?.provideRelatedTests&&(h|=8),f?.provideRelatedCode&&(h|=4)),h},m={items:a.root.children,get label(){return o},set label(h){o=h,a.root.label=h,c.$updateController(n,{label:o})},get refreshHandler(){return i},set refreshHandler(h){i=h,c.$updateController(n,{capabilities:u()})},get id(){return n},get relatedCodeProvider(){return g.relatedCodeProvider},set relatedCodeProvider(h){A(e,"testRelatedCode"),g.relatedCodeProvider=h,c.$updateController(n,{capabilities:u()})},createRunProfile:(h,f,I,S,E,P)=>{let L=oo(h);for(;l.has(L);)L++;return new AT(this.proxy,l,d,this.defaultProfilesChangedEmitter.event,n,L,h,f,I,S,E,P)},createTestItem(h,f,I){return new Aa(n,h,f,I)},createTestRun:(h,f,I=!0)=>this.runTracker.createTestRun(e,n,a,h,f,I),invalidateTestResults:h=>{if(h===void 0)this.proxy.$markTestRetired(void 0);else{let f=h instanceof Array?h:[h];this.proxy.$markTestRetired(f.map(I=>Ze.fromExtHostTestItem(I,n).toString()))}},set resolveHandler(h){a.resolveHandler=h},get resolveHandler(){return a.resolveHandler},dispose:()=>{s.dispose()}},g={controller:m,collection:a,profiles:l,extension:e,activeProfiles:d};return c.$registerTestController(n,o,u()),s.add(G(()=>c.$unregisterTestController(n))),this.controllers.set(n,g),s.add(G(()=>this.controllers.delete(n))),s.add(a.onDidGenerateDiff(h=>c.$publishDiff(n,h.map(zx.serialize)))),m}createTestObserver(){return this.observer.checkout()}async runTests(e,n=he.None){let o=zW(e);if(!o)throw new Error("The request passed to `vscode.test.runTests` must include a profile");let i=this.controllers.get(o.controllerId);if(!i)throw new Error("Controller not found");await this.proxy.$runTests({preserveFocus:e.preserveFocus??!0,group:Om.from(o.kind),targets:[{testIds:e.include?.map(s=>Ze.fromExtHostTestItem(s,i.collection.root.id).toString())??[i.collection.root.id],profileId:o.profileId,controllerId:o.controllerId}],exclude:e.exclude?.map(s=>s.id)},n)}registerTestFollowupProvider(e){return this.followupProviders.add(e),{dispose:()=>{this.followupProviders.delete(e)}}}async $getTestsRelatedToCode(e,n,o){let i=this.editors.getDocument(y.revive(e));if(!i)return[];let s=dt.to(n),a=[];return await Promise.all([...this.controllers.values()].map(async l=>{let d;try{d=await l.relatedCodeProvider?.provideRelatedTests?.(i.document,s,o)}catch(c){o.isCancellationRequested||this.logService.warn(`Error thrown while providing related tests for ${l.controller.label}`,c)}if(d){for(let c of d)a.push(Ze.fromExtHostTestItem(c,l.controller.id).toString());l.collection.flushDiff()}})),a}async $getCodeRelatedToTest(e,n){let o=this.controllers.get(Ze.root(e));if(!o)return[];let i=o.collection.tree.get(e);return i?(await o.relatedCodeProvider?.provideRelatedCode?.(i.actual,n))?.map(io.from)??[]:[]}$syncTests(){for(let{collection:e}of this.controllers.values())e.flushDiff();return Promise.resolve()}async $getCoverageDetails(e,n,o){return(await this.runTracker.getCoverageDetails(e,n,o))?.map(Hv.fromDetails)}async $disposeRun(e){this.runTracker.disposeTestRun(e)}$configureRunProfile(e,n){this.controllers.get(e)?.profiles.get(n)?.configureHandler?.()}$setDefaultRunProfiles(e){let n=new Map;for(let[o,i]of Object.entries(e)){let s=this.controllers.get(o);if(!s)continue;let a=new Map,l=i.filter(c=>!s.activeProfiles.has(c)),d=[...s.activeProfiles].filter(c=>!i.includes(c));for(let c of l)a.set(c,!0),s.activeProfiles.add(c);for(let c of d)a.set(c,!1),s.activeProfiles.delete(c);a.size&&n.set(o,a)}this.defaultProfilesChangedEmitter.fire(n)}async $refreshTests(e,n){await this.controllers.get(e)?.controller.refreshHandler?.(n)}$publishTestResults(e){this.results=Object.freeze(e.map(n=>{let o=x1.to(n),i=n.tasks.findIndex(s=>s.hasCoverage);return i!==-1&&(o.getDetailedCoverage=(s,a=he.None)=>this.proxy.$getCoverageDetails(n.id,i,s,a).then(l=>l.map(Hv.to))),$W.set(o,n.id),o}).concat(this.results).sort((n,o)=>o.completedAt-n.completedAt).slice(0,32)),this.resultsChangedEmitter.fire()}async $expandTest(e,n){let o=this.controllers.get(Ze.fromString(e).controllerId)?.collection;o&&(await o.expand(e,n<0?1/0:n),o.flushDiff())}$acceptDiff(e){this.observer.applyDiff(e.map(n=>zx.deserialize({asCanonicalUri:o=>o},n)))}async $runControllerTests(e,n){return Promise.all(e.map(o=>this.runControllerTestRequest(o,!1,n)))}async $startContinuousRun(e,n){let o=new Ce(n),i=await Promise.all(e.map(s=>this.runControllerTestRequest(s,!0,o.token)));return!n.isCancellationRequested&&!i.some(s=>s.error)&&await new Promise(s=>n.onCancellationRequested(s)),o.dispose(!0),i}async $provideTestFollowups(e,n){let o=this.results.find(a=>$W.get(a)===e.resultId),i=o&&bq(Ze.fromString(e.extId),o?.results);if(!i)return[];let s=[];return await Promise.all([...this.followupProviders].map(async a=>{try{let l=await a.provideFollowup(o,i,e.taskIndex,e.messageIndex,n);l&&(s=s.concat(l))}catch(l){this.logService.error("Error thrown while providing followup for test message",l)}})),n.isCancellationRequested?[]:s.map(a=>{let l=hq++;return this.testFollowups.set(l,a),{title:a.title,id:l}})}$disposeTestFollowups(e){for(let n of e)this.testFollowups.delete(n)}$executeTestFollowup(e){let n=this.testFollowups.get(e);return n?this.commands.executeCommand(n.command,...n.arguments||[]):Promise.resolve()}$cancelExtensionTestRun(e,n){e===void 0?this.runTracker.cancelAllRuns():this.runTracker.cancelRunById(e,n)}getMetadataForRun(e){for(let n of this.runTracker.trackers){let o=n.getTaskIdForRun(e);if(o)return{taskId:o,runId:n.id}}}async runControllerTestRequest(e,n,o){let i=this.controllers.get(e.controllerId);if(!i)return{};let{collection:s,profiles:a,extension:l}=i,d=a.get(e.profileId);if(!d)return{};let c=e.testIds.map(h=>s.tree.get(h)).filter(uo),u=e.excludeExtIds.map(h=>i.collection.tree.get(h)).filter(uo).filter(h=>c.some(f=>f.fullId.compare(h.fullId)===2));if(!c.length)return{};let m=new Ul(c.some(h=>h.actual instanceof ag)?void 0:c.map(h=>h.actual),u.map(h=>h.actual),d,n),g=t4(e)&&this.runTracker.prepareForMainThreadTestRun(l,m,RT.fromInternal(e,i.collection),d,o);try{return await d.runHandler(m,o),{}}catch(h){return{error:String(h)}}finally{g&&g.hasRunningTasks&&!o.isCancellationRequested&&await fe.toPromise(g.onEnd)}}};Og=_([C(0,ie),C(1,oe),C(2,Dn),C(3,kr)],Og);var vq=1e4;var J0=class extends O{constructor(e,n,o,i,s,a){super();this.dto=e;this.proxy=n;this.logService=o;this.profile=i;this.extension=s;this.state=0;this.running=0;this.tasks=new Map;this.sharedTestIds=new Set;this.endEmitter=this._register(new T);this.publishedCoverage=new Map;this.onEnd=this.endEmitter.event;this.cts=this._register(new Ce(a));let l=this._register(new Wn(()=>this.forciblyEndTasks(),vq));this._register(this.cts.token.onCancellationRequested(()=>l.schedule()));let d=new T;this.onDidDispose=d.event,this._register(G(()=>{d.fire(),d.dispose()}))}get hasRunningTasks(){return this.running>0}get id(){return this.dto.id}getTaskIdForRun(e){for(let[n,{run:o}]of this.tasks)if(o===e)return n}cancel(e){e?this.tasks.get(e)?.cts.cancel():this.state===0?(this.cts.cancel(),this.state=1):this.state===1&&this.forciblyEndTasks()}async getCoverageDetails(e,n,o){let[,i]=Ze.fromString(e).path,s=this.publishedCoverage.get(e);if(!s)return[];let{report:a,extIds:l}=s,d=this.tasks.get(i);if(!d)throw new Error("unreachable: run task was not found");let c;if(n&&a instanceof ma){let m=l.indexOf(n);if(m===-1)return[];c=a.includesTests[m]}return await(c?this.profile?.loadDetailedCoverageForTest?.(d.run,a,c,o):this.profile?.loadDetailedCoverage?.(d.run,a,o))??[]}createRun(e){let n=this.dto.id,o=this.dto.controllerId,i=Le(),s=u=>(m,...g)=>{if(l){this.logService.warn(`Setting the state of test "${m.id}" is a no-op after the run ends.`);return}this.ensureTestIsKnown(m),u(m,...g)},a=(u,m)=>{let g=m instanceof Array?m.map(Lm.from):[Lm.from(m)];if(u.uri&&u.range){let h={range:K.from(u.range),uri:u.uri};for(let f of g)f.location=f.location||h}this.proxy.$appendTestMessagesInRun(n,i,Ze.fromExtHostTestItem(u,o).toString(),g)},l=!1,d=this._register(new Ce(this.cts.token)),c={isPersisted:this.dto.isPersisted,token:d.token,name:e,onDidDispose:this.onDidDispose,addCoverage:u=>{if(l)return;let m=u instanceof ma?u.includesTests:[];if(m.length)for(let f of m)this.ensureTestIsKnown(f);let g=u.uri.toString(),h=new Ze([n,i,g]).toString();this.publishedCoverage.set(h,{report:u,extIds:m.map(f=>Ze.fromExtHostTestItem(f,o).toString())}),this.proxy.$appendCoverage(n,i,Hv.fromFile(o,h,u))},enqueued:s(u=>{this.proxy.$updateTestStateInRun(n,i,Ze.fromExtHostTestItem(u,o).toString(),1)}),skipped:s(u=>{this.proxy.$updateTestStateInRun(n,i,Ze.fromExtHostTestItem(u,o).toString(),5)}),started:s(u=>{this.proxy.$updateTestStateInRun(n,i,Ze.fromExtHostTestItem(u,o).toString(),2)}),errored:s((u,m,g)=>{a(u,m),this.proxy.$updateTestStateInRun(n,i,Ze.fromExtHostTestItem(u,o).toString(),6,g)}),failed:s((u,m,g)=>{a(u,m),this.proxy.$updateTestStateInRun(n,i,Ze.fromExtHostTestItem(u,o).toString(),4,g)}),passed:s((u,m)=>{this.proxy.$updateTestStateInRun(n,i,Ze.fromExtHostTestItem(u,this.dto.controllerId).toString(),3,m)}),appendOutput:(u,m,g)=>{l||(g&&this.ensureTestIsKnown(g),this.proxy.$appendOutputToRun(n,i,W.fromString(u),m&&io.from(m),g&&Ze.fromExtHostTestItem(g,o).toString()))},end:()=>{l||(l=!0,this.proxy.$finishedTestRunTask(n,i),--this.running||this.markEnded())}};return this.running++,this.tasks.set(i,{run:c,cts:d}),this.proxy.$startedTestRunTask(n,{id:i,ctrlId:this.dto.controllerId,name:e||this.extension.displayName||this.extension.identifier.value,running:!0}),c}forciblyEndTasks(){for(let{run:e}of this.tasks.values())e.end()}markEnded(){this.state!==2&&(this.state=2,this.endEmitter.fire())}ensureTestIsKnown(e){if(!(e instanceof Aa))throw new Sl(e.id);if(this.sharedTestIds.has(Ze.fromExtHostTestItem(e,this.dto.controllerId).toString()))return;let n=[],o=this.dto.colllection.root;for(;;){let i=ks.from(e);if(n.unshift(i),this.sharedTestIds.has(i.extId)||(this.sharedTestIds.add(i.extId),e===o))break;e=e.parent||o}this.proxy.$addTestsToRun(this.dto.controllerId,this.dto.id,n)}dispose(){this.markEnded(),super.dispose()}},Y0=class{constructor(t,e){this.proxy=t;this.logService=e;this.tracked=new Map;this.trackedById=new Map}get trackers(){return this.tracked.values()}getCoverageDetails(t,e,n){let o=Ze.root(t);return this.trackedById.get(o)?.getCoverageDetails(t,e,n)||[]}disposeTestRun(t){this.trackedById.get(t)?.dispose(),this.trackedById.delete(t);for(let[e,{id:n}]of this.tracked)n===t&&this.tracked.delete(e)}prepareForMainThreadTestRun(t,e,n,o,i){return this.getTracker(e,n,o,t,i)}cancelRunById(t,e){this.trackedById.get(t)?.cancel(e)}cancelAllRuns(){for(let t of this.tracked.values())t.cancel()}createTestRun(t,e,n,o,i,s){let a=this.tracked.get(o);if(a)return a.createRun(i);let l=RT.fromPublic(e,n,o,s),d=zW(o);this.proxy.$startedExtensionTestRun({controllerId:e,continuous:!!o.continuous,profile:d&&{group:Om.from(d.kind),id:d.profileId},exclude:o.exclude?.map(u=>Ze.fromExtHostTestItem(u,n.root.id).toString())??[],id:l.id,include:o.include?.map(u=>Ze.fromExtHostTestItem(u,n.root.id).toString())??[n.root.id],preserveFocus:o.preserveFocus??!0,persist:s});let c=this.getTracker(o,l,o.profile,t);return fe.once(c.onEnd)(()=>{this.proxy.$finishedExtensionTestRun(l.id)}),c.createRun(i)}getTracker(t,e,n,o,i){let s=new J0(e,this.proxy,this.logService,n,o,i);return this.tracked.set(t,s),this.trackedById.set(s.id,s),s}},zW=r=>{if(r.profile){if(!(r.profile instanceof AT))throw new Error("TestRunRequest.profile is not an instance created from TestController.createRunProfile");return r.profile}},RT=class r{constructor(t,e,n,o){this.controllerId=t;this.id=e;this.isPersisted=n;this.colllection=o}static fromPublic(t,e,n,o){return new r(t,Le(),o,e)}static fromInternal(t,e){return new r(t.controllerId,t.runId,!0,e)}},X0=class{constructor(t){this.emitter=t;this.added=new Set;this.updated=new Set;this.removed=new Set;this.alreadyRemoved=new Set}get isEmpty(){return this.added.size===0&&this.removed.size===0&&this.updated.size===0}add(t){this.added.add(t)}update(t){Object.assign(t.revived,ks.toPlain(t.item)),this.added.has(t)||this.updated.add(t)}remove(t){if(this.added.delete(t))return;this.updated.delete(t);let e=Ze.parentId(t.item.extId);if(e&&this.alreadyRemoved.has(e.toString())){this.alreadyRemoved.add(t.item.extId);return}this.removed.add(t)}getChangeEvent(){let{added:t,updated:e,removed:n}=this;return{get added(){return[...t].map(o=>o.revived)},get updated(){return[...e].map(o=>o.revived)},get removed(){return[...n].map(o=>o.revived)}}}complete(){this.isEmpty||this.emitter.fire(this.getChangeEvent())}},Z0=class extends Vx{constructor(){super(...arguments);this.changeEmitter=new T;this.onDidChangeTests=this.changeEmitter.event}get rootTests(){return this.roots}getMirroredTestDataById(e){return this.items.get(e)}getMirroredTestDataByReference(e){return this.items.get(e.id)}createItem(e,n){return{...e,revived:ks.toPlain(e.item),depth:n?n.depth+1:0,children:new Set}}createChangeCollector(){return new X0(this.changeEmitter)}},eM=class{constructor(t){this.proxy=t}checkout(){this.current||(this.current=this.createObserverData());let t=this.current;return t.observers++,{onDidChangeTest:t.tests.onDidChangeTests,get tests(){return[...t.tests.rootTests].map(e=>e.revived)},dispose:qa(()=>{--t.observers===0&&(this.proxy.$unsubscribeFromDiffs(),this.current=void 0)})}}getMirroredTestDataByReference(t){return this.current?.tests.getMirroredTestDataByReference(t)}applyDiff(t){this.current?.tests.apply(t)}createObserverData(){let t=new Z0({asCanonicalUri:e=>e});return this.proxy.$subscribeToDiffs(),{observers:0,tests:t}}},ub=(r,t,e,n)=>{e?Object.assign(e,n):t.$updateTestRunConfig(r.controllerId,r.profileId,n)},AT=class extends om{constructor(e,n,o,i,s,a,l,d,c,u=!1,m=void 0,g=!1){super(s,a,d);this._label=l;this.runHandler=c;this._tag=m;this._supportsContinuousRun=g;this.#e=e,this.#s=n,this.#t=o,this.#n=i,n.set(a,this);let h=Om.from(d);u&&o.add(a),this.#o={profileId:a,controllerId:s,tag:m?Qr.namespace(this.controllerId,m.id):null,label:l,group:h,isDefault:u,hasConfigurationHandler:!1,supportsContinuousRun:g},queueMicrotask(()=>{this.#o&&(this.#e.$publishTestRunProfile(this.#o),this.#o=void 0)})}#e;#t;#n;#o;#s;get label(){return this._label}set label(e){e!==this._label&&(this._label=e,ub(this,this.#e,this.#o,{label:e}))}get supportsContinuousRun(){return this._supportsContinuousRun}set supportsContinuousRun(e){e!==this._supportsContinuousRun&&(this._supportsContinuousRun=e,ub(this,this.#e,this.#o,{supportsContinuousRun:e}))}get isDefault(){return this.#t.has(this.profileId)}set isDefault(e){e!==this.isDefault&&(e?this.#t.add(this.profileId):this.#t.delete(this.profileId),ub(this,this.#e,this.#o,{isDefault:e}))}get tag(){return this._tag}set tag(e){e?.id!==this._tag?.id&&(this._tag=e,ub(this,this.#e,this.#o,{tag:e?Qr.namespace(this.controllerId,e.id):null}))}get configureHandler(){return this._configureHandler}set configureHandler(e){e!==this._configureHandler&&(this._configureHandler=e,ub(this,this.#e,this.#o,{hasConfigurationHandler:!!e}))}get onDidChangeDefault(){return fe.chain(this.#n,e=>e.map(n=>n.get(this.controllerId)?.get(this.profileId)).filter(uo))}dispose(){this.#s?.delete(this.profileId)&&(this.#s=void 0,this.#e.$removeTestProfile(this.controllerId,this.profileId)),this.#o=void 0}};function bq(r,t){for(let e=0;e<r.path.length;e++){let n=t.find(o=>o.id===r.path[e]);if(!n)return;if(e===r.path.length-1)return n;t=n.children}}var iWe=R("configurationResolverService"),tM=(q=>(q.Unknown="unknown",q.Env="env",q.Config="config",q.Command="command",q.Input="input",q.ExtensionInstallFolder="extensionInstallFolder",q.WorkspaceFolder="workspaceFolder",q.Cwd="cwd",q.WorkspaceFolderBasename="workspaceFolderBasename",q.UserHome="userHome",q.LineNumber="lineNumber",q.ColumnNumber="columnNumber",q.SelectedText="selectedText",q.File="file",q.FileWorkspaceFolder="fileWorkspaceFolder",q.FileWorkspaceFolderBasename="fileWorkspaceFolderBasename",q.RelativeFile="relativeFile",q.RelativeFileDirname="relativeFileDirname",q.FileDirname="fileDirname",q.FileExtname="fileExtname",q.FileBasename="fileBasename",q.FileBasenameNoExtension="fileBasenameNoExtension",q.FileDirnameBasename="fileDirnameBasename",q.ExecPath="execPath",q.ExecInstallFolder="execInstallFolder",q.PathSeparator="pathSeparator",q.PathSeparatorAlias="/",q))(tM||{}),qW=Object.values(tM).filter(r=>typeof r=="string"),lo=class extends co{constructor(e,n){super(n);this.variable=e}};var pb=class r{constructor(t){this.locations=new Map;this.newReplacementNotifiers=new Set;typeof t=="string"?(this.stringRoot=!0,this.root={value:t}):(this.stringRoot=!1,this.root=structuredClone(t))}static{this.VARIABLE_LHS="${"}static parse(t){if(t instanceof r)return t;let e=new r(t);return e.applyPlatformSpecificKeys(),e.parseObject(e.root),e}applyPlatformSpecificKeys(){let t=this.root,e=Ie?"windows":ut?"osx":Qe?"linux":void 0;e&&t&&typeof t=="object"&&t.hasOwnProperty(e)&&Object.keys(t[e]).forEach(n=>t[n]=t[e][n]),delete t.windows,delete t.osx,delete t.linux}parseVariable(t,e){if(t[e]!=="$"||t[e+1]!=="{")return;let n=e+2,o=1;for(;n<t.length;){if(t[n]==="{")o++;else if(t[n]==="}"&&(o--,o===0))break;n++}if(o!==0)return;let i=t.slice(e,n+1),s=t.substring(e+2,n),a=s.indexOf(":");return a===-1?{replacement:{id:i,name:s,inner:s},end:n}:{replacement:{id:i,inner:s,name:s.slice(0,a),arg:s.slice(a+1)},end:n}}parseObject(t){if(!(typeof t!="object"||t===null)){if(Array.isArray(t)){for(let e=0;e<t.length;e++){let n=t[e];typeof n=="string"?this.parseString(t,e,n):this.parseObject(n)}return}for(let[e,n]of Object.entries(t))this.parseString(t,e,e,!0),typeof n=="string"?this.parseString(t,e,n):this.parseObject(n)}}parseString(t,e,n,o,i){let s=0;for(;s<n.length;){let a=n.indexOf("${",s);if(a===-1)break;let l=this.parseVariable(n,a);if(l){if(s=l.end+1,i?.includes(l.replacement.id))continue;let d=this.locations.get(l.replacement.id)||{locations:[],replacement:l.replacement},c={object:t,propertyName:e,replaceKeyName:o};d.locations.push(c),this.locations.set(l.replacement.id,d),d.resolved?this._resolveAtLocation(l.replacement,c,d.resolved,i):this.newReplacementNotifiers.forEach(u=>u(l.replacement))}else s=a+2}}*unresolved(){let t=new Map,e=n=>{t.set(n.id,n)};for(let n of this.locations.values())n.resolved===void 0&&t.set(n.replacement.id,n.replacement);for(this.newReplacementNotifiers.add(e);;){let n=Mt.first(t);if(!n)break;let[o,i]=n;yield i,t.delete(o)}this.newReplacementNotifiers.delete(e)}resolved(){return Mt.map(Mt.filter(this.locations.values(),t=>!!t.resolved),t=>[t.replacement,t.resolved])}resolve(t,e){typeof e!="object"&&(e={value:String(e)});let n=this.locations.get(t.id);if(n&&(n.resolved=e,e.value!==void 0))for(let o of n.locations||Mt.empty())this._resolveAtLocation(t,o,e)}_resolveAtLocation(t,{replaceKeyName:e,propertyName:n,object:o},i,s=[]){if(i.value!==void 0){if(s.push(t.id),e&&typeof n=="string"){let a=o[n],l=n.replaceAll(t.id,i.value);delete o[n],o[l]=a,this._renameKeyInLocations(o,n,l),this.parseString(o,l,i.value,!0,s)}else o[n]=o[n].replaceAll(t.id,i.value),this.parseString(o,n,i.value,!1,s);s.pop()}}_renameKeyInLocations(t,e,n){for(let o of this.locations.values())for(let i of o.locations)i.object===t&&i.propertyName===e&&(i.propertyName=n)}toObject(){return this.stringRoot?this.root.value:this.root}};var MT=class{constructor(t,e,n,o){this._contributedVariables=new Map;this.resolvableVariables=new Set(qW);this._context=t,this._labelService=e,this._userHomePromise=n,o&&(this._envVariablesPromise=o.then(i=>this.prepareEnv(i)))}prepareEnv(t){if(Ie){let e=Object.create(null);return Object.keys(t).forEach(n=>{e[n.toLowerCase()]=t[n]}),e}return t}async resolveWithEnvironment(t,e,n){let o=pb.parse(n);for(let i of o.unresolved()){let s=await this.evaluateSingleVariable(i,e?.uri,t);s!==void 0&&o.resolve(i,String(s))}return o.toObject()}async resolveAsync(t,e){let n=pb.parse(e);for(let o of n.unresolved()){let i=await this.evaluateSingleVariable(o,t?.uri);i!==void 0&&n.resolve(o,String(i))}return n.toObject()}resolveWithInteractionReplace(t,e){throw new Error("resolveWithInteractionReplace not implemented.")}resolveWithInteraction(t,e){throw new Error("resolveWithInteraction not implemented.")}contributeVariable(t,e){if(this._contributedVariables.has(t))throw new Error("Variable "+t+" is contributed twice.");this.resolvableVariables.add(t),this._contributedVariables.set(t,e)}fsPath(t){return this._labelService?this._labelService.getUriLabel(t,{noPrefix:!0}):t.fsPath}async evaluateSingleVariable(t,e,n,o){let i={env:n!==void 0?this.prepareEnv(n):await this._envVariablesPromise,userHome:n!==void 0?void 0:await this._userHomePromise},{name:s,arg:a}=t,l=u=>{let m=this._context.getFilePath();if(m)return xp(m);throw new lo(u,p(17044,null,t.id))},d=u=>{let m=l(u);if(this._context.getWorkspaceFolderPathForFile){let g=this._context.getWorkspaceFolderPathForFile();if(g)return xp(g)}throw new lo(u,p(17045,null,t.id,at(m)))},c=u=>{if(a){let m=this._context.getFolderUri(a);if(m)return m;throw new lo(u,p(17042,null,u,a))}if(e)return e;throw this._context.getWorkspaceFolderCount()>1?new lo(u,p(17050,null,u)):new lo(u,p(17049,null,u))};switch(s){case"env":if(a){if(i.env){let u=i.env[Ie?a.toLowerCase():a];if(Pe(u))return u}return""}throw new lo("env",p(17055,null,t.id));case"config":if(a){let u=this._context.getConfigurationValue(e,a);if(At(u))throw new lo("config",p(17052,null,t.id,a));if(ot(u))throw new lo("config",p(17051,null,t.id,a));return u}throw new lo("config",p(17054,null,t.id));case"command":return this.resolveFromMap("command",t.id,a,o,"command");case"input":return this.resolveFromMap("input",t.id,a,o,"input");case"extensionInstallFolder":if(a){let u=await this._context.getExtension(a);if(!u)throw new lo("extensionInstallFolder",p(17053,null,t.id,a));return this.fsPath(u.extensionLocation)}throw new lo("extensionInstallFolder",p(17056,null,t.id));default:switch(s){case"workspaceRoot":case"workspaceFolder":{let u=c("workspaceFolder");return u?xp(this.fsPath(u)):void 0}case"cwd":{if(!e&&!a)return ri();let u=c("cwd");return u?xp(this.fsPath(u)):void 0}case"workspaceRootFolderName":case"workspaceFolderBasename":{let u=c("workspaceFolderBasename");return u?xp(at(this.fsPath(u))):void 0}case"userHome":if(i.userHome)return i.userHome;throw new lo("userHome",p(17048,null,t.id));case"lineNumber":{let u=this._context.getLineNumber();if(u)return u;throw new lo("lineNumber",p(17046,null,t.id))}case"columnNumber":{let u=this._context.getColumnNumber();if(u)return u;throw new Error(p(17043,null,t.id))}case"selectedText":{let u=this._context.getSelectedText();if(u)return u;throw new lo("selectedText",p(17047,null,t.id))}case"file":return l("file");case"fileWorkspaceFolder":return d("fileWorkspaceFolder");case"fileWorkspaceFolderBasename":return at(d("fileWorkspaceFolderBasename"));case"relativeFile":return e||a?ii(this.fsPath(c("relativeFile")),l("relativeFile")):l("relativeFile");case"relativeFileDirname":{let u=on(l("relativeFileDirname"));if(e||a){let m=ii(this.fsPath(c("relativeFileDirname")),u);return m.length===0?".":m}return u}case"fileDirname":return on(l("fileDirname"));case"fileExtname":return Xa(l("fileExtname"));case"fileBasename":return at(l("fileBasename"));case"fileBasenameNoExtension":{let u=at(l("fileBasenameNoExtension"));return u.slice(0,u.length-Xa(u).length)}case"fileDirnameBasename":return at(on(l("fileDirnameBasename")));case"execPath":{let u=this._context.getExecPath();return u||t.id}case"execInstallFolder":{let u=this._context.getAppRoot();return u||t.id}case"pathSeparator":case"/":return bt;default:try{return this.resolveFromMap("unknown",t.id,a,o,void 0)}catch{return t.id}}}}resolveFromMap(t,e,n,o,i){if(n&&o){let s=i===void 0?o[n]:o[i+":"+n];if(typeof s=="string")return s;throw new lo(t,p(17057,null,e))}return e}};var Pr=R("IExtHostVariableResolverProvider"),nM=class extends MT{constructor(t,e,n,o,i,s,a){function l(){if(n){let d=n.activeEditor();if(d)return d.document.uri;let c=o.tabGroups.all.find(u=>u.isActive)?.activeTab;if(c!==void 0){if(c.input instanceof ga||c.input instanceof Kl)return c.input.modified;if(c.input instanceof $l||c.input instanceof ql||c.input instanceof zl)return c.input.uri}}}super({getFolderUri:d=>{let c=s.folders.filter(u=>u.name===d);if(c&&c.length>0)return c[0].uri},getWorkspaceFolderCount:()=>s.folders.length,getConfigurationValue:(d,c)=>i.getConfiguration(void 0,d).get(c),getAppRoot:()=>ri(),getExecPath:()=>Co.VSCODE_EXEC_PATH,getFilePath:()=>{let d=l();if(d)return mo(d.fsPath)},getWorkspaceFolderPathForFile:()=>{if(e){let d=l();if(d){let c=e.getWorkspaceFolder(d);if(c)return mo(c.uri.fsPath)}}},getSelectedText:()=>{if(n){let d=n.activeEditor();if(d&&!d.selection.isEmpty)return d.document.getText(d.selection)}},getLineNumber:()=>{if(n){let d=n.activeEditor();if(d)return String(d.selection.end.line+1)}},getColumnNumber:()=>{if(n){let d=n.activeEditor();if(d)return String(d.selection.end.character+1)}},getExtension:d=>t.getExtension(d)},void 0,a?Promise.resolve(a):void 0,Promise.resolve(Co))}},fd=class extends O{constructor(e,n,o,i,s){super();this.extensionService=e;this.workspaceService=n;this.editorService=o;this.configurationService=i;this.editorTabs=s;this._resolver=new pt(async()=>{let e=await this.configurationService.getConfigProvider(),o={folders:await this.workspaceService.getWorkspaceFolders2()||[]};return this._register(this.workspaceService.onDidChangeWorkspace(async i=>{o.folders=await this.workspaceService.getWorkspaceFolders2()||[]})),new nM(this.extensionService,this.workspaceService,this.editorService,this.editorTabs,e,o,this.homeDir())})}getResolver(){return this._resolver.value}homeDir(){}};fd=_([C(0,ao),C(1,_n),C(2,kr),C(3,vn),C(4,Li)],fd);var Ug=R("IExtHostDebugService"),uu=class extends O{constructor(e,n,o,i,s,a,l,d){super();this._workspaceService=n;this._extensionService=o;this._configurationService=i;this._editorTabs=s;this._variableResolver=a;this._commands=l;this._testing=d;this._debugSessions=new Map;this._debugVisualizationTreeItemIdsCounter=0;this._debugVisualizationProviders=new Map;this._debugVisualizationTrees=new Map;this._debugVisualizationTreeItemIds=new WeakMap;this._debugVisualizationElements=new Map;this._visualizers=new Map;this._visualizerIdCounter=0;this._configProviderHandleCounter=0,this._configProviders=[],this._adapterFactoryHandleCounter=0,this._adapterFactories=[],this._trackerFactoryHandleCounter=0,this._trackerFactories=[],this._debugAdapters=new Map,this._debugAdaptersTrackers=new Map,this._onDidStartDebugSession=this._register(new T),this._onDidTerminateDebugSession=this._register(new T),this._onDidChangeActiveDebugSession=this._register(new T),this._onDidReceiveDebugSessionCustomEvent=this._register(new T),this._debugServiceProxy=e.getProxy(U.MainThreadDebugService),this._onDidChangeBreakpoints=this._register(new T),this._onDidChangeActiveStackItem=this._register(new T),this._activeDebugConsole=new rM(this._debugServiceProxy),this._breakpoints=new Map,this._extensionService.getExtensionRegistry().then(c=>{this._register(c.onDidChange(u=>{this.registerAllDebugTypes(c)})),this.registerAllDebugTypes(c)}),this._telemetryProxy=e.getProxy(U.MainThreadTelemetry)}get onDidStartDebugSession(){return this._onDidStartDebugSession.event}get onDidTerminateDebugSession(){return this._onDidTerminateDebugSession.event}get onDidChangeActiveDebugSession(){return this._onDidChangeActiveDebugSession.event}get activeDebugSession(){return this._activeDebugSession?.api}get onDidReceiveDebugSessionCustomEvent(){return this._onDidReceiveDebugSessionCustomEvent.event}get activeDebugConsole(){return this._activeDebugConsole.value}async $getVisualizerTreeItem(e,n){let o=this.hydrateVisualizationContext(n);if(!o)return;let i=await this._debugVisualizationTrees.get(e)?.getTreeItem?.(o);return i?this.convertVisualizerTreeItem(e,i):void 0}registerDebugVisualizationTree(e,n,o){let i=_e.toKey(e.identifier),s=this.extensionVisKey(i,n);if(this._debugVisualizationProviders.has(s))throw new Error(`A debug visualization provider with id '${n}' is already registered`);return this._debugVisualizationTrees.set(s,o),this._debugServiceProxy.$registerDebugVisualizerTree(s,!!o.editItem),G(()=>{this._debugServiceProxy.$unregisterDebugVisualizerTree(s),this._debugVisualizationTrees.delete(n)})}async $getVisualizerTreeItemChildren(e,n){let o=this._debugVisualizationElements.get(n)?.item;return o?(await this._debugVisualizationTrees.get(e)?.getChildren?.(o))?.map(s=>this.convertVisualizerTreeItem(e,s))||[]:[]}async $editVisualizerTreeItem(e,n){let o=this._debugVisualizationElements.get(e);if(!o)return;let i=await this._debugVisualizationTrees.get(o.provider)?.editItem?.(o.item,n);return this.convertVisualizerTreeItem(o.provider,i||o.item)}$disposeVisualizedTree(e){let n=this._debugVisualizationElements.get(e);if(!n)return;let o=[n.children];for(let i of o)if(i)for(let s of i)o.push(this._debugVisualizationElements.get(s)?.children),this._debugVisualizationElements.delete(s)}convertVisualizerTreeItem(e,n){let o=this._debugVisualizationTreeItemIds.get(n);return o||(o=this._debugVisualizationTreeItemIdsCounter++,this._debugVisualizationTreeItemIds.set(n,o),this._debugVisualizationElements.set(o,{provider:e,item:n})),R1.from(n,o)}asDebugSourceUri(e,n){let o=e;if(typeof o.sourceReference=="number"&&o.sourceReference>0){let i=`debug:${encodeURIComponent(o.path||"")}`,s="?";return n&&(i+=`${s}session=${encodeURIComponent(n.id)}`,s="&"),i+=`${s}ref=${o.sourceReference}`,y.parse(i)}else{if(o.path)return y.file(o.path);throw new Error("cannot create uri from DAP 'source' object; properties 'path' and 'sourceReference' are both missing.")}}registerAllDebugTypes(e){let n=[];for(let o of e.getAllExtensionDescriptions())if(o.contributes){let i=o.contributes.debuggers;if(i&&i.length>0)for(let s of i)UW(s)&&n.push(s.type)}this._debugServiceProxy.$registerDebugTypes(n)}get activeStackItem(){return this._activeStackItem}get onDidChangeActiveStackItem(){return this._onDidChangeActiveStackItem.event}get onDidChangeBreakpoints(){return this._onDidChangeBreakpoints.event}get breakpoints(){let e=[];return this._breakpoints.forEach(n=>e.push(n)),e}async $resolveDebugVisualizer(e,n){let o=this._visualizers.get(e);if(!o)throw new Error(`No debug visualizer found with id '${e}'`);let{v:i,provider:s,extensionId:a}=o;if(i.visualization||(i=await s.resolveDebugVisualization?.(i,n)||i,o.v=i),!i.visualization)throw new Error(`No visualization returned from resolveDebugVisualization in '${s}'`);return this.serializeVisualization(a,i.visualization)}async $executeDebugVisualizerCommand(e){let n=this._visualizers.get(e);if(!n)throw new Error(`No debug visualizer found with id '${e}'`);let o=n.v.visualization;o&&"command"in o&&this._commands.executeCommand(o.command,...o.arguments||[])}hydrateVisualizationContext(e){let n=this._debugSessions.get(e.sessionId);return n&&{session:n.api,variable:e.variable,containerId:e.containerId,frameId:e.frameId,threadId:e.threadId}}async $provideDebugVisualizers(e,n,o,i){let s=this.hydrateVisualizationContext(o),a=this.extensionVisKey(e,n),l=this._debugVisualizationProviders.get(a);if(!s||!l)return[];let d=await l.provideDebugVisualization(s,i);return d?d.map(c=>{let u=++this._visualizerIdCounter;this._visualizers.set(u,{v:c,provider:l,extensionId:e});let m=c.iconPath?this.getIconPathOrClass(c.iconPath):void 0;return{id:u,name:c.name,iconClass:m?.iconClass,iconPath:m?.iconPath,visualization:this.serializeVisualization(e,c.visualization)}}):[]}$disposeDebugVisualizers(e){for(let n of e)this._visualizers.delete(n)}registerDebugVisualizationProvider(e,n,o){if(!e.contributes?.debugVisualizers?.some(a=>a.id===n))throw new Error(`Extensions may only call registerDebugVisualizationProvider() for renderers they contribute (got ${n})`);let i=_e.toKey(e.identifier),s=this.extensionVisKey(i,n);if(this._debugVisualizationProviders.has(s))throw new Error(`A debug visualization provider with id '${n}' is already registered`);return this._debugVisualizationProviders.set(s,o),this._debugServiceProxy.$registerDebugVisualizer(i,n),G(()=>{this._debugServiceProxy.$unregisterDebugVisualizer(i,n),this._debugVisualizationProviders.delete(n)})}addBreakpoints(e){let n=e.filter(s=>{let a=s.id;return this._breakpoints.has(a)?!1:(this._breakpoints.set(a,s),!0)});this.fireBreakpointChanges(n,[],[]);let o=[],i=new Map;for(let s of n)if(s instanceof Ci){let a=i.get(s.location.uri.toString());a||(a={type:"sourceMulti",uri:s.location.uri,lines:[]},i.set(s.location.uri.toString(),a),o.push(a)),a.lines.push({id:s.id,enabled:s.enabled,condition:s.condition,hitCondition:s.hitCondition,logMessage:s.logMessage,line:s.location.range.start.line,character:s.location.range.start.character,mode:s.mode})}else s instanceof Ti&&o.push({type:"function",id:s.id,enabled:s.enabled,hitCondition:s.hitCondition,logMessage:s.logMessage,condition:s.condition,functionName:s.functionName,mode:s.mode});return this._debugServiceProxy.$registerBreakpoints(o)}removeBreakpoints(e){let n=e.filter(a=>this._breakpoints.delete(a.id));this.fireBreakpointChanges([],n,[]);let o=n.filter(a=>a instanceof Ci).map(a=>a.id),i=n.filter(a=>a instanceof Ti).map(a=>a.id),s=n.filter(a=>a instanceof kc).map(a=>a.id);return this._debugServiceProxy.$unregisterBreakpoints(o,i,s)}startDebugging(e,n,o){let i=o.testRun&&this._testing.getMetadataForRun(o.testRun);return this._debugServiceProxy.$startDebugging(e?e.uri:void 0,n,{parentSessionID:o.parentSession?o.parentSession.id:void 0,lifecycleManagedByParent:o.lifecycleManagedByParent,repl:o.consoleMode===1?"mergeWithParent":"separate",noDebug:o.noDebug,compact:o.compact,suppressSaveBeforeStart:o.suppressSaveBeforeStart,testRun:i&&{runId:i.runId,taskId:i.taskId},suppressDebugStatusbar:o.suppressDebugStatusbar??o.debugUI?.simple,suppressDebugToolbar:o.suppressDebugToolbar??o.debugUI?.simple,suppressDebugView:o.suppressDebugView??o.debugUI?.simple})}stopDebugging(e){return this._debugServiceProxy.$stopDebugging(e?e.id:void 0)}registerDebugConfigurationProvider(e,n,o){if(!n)return new be(()=>{});let i=this._configProviderHandleCounter++;return this._configProviders.push({type:e,handle:i,provider:n}),this._debugServiceProxy.$registerDebugConfigurationProvider(e,o,!!n.provideDebugConfigurations,!!n.resolveDebugConfiguration,!!n.resolveDebugConfigurationWithSubstitutedVariables,i),new be(()=>{this._configProviders=this._configProviders.filter(s=>s.provider!==n),this._debugServiceProxy.$unregisterDebugConfigurationProvider(i)})}registerDebugAdapterDescriptorFactory(e,n,o){if(!o)return new be(()=>{});if(!this.definesDebugType(e,n))throw new Error(`a DebugAdapterDescriptorFactory can only be registered from the extension that defines the '${n}' debugger.`);if(this.getAdapterDescriptorFactoryByType(n))throw new Error("a DebugAdapterDescriptorFactory can only be registered once per a type.");let i=this._adapterFactoryHandleCounter++;return this._adapterFactories.push({type:n,handle:i,factory:o}),this._debugServiceProxy.$registerDebugAdapterDescriptorFactory(n,i),new be(()=>{this._adapterFactories=this._adapterFactories.filter(s=>s.factory!==o),this._debugServiceProxy.$unregisterDebugAdapterDescriptorFactory(i)})}registerDebugAdapterTrackerFactory(e,n){if(!n)return new be(()=>{});let o=this._trackerFactoryHandleCounter++;return this._trackerFactories.push({type:e,handle:o,factory:n}),new be(()=>{this._trackerFactories=this._trackerFactories.filter(i=>i.factory!==n)})}async $runInTerminal(e,n){return Promise.resolve(void 0)}async $substituteVariables(e,n){let o,i=await this.getFolder(e);return i&&(o={uri:i.uri,name:i.name,index:i.index}),(await this._variableResolver.getResolver()).resolveAsync(o,n)}createDebugAdapter(e,n){if(e instanceof ua)return new sM(e.implementation)}createSignService(){}async $startDASession(e,n){let o=this,i=await this.getSession(n);return this.getAdapterDescriptor(this.getAdapterDescriptorFactoryByType(i.type),i).then(s=>{if(!s)throw new Error(`Couldn't find a debug adapter descriptor for debug type '${i.type}' (extension might have failed to activate)`);let a=this.createDebugAdapter(s,i);if(!a)throw new Error(`Couldn't create a debug adapter for type '${i.type}'.`);let l=a;return this._debugAdapters.set(e,l),this.getDebugAdapterTrackers(i).then(d=>(d&&this._debugAdaptersTrackers.set(e,d),l.onMessage(async c=>{if(c.type==="request"&&c.command==="handshake"){let u=c,m={type:"response",seq:0,command:u.command,request_seq:u.seq,success:!0};this._signService||(this._signService=this.createSignService());try{if(this._signService){let g=await this._signService.sign(u.arguments.value);m.body={signature:g},l.sendResponse(m)}else throw new Error("no signer")}catch(g){m.success=!1,m.message=g.message,l.sendResponse(m)}}else{d&&d.onDidSendMessage&&d.onDidSendMessage(c);try{c=VW(c,!0)}catch(u){let m=c.type+"_"+(c.command??c.event??"");throw this._telemetryProxy.$publicLog2("debugProtocolMessageError",{type:m,from:i.type}),u}o._debugServiceProxy.$acceptDAMessage(e,c)}}),l.onError(c=>{d&&d.onError&&d.onError(c),this._debugServiceProxy.$acceptDAError(e,c.name,c.message,c.stack)}),l.onExit(c=>{d&&d.onExit&&d.onExit(c??void 0,void 0),this._debugServiceProxy.$acceptDAExit(e,c??void 0,void 0)}),d&&d.onWillStartSession&&d.onWillStartSession(),l.startSession()))})}$sendDAMessage(e,n){n=WW(n,!1);let o=this._debugAdaptersTrackers.get(e);o&&o.onWillReceiveMessage&&o.onWillReceiveMessage(n),this._debugAdapters.get(e)?.sendMessage(n)}$stopDASession(e){let n=this._debugAdaptersTrackers.get(e);this._debugAdaptersTrackers.delete(e),n&&n.onWillStopSession&&n.onWillStopSession();let o=this._debugAdapters.get(e);return this._debugAdapters.delete(e),o?o.stopSession():Promise.resolve(void 0)}$acceptBreakpointsDelta(e){let n=[],o=[],i=[];if(e.added)for(let s of e.added){let a=s.id;if(a&&!this._breakpoints.has(a)){let l;if(s.type==="function")l=new Ti(s.functionName,s.enabled,s.condition,s.hitCondition,s.logMessage,s.mode);else if(s.type==="data")l=new kc(s.label,s.dataId,s.canPersist,s.enabled,s.hitCondition,s.condition,s.logMessage,s.mode);else{let d=y.revive(s.uri);l=new Ci(new Qt(d,new Ee(s.line,s.character)),s.enabled,s.condition,s.hitCondition,s.logMessage,s.mode)}m4(l,a),this._breakpoints.set(a,l),n.push(l)}}if(e.removed)for(let s of e.removed){let a=this._breakpoints.get(s);a&&(this._breakpoints.delete(s),o.push(a))}if(e.changed){for(let s of e.changed)if(s.id){let a=this._breakpoints.get(s.id);if(a){if(a instanceof Ti&&s.type==="function"){let l=a;l.enabled=s.enabled,l.condition=s.condition,l.hitCondition=s.hitCondition,l.logMessage=s.logMessage,l.functionName=s.functionName}else if(a instanceof Ci&&s.type==="source"){let l=a;l.enabled=s.enabled,l.condition=s.condition,l.hitCondition=s.hitCondition,l.logMessage=s.logMessage,l.location=new Qt(y.revive(s.uri),new Ee(s.line,s.character))}i.push(a)}}}this.fireBreakpointChanges(n,o,i)}async $acceptStackFrameFocus(e){let n;if(e){let o=await this.getSession(e.sessionId);e.kind==="thread"?n=new em(o.api,e.threadId):n=new Zp(o.api,e.threadId,e.frameId)}this._activeStackItem=n,this._onDidChangeActiveStackItem.fire(this._activeStackItem)}$provideDebugConfigurations(e,n,o){return pn(async()=>{let i=this.getConfigProviderByHandle(e);if(!i)throw new Error("no DebugConfigurationProvider found");if(!i.provideDebugConfigurations)throw new Error("DebugConfigurationProvider has no method provideDebugConfigurations");let s=await this.getFolder(n);return i.provideDebugConfigurations(s,o)}).then(i=>{if(!i)throw new Error("nothing returned from DebugConfigurationProvider.provideDebugConfigurations");return i})}$resolveDebugConfiguration(e,n,o,i){return pn(async()=>{let s=this.getConfigProviderByHandle(e);if(!s)throw new Error("no DebugConfigurationProvider found");if(!s.resolveDebugConfiguration)throw new Error("DebugConfigurationProvider has no method resolveDebugConfiguration");let a=await this.getFolder(n);return s.resolveDebugConfiguration(a,o,i)})}$resolveDebugConfigurationWithSubstitutedVariables(e,n,o,i){return pn(async()=>{let s=this.getConfigProviderByHandle(e);if(!s)throw new Error("no DebugConfigurationProvider found");if(!s.resolveDebugConfigurationWithSubstitutedVariables)throw new Error("DebugConfigurationProvider has no method resolveDebugConfigurationWithSubstitutedVariables");let a=await this.getFolder(n);return s.resolveDebugConfigurationWithSubstitutedVariables(a,o,i)})}async $provideDebugAdapter(e,n){let o=this.getAdapterDescriptorFactoryByHandle(e);if(!o)return Promise.reject(new Error("no adapter descriptor factory found for handle"));let i=await this.getSession(n);return this.getAdapterDescriptor(o,i).then(s=>{if(!s)throw new Error(`Couldn't find a debug adapter descriptor for debug type '${i.type}'`);return this.convertToDto(s)})}async $acceptDebugSessionStarted(e){let n=await this.getSession(e);this._onDidStartDebugSession.fire(n.api)}async $acceptDebugSessionTerminated(e){let n=await this.getSession(e);n&&(this._onDidTerminateDebugSession.fire(n.api),this._debugSessions.delete(n.id))}async $acceptDebugSessionActiveChanged(e){this._activeDebugSession=e?await this.getSession(e):void 0,this._onDidChangeActiveDebugSession.fire(this._activeDebugSession?.api)}async $acceptDebugSessionNameChanged(e,n){(await this.getSession(e))?._acceptNameChanged(n)}async $acceptDebugSessionCustomEvent(e,n){let i={session:(await this.getSession(e)).api,event:n.event,body:n.body};this._onDidReceiveDebugSessionCustomEvent.fire(i)}convertToDto(e){if(e instanceof Ei)return this.convertExecutableToDto(e);if(e instanceof wi)return this.convertServerToDto(e);if(e instanceof bs)return this.convertPipeServerToDto(e);if(e instanceof ua)return this.convertImplementationToDto(e);throw new Error("convertToDto unexpected type")}convertExecutableToDto(e){return{type:"executable",command:e.command,args:e.args,options:e.options}}convertServerToDto(e){return{type:"server",port:e.port,host:e.host}}convertPipeServerToDto(e){return{type:"pipeServer",path:e.path}}convertImplementationToDto(e){return{type:"implementation"}}getAdapterDescriptorFactoryByType(e){let n=this._adapterFactories.filter(o=>o.type===e);if(n.length>0)return n[0].factory}getAdapterDescriptorFactoryByHandle(e){let n=this._adapterFactories.filter(o=>o.handle===e);if(n.length>0)return n[0].factory}getConfigProviderByHandle(e){let n=this._configProviders.filter(o=>o.handle===e);if(n.length>0)return n[0].provider}definesDebugType(e,n){if(e.contributes){let o=e.contributes.debuggers;if(o&&o.length>0){for(let i of o)if(i.label&&i.type&&i.type===n)return!0}}return!1}getDebugAdapterTrackers(e){let o=e.configuration.type,i=this._trackerFactories.filter(s=>s.type===o||s.type==="*").map(s=>pn(()=>s.factory.createDebugAdapterTracker(e.api)).then(a=>a,a=>null));return Promise.race([Promise.all(i).then(s=>{let a=nt(s);if(a.length>0)return new iM(a)}),new Promise(s=>setTimeout(()=>s(void 0),1e3))]).catch(s=>{})}async getAdapterDescriptor(e,n){let o=n.configuration.debugServer;if(typeof o=="number")return Promise.resolve(new wi(o));if(e){let s=await this._extensionService.getExtensionRegistry();return pn(()=>e.createDebugAdapterDescriptor(n.api,this.daExecutableFromPackage(n,s))).then(a=>{if(a)return a})}let i=await this._extensionService.getExtensionRegistry();return Promise.resolve(this.daExecutableFromPackage(n,i))}daExecutableFromPackage(e,n){}fireBreakpointChanges(e,n,o){(e.length>0||n.length>0||o.length>0)&&this._onDidChangeBreakpoints.fire(Object.freeze({added:e,removed:n,changed:o}))}async getSession(e){if(e)if(typeof e=="string"){let n=this._debugSessions.get(e);if(n)return n}else{let n=this._debugSessions.get(e.id);if(!n){let o=await this.getFolder(e.folderUri),i=e.parent?this._debugSessions.get(e.parent):void 0;n=new oM(this._debugServiceProxy,e.id,e.type,e.name,o,e.configuration,i?.api),this._debugSessions.set(n.id,n),this._debugServiceProxy.$sessionCached(n.id)}return n}throw new Error("cannot find session")}getFolder(e){if(e){let n=y.revive(e);return this._workspaceService.resolveWorkspaceFolder(n)}return Promise.resolve(void 0)}extensionVisKey(e,n){return`${e}\0${n}`}serializeVisualization(e,n){if(n){if("title"in n&&"command"in n)return{type:0};if("treeId"in n)return{type:1,id:`${e}\0${n.treeId}`};throw new Error("Unsupported debug visualization type")}}getIconPathOrClass(e){let n=this.getIconUris(e),o,i;return"id"in n?i=Et.asClassName(n):o=n,{iconPath:o,iconClass:i}}getIconUris(e){if(e instanceof an)return{id:e.id};let n=typeof e=="object"&&"dark"in e?e.dark:e,o=typeof e=="object"&&"light"in e?e.light:e;return{dark:typeof n=="string"?y.file(n):n,light:typeof o=="string"?y.file(o):o}}};uu=_([C(0,ie),C(1,_n),C(2,ao),C(3,vn),C(4,Li),C(5,Pr),C(6,Dn),C(7,Ma)],uu);var oM=class{constructor(t,e,n,o,i,s,a){this._debugServiceProxy=t;this._id=e;this._type=n;this._name=o;this._workspaceFolder=i;this._configuration=s;this._parentSession=a}get api(){let t=this;return this.apiSession??=Object.freeze({id:t._id,type:t._type,get name(){return t._name},set name(e){t._name=e,t._debugServiceProxy.$setDebugSessionName(t._id,e)},parentSession:t._parentSession,workspaceFolder:t._workspaceFolder,configuration:t._configuration,customRequest(e,n){return t._debugServiceProxy.$customDebugAdapterRequest(t._id,e,n)},getDebugProtocolBreakpoint(e){return t._debugServiceProxy.$getDebugProtocolBreakpoint(t._id,e.id)}})}get id(){return this._id}get type(){return this._type}_acceptNameChanged(t){this._name=t}get configuration(){return this._configuration}},rM=class{constructor(t){this.value=Object.freeze({append(e){t.$appendDebugConsole(e)},appendLine(e){this.append(e+`
`)}})}},iM=class{constructor(t){this.trackers=t}onWillStartSession(){this.trackers.forEach(t=>t.onWillStartSession?t.onWillStartSession():void 0)}onWillReceiveMessage(t){this.trackers.forEach(e=>e.onWillReceiveMessage?e.onWillReceiveMessage(t):void 0)}onDidSendMessage(t){this.trackers.forEach(e=>e.onDidSendMessage?e.onDidSendMessage(t):void 0)}onWillStopSession(){this.trackers.forEach(t=>t.onWillStopSession?t.onWillStopSession():void 0)}onError(t){this.trackers.forEach(e=>e.onError?e.onError(t):void 0)}onExit(t,e){this.trackers.forEach(n=>n.onExit?n.onExit(t,e):void 0)}},sM=class extends Mg{constructor(e){super();this.implementation=e;e.onDidSendMessage(n=>{this.acceptMessage(n)})}startSession(){return Promise.resolve(void 0)}sendMessage(e){this.implementation.handleMessage(e)}stopSession(){return this.implementation.dispose(),Promise.resolve(void 0)}},Ng=class extends uu{constructor(t,e,n,o,i,s,a,l){super(t,e,n,o,i,s,a,l)}};Ng=_([C(0,ie),C(1,_n),C(2,ao),C(3,vn),C(4,Li),C(5,Pr),C(6,Dn),C(7,Ma)],Ng);function yq(r){return"uri"in r&&"ranges"in r&&"preview"in r}function Iq(r){return r.folderOptions.map(t=>({folder:t.folder,excludes:t.excludes.map(e=>typeof e=="string"?e:e.pattern),includes:t.includes,useGlobalIgnoreFiles:t.useIgnoreFiles.global,useIgnoreFiles:t.useIgnoreFiles.local,useParentIgnoreFiles:t.useIgnoreFiles.parent,followSymlinks:t.followSymlinks,maxResults:r.maxResults,session:r.session}))}var Fg=class{constructor(t){this.provider=t}provideFileSearchResults(t,e,n){return(async()=>{let i=Iq(e);return Promise.all(i.map(s=>this.provider.provideFileSearchResults({pattern:t},s,n)))})().then(i=>nt(i).flat())}};function xq(r){return r.folderOptions.map(t=>({folder:t.folder,excludes:t.excludes.map(e=>typeof e=="string"?e:e.pattern),includes:t.includes,useGlobalIgnoreFiles:t.useIgnoreFiles.global,useIgnoreFiles:t.useIgnoreFiles.local,useParentIgnoreFiles:t.useIgnoreFiles.parent,followSymlinks:t.followSymlinks,maxResults:r.maxResults,previewOptions:aM(r.previewOptions),maxFileSize:r.maxFileSize,encoding:t.encoding,afterContext:r.surroundingContext,beforeContext:r.surroundingContext}))}function aM(r){return{matchLines:r?.matchLines??Gv.matchLines,charsPerLine:r?.charsPerLine??Gv.charsPerLine}}function Sq(r){if(yq(r)){let t=Un(r.ranges).map((e,n)=>{let i=Un(r.preview.matches)[n];return{sourceRange:e,previewRange:i}});return new Mo(r.uri,t,r.preview.text)}else return new Ps(r.uri,r.text,r.lineNumber)}var LT=class{constructor(t){this.provider=t}provideTextSearchResults(t,e,n,o){let i=l=>{Cq(l)&&n.report(Sq(l))};return(async()=>nt(await Promise.all(xq(e).map(l=>this.provider.provideTextSearchResults(t,l,{report:d=>i(d)},o)))).reduce((l,d)=>({limitHit:l.limitHit||d.limitHit}),{limitHit:!1}))().then(l=>({limitHit:l.limitHit,message:nt(Un(l.message))}))}};function Cq(r){if(Tq(r)){if(Array.isArray(r.ranges)){if(!Array.isArray(r.preview.matches))return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same type."),!1;if(r.preview.matches.length!==r.ranges.length)return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same length."),!1}else if(Array.isArray(r.preview.matches))return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same length."),!1}return!0}function Tq(r){return!!r.preview}var Hg=class extends Bo{constructor(t,e,n=()=>!1){let o=new Lh(n,()=>!1);super(o);let i=new Ge;t.forEach((s,a)=>{let l=s.folder.with({query:"",fragment:""});i.has(l)?i.get(l).push({fq:s,i:a}):i.set(l,[{fq:s,i:a}])}),i.forEach((s,a)=>{let l=new Map;for(let d of s){let c=e(d.fq,d.i);l.set(this.encodeKey(d.fq.folder),c)}super.set(a,l)})}findQueryFragmentAwareSubstr(t){let e=super.findSubstr(t.with({query:"",fragment:""}));if(!e)return;let n=this.encodeKey(t);return e.get(n)}forEachFolderQueryInfo(t){return this.forEach(e=>e.forEach(n=>t(n)))}encodeKey(t){let e="";return t.query&&(e+=t.query),t.fragment&&(e+="#"+t.fragment),e}};var lM=class{constructor(t,e,n){this.config=t;this.provider=e;this.sessionLifecycle=n;this.isLimitHit=!1;this.resultCount=0;this.isCanceled=!1;this.filePattern=t.filePattern;let o=t.ignoreGlobCase?{ignoreCase:!0}:void 0;this.includePattern=t.includePattern&&vo(t.includePattern,o),this.maxResults=t.maxResults||void 0,this.exists=t.exists,this.activeCancellationTokens=new Set,this.globalExcludePattern=t.excludePattern&&vo(t.excludePattern,o)}cancel(){this.isCanceled=!0,this.activeCancellationTokens.forEach(t=>t.cancel()),this.activeCancellationTokens=new Set}search(t){let e=this.config.folderQueries||[];return new Promise((n,o)=>{let i=s=>{this.resultCount++,t(s)};if(this.isCanceled)return n({limitHit:this.isLimitHit});this.config.extraFileResources&&this.config.extraFileResources.forEach(s=>{let a=s.toString(),l=at(a);this.globalExcludePattern&&this.globalExcludePattern(a,l)||this.matchFile(i,{base:s,basename:l})}),this.doSearch(e,i).then(s=>{n({limitHit:this.isLimitHit,stats:s||void 0})},s=>{o(new Error(fo(s)))})})}async doSearch(t,e){let n=new Ce,o=t.map(c=>this.getSearchOptionsForFolder(c)),i=this.provider instanceof Fg?this.sessionLifecycle?.tokenSource.token:this.sessionLifecycle?.obj,s={folderOptions:o,maxResults:this.config.maxResults??td,session:i},a=c=>{let u=new qm(this.config,c),m=!u.hasSiblingExcludeClauses();return{queryTester:u,noSiblingsClauses:m,folder:c.folder,tree:this.initDirectoryTree()}},l=new Hg(t,a),d;try{this.activeCancellationTokens.add(n),d=Zt.create();let c=await this.provider.provideFileSearchResults(this.config.filePattern||"",s,n.token),u=d.elapsed(),m=Zt.create();return this.isCanceled&&!this.isLimitHit||(c&&c.forEach(g=>{let h=l.findQueryFragmentAwareSubstr(g),f=ze.relative(h.folder.path,g.path);if(h.noSiblingsClauses){let I=at(g.path);this.matchFile(e,{base:h.folder,relativePath:f,basename:I});return}this.addDirectoryEntries(h.tree,h.folder,f,e)}),this.isCanceled&&!this.isLimitHit)?null:(l.forEachFolderQueryInfo(g=>{this.matchDirectoryTree(g.tree,g.queryTester,e)}),{providerTime:u,postProcessTime:m.elapsed()})}finally{n.dispose(),this.activeCancellationTokens.delete(n)}}getSearchOptionsForFolder(t){let e=nd(this.config.includePattern,t.includePattern),n=t.excludePattern?.map(i=>({folder:i.folder,patterns:nd(this.config.excludePattern,i.pattern)}));n?.length||(n=[{folder:void 0,patterns:nd(this.config.excludePattern,void 0)}]);let o=QC(n);return{folder:t.folder,excludes:o,includes:e,useIgnoreFiles:{local:!t.disregardIgnoreFiles,parent:!t.disregardParentIgnoreFiles,global:!t.disregardGlobalIgnoreFiles},followSymlinks:!t.ignoreSymlinks}}initDirectoryTree(){let t={rootEntries:[],pathToEntries:Object.create(null)};return t.pathToEntries["."]=t.rootEntries,t}addDirectoryEntries({pathToEntries:t},e,n,o){if(this.filePattern&&Qi(n,this.filePattern,this.config.ignoreGlobCase)){let s=at(this.filePattern);this.matchFile(o,{base:e,relativePath:this.filePattern,basename:s})}function i(s){let a=at(s),l=on(s),d=t[l];d||(d=t[l]=[],i(l)),d.push({base:e,relativePath:s,basename:a})}i(n)}matchDirectoryTree({rootEntries:t,pathToEntries:e},n,o){let i=this,s=this.filePattern,a=this.config.ignoreGlobCase;function l(d){let c=jv(()=>d.map(u=>u.basename));for(let u=0,m=d.length;u<m;u++){let g=d[u],{relativePath:h,basename:f}=g;if(n.matchesExcludesSync(h,f,Qi(s,f,a)?void 0:c))continue;let I=e[h];if(I)l(I);else{if(Qi(h,s,a))continue;i.matchFile(o,g)}if(i.isLimitHit)break}}l(t)}matchFile(t,e){(!this.includePattern||e.relativePath&&this.includePattern(e.relativePath,e.basename))&&((this.exists||this.maxResults&&this.resultCount>=this.maxResults)&&(this.isLimitHit=!0,this.cancel()),this.isLimitHit||t(e))}},dM=class{constructor(){this._obj=new Object,this.tokenSource=new Ce}get obj(){if(this._obj)return this._obj;throw new Error("Session object has been dereferenced.")}cancel(){this.tokenSource.cancel(),this._obj=void 0}},OT=class r{constructor(){this.sessions=new Map}static{this.BATCH_SIZE=512}fileSearch(t,e,n,o){let i=this.getSessionTokenSource(t.cacheKey),s=new lM(t,e,i),a=0,l=d=>{a+=d.length,n(d.map(c=>this.rawMatchToSearchItem(c)))};return this.doSearch(s,r.BATCH_SIZE,l,o).then(d=>({limitHit:d.limitHit,stats:d.stats?{fromCache:!1,type:"fileSearchProvider",resultCount:a,detailStats:d.stats}:void 0,messages:[]}))}clearCache(t){this.sessions.get(t)?.cancel(),this.sessions.delete(t)}getSessionTokenSource(t){if(t)return this.sessions.has(t)||this.sessions.set(t,new dM),this.sessions.get(t)}rawMatchToSearchItem(t){return t.relativePath?{resource:St(t.base,t.relativePath)}:{resource:t.base}}doSearch(t,e,n,o){let i=o.onCancellationRequested(()=>{t.cancel()}),s=l=>{l&&(a.push(l),e>0&&a.length>=e&&(n(a),a=[]))},a=[];return t.search(s).then(l=>(a.length&&n(a),i.dispose(),l),l=>(a.length&&n(a),i.dispose(),Promise.reject(l)))}};var pu=class{constructor(t,e,n){this.queryProviderPair=t;this.fileUtils=e;this.processType=n;this.collector=null;this.isLimitHit=!1;this.resultCount=0}get query(){return this.queryProviderPair.query}search(t,e,n){let o=this.query.folderQueries||[],i=new Ce(e);return new Promise((s,a)=>{this.collector=new cM(t);let l=!1,d=(c,u)=>{if(!(c instanceof Zc)&&!l&&!this.isLimitHit){let m=this.resultSize(c);c instanceof Mo&&typeof this.query.maxResults=="number"&&this.resultCount+m>this.query.maxResults&&(this.isLimitHit=!0,l=!0,i.cancel(),c=this.trimResultToSize(c,this.query.maxResults-this.resultCount));let g=this.resultSize(c);this.resultCount+=g;let h=c instanceof Mo;(g>0||!h)&&this.collector.add(c,u)}};this.doSearch(o,d,i.token,n).then(c=>{i.dispose(),this.collector.flush(),s({limitHit:this.isLimitHit||c?.limitHit,messages:this.getMessagesFromResults(c),stats:{type:this.processType}})},c=>{i.dispose();let u=fo(c);a(new Error(u))})})}getMessagesFromResults(t){return t?.message?Array.isArray(t.message)?t.message:[t.message]:[]}resultSize(t){return t instanceof Mo?Array.isArray(t.ranges)?t.ranges.length:1:0}trimResultToSize(t,e){return new Mo(t.uri,t.ranges.slice(0,e),t.previewText)}async doSearch(t,e,n,o){let i=new Hg(t,(u,m)=>({queryTester:new qm(this.query,u),folder:u.folder,folderIdx:m}),()=>!0),s=[],a={report:u=>{if(u instanceof Zc)o?.(u);else{if(u.uri===void 0)throw Error("Text search result URI is undefined. Please check provider implementation.");let m=i.findQueryFragmentAwareSubstr(u.uri);if(m?.folder?.scheme){let g=m.folder.scheme===V.file?L4(()=>this.fileUtils.readdir(li(u.uri))):void 0,h=rh(m.folder,u.uri);if(h){let f=m.queryTester.includedInQuery(h,at(h),g);Lr(f)?s.push(f.then(I=>{I&&e(u,m.folderIdx)})):f&&e(u,m.folderIdx)}}}}},d={folderOptions:t.map(u=>this.getSearchOptionsForFolder(u)),maxFileSize:this.query.maxFileSize,maxResults:this.query.maxResults??td,previewOptions:this.query.previewOptions??Gv,surroundingContext:this.query.surroundingContext??0};"usePCRE2"in this.query&&(d.usePCRE2=this.query.usePCRE2);let c;return this.queryProviderPair.query.type===3?c=await this.queryProviderPair.provider.provideAITextSearchResults(this.queryProviderPair.query.contentPattern,d,a,n):c=await this.queryProviderPair.provider.provideTextSearchResults(Eq(this.queryProviderPair.query.contentPattern),d,a,n),s.length&&await Promise.all(s),c}getSearchOptionsForFolder(t){let e=nd(this.query.includePattern,t.includePattern),n=t.excludePattern?.map(s=>({folder:s.folder,patterns:nd(this.query.excludePattern,s.pattern)}));(!n||n.length===0)&&(n=[{folder:void 0,patterns:nd(this.query.excludePattern,void 0)}]);let o=QC(n);return{folder:y.from(t.folder),excludes:o,includes:e,useIgnoreFiles:{local:!t.disregardIgnoreFiles,parent:!t.disregardParentIgnoreFiles,global:!t.disregardGlobalIgnoreFiles},followSymlinks:!t.ignoreSymlinks,encoding:(t.fileEncoding&&this.fileUtils.toCanonicalName(t.fileEncoding))??"",ignoreGlobCase:this.query.ignoreGlobCase||t.ignoreGlobCase}}};function Eq(r){return{isCaseSensitive:r.isCaseSensitive||!1,isRegExp:r.isRegExp||!1,isWordMatch:r.isWordMatch||!1,isMultiline:r.isMultiline||!1,pattern:r.pattern}}var cM=class{constructor(t){this._onResult=t;this._currentFolderIdx=-1;this._currentFileMatch=null;this._batchedCollector=new uM(512,e=>this.sendItems(e))}add(t,e){this._currentFileMatch&&(this._currentFolderIdx!==e||!yr(this._currentUri,t.uri))&&(this.pushToCollector(),this._currentFileMatch=null),this._currentFileMatch||(this._currentFolderIdx=e,this._currentUri=t.uri,this._currentFileMatch={resource:t.uri,results:[]}),this._currentFileMatch.results.push(wq(t))}pushToCollector(){let t=this._currentFileMatch&&this._currentFileMatch.results?this._currentFileMatch.results.length:0;this._batchedCollector.addItem(this._currentFileMatch,t)}flush(){this.pushToCollector(),this._batchedCollector.flush()}sendItems(t){this._onResult(t)}};function wq(r){return r instanceof Mo?{previewText:r.previewText,rangeLocations:r.ranges.map(t=>({preview:{startLineNumber:t.previewRange.start.line,startColumn:t.previewRange.start.character,endLineNumber:t.previewRange.end.line,endColumn:t.previewRange.end.character},source:{startLineNumber:t.sourceRange.start.line,startColumn:t.sourceRange.start.character,endLineNumber:t.sourceRange.end.line,endColumn:t.sourceRange.end.character}}))}:{text:r.text,lineNumber:r.lineNumber}}var uM=class r{constructor(t,e){this.maxBatchSize=t;this.cb=e;this.totalNumberCompleted=0;this.batch=[];this.batchSize=0}static{this.TIMEOUT=4e3}static{this.START_BATCH_AFTER_COUNT=50}addItem(t,e){t&&this.addItemToBatch(t,e)}addItems(t,e){t&&this.addItemsToBatch(t,e)}addItemToBatch(t,e){this.batch.push(t),this.batchSize+=e,this.onUpdate()}addItemsToBatch(t,e){this.batch=this.batch.concat(t),this.batchSize+=e,this.onUpdate()}onUpdate(){this.totalNumberCompleted<r.START_BATCH_AFTER_COUNT?this.flush():this.batchSize>=this.maxBatchSize?this.flush():this.timeoutHandle||(this.timeoutHandle=setTimeout(()=>{this.flush()},r.TIMEOUT))}flush(){this.batchSize&&(this.totalNumberCompleted+=this.batchSize,this.cb(this.batch),this.batch=[],this.batchSize=0,this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0))}};var Wg=R("IExtHostSearch"),hd=class{constructor(t,e,n){this.extHostRpc=t;this._uriTransformer=e;this._logService=n;this._proxy=this.extHostRpc.getProxy(U.MainThreadSearch),this._handlePool=0,this._textSearchProvider=new Map,this._textSearchUsedSchemes=new Set,this._aiTextSearchProvider=new Map,this._aiTextSearchUsedSchemes=new Set,this._fileSearchProvider=new Map,this._fileSearchUsedSchemes=new Set,this._fileSearchManager=new OT}_transformScheme(t){return this._uriTransformer.transformOutgoingScheme(t)}registerTextSearchProviderOld(t,e){if(this._textSearchUsedSchemes.has(t))throw new Error(`a text search provider for the scheme '${t}' is already registered`);this._textSearchUsedSchemes.add(t);let n=this._handlePool++;return this._textSearchProvider.set(n,new LT(e)),this._proxy.$registerTextSearchProvider(n,this._transformScheme(t)),G(()=>{this._textSearchUsedSchemes.delete(t),this._textSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}registerTextSearchProvider(t,e){if(this._textSearchUsedSchemes.has(t))throw new Error(`a text search provider for the scheme '${t}' is already registered`);this._textSearchUsedSchemes.add(t);let n=this._handlePool++;return this._textSearchProvider.set(n,e),this._proxy.$registerTextSearchProvider(n,this._transformScheme(t)),G(()=>{this._textSearchUsedSchemes.delete(t),this._textSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}registerAITextSearchProvider(t,e){if(this._aiTextSearchUsedSchemes.has(t))throw new Error(`an AI text search provider for the scheme '${t}'is already registered`);this._aiTextSearchUsedSchemes.add(t);let n=this._handlePool++;return this._aiTextSearchProvider.set(n,e),this._proxy.$registerAITextSearchProvider(n,this._transformScheme(t)),G(()=>{this._aiTextSearchUsedSchemes.delete(t),this._aiTextSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}registerFileSearchProviderOld(t,e){if(this._fileSearchUsedSchemes.has(t))throw new Error(`a file search provider for the scheme '${t}' is already registered`);this._fileSearchUsedSchemes.add(t);let n=this._handlePool++;return this._fileSearchProvider.set(n,new Fg(e)),this._proxy.$registerFileSearchProvider(n,this._transformScheme(t)),G(()=>{this._fileSearchUsedSchemes.delete(t),this._fileSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}registerFileSearchProvider(t,e){if(this._fileSearchUsedSchemes.has(t))throw new Error(`a file search provider for the scheme '${t}' is already registered`);this._fileSearchUsedSchemes.add(t);let n=this._handlePool++;return this._fileSearchProvider.set(n,e),this._proxy.$registerFileSearchProvider(n,this._transformScheme(t)),G(()=>{this._fileSearchUsedSchemes.delete(t),this._fileSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}$provideFileSearchResults(t,e,n,o){let i=mb(n),s=this._fileSearchProvider.get(t);if(s)return this._fileSearchManager.fileSearch(i,s,a=>{this._proxy.$handleFileMatch(t,e,a.map(l=>l.resource))},o);throw new Error("unknown provider: "+t)}async doInternalFileSearchWithCustomCallback(t,e,n){return{messages:[]}}$clearCache(t){return this._fileSearchManager.clearCache(t),Promise.resolve(void 0)}$provideTextSearchResults(t,e,n,o){let i=this._textSearchProvider.get(t);if(!i||!i.provideTextSearchResults)throw new Error(`Unknown Text Search Provider ${t}`);let s=mb(n);return this.createTextSearchManager(s,i).search(l=>this._proxy.$handleTextMatch(t,e,l),o)}$provideAITextSearchResults(t,e,n,o){let i=this._aiTextSearchProvider.get(t);if(!i||!i.provideAITextSearchResults)throw new Error(`Unknown AI Text Search Provider ${t}`);let s=mb(n);return this.createAITextSearchManager(s,i).search(l=>this._proxy.$handleTextMatch(t,e,l),o,l=>this._proxy.$handleKeywordResult(t,e,l))}$enableExtensionHostSearch(){}async $getAIName(t){let e=this._aiTextSearchProvider.get(t);if(!(!e||!e.provideAITextSearchResults))return e.name??"AI"}createTextSearchManager(t,e){return new pu({query:t,provider:e},{readdir:n=>Promise.resolve([]),toCanonicalName:n=>n},"textSearchProvider")}createAITextSearchManager(t,e){return new pu({query:t,provider:e},{readdir:n=>Promise.resolve([]),toCanonicalName:n=>n},"aiTextSearchProvider")}};hd=_([C(0,ie),C(1,Zi),C(2,oe)],hd);function mb(r){return{...r,folderQueries:r.folderQueries&&r.folderQueries.map(kq),extraFileResources:r.extraFileResources&&r.extraFileResources.map(t=>y.revive(t))}}function kq(r){return Ht(r)}var Vg=class extends O{constructor(e){super();this._onDidSuspend=this._register(new T);this.onDidSuspend=this._onDidSuspend.event;this._onDidResume=this._register(new T);this.onDidResume=this._onDidResume.event;this._onDidChangeOnBatteryPower=this._register(new T);this.onDidChangeOnBatteryPower=this._onDidChangeOnBatteryPower.event;this._onDidChangeThermalState=this._register(new T);this.onDidChangeThermalState=this._onDidChangeThermalState.event;this._onDidChangeSpeedLimit=this._register(new T);this.onDidChangeSpeedLimit=this._onDidChangeSpeedLimit.event;this._onWillShutdown=this._register(new T);this.onWillShutdown=this._onWillShutdown.event;this._onDidLockScreen=this._register(new T);this.onDidLockScreen=this._onDidLockScreen.event;this._onDidUnlockScreen=this._register(new T);this.onDidUnlockScreen=this._onDidUnlockScreen.event;this._proxy=e.getProxy(U.MainThreadPower)}$onDidSuspend(){this._onDidSuspend.fire()}$onDidResume(){this._onDidResume.fire()}$onDidChangeOnBatteryPower(e){this._onDidChangeOnBatteryPower.fire(e)}$onDidChangeThermalState(e){this._onDidChangeThermalState.fire(e)}$onDidChangeSpeedLimit(e){this._onDidChangeSpeedLimit.fire(e)}$onWillShutdown(){this._onWillShutdown.fire()}$onDidLockScreen(){this._onDidLockScreen.fire()}$onDidUnlockScreen(){this._onDidUnlockScreen.fire()}getSystemIdleState(e){return this._proxy.$getSystemIdleState(e)}getSystemIdleTime(){return this._proxy.$getSystemIdleTime()}getCurrentThermalState(){return this._proxy.$getCurrentThermalState()}isOnBatteryPower(){return this._proxy.$isOnBatteryPower()}async startPowerSaveBlocker(e){let n=await this._proxy.$startPowerSaveBlocker(e),o=this._proxy,i=n>=0,s=!1;return{id:n,get isStarted(){return i&&!s},dispose:()=>{i&&!s&&(s=!0,o.$stopPowerSaveBlocker(n))}}}};Vg=_([C(0,ie)],Vg);var NT=R("IExtHostPower");var vd=class extends TI{constructor(t,e){super(e.logLevel,e.logsLocation,e.loggers.map(n=>Ht(n))),this._proxy=t.getProxy(U.MainThreadLogger)}$setLogLevel(t,e){e?this.setLogLevel(y.revive(e),t):this.setLogLevel(t)}setVisibility(t,e){super.setVisibility(t,e),this._proxy.$setVisibility(t,e)}doCreateLogger(t,e,n){return new pM(this._proxy,t,e,n)}};vd=_([C(0,ie),C(1,Ye)],vd);var pM=class extends cl{constructor(e,n,o,i){super(i?.logLevel==="always");this.proxy=e;this.file=n;this.isLoggerCreated=!1;this.buffer=[];this.setLevel(o),this.proxy.$createLogger(n,i).then(()=>{this.doLog(this.buffer),this.isLoggerCreated=!0})}log(e,n){let o=[[e,n]];this.isLoggerCreated?this.doLog(o):this.buffer.push(...o)}doLog(e){this.proxy.$log(this.file,e)}flush(){this.proxy.$flush(this.file)}};var $g=R("IExtHostTerminalShellIntegration"),Bg=class extends O{constructor(e,n){super();this._extHostTerminalService=n;this._activeShellIntegrations=new Map;this._onDidChangeTerminalShellIntegration=this._register(new T);this.onDidChangeTerminalShellIntegration=this._onDidChangeTerminalShellIntegration.event;this._onDidStartTerminalShellExecution=this._register(new T);this.onDidStartTerminalShellExecution=this._onDidStartTerminalShellExecution.event;this._onDidEndTerminalShellExecution=this._register(new T);this.onDidEndTerminalShellExecution=this._onDidEndTerminalShellExecution.event;this._proxy=e.getProxy(U.MainThreadTerminalShellIntegration),this._register(G(()=>{for(let[o,i]of this._activeShellIntegrations)i.dispose();this._activeShellIntegrations.clear()}))}$shellIntegrationChange(e,n){let o=this._extHostTerminalService.getTerminalById(e);if(!o)return;let i=o.value,s=this._activeShellIntegrations.get(e);s||(s=new mM(o.value,n,this._onDidStartTerminalShellExecution),this._activeShellIntegrations.set(e,s),s.store.add(o.onWillDispose(()=>this._activeShellIntegrations.get(e)?.dispose())),s.store.add(s.onDidRequestShellExecution(a=>this._proxy.$executeCommand(e,a))),s.store.add(s.onDidRequestEndExecution(a=>this._onDidEndTerminalShellExecution.fire(a))),s.store.add(s.onDidRequestChangeShellIntegration(a=>this._onDidChangeTerminalShellIntegration.fire(a))),o.shellIntegration=s.value),this._onDidChangeTerminalShellIntegration.fire({terminal:i,shellIntegration:s.value})}$shellExecutionStart(e,n,o,i,s,a){this._activeShellIntegrations.has(e)||this.$shellIntegrationChange(e,n);let l={value:o,confidence:i,isTrusted:s};this._activeShellIntegrations.get(e)?.startShellExecution(l,this._convertCwdToUri(a))}$shellExecutionEnd(e,n,o,i,s){let a={value:n,confidence:o,isTrusted:i};this._activeShellIntegrations.get(e)?.endShellExecution(a,s)}$shellExecutionData(e,n){this._activeShellIntegrations.get(e)?.emitData(n)}$shellEnvChange(e,n,o,i){this._activeShellIntegrations.get(e)?.setEnv(n,o,i)}$cwdChange(e,n){this._activeShellIntegrations.get(e)?.setCwd(this._convertCwdToUri(n))}$closeTerminal(e){this._activeShellIntegrations.get(e)?.dispose(),this._activeShellIntegrations.delete(e)}_convertCwdToUri(e){return e?y.file(e):void 0}};Bg=_([C(0,ie),C(1,Io)],Bg);var mM=class extends O{constructor(e,n,o){super();this._terminal=e;this._onDidStartTerminalShellExecution=o;this._pendingExecutions=[];this.store=this._register(new $);this._onDidRequestChangeShellIntegration=this._register(new T);this.onDidRequestChangeShellIntegration=this._onDidRequestChangeShellIntegration.event;this._onDidRequestShellExecution=this._register(new T);this.onDidRequestShellExecution=this._onDidRequestShellExecution.event;this._onDidRequestEndExecution=this._register(new T);this.onDidRequestEndExecution=this._onDidRequestEndExecution.event;this._onDidRequestNewExecution=this._register(new T);this.onDidRequestNewExecution=this._onDidRequestNewExecution.event;let i=this;this.value={get cwd(){return i._cwd},get env(){if(i._env)return Object.freeze({isTrusted:i._env.isTrusted,value:Object.freeze({...i._env.value})})},executeCommand(s,a){if(!n)throw new Error("This terminal does not support the executeCommand API.");let l=s;if(a)for(let u of a)!u.match(/["'`]/)&&u.match(/\s/)?l+=` "${u}"`:l+=` ${u}`;i._onDidRequestShellExecution.fire(l);let d={value:l,confidence:2,isTrusted:!0};return i.requestNewShellExecution(d,i._cwd).value}}}get currentExecution(){return this._currentExecution}requestNewShellExecution(e,n){let o=new FT(e,n??this._cwd);return UT(e.value).length>1&&(this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:UT(e.value)}),this._pendingExecutions.push(o),this._onDidRequestNewExecution.fire(e.value),o}startShellExecution(e,n){if(this._pendingEndingExecution&&(this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._pendingEndingExecution.value,exitCode:void 0}),this._pendingEndingExecution=void 0),this._currentExecution){if(this._currentExecutionProperties?.isMultiLine&&this._currentExecutionProperties.unresolvedCommandLines){let i=KW(this._currentExecutionProperties.unresolvedCommandLines,e);if(i){this._currentExecutionProperties.unresolvedCommandLines=i.unresolvedCommandLines;return}}this._currentExecution.endExecution(void 0),this._currentExecution.flush(),this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._currentExecution.value,exitCode:void 0})}let o;if(e.confidence===2)for(let[i,s]of this._pendingExecutions.entries())if(s.value.commandLine.value===e.value){o=s,this._currentExecutionProperties={isMultiLine:!1,unresolvedCommandLines:void 0},o=s,this._pendingExecutions.splice(i,1);break}else{let a=KW(UT(s.value.commandLine.value),e);if(a){this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:a.unresolvedCommandLines},o=s,this._pendingExecutions.splice(i,1);break}}else o=this._pendingExecutions.shift();o||(o=new FT(e,n??this._cwd)),this._currentExecution=o,this._onDidStartTerminalShellExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._currentExecution.value})}emitData(e){this.currentExecution?.emitData(e)}endShellExecution(e,n){if(!(this._currentExecutionProperties?.isMultiLine&&this._currentExecutionProperties.unresolvedCommandLines&&this._currentExecutionProperties.unresolvedCommandLines.length>0)&&this._currentExecution){let o=this._currentExecutionProperties?.isMultiLine?this._currentExecution.value.commandLine:e;this._currentExecution.endExecution(o);let i=this._currentExecution;this._pendingEndingExecution=i,this._currentExecution=void 0,i.flush().then(()=>{this._pendingEndingExecution===i&&(this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:i.value,exitCode:n}),this._pendingEndingExecution=void 0)})}}setEnv(e,n,o){let i={};for(let s=0;s<e.length;s++)i[e[s]]=n[s];this._env={value:i,isTrusted:o},this._fireChangeEvent()}setCwd(e){let n=!1;y.isUri(this._cwd)?n=!y.isUri(e)||this._cwd.toString()!==e.toString():this._cwd!==e&&(n=!0),n&&(this._cwd=e,this._fireChangeEvent())}_fireChangeEvent(){this._onDidRequestChangeShellIntegration.fire({terminal:this._terminal,shellIntegration:this.value})}},FT=class{constructor(t,e){this._commandLine=t;this.cwd=e;this._isEnded=!1;let n=this;this.value={get commandLine(){return n._commandLine},get cwd(){return n.cwd},read(){return n._createDataStream()}}}_createDataStream(){if(!this._dataStream){if(this._isEnded)return ep.EMPTY;this._dataStream=new gM}return this._dataStream.createIterable()}emitData(t){this._isEnded||this._dataStream?.emitData(t)}endExecution(t){t&&(this._commandLine=t),this._dataStream?.endExecution(),this._isEnded=!0}async flush(){this._dataStream&&(await this._dataStream.flush(),this._dataStream.dispose(),this._dataStream=void 0)}},gM=class extends O{constructor(){super(...arguments);this._iterables=[];this._emitters=[]}createIterable(){this._barrier||(this._barrier=new hn);let e=this._barrier,n=new ep(async o=>{this._emitters.push(o),await e.wait()});return this._iterables.push(n),n}emitData(e){for(let n of this._emitters)n.emitOne(e)}endExecution(){this._barrier?.open()}async flush(){await Promise.all(this._iterables.map(e=>e.toPromise()))}};function UT(r){return r.split(`
`).map(t=>t.trim()).filter(t=>t.length>0)}function KW(r,t){if(r.length===0)return!1;let e=[...r],n=UT(t.value);if(e&&e.length>0){for(;e.length>0&&e[0]===n[0];)e.shift(),n.shift();if(n.length===0)return{unresolvedCommandLines:e}}return!1}var zg=class{constructor(t){this.dataBuffer="";this.eventTypeBuffer="";this.buffer=[];this.endedOnCR=!1;this.onEventHandler=t,this.decoder=new TextDecoder("utf-8")}getLastEventId(){return this.lastEventIdBuffer}getReconnectionTime(){return this.reconnectionTime}feed(t){if(t.length===0)return;let e=0;for(this.endedOnCR&&t[0]===10&&e++,this.endedOnCR=!1;e<t.length;){let n=t.indexOf(13,e),o=t.indexOf(10,e),i=n===-1?o:o===-1?n:Math.min(n,o);if(i===-1)break;let s="";for(let a of this.buffer)s+=this.decoder.decode(a,{stream:!0});s+=this.decoder.decode(t.subarray(e,i)),this.processLine(s),this.buffer.length=0,e=i+(t[i]===13&&t[i+1]===10?2:1)}e<t.length?this.buffer.push(t.subarray(e)):this.endedOnCR=t[t.length-1]===13}processLine(t){if(!t.length){this.dispatchEvent();return}if(t.startsWith(":"))return;let e,n,o=t.indexOf(":");o===-1?(e=t,n=""):(e=t.substring(0,o),n=t.substring(o+1),n.startsWith(" ")&&(n=n.substring(1))),this.processField(e,n)}processField(t,e){switch(t){case"event":this.eventTypeBuffer=e;break;case"data":this.dataBuffer+=e,this.dataBuffer+=`
`;break;case"id":e.includes("\0")?this.currentEventId=void 0:this.currentEventId=this.lastEventIdBuffer=e;break;case"retry":/^\d+$/.test(e)&&(this.reconnectionTime=parseInt(e,10));break}}dispatchEvent(){if(this.dataBuffer===""){this.dataBuffer="",this.eventTypeBuffer="";return}this.dataBuffer.endsWith(`
`)&&(this.dataBuffer=this.dataBuffer.substring(0,this.dataBuffer.length-1));let t={type:this.eventTypeBuffer||"message",data:this.dataBuffer};this.currentEventId!==void 0&&(t.id=this.currentEventId),this.reconnectionTime!==void 0&&(t.retry=this.reconnectionTime),this.onEventHandler(t),this.reset()}reset(){this.dataBuffer="",this.eventTypeBuffer="",this.currentEventId=void 0}};var gb=class{validateOrThrow(t){let e=this.validate(t);if(e.error)throw new Error(e.error.message);return e.content}},qg=class extends gb{constructor(e){super();this.type=e}validate(e){return typeof e!==this.type?{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof e}`}}:{content:e,error:void 0}}getJSONSchema(){return{type:this.type}}},Pq=new qg("string");function hb(){return Pq}var _q=new qg("number");function jW(){return _q}var H5e=new qg("boolean");var Dq=new qg("object");function HT(){return Dq}var fb=class{constructor(t){this.validator=t}};function mu(r){return new fb(r)}var fM=class extends gb{constructor(e){super();this.properties=e}validate(e){if(typeof e!="object"||e===null)return{content:void 0,error:{message:"Expected object"}};let n={};for(let o in this.properties){let i=this.properties[o],s=e[o],a=i instanceof fb,l=a?i.validator:i;if(a&&s===void 0)continue;let{content:d,error:c}=l.validate(s);if(c)return{content:void 0,error:{message:`Error in property '${o}': ${c.message}`}};n[o]=d}return{content:n,error:void 0}}getJSONSchema(){let e=[],n={};for(let[i,s]of Object.entries(this.properties)){let a=s instanceof fb,l=a?s.validator:s;n[i]=l.getJSONSchema(),a||e.push(i)}return{type:"object",properties:n,...e.length>0?{required:e}:{}}}};function vb(r){return new fM(r)}var hM=class extends gb{constructor(e){super();this.validator=e}validate(e){if(!Array.isArray(e))return{content:void 0,error:{message:"Expected array"}};let n=[];for(let o=0;o<e.length;o++){let{content:i,error:s}=this.validator.validate(e[o]);if(s)return{content:void 0,error:{message:`Error in element ${o}: ${s.message}`}};n.push(i)}return{content:n,error:void 0}}getJSONSchema(){return{type:"array",items:this.validator.getJSONSchema()}}};function vM(r){return new hM(r)}var gu=R("IExtHostMpcService"),Rq=vb({label:hb(),version:mu(hb()),metadata:mu(vb({capabilities:mu(HT()),serverInfo:mu(HT()),tools:mu(vM(vb({availability:jW(),definition:HT()})))})),authentication:mu(vb({providerId:hb(),scopes:vM(hb())}))}),bd=class extends O{constructor(e,n,o,i,s){super();this._logService=n;this._extHostInitData=o;this._workspaceService=i;this._variableResolver=s;this._initialProviderPromises=new Set;this._sseEventSources=this._register(new jn);this._unresolvedMcpServers=new Map;this._onDidChangeMcpServerDefinitions=this._register(new T);this.onDidChangeMcpServerDefinitions=this._onDidChangeMcpServerDefinitions.event;this._mcpServerDefinitions=[];this._proxy=e.getProxy(U.MainThreadMcp)}get mcpServerDefinitions(){return this._mcpServerDefinitions}$onDidChangeMcpServerDefinitions(e){this._mcpServerDefinitions=e.map(n=>Wm.to(n)),this._onDidChangeMcpServerDefinitions.fire()}$startMcp(e,n){this._startMcp(e,yc.fromSerialized(n.launch),n.defaultCwd&&y.revive(n.defaultCwd),n.errorOnUserInteraction)}_startMcp(e,n,o,i){if(n.type===2){this._sseEventSources.set(e,new bb(e,n,this._proxy,this._logService,i));return}throw new Error("not implemented")}async $substituteVariables(e,n){let o=y.revive(e),i=o&&await this._workspaceService.resolveWorkspaceFolder(o);return(await this._variableResolver.getResolver()).resolveAsync(i&&{uri:i.uri,name:i.name,index:i.index},n)}$stopMcp(e){this._sseEventSources.get(e)?.close().then(()=>this._didClose(e))}_didClose(e){this._sseEventSources.deleteAndDispose(e)}$sendMessage(e,n){this._sseEventSources.get(e)?.send(n)}async $waitForInitialCollectionProviders(){await Promise.all(this._initialProviderPromises)}async $resolveMcpLaunch(e,n){let o=this._unresolvedMcpServers.get(e);if(!o)return;let i=o.servers.find(a=>a.label===n);if(!i)return;if(!o.provider.resolveMcpServerDefinition)return Wm.from(i);let s=await o.provider.resolveMcpServerDefinition(i,he.None);return s?Wm.from(s):void 0}registerMcpConfigurationProvider(e,n,o){let i=new $,s=e.contributes?.mcpServerDefinitionProviders?.find(c=>c.id===n);if(!s)throw new Error(`MCP configuration providers must be registered in the contributes.mcpServerDefinitionProviders array within your package.json, but "${n}" was not`);let a={id:FH(e.identifier,n),isTrustedByDefault:!0,label:s?.label??e.displayName??e.name,scope:1,canResolveLaunch:typeof o.resolveMcpServerDefinition=="function",extensionId:e.identifier.value,configTarget:this._extHostInitData.remote.isRemote?4:2},l=async()=>{let c=await o.provideMcpServerDefinitions(he.None);this._unresolvedMcpServers.set(a.id,{servers:c??[],provider:o});let u=[];for(let m of c??[]){let g=_e.toKey(e.identifier)+"/"+m.label;if(u.some(I=>I.id===g)){let I=2;for(;u.some(S=>S.id===g+I);)I++;g=g+I}Rq.validateOrThrow(m),m.authentication&&A(e,"mcpToolDefinitions");let h,f=m;Fe(e,"mcpToolDefinitions")&&f.metadata&&(h={capabilities:f.metadata.capabilities,instructions:f.metadata.instructions,serverInfo:f.metadata.serverInfo,tools:f.metadata.tools?.map(I=>({availability:I.availability===1?1:0,definition:I.definition}))}),u.push({id:g,label:m.label,cacheNonce:m.version||"$$NONE",staticMetadata:h,launch:Wm.from(m)})}this._proxy.$upsertMcpCollection(a,u)};i.add(G(()=>{this._unresolvedMcpServers.delete(a.id),this._proxy.$deleteMcpCollection(a.id)})),o.onDidChangeMcpServerDefinitions&&i.add(o.onDidChangeMcpServerDefinitions(l)),o.onDidChangeServerDefinitions&&i.add(o.onDidChangeServerDefinitions(l)),o.onDidChange&&i.add(o.onDidChange(l));let d=new Promise(c=>{setTimeout(()=>l().finally(()=>{this._initialProviderPromises.delete(d),c()}),0)});return this._initialProviderPromises.add(d),i}async startMcpGateway(){let e=await this._proxy.$startMcpGateway();if(!e)return;let n=y.revive(e.address),o=e.gatewayId;return{address:n,dispose:()=>{this._proxy.$disposeMcpGateway(o)}}}};bd=_([C(0,ie),C(1,oe),C(2,Ye),C(3,_n),C(4,Pr)],bd);var Aq=5,Mq=[301,302,303,307,308],bb=class extends O{constructor(e,n,o,i,s){super();this._id=e;this._launch=n;this._proxy=o;this._logService=i;this._errorOnUserInteraction=s;this._requestSequencer=new Yy;this._postEndpoint=new Kt;this._mode={value:0};this._cts=new Ce;this._abortCtrl=new AbortController;this._didSendClose=!1;this._register(G(()=>{this._abortCtrl.abort(),this._cts.dispose(!0)})),this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Running})}async send(e){try{this._mode.value===0?await this._requestSequencer.queue(()=>this._send(e)):await this._send(e)}catch(n){let o=`Error sending message to ${this._launch.uri}: ${String(n)}`;this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Error,message:o})}}async close(){if(this._mode.value===1&&this._mode.sessionId&&!this._didSendClose){this._didSendClose=!0;try{await this._closeSession(this._mode.sessionId)}catch{}}this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Stopped})}async _closeSession(e){let n={...Object.fromEntries(this._launch.headers),"Mcp-Session-Id":e};try{await this._addAuthHeader(n,{errorOnUserInteraction:!0})}catch{this._log(2,"Skipping session close: authentication no longer available");return}await this._fetch(this._launch.uri.toString(!0),{method:"DELETE",headers:n})}_send(e){return this._mode.value===2?this._sendLegacySSE(this._mode.endpoint,e):this._sendStreamableHttp(e,this._mode.value===1?this._mode.sessionId:void 0)}async _sendStreamableHttp(e,n){let o=new TextEncoder().encode(e),i={...Object.fromEntries(this._launch.headers),"Content-Type":"application/json","Content-Length":String(o.length),Accept:"text/event-stream, application/json"};n&&(i["Mcp-Session-Id"]=n),await this._addAuthHeader(i);let s=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"POST",headers:i,body:o},i),a=this._mode.value===0,l=s.headers.get("Mcp-Session-Id");if(l&&(this._mode={value:1,sessionId:l}),this._mode.value===0&&s.status>=400&&s.status<500&&!bM(s.status)){this._log(3,`${s.status} status sending message to ${this._launch.uri}, will attempt to fall back to legacy SSE`),this._sseFallbackWithMessage(e);return}if(s.status>=300){let d=this._mode.value===1&&!!this._mode.sessionId&&(s.status===400||s.status===404);this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Error,message:`${s.status} status sending message to ${this._launch.uri}: ${await this._getErrText(s)}`+(d?"; will retry with new session ID":""),shouldRetry:d});return}this._mode.value===0&&(this._mode={value:1,sessionId:void 0}),a&&this._attachStreamableBackchannel(),await this._handleSuccessfulStreamableHttp(s,e)}async _sseFallbackWithMessage(e){let n=await this._attachSSE();n&&(this._mode={value:2,endpoint:n},await this._sendLegacySSE(n,e))}async _handleSuccessfulStreamableHttp(e,n){if(e.status===202)return;let o=e.headers.get("Content-Type")?.toLowerCase()||"";if(o.startsWith("text/event-stream")){let i=new zg(s=>{if(s.type==="message")this._proxy.$onDidReceiveMessage(this._id,s.data);else if(s.type==="endpoint")throw this._log(4,`Received SSE endpoint from a POST to ${this._launch.uri}, will fall back to legacy SSE`),this._sseFallbackWithMessage(n),new Be});try{await this._doSSE(i,e)}catch(s){this._log(4,`Error reading SSE stream: ${String(s)}`)}}else if(o.startsWith("application/json"))this._proxy.$onDidReceiveMessage(this._id,await e.text());else{let i=await e.text();Lq(i)?this._proxy.$onDidReceiveMessage(this._id,i):this._log(4,`Unexpected ${e.status} response for request: ${i}`)}}async _attachStreamableBackchannel(){let e,n;for(let o=0;!this._store.isDisposed;o++){n!==void 0?(await Lt(Math.max(0,n-Date.now()),this._cts.token),n=void 0):await Lt(Math.min(o*1e3,3e4),this._cts.token);let i;try{let a={...Object.fromEntries(this._launch.headers),Accept:"text/event-stream"};await this._addAuthHeader(a),this._mode.value===1&&this._mode.sessionId!==void 0&&(a["Mcp-Session-Id"]=this._mode.sessionId),e&&(a["Last-Event-ID"]=e),i=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"GET",headers:a},a)}catch{this._log(3,`Error connecting to ${this._launch.uri} for async notifications, will retry`);continue}if(i.status>=400){this._log(2,`${i.status} status connecting to ${this._launch.uri} for async notifications; they will be disabled: ${await this._getErrText(i)}`);return}i.headers.get("content-type")?.toLowerCase().includes("text/event-stream")&&(o=0);let s=new zg(a=>{a.retry&&(n=Date.now()+a.retry),a.type==="message"&&a.data&&this._proxy.$onDidReceiveMessage(this._id,a.data),a.id&&(e=a.id)});try{await this._doSSE(s,i)}catch(a){this._log(3,`Error reading from async stream, we will reconnect: ${a}`)}}}async _attachSSE(){let e=new Kt,n={...Object.fromEntries(this._launch.headers),Accept:"text/event-stream"};await this._addAuthHeader(n);let o;try{if(o=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"GET",headers:n},n),o.status>=300){this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Error,message:`${o.status} status connecting to ${this._launch.uri} as SSE: ${await this._getErrText(o)}`});return}}catch(s){this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Error,message:`Error connecting to ${this._launch.uri} as SSE: ${s}`});return}let i=new zg(s=>{s.type==="message"?this._proxy.$onDidReceiveMessage(this._id,s.data):s.type==="endpoint"&&e.complete(new URL(s.data,this._launch.uri.toString(!0)).toString())});return this._register(G(()=>e.cancel())),this._doSSE(i,o).catch(s=>{this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Error,message:`Error reading SSE stream: ${String(s)}`})}),e.p}async _sendLegacySSE(e,n){let o=new TextEncoder().encode(n),i={...Object.fromEntries(this._launch.headers),"Content-Type":"application/json","Content-Length":String(o.length)};await this._addAuthHeader(i);let s=await this._fetch(e,{method:"POST",headers:i,body:o});s.status>=300&&this._log(4,`${s.status} status sending message to ${this._postEndpoint}: ${await this._getErrText(s)}`)}async _doSSE(e,n){if(!n.body)return;let o=n.body.getReader(),i;do{try{i=await rl(o.read(),this._cts.token)}catch(s){if(o.cancel(),this._store.isDisposed)return;throw s}i.value&&e.feed(i.value)}while(!i.done)}async _addAuthHeader(e,n){let o=n?.errorOnUserInteraction??this._errorOnUserInteraction;if(this._authMetadata)try{let i={authorizationServer:this._authMetadata.authorizationServer.toJSON(),authorizationServerMetadata:this._authMetadata.serverMetadata,resourceMetadata:this._authMetadata.resourceMetadata,scopes:this._authMetadata.scopes},s=await this._proxy.$getTokenFromServerMetadata(this._id,i,{errorOnUserInteraction:o,forceNewRegistration:n?.forceNewRegistration});s&&(e.Authorization=`Bearer ${s}`)}catch(i){if(pv.is(i))throw this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Stopped,reason:"needs-user-interaction"}),new Be;this._log(4,`Error getting token from server metadata: ${String(i)}`)}if(this._launch.authentication)try{this._log(2,`Using provided authentication config: providerId=${this._launch.authentication.providerId}, scopes=${this._launch.authentication.scopes.join(", ")}`);let i=await this._proxy.$getTokenForProviderId(this._id,this._launch.authentication.providerId,this._launch.authentication.scopes,{errorOnUserInteraction:o,forceNewRegistration:n?.forceNewRegistration});i&&(e.Authorization=`Bearer ${i}`,this._log(3,"Successfully obtained token from provided authentication config"))}catch(i){if(pv.is(i))throw this._proxy.$onDidChangeState(this._id,{state:ho.Kind.Stopped,reason:"needs-user-interaction"}),new Be;this._log(4,`Error getting token from provided authentication config: ${String(i)}`)}return e}_log(e,n){this._store.isDisposed||this._proxy.$onDidPublishLog(this._id,e,n)}async _getErrText(e){try{return await e.text()}catch{return e.statusText}}async _fetchWithAuthRetry(e,n,o){let i=()=>this._fetch(e,n),s=await i();if(bM(s.status)&&(this._authMetadata?this._authMetadata.update(s.headers)&&(await this._addAuthHeader(o),o.Authorization&&(n.headers=o,s=await i())):(this._authMetadata=await Oq(e,s.headers,{sameOriginHeaders:{...Object.fromEntries(this._launch.headers),"MCP-Protocol-Version":uv.LATEST_PROTOCOL_VERSION},fetch:(a,l)=>this._fetch(a,l),log:(a,l)=>this._log(a,l)}),this._proxy.$logMcpAuthSetup(this._authMetadata.telemetry),await this._addAuthHeader(o),o.Authorization&&(n.headers=o,s=await i()))),o.Authorization&&bM(s.status)){let a=await this._getErrText(s);this._log(3,`Received ${s.status} status with Authorization header, retrying with new auth registration. Error details: ${a||"no additional details"}`),await this._addAuthHeader(o,{forceNewRegistration:!0}),s=await i()}return s}async _fetch(e,n){if(n.headers["user-agent"]=`${Ho.nameLong}/${Ho.version}`,EI(this._logService.getLevel(),1)){let s={...n,headers:{...n.headers}};s.body&&(s.body=new TextDecoder().decode(s.body)),s.headers?.Authorization&&(s.headers.Authorization="***"),this._log(1,`Fetching ${e} with options: ${JSON.stringify(s)}`)}let o=e,i;for(let s=0;s<Aq&&(i=await this._fetchInternal(o,{...n,signal:this._abortCtrl.signal,redirect:"manual"}),!!Mq.includes(i.status));s++){let a=i.headers.get("location");if(!a)break;let l=new URL(a,o).toString();this._log(1,`Redirect (${i.status}) from ${o} to ${l}`),o=l,(i.status===303||(i.status===301||i.status===302)&&n.method==="POST")&&(n.method="GET",delete n.body)}if(EI(this._logService.getLevel(),1)){let s={};i.headers.forEach((a,l)=>{s[l]=a}),this._log(1,`Fetched ${o}: ${JSON.stringify({status:i.status,headers:s})}`)}return i}_fetchInternal(e,n){return fetch(e,n)}};function Lq(r){try{return JSON.parse(r),!0}catch{return!1}}function bM(r){return r===401||r===403}var WT=class{constructor(t,e,n,o,i,s){this.authorizationServer=t;this.serverMetadata=e;this.resourceMetadata=n;this.telemetry=i;this._log=s;this._scopes=o}get scopes(){return this._scopes}update(t){let e=this._parseScopesFromResponse(t);return dW(e,this._scopes)?!1:(this._log(3,`Scopes changed from ${JSON.stringify(this._scopes)} to ${JSON.stringify(e)}, updating`),this._scopes=e,!0)}_parseScopesFromResponse(t){let e=t.get("WWW-Authenticate");if(!e)return;let n=u0(e);for(let o of n)if(o.scheme==="Bearer"&&o.params.scope){let i=o.params.scope.split(mT).filter(s=>s.trim().length);if(i.length)return this._log(3,`Found scope challenge in WWW-Authenticate header: ${o.params.scope}`),i}}};async function Oq(r,t,e){let{sameOriginHeaders:n,fetch:o,log:i}=e,s="none",a,{resourceMetadataChallenge:l,scopesChallenge:d}=Nq(t.get("WWW-Authenticate")??void 0,i),c,u,m=d;try{let{metadata:I,discoveryUrl:S,errors:E}=await cW(r,l,{sameOriginHeaders:n,fetch:(P,L)=>o(P,L)});for(let P of E)i(4,`Error fetching resource metadata: ${P}`);i(3,`Discovered resource metadata at ${S}`),s=l?"header":"wellKnown",c=I.authorization_servers?.[0],c?(i(3,`Using auth server metadata url: ${c}`),a="resourceMetadata"):i(4,`No authorization_servers found in resource metadata ${S} - Is this resource metadata configured correctly?`),m??=I.scopes_supported,u=I}catch(I){i(4,`Could not fetch resource metadata: ${String(I)}`)}let g=new URL(r).origin,h={};c||(c=g,n&&(h=n));try{i(2,`Fetching auth server metadata for: ${c} ...`);let{metadata:I,discoveryUrl:S,errors:E}=await uW(c,{additionalHeaders:h,fetch:(P,L)=>o(P,L)});for(let P of E)i(4,`Error fetching authorization server metadata: ${P}`);return i(3,`Discovered authorization server metadata at ${S}`),a??="wellKnown",new WT(y.parse(c),I,u,m,{resourceMetadataSource:s,serverMetadataSource:a},i)}catch(I){i(4,`Error populating auth server metadata for ${c}: ${String(I)}`)}let f=lW(new URL(g));return i(3,"Using default auth metadata"),new WT(y.parse(g),f,u,m,{resourceMetadataSource:s,serverMetadataSource:"default"},i)}function Nq(r,t){if(!r)return{};let e,n,o=u0(r);for(let i of o)if(i.scheme==="Bearer"){if(!e&&i.params.resource_metadata&&(e=i.params.resource_metadata,t(2,`Found resource_metadata challenge in WWW-Authenticate header: ${e}`)),!n&&i.params.scope){let s=i.params.scope.split(mT).filter(a=>a.trim().length);s.length&&(t(2,`Found scope challenge in WWW-Authenticate header: ${i.params.scope}`),n=s)}if(e&&n)break}return{resourceMetadataChallenge:e,scopesChallenge:n}}var BT=R("IExtHostDataChannels"),VT=class{constructor(){this._channels=new Map}createDataChannel(t,e){A(t,"dataChannels");let n=this._channels.get(e);return n||(n=new yM(e),this._channels.set(e,n)),n}$onDidReceiveData(t,e){let n=this._channels.get(t);n&&n._fireDidReceiveData(e)}},yM=class extends O{constructor(e){super();this.channelId=e;this._onDidReceiveData=new T;this.onDidReceiveData=this._onDidReceiveData.event;this._register(this._onDidReceiveData)}_fireDidReceiveData(e){this._onDidReceiveData.fire({data:e})}toString(){return`DataChannel(${this.channelId})`}};var zT=R("IExtHostMeteredConnection"),$T=class extends O{constructor(){super();this._isConnectionMetered=!1;this._onDidChangeIsConnectionMetered=this._register(new T);this.onDidChangeIsConnectionMetered=this._onDidChangeIsConnectionMetered.event}get isConnectionMetered(){return this._isConnectionMetered}$initializeIsConnectionMetered(e){this._isConnectionMetered=e}$onDidChangeIsConnectionMetered(e){this._isConnectionMetered!==e&&(this._isConnectionMetered=e,this._onDidChangeIsConnectionMetered.fire(e))}};var qT="vscode.git";function GW(r){switch(r){case 0:return 0;case 1:return 1;case 2:return 2;default:throw new Error(`Unknown GitRefType: ${r}`)}}function Uq(r){return{name:r.name,commit:r.commit,type:GW(r.type),remote:r.remote,base:r.base,upstream:r.upstream?Fq(r.upstream):void 0,ahead:r.ahead,behind:r.behind}}function Fq(r){return{remote:r.remote,name:r.name,commit:r.commit}}function yb(r){switch(r.status){case 1:case 7:case 9:return{uri:r.uri,originalUri:void 0,modifiedUri:r.uri};case 2:case 6:return{uri:r.uri,originalUri:r.uri,modifiedUri:void 0};case 3:case 10:return{uri:r.uri,originalUri:r.originalUri,modifiedUri:r.renameUri};default:return{uri:r.uri,originalUri:r.originalUri,modifiedUri:r.uri}}}var KT=R("IExtHostGitExtensionService"),yd=class extends O{constructor(e,n){super();this._extHostExtensionService=n;this._repositories=new Map;this._repositoryByUri=new Ge;this._disposables=this._register(new $);this._proxy=e.getProxy(U.MainThreadGitExtension)}static{this._handlePool=0}async $isGitExtensionAvailable(){return!!(await this._extHostExtensionService.getExtensionRegistry()).getExtensionDescription(qT)}async $openRepository(e){let n=await this._ensureGitApi();if(!n)return;let o=await n.openRepository(y.revive(e));if(!o)return;let i=this._repositoryByUri.get(o.rootUri);if(i!==void 0){let d=await this._getRepositoryState(o);return{handle:i,rootUri:o.rootUri,state:d}}let s=o.state;s.HEAD===void 0&&(await fe.toPromise(s.onDidChange,this._disposables),s=o.state);let a=yd._handlePool++;this._repositories.set(a,o),this._repositoryByUri.set(o.rootUri,a),this._disposables.add(o.state.onDidChange(()=>{this._proxy.$onDidChangeRepository(a)}));let l=await this._getRepositoryState(o);return{handle:a,rootUri:o.rootUri,state:l}}async $getRefs(e,n,o){let i=this._repositories.get(e);if(!i)return[];try{return(await i.getRefs(n,o)).map(l=>!l.name||!l.commit?void 0:{id:l.type===0?`refs/heads/${l.name}`:l.type===1?`refs/remotes/${l.remote}/${l.name}`:`refs/tags/${l.name}`,name:l.name,type:GW(l.type),revision:l.commit}).filter(l=>!!l)}catch{return[]}}async $getRepositoryState(e){let n=this._repositories.get(e);if(n)return this._getRepositoryState(n)}async _getRepositoryState(e){let n=e.state,o=await this._getBranchBase(e);return{HEAD:n.HEAD?Uq({...n.HEAD,base:o}):void 0,mergeChanges:n.mergeChanges.map(yb),indexChanges:n.indexChanges.map(yb),workingTreeChanges:n.workingTreeChanges.map(yb),untrackedChanges:n.untrackedChanges.map(yb)}}async _getBranchBase(e){let n=e.state;if(!n.HEAD?.name)return;let o=await e.getBranchBase(n.HEAD.name);if(!o?.name)return;let i=e.isBranchProtected(o);return{name:o.name,isProtected:i}}async $diffBetweenWithStats(e,n,o,i){let s=this._repositories.get(e);if(!s)return[];try{return(await s.diffBetweenWithStats(n,o,i)).map(l=>({...yb(l),insertions:l.insertions,deletions:l.deletions}))}catch{return[]}}async _ensureGitApi(){if(this._gitApi)return this._gitApi;try{await this._extHostExtensionService.activateByIdWithErrors(new _e(qT),{startup:!1,extensionId:new _e(qT),activationEvent:"api"});let e=this._extHostExtensionService.getExtensionExports(new _e(qT));e&&typeof e.getAPI=="function"&&(this._gitApi=e.getAPI(1))}catch{}return this._gitApi}dispose(){this._disposables.dispose(),super.dispose()}};yd=_([C(0,ie),C(1,ao)],yd);qe(Sg,xg,1);qe(Wo,vd,1);qe(Ai,wg,1);qe(Dn,dg,0);qe(au,ug,0);qe(gg,ud,0);qe(vn,Qm,0);qe(Ds,qo,0);qe(Ma,Og,0);qe(Ug,Ng,0);qe(ST,As,0);qe(kr,_g,0);qe(Tg,Cg,0);qe(Ur,NI,0);qe(xT,Pg,1);qe(Wg,hd,0);qe(eg,Zm,0);qe(Ag,Rg,0);qe(Io,cg,0);qe($g,Bg,0);qe(sd,id,0);qe(iu,dd,0);qe(NT,Vg,0);qe(su,cd,0);qe(_n,Km,0);qe(Ig,yg,0);qe(Li,Lg,0);qe(Pr,fd,0);qe(gu,bd,0);qe(BT,VT,0);qe(zT,$T,0);qe(KT,yd,1);var Kg=class extends ou{constructor(t,e){super(!0,t,e)}createTerminal(t,e,n){return this.createTerminalFromOptions({name:t,shellPath:e,shellArgs:n})}createTerminalFromOptions(t,e){let n=new ru(this._proxy,Le(),t,t.name);return this._terminals.push(n),n.create(t,this._serializeParentTerminal(t,e)),n.value}};Kg=_([C(0,Dn),C(1,ie)],Kg);import*as IM from"child_process";import{promises as YW}from"fs";function QW(r,...t){let e=t.reduce((i,s)=>(i[s]=!0,i),{}),n=[/^ELECTRON_.+$/,/^VSCODE_(?!(PORTABLE|SHELL_LOGIN|ENV_REPLACE|ENV_APPEND|ENV_PREPEND)).+$/,/^SNAP(|_.*)$/,/^GDK_PIXBUF_.+$/];Object.keys(r).filter(i=>!e[i]).forEach(i=>{for(let s=0;s<n.length;s++)if(i.search(n[s])!==-1){delete r[i];break}})}function JW(r){r&&(delete r.DEBUG,Qe&&delete r.LD_PRELOAD)}function jT(r=Co){return r.comspec||"cmd.exe"}function XW(r){let t=[],e=!1,n=function(o){if(e){t.push(o);return}(!r.send(o,s=>{if(s&&console.error(s),e=!1,t.length>0){let a=t.slice(0);t=[],a.forEach(l=>n(l))}})||Ie)&&(e=!0)};return{send:n}}async function Hq(r){if(await rt.exists(r)){let t;try{t=await YW.stat(r)}catch(e){e.message.startsWith("EACCES")&&(t=await YW.lstat(r))}return t?!t.isDirectory():!1}return!1}async function fu(r,t,e,n=Co,o=Hq){if(In(r))return await o(r)?r:void 0;if(t===void 0&&(t=ri()),on(r)!=="."){let l=Oe(t,r);return await o(l)?l:void 0}let s=i_(n,"PATH");if(e===void 0&&Pe(s)&&(e=s.split(Gu)),e===void 0||e.length===0){let l=Oe(t,r);return await o(l)?l:void 0}for(let l of e){let d;if(In(l)?d=Oe(l,r):d=Oe(t,l,r),Ie){let u=(i_(n,"PATHEXT")||".COM;.EXE;.BAT;.CMD").split(";").map(async m=>{let g=d+m;return await o(g)?g:void 0});for(let m of u){let g=await m;if(g)return g}}if(await o(d))return d}let a=Oe(t,r);return await o(a)?a:void 0}async function Ib(r,t=!1){let e;if(Ie){let n=process.env.WINDIR||"C:\\Windows",o=Oe(n,"System32","taskkill.exe"),i=["/T"];t&&i.push("/F"),i.push("/PID",String(r)),e=IM.spawn(o,i,{stdio:["ignore","pipe","pipe"]})}else{let n=nl.asFileUri("vs/base/node/terminateProcess.sh").fsPath;e=IM.spawn("/bin/sh",[n,String(r),t?"9":"15"],{stdio:["ignore","pipe","pipe"]})}return new Promise((n,o)=>{let i=[];e.stdout.on("data",s=>i.push(s)),e.stderr.on("data",s=>i.push(s)),e.on("error",o),e.on("exit",s=>{s===0?n():o(new Error(`taskkill exited with code ${s}: ${Buffer.concat(i).toString()}`))})})}import{homedir as Wq}from"os";var jg=class extends cu{constructor(e,n,o,i,s,a,l,d,c){super(e,n,o,i,s,a,l,d);this.workspaceService=o;this.variableResolver=c;n.remote.isRemote&&n.remote.authority?this.registerTaskSystem(V.vscodeRemote,{scheme:V.vscodeRemote,authority:n.remote.authority,platform:process.platform}):this.registerTaskSystem(V.file,{scheme:V.file,authority:"",platform:process.platform}),this._proxy.$registerSupportedExecutions(!0,!0,!0)}async executeTask(e,n){let o=n;if(!n.execution&&o._id===void 0)throw new Error("Tasks to execute must include an execution");if(o._id!==void 0){let i=G0.from(o,this.workspaceService),s=await this._proxy.$getTaskExecution(i);if(s.task===void 0)throw new Error("Task from execution DTO is undefined");let a=await this.getTaskExecution(s,n);return this._proxy.$executeTask(i).catch(()=>{}),a}else{let i=Ms.from(n,e);if(i===void 0)return Promise.reject(new Error("Task is not valid"));Mi.is(i.execution)&&await this.addCustomExecution(i,n,!1);let s=await this.getTaskExecution(await this._proxy.$getTaskExecution(i),n);return this._proxy.$executeTask(i).catch(()=>{}),s}}provideTasksInternal(e,n,o,i){let s=[];if(i)for(let a of i){this.checkDeprecation(a,o),(!a.definition||!e[a.definition.type])&&this._logService.warn(`The task [${a.source}, ${a.name}] uses an undefined task type. The task will be ignored in the future.`);let l=Ms.from(a,o.extension);l&&(s.push(l),Mi.is(l.execution)&&n.push(this.addCustomExecution(l,a,!0)))}return{tasks:s,extension:o.extension}}async resolveTaskInternal(e){return e}async getAFolder(e){let n=e&&e.length>0?e[0]:void 0;if(!n){let o=y.file(Wq());n=new ic({uri:o,name:qt(o),index:0})}return{uri:n.uri,name:n.name,index:n.index,toResource:()=>{throw new Error("Not implemented")}}}async $resolveVariables(e,n){let o=y.revive(e),i={process:void 0,variables:Object.create(null)},s=await this._workspaceProvider.resolveWorkspaceFolder(o),a=await this._workspaceProvider.getWorkspaceFolders2()??[],l=await this.variableResolver.getResolver(),d=s?{uri:s.uri,name:s.name,index:s.index,toResource:()=>{throw new Error("Not implemented")}}:await this.getAFolder(a);for(let c of n.variables)i.variables[c]=await l.resolveAsync(d,c);if(n.process!==void 0){let c;if(n.process.path!==void 0){c=n.process.path.split(Gu);for(let h=0;h<c.length;h++)c[h]=await l.resolveAsync(d,c[h])}let u=await l.resolveAsync(d,n.process.name),m=n.process.cwd!==void 0?await l.resolveAsync(d,n.process.cwd):void 0,g=await fu(u,m,c);g?i.process=g:In(u)?i.process=u:i.process=Oe(m??"",u)}return i}async $jsonTasksSupported(){return!0}async $findExecutable(e,n,o){return fu(e,n,o)}};jg=_([C(0,ie),C(1,Ye),C(2,_n),C(3,kr),C(4,vn),C(5,Io),C(6,oe),C(7,Ai),C(8,Pr)],jg);import*as Id from"child_process";var O8e=R("externalTerminal"),Gg="Terminal.app";var eV=p(2066,null),xb=class{async getDefaultTerminalForPlatforms(){return{windows:Sb.getDefaultTerminalWindows(),linux:await Cb.getDefaultTerminalLinuxReady(),osx:Gg}}},Oi=class Oi extends xb{static{this.CMD="cmd.exe"}openTerminal(t,e){return this.spawnTerminal(Id,t,jT(),e)}spawnTerminal(t,e,n,o){let i=e.windowsExec||Oi.getDefaultTerminalWindows();o&&o[1]===":"&&(o=o[0].toUpperCase()+o.substr(1));let s=at(i,".exe").toLowerCase();if(s==="cmder")return t.spawn(i,o?[o]:void 0),Promise.resolve(void 0);let a=["/c","start","/wait"];return i.indexOf(" ")>=0&&a.push(i),a.push(i),s==="wt"&&a.push("-d ."),new Promise((l,d)=>{let c=hu(process),u=t.spawn(n,a,{cwd:o,env:c,detached:!0});u.on("error",d),u.on("exit",()=>l())})}async runInTerminal(t,e,n,o,i){let s=i.windowsExec||Oi.getDefaultTerminalWindows(),a=await Oi.getWtExePath();return new Promise((l,d)=>{let c=`"${e} - ${eV}"`,u=`"${n.join('" "')}" & pause`,m=Object.assign({},hu(process),o);Object.keys(m).filter(S=>m[S]===null).forEach(S=>delete m[S]);let g={cwd:e,env:m,windowsVerbatimArguments:!0},h,f;at(s,".exe")==="wt"?(h=s,f=["-d",".",Oi.CMD,"/c",u]):a?(h=a,f=["-d",".",s,"/c",u]):(h=Oi.CMD,f=["/c","start",c,"/wait",s,"/c",`"${u}"`]),Id.spawn(h,f,g).on("error",S=>{d(tV(S))}),l(void 0)})}static getDefaultTerminalWindows(){if(!Oi._DEFAULT_TERMINAL_WINDOWS){let t=!!process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432");Oi._DEFAULT_TERMINAL_WINDOWS=`${process.env.windir?process.env.windir:"C:\\Windows"}\\${t?"Sysnative":"System32"}\\cmd.exe`}return Oi._DEFAULT_TERMINAL_WINDOWS}static async getWtExePath(){try{return await fu("wt")}catch{return}}};_([iI],Oi,"getWtExePath",1);var Sb=Oi,GT=class r extends xb{static{this.OSASCRIPT="/usr/bin/osascript"}openTerminal(t,e){return this.spawnTerminal(Id,t,e)}runInTerminal(t,e,n,o,i){let s=i.osxExec||Gg;return new Promise((a,l)=>{if(s===Gg||s==="iTerm.app"){let d=s===Gg?"TerminalHelper":"iTermHelper",u=[nl.asFileUri(`vs/workbench/contrib/externalTerminal/node/${d}.scpt`).fsPath,"-t",t||eV,"-w",e];for(let g of n)u.push("-a"),u.push(g);if(o){let g=Object.assign({},hu(process),o);for(let h in g){let f=g[h];f===null?(u.push("-u"),u.push(h)):(u.push("-e"),u.push(`${h}=${f}`))}}let m=Id.spawn(r.OSASCRIPT,u);xM(m,a,l,s)}else if(s==="Ghostty.app"){let d=Object.assign({},hu(process),o),c=["-na","Ghostty.app","--args"];c.push("--working-directory="+e),c.push("--wait-after-command=true"),c.push("-e",...n);let u=Id.spawn("/usr/bin/open",c,{env:d});xM(u,a,l,s)}else l(new Error(p(2068,null,s)))})}spawnTerminal(t,e,n){let o=e.osxExec||Gg;return new Promise((i,s)=>{let a=["-a",o];n&&a.push(n);let l=hu(process),d=t.spawn("/usr/bin/open",a,{cwd:n,env:l});d.on("error",s),d.on("exit",()=>i())})}},Cb=class r extends xb{static{this.WAIT_MESSAGE=p(2069,null)}openTerminal(t,e){return this.spawnTerminal(Id,t,e)}runInTerminal(t,e,n,o,i){let s=i.linuxExec?Promise.resolve(i.linuxExec):r.getDefaultTerminalLinuxReady();return new Promise((a,l)=>{s.then(d=>{if(at(d).toLowerCase()==="ghostty"){let g=[];e&&g.push(`--working-directory=${e}`),g.push("--wait-after-command=true"),n.length&&g.push("-e",...n),r.spawnTerminalWithEnv(d,g,e,o,a,l);return}let u=[];d.indexOf("gnome-terminal")>=0?u.push("-x"):u.push("-e"),u.push("bash"),u.push("-c");let m=`${Vq(n)}; echo; read -p "${r.WAIT_MESSAGE}" -n1;`;u.push(`''${m}''`),r.spawnTerminalWithEnv(d,u,e,o,a,l)})})}static spawnTerminalWithEnv(t,e,n,o,i,s){let a=Object.assign({},hu(process),o);Object.keys(a).filter(d=>a[d]===null).forEach(d=>delete a[d]);let l=Id.spawn(t,e,{cwd:n,env:a});xM(l,i,s,t)}static async getDefaultTerminalLinuxReady(){if(!r._DEFAULT_TERMINAL_LINUX_READY)if(!Qe)r._DEFAULT_TERMINAL_LINUX_READY=Promise.resolve("xterm");else{let t=await rt.exists("/etc/debian_version");r._DEFAULT_TERMINAL_LINUX_READY=new Promise(e=>{t?e("x-terminal-emulator"):process.env.DESKTOP_SESSION==="gnome"||process.env.DESKTOP_SESSION==="gnome-classic"?e("gnome-terminal"):process.env.DESKTOP_SESSION==="kde-plasma"?e("konsole"):process.env.COLORTERM?e(process.env.COLORTERM):process.env.TERM?e(process.env.TERM):e("xterm")})}return r._DEFAULT_TERMINAL_LINUX_READY}spawnTerminal(t,e,n){let o=e.linuxExec?Promise.resolve(e.linuxExec):r.getDefaultTerminalLinuxReady();return new Promise((i,s)=>{o.then(a=>{let l=hu(process),c=at(a).toLowerCase()==="ghostty"&&n?[`--working-directory=${n}`]:[],u=t.spawn(a,c,{cwd:n,env:l});u.on("error",s),u.on("exit",()=>i())})})}};function hu(r){let t={...r.env};return QW(t),t}function tV(r){return r.errno==="ENOENT"&&r.path?new Error(p(2067,null,r.path)):r}function xM(r,t,e,n){let o="";r.on("error",i=>{e(tV(i))}),r.stderr?.on("data",i=>{o+=i.toString()}),r.on("exit",i=>{if(i===0)t(void 0);else if(o){let s=o.split(`
`,1);e(new Error(s[0]))}else e(new Error(p(2070,null,n,i)))})}function Vq(r){let t="";for(let e of r)e.indexOf(" ")>=0?t+='"'+e+'"':t+=e,t+=" ";return t}var QT=class r{constructor(){this.validators=new Map}static{this._nextId=1}async createNewMessage(t){try{let e=await this.getValidator();if(e){let n=String(r._nextId++);return this.validators.set(n,e),{id:n,data:e.createNewMessage(t)}}}catch{}return{id:"",data:t}}async validate(t,e){if(!t.id)return!0;let n=this.validators.get(t.id);if(!n)return!1;this.validators.delete(t.id);try{return n.validate(e)==="ok"}catch{return!1}finally{n.dispose?.()}}async sign(t){try{return await this.signValue(t)}catch{}return t}};var Qg=class extends QT{getValidator(){return this.vsda().then(t=>new t.validator)}signValue(t){return this.vsda().then(e=>new e.signer().sign(t))}async vsda(){let t="vsda",{default:e}=await import(t);return e}};import*as eE from"child_process";import*as SM from"net";var JT=class r extends Mg{constructor(){super();this.rawData=Buffer.allocUnsafe(0);this.contentLength=-1}static{this.TWO_CRLF=`\r
\r
`}static{this.HEADER_LINESEPARATOR=/\r?\n/}static{this.HEADER_FIELDSEPARATOR=/: */}connect(e,n){this.outputStream=n,this.rawData=Buffer.allocUnsafe(0),this.contentLength=-1,e.on("data",o=>this.handleData(o))}sendMessage(e){if(this.outputStream){let n=JSON.stringify(e);this.outputStream.write(`Content-Length: ${Buffer.byteLength(n,"utf8")}${r.TWO_CRLF}${n}`,"utf8")}}handleData(e){for(this.rawData=Buffer.concat([this.rawData,e]);;){if(this.contentLength>=0){if(this.rawData.length>=this.contentLength){let n=this.rawData.toString("utf8",0,this.contentLength);if(this.rawData=this.rawData.slice(this.contentLength),this.contentLength=-1,n.length>0)try{this.acceptMessage(JSON.parse(n))}catch(o){this._onError.fire(new Error((o.message||o)+`
`+n))}continue}}else{let n=this.rawData.indexOf(r.TWO_CRLF);if(n!==-1){let i=this.rawData.toString("utf8",0,n).split(r.HEADER_LINESEPARATOR);for(let s of i){let a=s.split(r.HEADER_FIELDSEPARATOR);a[0]==="Content-Length"&&(this.contentLength=Number(a[1]))}this.rawData=this.rawData.slice(n+r.TWO_CRLF.length);continue}}break}}},YT=class extends JT{startSession(){return new Promise((t,e)=>{let n=!1;this.socket=this.createConnection(()=>{this.connect(this.socket,this.socket),t(),n=!0}),this.socket.on("close",()=>{n?this._onError.fire(new Error("connection closed")):e(new Error("connection closed"))}),this.socket.on("error",o=>{o instanceof AggregateError&&(o=o.errors[0]),n?this._onError.fire(o):e(o)})})}async stopSession(){await this.cancelPendingRequests(),this.socket&&(this.socket.end(),this.socket=void 0)}},XT=class extends YT{constructor(e){super();this.adapterServer=e}createConnection(e){return SM.createConnection(this.adapterServer.port,this.adapterServer.host||"127.0.0.1",e)}},ZT=class extends YT{constructor(e){super();this.adapterServer=e}createConnection(e){return SM.createConnection(this.adapterServer.path,e)}},Tb=class r extends JT{constructor(e,n){super();this.adapterExecutable=e;this.debugType=n}async startSession(){let e=this.adapterExecutable.command,n=this.adapterExecutable.args,o=this.adapterExecutable.options||{};try{if(e)if(In(e)){if(!await rt.exists(e))throw new Error(p(9578,null,e))}else e.indexOf("/")<0&&e.indexOf("\\")<0;else throw new Error(p(9579,null,this.debugType));let i=process.env;if(o.env&&Object.keys(o.env).length>0&&(i=Uo(it(process.env),o.env)),e==="node")if(Array.isArray(n)&&n.length>0){let s=!!process.env.ELECTRON_RUN_AS_NODE||!!process.versions.electron,a={env:i,execArgv:s?["-e","delete process.env.ELECTRON_RUN_AS_NODE;require(process.argv[1])"]:[],silent:!0};o.cwd&&(a.cwd=o.cwd);let l=eE.fork(n[0],n.slice(1),a);if(!l.pid)throw new Error(p(9580,null,n[0]));this.serverProcess=l}else throw new Error(p(9581,null));else{let s=e,a=n,l={env:i};o.cwd&&(l.cwd=o.cwd),Ie&&(e.endsWith(".bat")||e.endsWith(".cmd"))&&(l.shell=!0,s=`"${e}"`,a=n.map(d=>(d=d.replace(/"/g,'\\"'),`"${d}"`))),this.serverProcess=eE.spawn(s,a,l)}this.serverProcess.on("error",s=>{this._onError.fire(s)}),this.serverProcess.on("exit",(s,a)=>{this._onExit.fire(s)}),this.serverProcess.stdout.on("close",()=>{this._onError.fire(new Error("read error"))}),this.serverProcess.stdout.on("error",s=>{this._onError.fire(s)}),this.serverProcess.stdin.on("error",s=>{this._onError.fire(s)}),this.serverProcess.stderr.resume(),this.connect(this.serverProcess.stdout,this.serverProcess.stdin)}catch(i){this._onError.fire(i)}}async stopSession(){return this.serverProcess?(await this.cancelPendingRequests(),Ie?Ib(this.serverProcess.pid,!0).catch(()=>{this.serverProcess?.kill()}):(this.serverProcess.kill("SIGTERM"),Promise.resolve(void 0))):Promise.resolve(void 0)}static extract(e,n){if(!e)return;let o=Object.create(null);e.runtime&&(e.runtime.indexOf("./")===0?o.runtime=Oe(n,e.runtime):o.runtime=e.runtime),e.runtimeArgs&&(o.runtimeArgs=e.runtimeArgs),e.program&&(In(e.program)?o.program=e.program:o.program=Oe(n,e.program)),e.args&&(o.args=e.args);let i=e;return i.win&&(o.win=r.extract(i.win,n)),i.winx86&&(o.winx86=r.extract(i.winx86,n)),i.windows&&(o.windows=r.extract(i.windows,n)),i.osx&&(o.osx=r.extract(i.osx,n)),i.linux&&(o.linux=r.extract(i.linux,n)),o}static platformAdapterExecutable(e,n){let o=Object.create(null);n=n.toLowerCase();for(let c of e)if(c.contributes){let u=c.contributes.debuggers;u&&u.length>0&&u.filter(m=>typeof m.type=="string"&&xn(m.type,n)).forEach(m=>{let g=r.extract(m,c.extensionLocation.fsPath);o=Uo(o,g,c.isBuiltin)})}let i;Ie&&!process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?i=o.winx86||o.win||o.windows:Ie?i=o.win||o.windows:ut?i=o.osx:Qe&&(i=o.linux),i=i||o;let s=i.program||o.program,a=i.args||o.args,l=i.runtime||o.runtime,d=i.runtimeArgs||o.runtimeArgs;if(l)return{type:"executable",command:l,args:(d||[]).concat(typeof s=="string"?[s]:[]).concat(a||[])};if(s)return{type:"executable",command:s,args:a||[]}}};import*as nV from"child_process";function Bq(r,t){return new Promise((e,n)=>{let o="",i=nV.spawn(r,t);i.pid&&i.stdout.on("data",s=>{o+=s.toString()}),i.on("error",s=>{n(s)}),i.on("close",s=>{e(o)})})}async function oV(r){if(r)if(Ie){let t=await import("@vscode/windows-process-tree");return new Promise(e=>{t.getProcessTree(r,n=>{e(!!n&&n.children.length>0)})})}else return Bq("/usr/bin/pgrep",["-lP",String(r)]).then(t=>{let e=t.trim();return!(e.length===0||e.indexOf(" tmux")>=0)},t=>!0);return Promise.resolve(!0)}function rV(r,t,e,n,o){r=r.trim().toLowerCase();let i;r.indexOf("powershell")>=0||r.indexOf("pwsh")>=0?i=1:r.indexOf("cmd.exe")>=0?i=0:r.indexOf("bash")>=0?i=2:Ie?i=0:i=2;let s,a=" ";switch(i){case 1:if(s=l=>(l=l.replace(/\'/g,"''"),l.length>0&&l.charAt(l.length-1)==="\\"?`'${l}\\'`:`'${l}'`),n){let l=bP(n);l&&(a+=`${l}:; `),a+=`cd ${s(n)}; `}if(o)for(let l in o){let d=o[l];d===null?a+=`Remove-Item env:${l}; `:a+=`\${env:${l}}='${d}'; `}if(t.length>0){let l=t.shift(),d=e?l:s(l);a+=d[0]==="'"?`& ${d} `:`${d} `;for(let c of t)a+=c==="<"||c===">"||e?c:s(c),a+=" "}break;case 0:if(s=l=>(l=l.replace(/\"/g,'""'),l=l.replace(/([><!^&|])/g,"^$1"),' "'.split("").some(d=>l.includes(d))||l.length===0?`"${l}"`:l),n){let l=bP(n);l&&(a+=`${l}: && `),a+=`cd ${s(n)} && `}if(o){a+='cmd /C "';for(let l in o){let d=o[l];d===null?a+=`set "${l}=" && `:(d=d.replace(/[&^|<>]/g,c=>`^${c}`),a+=`set "${l}=${d}" && `)}}for(let l of t)a+=l==="<"||l===">"||e?l:s(l),a+=" ";o&&(a+='"');break;case 2:{s=d=>(d=d.replace(/(["'\\\$!><#()\[\]*&^| ;{}?`])/g,"\\$1"),d.length===0?'""':d);let l=d=>/[^\w@%\/+=,.:^-]/.test(d)?`'${d.replace(/'/g,"'\\''")}'`:d;if(n&&(a+=`cd ${s(n)} ; `),o){a+="/usr/bin/env";for(let d in o){let c=o[d];c===null?a+=` -u ${l(d)}`:a+=` ${l(`${d}=${c}`)}`}a+=" "}for(let d of t)a+=d==="<"||d===">"||e?d:s(d),a+=" ";break}}return a}var Jg=class extends uu{constructor(e,n,o,i,s,a,l,d,c,u){super(e,n,o,i,l,d,c,u);this._terminalService=s;this._terminalShellIntegrationService=a;this._integratedTerminalInstances=new CM}createDebugAdapter(e,n){return e instanceof Ei?new Tb(this.convertExecutableToDto(e),n.type):e instanceof wi?new XT(this.convertServerToDto(e)):e instanceof bs?new ZT(this.convertPipeServerToDto(e)):super.createDebugAdapter(e,n)}daExecutableFromPackage(e,n){let o=Tb.platformAdapterExecutable(n.getAllExtensionDescriptions(),e.type);if(o)return new Ei(o.command,o.args,o.options)}createSignService(){return new Qg}async $runInTerminal(e,n){if(e.kind==="integrated"){this._terminalDisposedListener||(this._terminalDisposedListener=this._register(this._terminalService.onDidCloseTerminal(f=>{this._integratedTerminalInstances.onTerminalClosed(f)})));let o=await this._configurationService.getConfigProvider(),i=this._terminalService.getDefaultShell(!0),s=this._terminalService.getDefaultShellArgs(!0),a=e.title||p(3345,null),l=JSON.stringify({shell:i,shellArgs:s}),d=await this._integratedTerminalInstances.checkout(l,a),c,u=!1;if(d)c=e.cwd;else{let f={shellPath:i,shellArgs:s,cwd:e.cwd,name:a,iconPath:new an("debug")};u=!0,d=this._terminalService.createTerminalFromOptions(f,{isFeatureTerminal:!0,forceShellIntegration:!0,useShellEnvironment:!0}),this._integratedTerminalInstances.insert(d,l)}d.show(!0);let m=await d.processId;if(u){let f;(P=>(P[P.DataDebounce=500]="DataDebounce",P[P.MaxDelay=5e3]="MaxDelay"))(f||={});let I=new $;await new Promise(S=>{let E=I.add(new Wn(S,500));I.add(this._terminalService.onDidWriteTerminalData(P=>{P.terminal===d&&E.schedule()})),I.add(this._terminalShellIntegrationService.onDidChangeTerminalShellIntegration(P=>{P.terminal===d&&S()})),I.add(dh(S,5e3))}),I.dispose()}else if(d.state.isInteractedWith&&!d.shellIntegration&&(d.sendText(""),await Lt(200)),o.getConfiguration("debug.terminal").get("clearBeforeReusing")){let f;if(i.indexOf("powershell")>=0||i.indexOf("pwsh")>=0||i.indexOf("cmd.exe")>=0?f="cls":i.indexOf("bash")>=0?f="clear":Ie?f="cls":f="clear",d.shellIntegration){let I=new $,S=d.shellIntegration.executeCommand(f);await new Promise(E=>{I.add(this._terminalShellIntegrationService.onDidEndTerminalShellExecution(P=>{P.execution===S&&E()})),I.add(dh(E,500))}),I.dispose()}else d.sendText(f),await Lt(200)}let g=rV(i,e.args,!!e.argsCanBeInterpretedByShell,c,e.env);d.shellIntegration?d.shellIntegration.executeCommand(g):d.sendText(g);let h=this.onDidTerminateDebugSession(f=>{f.id===n&&(this._integratedTerminalInstances.free(d),h.dispose())});return m}else if(e.kind==="external")return $q(e,await this._configurationService.getConfigProvider());return super.$runInTerminal(e,n)}};Jg=_([C(0,ie),C(1,_n),C(2,ao),C(3,vn),C(4,Io),C(5,$g),C(6,Li),C(7,Pr),C(8,Dn),C(9,Ma)],Jg);var Eb;function $q(r,t){if(!Eb)if(Ie)Eb=new Sb;else if(ut)Eb=new GT;else if(Qe)Eb=new Cb;else throw new Error("external terminals not supported on this platform");let e=t.getConfiguration("terminal");return Eb.runInTerminal(r.title,r.cwd,r.args,r.env||{},e.external||{})}var CM=class r{constructor(){this._terminalInstances=new Map}static{this.minUseDelay=1e3}async checkout(t,e,n=!1){let i=[...this._terminalInstances.entries()].map(([s,a])=>rr(async l=>{if(s.name!==e||a.lastUsedAt!==-1&&await oV(await s.processId))return null;let d=Date.now();return a.lastUsedAt+r.minUseDelay>d||l.isCancellationRequested?null:a.config!==t?(n&&s.dispose(),null):(a.lastUsedAt=d,s)}));return await aU(i,s=>!!s)}insert(t,e){this._terminalInstances.set(t,{lastUsedAt:Date.now(),config:e})}free(t){let e=this._terminalInstances.get(t);e&&(e.lastUsedAt=-1)}onTerminalClosed(t){this._terminalInstances.delete(t)}};var iV=new pt(()=>{let r=fg.Collator(void 0,{numeric:!0,sensitivity:"base"}).value;return{collator:r,collatorIsNumeric:r.resolvedOptions().numeric}}),P7e=new pt(()=>({collator:fg.Collator(void 0,{numeric:!0}).value})),_7e=new pt(()=>({collator:fg.Collator(void 0,{numeric:!0,sensitivity:"accent"}).value}));function sV(r,t,e=!1){let n=r||"",o=t||"",i=iV.value.collator.compare(n,o);return iV.value.collatorIsNumeric&&i===0&&n!==o?n<o?-1:1:i}function zq(r,t,e=!1){return e||(r=r&&r.toLowerCase(),t=t&&t.toLowerCase()),r===t?0:r<t?-1:1}function wb(r,t,e=!1){let n=r.split(bt),o=t.split(bt),i=n.length-1,s=o.length-1,a,l;for(let d=0;;d++){if(a=i===d,l=s===d,a&&l)return sV(n[d],o[d],e);if(a)return-1;if(l)return 1;let c=zq(n[d],o[d],e);if(c!==0)return c}}function tE(r,t,e){let n=r.toLowerCase(),o=t.toLowerCase(),i=qq(r,t,e);if(i)return i;let s=n.endsWith(e),a=o.endsWith(e);if(s!==a)return s?-1:1;let l=sV(n,o);return l!==0?l:n.localeCompare(o)}function qq(r,t,e){let n=r.toLowerCase(),o=t.toLowerCase(),i=n.startsWith(e),s=o.startsWith(e);if(i!==s)return i?-1:1;if(i&&s){if(n.length<o.length)return-1;if(n.length>o.length)return 1}return 0}var oE=0,aV=[oE,[]];function lV(r,t,e,n){if(!r||!t)return aV;let o=r.length,i=t.length;if(o<i)return aV;let s=r.toLowerCase();return Kq(t,e,i,r,s,o,n)}function Kq(r,t,e,n,o,i,s){let a=[],l=[];for(let m=0;m<e;m++){let g=m*i,h=g-i,f=m>0,I=r[m],S=t[m];for(let E=0;E<i;E++){let P=E>0,L=g+E,j=L-1,F=h+E-1,z=P?a[j]:0,J=f&&P?a[F]:0,Y=f&&P?l[F]:0,X;!J&&f?X=0:X=jq(I,S,n,o,E,Y),X&&J+X>=z&&(s||f||o.startsWith(t,E))?(l[L]=Y+1,a[L]=J+X):(l[L]=oE,a[L]=z)}}let d=[],c=e-1,u=i-1;for(;c>=0&&u>=0;){let m=c*i+u;l[m]===oE||(d.push(u),c--),u--}return[a[e*i-1],d.reverse()]}function jq(r,t,e,n,o,i){let s=0;if(!Gq(t,n[o]))return s;if(s+=1,i>0&&(s+=Math.min(i,3)*6+Math.max(0,i-3)*3),r===e[o]&&(s+=1),o===0)s+=8;else{let a=Qq(e.charCodeAt(o-1));a?s+=a:gp(e.charCodeAt(o))&&i===0&&(s+=2)}return s}function Gq(r,t){return r===t?!0:r==="/"||r==="\\"?t==="/"||t==="\\":!1}function Qq(r){switch(r){case 47:case 92:return 5;case 95:case 45:case 46:case 32:case 39:case 34:case 58:return 4;default:return 0}}var rE=Object.freeze({score:0}),nE=1<<18,TM=1<<17,EM=65536;function Jq(r,t,e,n){let o=n.values?n.values:[n];return oo({[n.normalized]:{values:o.map(s=>({value:s.normalized,expectContiguousMatch:s.expectContiguousMatch})),label:r,description:t,allowNonContiguousMatches:e}})}function dV(r,t,e,n,o){if(!r||!t.normalized)return rE;let i=n.getItemLabel(r);if(!i)return rE;let s=n.getItemDescription(r),a=Jq(i,s,e,t),l=o[a];if(l)return l;let d=Yq(i,s,n.getItemPath(r),t,e);return o[a]=d,d}function Yq(r,t,e,n,o){let i=!e||!n.containsPathSeparator;return e&&(Qe?n.pathNormalized===e:xn(n.pathNormalized,e))?{score:nE,labelMatch:[{start:0,end:r.length}],descriptionMatch:t?[{start:0,end:t.length}]:void 0}:n.values&&n.values.length>1?Xq(r,t,e,n.values,i,o):fV(r,t,e,n,i,o)}function Xq(r,t,e,n,o,i){let s=0,a=[],l=[];for(let d of n){let{score:c,labelMatch:u,descriptionMatch:m}=fV(r,t,e,d,o,i);if(c===oE)return rE;s+=c,u&&a.push(...u),m&&l.push(...m)}return{score:s,labelMatch:uV(a),descriptionMatch:uV(l)}}function fV(r,t,e,n,o,i){if(o||!t){let[s,a]=lV(r,n.normalized,n.normalizedLowercase,i&&!n.expectContiguousMatch);if(s){let l=HI(n.normalized,r),d;if(l){d=TM;let c=Math.round(n.normalized.length/r.length*100);d+=c}else d=EM;return{score:d+s,labelMatch:l||cV(a)}}}if(t){let s=t;e&&(s=`${t}${bt}`);let a=s.length,l=`${s}${r}`,[d,c]=lV(l,n.normalized,n.normalizedLowercase,i&&!n.expectContiguousMatch);if(d){let u=cV(c),m=[],g=[];return u.forEach(h=>{h.start<a&&h.end>a?(m.push({start:0,end:h.end-a}),g.push({start:h.start,end:a})):h.start>=a?m.push({start:h.start-a,end:h.end-a}):g.push(h)}),{score:d,labelMatch:m,descriptionMatch:g}}}return rE}function cV(r){let t=[];if(!r)return t;let e;for(let n of r)e&&e.end===n?e.end+=1:(e={start:n,end:n+1},t.push(e));return t}function uV(r){let t=r.sort((o,i)=>o.start-i.start),e=[],n;for(let o of t)!n||!Zq(n,o)?(n=o,e.push(o)):(n.start=Math.min(n.start,o.start),n.end=Math.max(n.end,o.end));return e}function Zq(r,t){return!(r.end<t.start||t.end<r.start)}function hV(r,t,e,n,o,i){let s=dV(r,e,n,o,i),a=dV(t,e,n,o,i),l=s.score,d=a.score;if((l===nE||d===nE)&&l!==d)return l===nE?-1:1;if(l>EM||d>EM){if(l!==d)return l>d?-1:1;if(l<TM&&d<TM){let I=eK(s.labelMatch,a.labelMatch);if(I!==0)return I}let h=o.getItemLabel(r)||"",f=o.getItemLabel(t)||"";if(h.length!==f.length)return h.length-f.length}if(l!==d)return l>d?-1:1;let c=Array.isArray(s.labelMatch)&&s.labelMatch.length>0,u=Array.isArray(a.labelMatch)&&a.labelMatch.length>0;if(c&&!u)return-1;if(u&&!c)return 1;let m=pV(r,s,o),g=pV(t,a,o);return m&&g&&m!==g?g>m?-1:1:tK(r,t,e,o)}function pV(r,t,e){let n=-1,o=-1;if(t.descriptionMatch?.length?n=t.descriptionMatch[0].start:t.labelMatch?.length&&(n=t.labelMatch[0].start),t.labelMatch?.length){if(o=t.labelMatch[t.labelMatch.length-1].end,t.descriptionMatch?.length){let i=e.getItemDescription(r);i&&(o+=i.length)}}else t.descriptionMatch?.length&&(o=t.descriptionMatch[t.descriptionMatch.length-1].end);return o-n}function eK(r,t){if(!r&&!t||!r?.length&&!t?.length)return 0;if(!t?.length)return-1;if(!r?.length)return 1;let e=r[0].start,o=r[r.length-1].end-e,i=t[0].start,a=t[t.length-1].end-i;return o===a?0:a<o?1:-1}function tK(r,t,e,n){let o=n.getItemLabel(r)||"",i=n.getItemLabel(t)||"",s=n.getItemDescription(r),a=n.getItemDescription(t),l=o.length+(s?s.length:0),d=i.length+(a?a.length:0);if(l!==d)return l-d;let c=n.getItemPath(r),u=n.getItemPath(t);return c&&u&&c.length!==u.length?c.length-u.length:o!==i?tE(o,i,e.normalized):s&&a&&s!==a?tE(s,a,e.normalized):c&&u&&c!==u?tE(c,u,e.normalized):0}function mV(r){return r.startsWith('"')&&r.endsWith('"')}var nK=" ";function kb(r){typeof r!="string"&&(r="");let t=r.toLowerCase(),{pathNormalized:e,normalized:n,normalizedLowercase:o}=gV(r),i=e.indexOf(bt)>=0,s=mV(r),a,l=r.split(nK);if(l.length>1)for(let d of l){let c=mV(d),{pathNormalized:u,normalized:m,normalizedLowercase:g}=gV(d);m&&(a||(a=[]),a.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:u,normalized:m,normalizedLowercase:g,expectContiguousMatch:c}))}return{original:r,originalLowercase:t,pathNormalized:e,normalized:n,normalizedLowercase:o,values:a,containsPathSeparator:i,expectContiguousMatch:s}}function gV(r){let t;Ie?t=r.replace(/\//g,bt):t=r.replace(/\\/g,bt);let e=t.replace(/[\*\u2026\s"]/g,"").replace(/(?<=.)#$/,"");return{pathNormalized:t,normalized:e,normalizedLowercase:e.toLowerCase()}}import*as CV from"child_process";import*as Xg from"fs";import{StringDecoder as SV}from"string_decoder";import*as yV from"child_process";function Yg(r){return r.startsWith("**")||r.startsWith("/")?r:`/${r}`}function vV(r){return new zm(r.start.line,r.start.character,r.end.line,r.end.character)}function wM(r){return new Bm(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn)}var vu=class{constructor(t,e){this.prefix=t;this.logService=e}appendLine(t){this.logService.debug(`${this.prefix}#search`,t)}};vu=_([C(1,oe)],vu);import{rgPath as oK}from"@vscode/ripgrep";var bV=oK.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked");function IV(r,t,e,n,o){let i=rK(r,t,e,n,o),s=t.folder.fsPath;return{cmd:yV.spawn(bV,i.args,{cwd:s}),rgDiskPath:bV,siblingClauses:i.siblingClauses,rgArgs:i,cwd:s}}function rK(r,t,e,n,o){let i=["--files","--hidden","--case-sensitive","--no-require-git"];(r.ignoreGlobCase||t.ignoreGlobCase)&&(i.push("--glob-case-insensitive"),i.push("--ignore-file-case-insensitive")),sK([t],e,!1).forEach(a=>{let l=Yg(a);if(i.push("-g",l),ut){let d=oI(l);d!==l&&i.push("-g",d)}});let s=iK([t],n,void 0,!1);return s.globArgs.forEach(a=>{let l=`!${Yg(a)}`;if(i.push("-g",l),ut){let d=oI(l);d!==l&&i.push("-g",d)}}),t.disregardIgnoreFiles!==!1?i.push("--no-ignore"):t.disregardParentIgnoreFiles!==!1&&i.push("--no-ignore-parent"),t.ignoreSymlinks||i.push("--follow"),r.exists&&i.push("--quiet"),o&&i.push("--threads",`${o}`),i.push("--no-config"),t.disregardGlobalIgnoreFiles&&i.push("--no-ignore-global"),{args:i,siblingClauses:s.siblingClauses}}function iK(r,t,e,n=!0){let o=[],i={};return r.forEach(s=>{let a=Object.assign({},s.excludePattern||{},t||{}),l=xV(a,n?s.folder.fsPath:void 0,e);o.push(...l.globArgs),l.siblingClauses&&(i=Object.assign(i,l.siblingClauses))}),{globArgs:o,siblingClauses:i}}function sK(r,t,e=!0){let n=[];return r.forEach(o=>{let i=Object.assign({},t||{},o.includePattern||{}),s=xV(i,e?o.folder.fsPath:void 0);n.push(...s.globArgs)}),n}function xV(r,t,e){let n=[],o={};return Object.keys(r).forEach(i=>{if(e&&e.has(i)||!i)return;let s=r[i];i=lK(t?aK(t,i):i),i.startsWith("\\\\")?i="\\\\"+i.substr(2).replace(/\\/g,"/"):i=i.replace(/\\/g,"/"),typeof s=="boolean"&&s?(i.startsWith("\\\\")&&(i+="**"),n.push(dK(i))):s&&s.when&&(o[i]=s)}),{globArgs:n,siblingClauses:o}}function aK(r,t){return In(t)?t:Oe(r,t)}function lK(r){return r=nr(r,"\\"),nr(r,"/")}function dK(r){return th(r).toLowerCase()==="c:/"?r.replace(/^c:[/\\]/i,"/"):r}var iE=new Set;process.on("exit",()=>{iE.forEach(r=>r())});var kM=class{constructor(t){this.normalizedFilePatternLowercase=null;this.maxFilesize=null;this.isCanceled=!1;this.fileWalkSW=null;this.cmdSW=null;this.cmdResultCount=0;this.config=t,this.filePattern=t.filePattern||"";let e=t.ignoreGlobCase?{ignoreCase:!0}:void 0;this.includePattern=t.includePattern&&vo(t.includePattern,e),this.maxResults=t.maxResults||null,this.exists=!!t.exists,this.walkedPaths=Object.create(null),this.resultCount=0,this.isLimitHit=!1,this.directoriesWalked=0,this.filesWalked=0,this.errors=[],this.filePattern&&(this.normalizedFilePatternLowercase=t.shouldGlobMatchFilePattern?null:kb(this.filePattern).normalizedLowercase),this.globalExcludePattern=t.excludePattern&&vo(t.excludePattern,e),this.folderExcludePatterns=new Map,t.folderQueries.forEach(n=>{let o={};n.excludePattern?.forEach(s=>{Object.assign(o,s.pattern||{},this.config.excludePattern||{})}),n.excludePattern?.length||Object.assign(o,this.config.excludePattern||{});let i=n.folder.fsPath;t.folderQueries.map(s=>s.folder.fsPath).filter(s=>s!==i).forEach(s=>{vr(s,i,t.ignoreGlobCase)&&(o[ii(i,s)]=!0)}),this.folderExcludePatterns.set(i,new PM(o,i,t.ignoreGlobCase))})}cancel(){this.isCanceled=!0,iE.forEach(t=>t())}walk(t,e,n,o,i,s){if(this.fileWalkSW=Zt.create(!1),this.isCanceled)return s(null,this.isLimitHit);e.forEach(a=>{let l=at(a.fsPath);this.globalExcludePattern&&this.globalExcludePattern(a.fsPath,l)||this.matchFile(o,{relativePath:a.fsPath,searchPath:void 0})}),this.cmdSW=Zt.create(!1),this.parallel(t,(a,l)=>{this.call(this.cmdTraversal,this,a,n,o,i,d=>{if(d){let c=fo(d);console.error(c),this.errors.push(c),l(d,void 0)}else l(null,void 0)})},(a,l)=>{this.fileWalkSW.stop();let d=a?nt(a)[0]:null;s(d,this.isLimitHit)})}parallel(t,e,n){let o=new Array(t.length),i=new Array(t.length),s=!1,a=0;if(t.length===0)return n(null,[]);t.forEach((l,d)=>{e(l,(c,u)=>{if(c?(s=!0,o[d]=null,i[d]=c):(o[d]=u,i[d]=null),++a===t.length)return n(s?i:null,o)})})}call(t,e,...n){try{t.apply(e,n)}catch(o){n[n.length-1](o)}}cmdTraversal(t,e,n,o,i){let s=t.folder.fsPath,a=ut,l=()=>g&&g.kill();iE.add(l);let d=S=>{iE.delete(l),d=()=>{},i(S)},c="",u=this.initDirectoryTree(),m=IV(this.config,t,this.config.includePattern,this.folderExcludePatterns.get(t.folder.fsPath).expression,e),g=m.cmd,h=!Object.keys(m.siblingClauses).length,f=m.rgArgs.args.map(S=>S.match(/^-/)?S:`'${S}'`).join(" "),I=`${m.rgDiskPath} ${f}
 - cwd: ${m.cwd}`;m.rgArgs.siblingClauses&&(I+=`
 - Sibling clauses: ${JSON.stringify(m.rgArgs.siblingClauses)}`),o({message:I}),this.cmdResultCount=0,this.collectStdout(g,"utf8",o,(S,E,P)=>{if(S){d(S);return}if(this.isLimitHit){d();return}let j=(c+(a?qd(E||""):E)).split(`
`);if(P){let F=j.length;j[F-1]=j[F-1].trim(),j[F-1]||j.pop()}else c=j.pop()||"";if(j.length&&j[0].indexOf(`
`)!==-1){d(new Error("Splitting up files failed"));return}if(this.cmdResultCount+=j.length,h){for(let F of j)if(this.matchFile(n,{base:s,relativePath:F,searchPath:this.getSearchPath(t,F)}),this.isLimitHit){l();break}(P||this.isLimitHit)&&d();return}this.addDirectoryEntries(t,u,s,j,n),P&&(this.matchDirectoryTree(u,s,n),d())})}spawnFindCmd(t){let e=this.folderExcludePatterns.get(t.folder.fsPath),n=e.getBasenameTerms(),o=e.getPathTerms(),i=["-L","."];if(n.length||o.length){i.push("-not","(","(");for(let s of n)i.push("-name",s),i.push("-o");for(let s of o)i.push("-path",s),i.push("-o");i.pop(),i.push(")","-prune",")")}return i.push("-type","f"),CV.spawn("find",i,{cwd:t.folder.fsPath})}readStdout(t,e,n){let o="";this.collectStdout(t,e,()=>{},(i,s,a)=>{if(i){n(i);return}o+=s,a&&n(null,o)})}collectStdout(t,e,n,o){let i=(l,d,c)=>{(l||c)&&(i=()=>{},this.cmdSW?.stop()),o(l,d,c)},s=!1;t.stdout?(this.forwardData(t.stdout,e,i),t.stdout.once("data",()=>s=!0)):n({message:"stdout is null"});let a;t.stderr?a=this.collectData(t.stderr):n({message:"stderr is null"}),t.on("error",l=>{i(l)}),t.on("close",l=>{let d;!s&&(d=this.decodeData(a,e))&&cK(d)?i(new Error(`command failed with error code ${l}: ${this.decodeData(a,e)}`)):(this.exists&&l===0&&(this.isLimitHit=!0),i(null,"",!0))})}forwardData(t,e,n){let o=new SV(e);return t.on("data",i=>{n(null,o.write(i))}),o}collectData(t){let e=[];return t.on("data",n=>{e.push(n)}),e}decodeData(t,e){let n=new SV(e);return t.map(o=>n.write(o)).join("")}initDirectoryTree(){let t={rootEntries:[],pathToEntries:Object.create(null)};return t.pathToEntries["."]=t.rootEntries,t}addDirectoryEntries(t,{pathToEntries:e},n,o,i){let s=this.filePattern&&o.find(l=>Qi(l,this.filePattern,this.config.ignoreGlobCase));s&&this.matchFile(i,{base:n,relativePath:s,searchPath:this.getSearchPath(t,s)});let a=l=>{let d=at(l),c=on(l),u=e[c];u||(u=e[c]=[],a(c)),u.push({base:n,relativePath:l,basename:d,searchPath:this.getSearchPath(t,l)})};o.forEach(a)}matchDirectoryTree({rootEntries:t,pathToEntries:e},n,o){let i=this,s=this.folderExcludePatterns.get(n),a=this.filePattern,l=this.config.ignoreGlobCase;function d(c){i.directoriesWalked++;let u=jv(()=>c.map(m=>m.basename));for(let m=0,g=c.length;m<g;m++){let h=c[m],{relativePath:f,basename:I}=h;if(s.test(f,I,Qi(a,I,l)?void 0:u))continue;let S=e[f];if(S)d(S);else{if(i.filesWalked++,Qi(f,a,l))continue;i.matchFile(o,h)}if(i.isLimitHit)break}}d(t)}getStats(){return{cmdTime:this.cmdSW.elapsed(),fileWalkTime:this.fileWalkSW.elapsed(),directoriesWalked:this.directoriesWalked,filesWalked:this.filesWalked,cmdResultCount:this.cmdResultCount}}doWalk(t,e,n,o,i){let s=t.folder,a=jv(()=>n);this.parallel(n,(l,d)=>{if(this.isCanceled||this.isLimitHit)return d(null);let c=e?[e,l].join(bt):l;if(this.folderExcludePatterns.get(t.folder.fsPath).test(c,l,Qi(this.config.filePattern,l,this.config.ignoreGlobCase)?void 0:a))return d(null);let u=[s.fsPath,c].join(bt);Xg.lstat(u,(m,g)=>{if(m||this.isCanceled||this.isLimitHit)return d(null);this.statLinkIfNeeded(u,g,(h,f)=>h||this.isCanceled||this.isLimitHit?d(null):f.isDirectory()?(this.directoriesWalked++,this.realPathIfNeeded(u,g,(I,S)=>I||this.isCanceled||this.isLimitHit||(S=S||"",this.walkedPaths[S])?d(null):(this.walkedPaths[S]=!0,rt.readdir(u).then(E=>{if(this.isCanceled||this.isLimitHit)return d(null);this.doWalk(t,c,E,o,P=>d(P||null))},E=>{d(null)})))):(this.filesWalked++,Qi(c,this.filePattern,this.config.ignoreGlobCase)||this.maxFilesize&&Rn(f.size)&&f.size>this.maxFilesize||this.matchFile(o,{base:s.fsPath,relativePath:c,searchPath:this.getSearchPath(t,c)}),d(null,void 0)))})},l=>{let d=l&&nt(l);return i(d&&d.length>0?d[0]:void 0)})}matchFile(t,e){this.isFileMatch(e)&&(!this.includePattern||this.includePattern(e.relativePath,at(e.relativePath)))&&(this.resultCount++,(this.exists||this.maxResults&&this.resultCount>this.maxResults)&&(this.isLimitHit=!0),this.isLimitHit||t(e))}isFileMatch(t){if(this.filePattern){if(this.filePattern==="*")return!0;if(this.normalizedFilePatternLowercase)return Kv(t,this.normalizedFilePatternLowercase);if(this.filePattern)return Kv(t,this.filePattern,!1)}return!0}statLinkIfNeeded(t,e,n){return e.isSymbolicLink()?Xg.stat(t,n):n(null,e)}realPathIfNeeded(t,e,n){return e.isSymbolicLink()?Xg.realpath(t,(o,i)=>o?n(o):n(null,i)):n(null,t)}getSearchPath(t,e){return t.folderName?Oe(t.folderName,e):e}},Pb=class{constructor(t,e){this.folderQueries=t.folderQueries,this.extraFiles=t.extraFileResources||[],this.numThreads=e,this.walker=new kM(t)}search(t,e,n){this.walker.walk(this.folderQueries,this.extraFiles,this.numThreads,t,e,(o,i)=>{n(o,{limitHit:i,stats:this.walker.getStats(),messages:[]})})}cancel(){this.walker.cancel()}},PM=class{constructor(t,e,n){this.expression=t;this.root=e;this.ignoreCase=n;this.init(t)}init(t){let e,n;Object.keys(t).filter(i=>t[i]).forEach(i=>{In(i)?(e=e||FR(),e[i]=t[i]):(n=n||FR(),n[i]=t[i])});let o={trimForExclusions:!0,ignoreCase:this.ignoreCase};this.absoluteParsedExpr=e&&vo(e,o),this.relativeParsedExpr=n&&vo(n,o)}test(t,e,n){return this.relativeParsedExpr&&this.relativeParsedExpr(t,e,n)||this.absoluteParsedExpr&&this.absoluteParsedExpr(Oe(this.root,t),e,n)}getBasenameTerms(){let t=[];return this.absoluteParsedExpr&&t.push(...WR(this.absoluteParsedExpr)),this.relativeParsedExpr&&t.push(...WR(this.relativeParsedExpr)),t}getPathTerms(){let t=[];return this.absoluteParsedExpr&&t.push(...VR(this.absoluteParsedExpr)),this.relativeParsedExpr&&t.push(...VR(this.relativeParsedExpr)),t}};function cK(r){let t=r.trim().split(`
`),e=t[0].trim();if(e.startsWith("Error parsing regex"))return e;if(e.startsWith("regex parse error"))return BN(t[t.length-1].trim());if(e.startsWith("error parsing glob")||e.startsWith("unsupported encoding"))return e.charAt(0).toUpperCase()+e.substr(1);if(e==="Literal '\\n' not allowed.")return"Literal '\\n' currently not supported";if(e.startsWith("Literal "))return e}import*as kV from"child_process";import{EventEmitter as uK}from"events";import{StringDecoder as pK}from"string_decoder";import{RegExpParser as mK,RegExpVisitor as gK}from"vscode-regexpp";import{rgPath as fK}from"@vscode/ripgrep";var TV=fK.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked"),Zg=class{constructor(t,e){this.outputChannel=t;this._numThreads=e}provideTextSearchResults(t,e,n,o){return Promise.all(e.folderOptions.map(i=>{let s={folderOptions:i,numThreads:this._numThreads,maxResults:e.maxResults,previewOptions:e.previewOptions,maxFileSize:e.maxFileSize,surroundingContext:e.surroundingContext};return this.provideTextSearchResultsWithRgOptions(t,s,n,o)})).then((i=>({limitHit:i.some(a=>!!a&&a.limitHit)})))}provideTextSearchResultsWithRgOptions(t,e,n,o){return this.outputChannel.appendLine(`provideTextSearchResults ${t.pattern}, ${JSON.stringify({...e,folder:e.folderOptions.folder.toString()})}`),t.pattern?new Promise((i,s)=>{o.onCancellationRequested(()=>f());let a={...e,numThreads:this._numThreads},l=bK(t,a),d=e.folderOptions.folder.fsPath,c=l.map(L=>L.match(/^-/)?L:`'${L}'`).join(" ");this.outputChannel.appendLine(`${TV} ${c}
 - cwd: ${d}`);let u=kV.spawn(TV,l,{cwd:d});u.on("error",L=>{console.error(L),this.outputChannel.appendLine("Error: "+(L&&L.message)),s(U1(new _s(L&&L.message,5)))});let m=!1,g=new _M(e.maxResults??td,e.folderOptions.folder,aM(e.previewOptions));g.on("result",L=>{m=!0,S="",n.report(L)});let h=!1,f=()=>{h=!0,u?.kill(),g?.cancel()},I=!1;g.on("hitLimit",()=>{I=!0,f()});let S="";u.stdout.on("data",L=>{g.handleData(L),m||(S+=L)});let E=!1;u.stdout.once("data",()=>E=!0);let P="";u.stderr.on("data",L=>{let j=L.toString();this.outputChannel.appendLine(j),P.length+j.length<1e6&&(P+=j)}),u.on("close",()=>{if(this.outputChannel.appendLine(E?"Got data from stdout":"No data from stdout"),this.outputChannel.appendLine(m?"Got result from parser":"No result from parser"),S&&this.outputChannel.appendLine(`Got data without result: ${S}`),this.outputChannel.appendLine(""),h)i({limitHit:I});else{g.flush(),u=null;let L;P&&!E&&(L=hK(P))?s(U1(new _s(L.message,L.code))):i({limitHit:I})}})}):Promise.resolve({limitHit:!1})}};function hK(r){let t=r.split(`
`),e=t[0].trim();if(t.some(o=>o.startsWith("regex parse error")))return new _s(vK(t),2);let n=e.match(/grep config error: unknown encoding: (.*)/);if(n)return new _s(`Unknown encoding: ${n[1]}`,1);if(e.startsWith("error parsing glob"))return new _s(e.charAt(0).toUpperCase()+e.substr(1),3);if(e.startsWith("the literal"))return new _s(e.charAt(0).toUpperCase()+e.substr(1),4);if(e.startsWith("PCRE2: error compiling pattern"))return new _s(e,2)}function vK(r){let t=["Regex parse error"],e=r.filter(n=>n.startsWith("PCRE2:"));if(e.length>=1){let n=e[0].replace("PCRE2:","");if(n.indexOf(":")!==-1&&n.split(":").length>=2){let o=n.split(":")[1];t.push(":"+o)}}return t.join("")}var _M=class extends uK{constructor(e,n,o){super();this.maxResults=e;this.root=n;this.previewOptions=o;this.remainder="";this.isDone=!1;this.hitLimit=!1;this.numResults=0;this.stringDecoder=new pK}cancel(){this.isDone=!0}flush(){this.handleDecodedData(this.stringDecoder.end())}on(e,n){return super.on(e,n),this}handleData(e){if(this.isDone)return;let n=typeof e=="string"?e:this.stringDecoder.write(e);this.handleDecodedData(n)}handleDecodedData(e){let n=e.indexOf(`
`),o=this.remainder+e;if(n>=0)n+=this.remainder.length;else{this.remainder=o;return}let i=0;for(;n>=0;)this.handleLine(o.substring(i,n).trim()),i=n+1,n=o.indexOf(`
`,i);this.remainder=o.substring(i)}handleLine(e){if(this.isDone||!e)return;let n;try{n=JSON.parse(e)}catch{throw new Error(`malformed line from rg: ${e}`)}if(n.type==="match"){let o=_b(n.data.path),i=y.joinPath(this.root,o),s=this.createTextSearchMatch(n.data,i);this.onResult(s),this.hitLimit&&(this.cancel(),this.emit("hitLimit"))}else if(n.type==="context"){let o=_b(n.data.path),i=y.joinPath(this.root,o);this.createTextSearchContexts(n.data,i).forEach(a=>this.onResult(a))}}createTextSearchMatch(e,n){let o=e.line_number-1,i=_b(e.lines),s=Buffer.from(i),a=0,l=0,d=o;e.submatches.length===0&&e.submatches.push(i.length?{start:0,end:1,match:{text:i[0]}}:{start:0,end:0,match:{text:""}});let c=nt(e.submatches.map((g,h)=>{if(this.hitLimit)return null;this.numResults++,this.numResults>=this.maxResults&&(this.hitLimit=!0);let f=_b(g.match),I=s.slice(a,g.start).toString(),S=EV(I),E=S.numLines>0?S.lastLineLength:S.lastLineLength+l,P=EV(f),L=S.numLines+d,j=P.numLines+L,F=P.numLines>0?P.lastLineLength:P.lastLineLength+E;return a=g.end,l=F,d=j,new Bm(L,E,j,F)})),u=Ld(c,vV),m=new $m(i,u,this.previewOptions);return new Mo(n,m.rangeLocations.map(g=>({sourceRange:wM(g.source),previewRange:wM(g.preview)})),m.previewText)}createTextSearchContexts(e,n){let o=_b(e.lines),i=e.line_number;return o.replace(/\r?\n$/,"").split(`
`).map((s,a)=>new Ps(n,s,i+a))}onResult(e){this.emit("result",e)}};function _b(r){return r.bytes?Buffer.from(r.bytes,"base64").toString():r.text}function EV(r){let t=/\n/g,e=0,n=-1,o;for(;o=t.exec(r);)e++,n=o.index;let i=n>=0?r.length-n-1:r.length;return{numLines:e,lastLineLength:i}}function bK(r,t){let e=["--hidden","--no-require-git"];e.push(r.isCaseSensitive?"--case-sensitive":"--ignore-case"),t.folderOptions.ignoreGlobCase&&(e.push("--glob-case-insensitive"),e.push("--ignore-file-case-insensitive"));let{doubleStarIncludes:n,otherIncludes:o}=Ou(t.folderOptions.includes,s=>s.startsWith("**")?"doubleStarIncludes":"otherIncludes");if(o&&o.length){let s=new Set;o.forEach(a=>{s.add(a)}),e.push("-g","!*"),s.forEach(a=>{yK(a).map(Yg).forEach(l=>{e.push("-g",l)})})}n&&n.length&&n.forEach(s=>{e.push("-g",s)}),t.folderOptions.excludes.map(s=>typeof s=="string"?s:s.pattern).map(Yg).forEach(s=>e.push("-g",`!${s}`)),t.maxFileSize&&e.push("--max-filesize",t.maxFileSize+""),t.folderOptions.useIgnoreFiles.local?t.folderOptions.useIgnoreFiles.parent||e.push("--no-ignore-parent"):e.push("--no-ignore"),t.folderOptions.followSymlinks&&e.push("--follow"),t.folderOptions.encoding&&t.folderOptions.encoding!=="utf8"&&e.push("--encoding",t.folderOptions.encoding),t.numThreads&&e.push("--threads",`${t.numThreads}`),r.pattern==="--"&&(r.isRegExp=!0,r.pattern="\\-\\-"),r.isMultiline&&!r.isRegExp&&(r.pattern=tr(r.pattern),r.isRegExp=!0),t.usePCRE2&&e.push("--pcre2"),e.push("--crlf"),r.isRegExp&&(r.pattern=IK(r.pattern),e.push("--engine","auto"));let i;if(r.isWordMatch){let a=Uy(r.pattern,!!r.isRegExp,{wholeWord:r.isWordMatch}).source.replace(/\\\//g,"/");e.push("--regexp",a)}else if(r.isRegExp){let s=xK(r.pattern);s=SK(s),e.push("--regexp",s)}else i=r.pattern,e.push("--fixed-strings");return e.push("--no-config"),t.folderOptions.useIgnoreFiles.global||e.push("--no-ignore-global"),e.push("--json"),r.isMultiline&&e.push("--multiline"),t.surroundingContext&&(e.push("--before-context",t.surroundingContext+""),e.push("--after-context",t.surroundingContext+"")),e.push("--"),i&&e.push(i),e.push("."),e}function yK(r){return PV(r).flatMap(e=>{let n=ia(e,"/");return n.map((o,i)=>n.slice(0,i+1).join("/"))})}function IK(r){let t=/((?:[^\\]|^)(?:\\\\)*)\\u([a-z0-9]{4})/gi;for(;r.match(t);)r=r.replace(t,"$1\\x{$2}");let e=/((?:[^\\]|^)(?:\\\\)*)\\u\{([a-z0-9]{4})\}/gi;for(;r.match(e);)r=r.replace(e,"$1\\x{$2}");return r}var wV=r=>r.type==="Assertion"&&r.kind==="lookbehind";function xK(r){let t;try{t=new mK().parsePattern(r)}catch{return r}let e="",n=0,o=(a,l,d)=>{e+=r.slice(n,a)+d,n=l},i=[];return new gK({onCharacterEnter(a){if(a.raw!=="\\n")return;let l=i[0];if(!l)o(a.start,a.end,"\\r?\\n");else if(!i.some(wV))if(l.type==="CharacterClass")if(l.negate){let d=r.slice(l.start+2,a.start)+r.slice(a.end,l.end-1);l.parent?.type==="Quantifier"?o(l.start,l.end,d?`[^${d}]`:"."):o(l.start,l.end,"(?!\\r?\\n"+(d?`|[${d}]`:"")+")")}else{let d=r.slice(l.start+1,a.start)+r.slice(a.end,l.end-1);o(l.start,l.end,d===""?"\\r?\\n":`(?:[${d}]|\\r?\\n)`)}else l.type==="Quantifier"&&o(a.start,a.end,"(?:\\r?\\n)")},onQuantifierEnter(a){i.unshift(a)},onQuantifierLeave(){i.shift()},onCharacterClassRangeEnter(a){i.unshift(a)},onCharacterClassRangeLeave(){i.shift()},onCharacterClassEnter(a){i.unshift(a)},onCharacterClassLeave(){i.shift()},onAssertionEnter(a){wV(a)&&i.push(a)},onAssertionLeave(a){i[0]===a&&i.shift()}}).visit(t),e+=r.slice(n),e}function SK(r){return r.replace(/\n/g,"\\r?\\n")}function CK(r){let t=!1,e=!1,n="",o="";for(let i=0;i<r.length;i++){let s=r[i];switch(s){case"\\":e?(t?o+="\\"+s:n+="\\"+s,e=!1):e=!0;break;case"{":if(e)t?o+=s:n+=s,e=!1;else{if(t)return{strInBraces:n+"{"+o+"{"+r.substring(i+1)};t=!0}break;case"}":if(e)t?o+=s:n+=s,e=!1;else{if(t)return{fixedStart:n,strInBraces:o,fixedEnd:r.substring(i+1)};n+=s}break;default:t?o+=(e?"\\":"")+s:n+=(e?"\\":"")+s,e=!1;break}}return{strInBraces:n+(t?"{"+o:"")}}function PV(r){let{fixedStart:t,strInBraces:e,fixedEnd:n}=CK(r);if(t===void 0||n===void 0)return[e];let o=ia(e,",");o.length||(o=[""]);let i=PV(n);return o.flatMap(s=>{let a=t+s;return i.map(l=>a+l)})}var ef=class extends pu{constructor(t,e,n=ci,o="searchProcess"){super({query:t,provider:e},{readdir:i=>n.Promises.readdir(i.fsPath),toCanonicalName:i=>W4(i)},o)}};var sE=class{constructor(t,e){this.query=t;this.numThreads=e}search(t,e,n){if((!this.query.folderQueries||!this.query.folderQueries.length)&&(!this.query.extraFileResources||!this.query.extraFileResources.length))return Promise.resolve({type:"success",limitHit:!1,stats:{type:"searchProcess"},messages:[]});let o={appendLine(s){n({message:s})}},i=new ef(this.query,new Zg(o,this.numThreads),ci);return new Promise((s,a)=>i.search(l=>{e(l.map(TK))},t).then(l=>s({limitHit:l.limitHit??!1,type:"success",stats:l.stats,messages:[]}),a))}};function TK(r){return{path:r.resource&&r.resource.fsPath,results:r.results,numMatches:(r.results||[]).reduce((t,e)=>qv(e)?t+e.rangeLocations.length:t+1,0)}}var aE=class r{constructor(t="searchProcess",e){this.processType=t;this.getNumThreads=e;this.caches=Object.create(null)}static{this.BATCH_SIZE=512}fileSearch(t){let e,n=_V(t),o=new T({onDidAddFirstListener:()=>{e=rr(async i=>{let s=await this.getNumThreads?.();return this.doFileSearchWithEngine(Pb,n,a=>o.fire(a),i,r.BATCH_SIZE,s)}),e.then(i=>o.fire(i),i=>o.fire({type:"error",error:{message:i.message,stack:i.stack}}))},onDidRemoveLastListener:()=>{e.cancel()}});return o.event}textSearch(t){let e,n=_V(t),o=new T({onDidAddFirstListener:()=>{e=rr(i=>this.ripgrepTextSearch(n,s=>o.fire(s),i)),e.then(i=>o.fire(i),i=>o.fire({type:"error",error:{message:i.message,stack:i.stack}}))},onDidRemoveLastListener:()=>{e.cancel()}});return o.event}async ripgrepTextSearch(t,e,n){t.maxFileSize=this.getPlatformFileLimits().maxFileSize;let o=await this.getNumThreads?.();return new sE(t,o).search(n,e,e)}getPlatformFileLimits(){return{maxFileSize:16*ec.GB}}doFileSearch(t,e,n,o){return this.doFileSearchWithEngine(Pb,t,n,o,r.BATCH_SIZE,e)}doFileSearchWithEngine(t,e,n,o,i=r.BATCH_SIZE,s){let a=0,l=c=>{Array.isArray(c)?(a+=c.length,n(c.map(u=>this.rawMatchToSearchItem(u)))):c.relativePath?(a++,n(this.rawMatchToSearchItem(c))):n(c)};if(e.sortByScore){let c=this.trySortedSearchFromCache(e,l,o);if(!c){let u=e.maxResults?Object.assign({},e,{maxResults:null}):e,m=new t(u,s);c=this.doSortedSearch(m,e,n,l,o)}return new Promise((u,m)=>{c.then(([g,h])=>{let f=h.map(I=>this.rawMatchToSearchItem(I));this.sendProgress(f,n,i),u(g)},m)})}let d=new t(e,s);return this.doSearch(d,l,i,o).then(c=>({limitHit:c.limitHit,type:"success",stats:{detailStats:c.stats,type:this.processType,fromCache:!1,resultCount:a,sortingTime:void 0},messages:[]}))}rawMatchToSearchItem(t){return{path:t.base?Oe(t.base,t.relativePath):t.relativePath}}doSortedSearch(t,e,n,o,i){let s=new T,a=rr(d=>{let c=[],u=m=>{Array.isArray(m)?c=m:(o(m),s.fire(m))};return this.doSearch(t,u,-1,d).then(m=>[m,c])}),l;if(e.cacheKey){l=this.getOrCreateCache(e.cacheKey);let d={promise:a,event:s.event,resolved:!1};l.resultsToSearchCache[e.filePattern||""]=d,a.then(()=>{d.resolved=!0},c=>{delete l.resultsToSearchCache[e.filePattern||""]}),a=this.preventCancellation(a)}return a.then(([d,c])=>{let u=l?l.scorerCache:Object.create(null),m=(typeof e.maxResults!="number"||e.maxResults>0)&&Zt.create(!1);return this.sortResults(e,c,u,i).then(g=>{let h=m?m.elapsed():-1;return[{type:"success",stats:{detailStats:d.stats,sortingTime:h,fromCache:!1,type:this.processType,resultCount:g.length},messages:d.messages,limitHit:d.limitHit||typeof e.maxResults=="number"&&c.length>e.maxResults},g]})})}getOrCreateCache(t){let e=this.caches[t];return e||(this.caches[t]=new DM)}trySortedSearchFromCache(t,e,n){let o=t.cacheKey&&this.caches[t.cacheKey];if(!o)return;let i=this.getResultsFromCache(o,t.filePattern||"",e,n);if(i)return i.then(([s,a,l])=>{let d=Zt.create(!1);return this.sortResults(t,a,o.scorerCache,n).then(c=>{let u=d.elapsed(),m={fromCache:!0,detailStats:l,type:this.processType,resultCount:a.length,sortingTime:u};return[{type:"success",limitHit:s.limitHit||typeof t.maxResults=="number"&&a.length>t.maxResults,stats:m,messages:[]},c]})})}sortResults(t,e,n,o){let i=kb(t.filePattern||""),s=(l,d)=>hV(l,d,i,!0,EK,n),a=typeof t.maxResults=="number"?t.maxResults:td;return jO(e,s,a,1e4,o)}sendProgress(t,e,n){if(n&&n>0)for(let o=0;o<t.length;o+=n)e(t.slice(o,o+n));else e(t)}getResultsFromCache(t,e,n,o){let i=Zt.create(!1),s=e.indexOf(bt)>=0,a;for(let u in t.resultsToSearchCache)if(e.startsWith(u)){if(s&&u.indexOf(bt)<0&&u!=="")continue;let m=t.resultsToSearchCache[u];a={promise:this.preventCancellation(m.promise),event:m.event,resolved:m.resolved};break}if(!a)return null;let l=i.elapsed(),d=Zt.create(!1),c=a.event(n);return o&&o.onCancellationRequested(()=>{c.dispose()}),a.promise.then(([u,m])=>{if(o&&o.isCancellationRequested)throw Ws();let g=[],h=kb(e).normalizedLowercase;for(let f of m)Kv(f,h)&&g.push(f);return[u,g,{cacheWasResolved:a.resolved,cacheLookupTime:l,cacheFilterTime:d.elapsed(),cacheEntryCount:m.length}]})}doSearch(t,e,n,o){return new Promise((i,s)=>{let a=[];o?.onCancellationRequested(()=>t.cancel()),t.search(l=>{l&&(n?(a.push(l),n>0&&a.length>=n&&(e(a),a=[])):e(l))},l=>{e(l)},(l,d)=>{a.length&&e(a),l?(e({message:"Search finished. Error: "+l.message}),s(l)):(e({message:"Search finished. Stats: "+JSON.stringify(d.stats)}),i(d))})})}clearCache(t){return delete this.caches[t],Promise.resolve(void 0)}preventCancellation(t){return new class{get[Symbol.toStringTag](){return this.toString()}cancel(){}then(e,n){return t.then(e,n)}catch(e){return this.then(void 0,e)}finally(e){return t.finally(e)}}}},DM=class{constructor(){this.resultsToSearchCache=Object.create(null);this.scorerCache=Object.create(null)}},EK=new class{getItemLabel(r){return at(r.relativePath)}getItemDescription(r){return on(r.relativePath)}getItemPath(r){return r.relativePath}};function _V(r){return{...r,folderQueries:r.folderQueries&&r.folderQueries.map(wK),extraFileResources:r.extraFileResources&&r.extraFileResources.map(t=>y.revive(t))}}function wK(r){return Ht(r)}var Db=class{constructor(t,e){this.outputChannel=t;this.getNumThreads=e;this.inProgress=new Set;process.once("exit",()=>this.dispose())}async provideTextSearchResults(t,e,n,o){let i=await this.getNumThreads(),s=new Zg(this.outputChannel,i);return Promise.all(e.folderOptions.map(a=>{let l={folderOptions:a,numThreads:i,maxResults:e.maxResults,previewOptions:e.previewOptions,maxFileSize:e.maxFileSize,surroundingContext:e.surroundingContext};if(a.folder.scheme===V.vscodeUserData){let d={...l,folder:a.folder.with({scheme:V.file})},c=new ts(u=>n.report({...u,uri:u.uri.with({scheme:a.folder.scheme})}));return this.withToken(o,u=>s.provideTextSearchResultsWithRgOptions(t,d,c,u))}else return this.withToken(o,d=>s.provideTextSearchResultsWithRgOptions(t,l,n,d))})).then((a=>({limitHit:a.some(d=>!!d&&d.limitHit)})))}async withToken(t,e){let n=kK(t);this.inProgress.add(n);let o=await e(n.token);return this.inProgress.delete(n),o}dispose(){this.inProgress.forEach(t=>t.cancel())}};function kK(r){let t=new Ce;return r.onCancellationRequested(()=>t.cancel()),t}var tf=class extends hd{constructor(e,n,o,i,s){super(e,o,s);this.configurationService=i;this._pfs=ci;this._internalFileSearchHandle=-1;this._internalFileSearchProvider=null;this._registeredEHSearchProvider=!1;this._disposables=new $;this.isDisposed=!1;this.getNumThreads=this.getNumThreads.bind(this),this.getNumThreadsCached=this.getNumThreadsCached.bind(this),this.handleConfigurationChanged=this.handleConfigurationChanged.bind(this);let a=new vu("RipgrepSearchUD",this._logService);this._disposables.add(this.registerTextSearchProvider(V.vscodeUserData,new Db(a,this.getNumThreadsCached))),n.remote.isRemote&&n.remote.authority&&this._registerEHSearchProviders(),i.getConfigProvider().then(l=>{this.isDisposed||this._disposables.add(l.onDidChangeConfiguration(this.handleConfigurationChanged))})}handleConfigurationChanged(e){e.affectsConfiguration("search")&&(this._numThreadsPromise=void 0)}async getNumThreads(){return(await this.configurationService.getConfigProvider()).getConfiguration("search").get("ripgrep.maxThreads")}async getNumThreadsCached(){return this._numThreadsPromise||(this._numThreadsPromise=this.getNumThreads()),this._numThreadsPromise}dispose(){this.isDisposed=!0,this._disposables.dispose()}$enableExtensionHostSearch(){this._registerEHSearchProviders()}_registerEHSearchProviders(){if(this._registeredEHSearchProvider)return;this._registeredEHSearchProvider=!0;let e=new vu("RipgrepSearchEH",this._logService);this._disposables.add(this.registerTextSearchProvider(V.file,new Db(e,this.getNumThreadsCached))),this._disposables.add(this.registerInternalFileSearchProvider(V.file,new aE("fileSearchProvider",this.getNumThreadsCached)))}registerInternalFileSearchProvider(e,n){let o=this._handlePool++;return this._internalFileSearchProvider=n,this._internalFileSearchHandle=o,this._proxy.$registerFileSearchProvider(o,this._transformScheme(e)),G(()=>{this._internalFileSearchProvider=null,this._proxy.$unregisterProvider(o)})}$provideFileSearchResults(e,n,o,i){let s=mb(o);if(e===this._internalFileSearchHandle){let a=Date.now();return this.doInternalFileSearch(e,n,s,i).then(l=>{let d=Date.now()-a;return this._logService.debug(`Ext host file search time: ${d}ms`),l})}return super.$provideFileSearchResults(e,n,o,i)}async doInternalFileSearchWithCustomCallback(e,n,o){let i=a=>{if(M4(a)&&(a=[a]),Array.isArray(a)){o(a.map(l=>y.file(l.path)));return}a.message&&this._logService.debug("ExtHostSearch",a.message)};if(!this._internalFileSearchProvider)throw new Error("No internal file search handler");let s=await this.getNumThreadsCached();return this._internalFileSearchProvider.doFileSearch(e,s,i,n)}async doInternalFileSearch(e,n,o,i){return this.doInternalFileSearchWithCustomCallback(o,i,s=>{this._proxy.$handleFileMatch(e,n,s)})}$clearCache(e){return this._internalFileSearchProvider?.clearCache(e),super.$clearCache(e)}createTextSearchManager(e,n){return new ef(e,n,void 0,"textSearchProvider")}};tf=_([C(0,ie),C(1,Ye),C(2,Zi),C(3,vn),C(4,oe)],tf);function RM(r,t,e,n,o,i){if(Array.isArray(r)){let s=0;for(let a of r){let l=RM(a,t,e,n,o,i);if(l===10)return l;l>s&&(s=l)}return s}else{if(typeof r=="string")return n?r==="*"?5:r===e?10:0:0;if(r){let{language:s,pattern:a,scheme:l,hasAccessToAllModels:d,notebookType:c}=r;if(!n&&!d)return 0;c&&o&&(t=o);let u=0;if(l)if(l===t.scheme)u=10;else if(l==="*")u=5;else return 0;if(s)if(s===e)u=10;else if(s==="*")u=Math.max(u,5);else return 0;if(c)if(c===i)u=10;else if(c==="*"&&i!==void 0)u=Math.max(u,5);else return 0;if(a){let m;if(typeof a=="string"?m=a:m={...a,base:mo(a.base)},m===t.fsPath||Br(m,t.fsPath))u=10;else return 0}return u}else return 0}}function AM(r){return typeof r=="string"?!1:Array.isArray(r)?r.some(AM):!!r.notebookType}var MM=(o=>(o[o.None=0]="None",o[o.Indent=1]="Indent",o[o.IndentOutdent=2]="IndentOutdent",o[o.Outdent=3]="Outdent",o))(MM||{});var f6e=R("editSessionIdentityService"),LM=(n=>(n[n.Complete=100]="Complete",n[n.Partial=50]="Partial",n[n.None=0]="None",n))(LM||{});var lE=class{constructor(t){this._relatedInformationProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(U.MainThreadAiRelatedInformation)}async $provideAiRelatedInformation(t,e,n){if(this._relatedInformationProviders.size===0)throw new Error("No related information providers registered");let o=this._relatedInformationProviders.get(t);if(!o)throw new Error("related information provider not found");return await o.provideRelatedInformation(e,n)??[]}getRelatedInformation(t,e,n){return this._proxy.$getAiRelatedInformation(e,n)}registerRelatedInformationProvider(t,e,n){let o=this._nextHandle;return this._nextHandle++,this._relatedInformationProviders.set(o,n),this._proxy.$registerAiRelatedInformationProvider(o,e),new be(()=>{this._proxy.$unregisterAiRelatedInformationProvider(o),this._relatedInformationProviders.delete(o)})}};var dE=class{constructor(t){this._settingsSearchProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(U.MainThreadAiSettingsSearch)}async $startSearch(t,e,n,o){if(this._settingsSearchProviders.size===0)throw new Error("No related information providers registered");let i=this._settingsSearchProviders.get(t);if(!i)throw new Error("Settings search provider not found");let s=new ts(a=>{this._proxy.$handleSearchResult(t,M1.fromSettingsSearchResult(a))});return i.provideSettingsSearchResults(e,n,s,o)}registerSettingsSearchProvider(t,e){let n=this._nextHandle;return this._nextHandle++,this._settingsSearchProviders.set(n,e),this._proxy.$registerAiSettingsSearchProvider(n),new be(()=>{this._proxy.$unregisterAiSettingsSearchProvider(n),this._settingsSearchProviders.delete(n)})}};function DV(r){for(let t=0,e=r.length;t<e;t+=4){let n=r[t+0],o=r[t+1],i=r[t+2],s=r[t+3];r[t+0]=s,r[t+1]=i,r[t+2]=o,r[t+3]=n}}function _K(r){let t=new Uint8Array(r.buffer,r.byteOffset,r.length*4);return ky()||DV(t),W.wrap(t)}function DK(r){let t=r.buffer;if(ky()||DV(t),t.byteOffset%4===0)return new Uint32Array(t.buffer,t.byteOffset,t.length/4);{let e=new Uint8Array(t.byteLength);return e.set(t),new Uint32Array(e.buffer,e.byteOffset,e.length/4)}}function cE(r){let t=new Uint32Array(RK(r)),e=0;if(t[e++]=r.id,r.type==="full")t[e++]=1,t[e++]=r.data.length,t.set(r.data,e),e+=r.data.length;else{t[e++]=2,t[e++]=r.deltas.length;for(let n of r.deltas)t[e++]=n.start,t[e++]=n.deleteCount,n.data?(t[e++]=n.data.length,t.set(n.data,e),e+=n.data.length):t[e++]=0}return _K(t)}function RK(r){let t=0;if(t+=2,r.type==="full")t+=1+r.data.length;else{t+=1,t+=3*r.deltas.length;for(let e of r.deltas)e.data&&(t+=e.data.length)}return t}function OM(r){let t=DK(r),e=0,n=t[e++];if(t[e++]===1){let a=t[e++],l=t.subarray(e,e+a);return e+=a,{id:n,type:"full",data:l}}let i=t[e++],s=[];for(let a=0;a<i;a++){let l=t[e++],d=t[e++],c=t[e++],u;c>0&&(u=t.subarray(e,e+c),e+=c),s[a]={start:l,deleteCount:d,data:u}}return{id:n,type:"delta",deltas:s}}var AK=[new De("vscode.executeDocumentHighlights","_executeDocumentHighlights","Execute document highlight provider.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of DocumentHighlight-instances.",Ni(qc.to))),new De("vscode.executeDocumentSymbolProvider","_executeDocumentSymbolProvider","Execute document symbol provider.",[Z.Uri],new we("A promise that resolves to an array of SymbolInformation and DocumentSymbol instances.",(r,t)=>{if(Kf(r))return;class e extends Cr{constructor(){super(...arguments);this.containerName=""}static to(i){let s=new e(i.name,Er.to(i.kind),i.containerName||"",new Qt(t[0],K.to(i.range)));return s.detail=i.detail,s.range=s.location.range,s.selectionRange=K.to(i.selectionRange),s.children=i.children?i.children.map(e.to):[],s}}return r.map(e.to)})),new De("vscode.executeFormatDocumentProvider","_executeFormatDocumentProvider","Execute document format provider.",[Z.Uri,new Z("options","Formatting options",r=>!0,r=>r)],new we("A promise that resolves to an array of TextEdits.",Ni(Cn.to))),new De("vscode.executeFormatRangeProvider","_executeFormatRangeProvider","Execute range format provider.",[Z.Uri,Z.Range,new Z("options","Formatting options",r=>!0,r=>r)],new we("A promise that resolves to an array of TextEdits.",Ni(Cn.to))),new De("vscode.executeFormatOnTypeProvider","_executeFormatOnTypeProvider","Execute format on type provider.",[Z.Uri,Z.Position,new Z("ch","Trigger character",r=>typeof r=="string",r=>r),new Z("options","Formatting options",r=>!0,r=>r)],new we("A promise that resolves to an array of TextEdits.",Ni(Cn.to))),new De("vscode.executeDefinitionProvider","_executeDefinitionProvider","Execute all definition providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location or LocationLink instances.",xd)),new De("vscode.experimental.executeDefinitionProvider_recursive","_executeDefinitionProvider_recursive","Execute all definition providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location or LocationLink instances.",xd)),new De("vscode.executeTypeDefinitionProvider","_executeTypeDefinitionProvider","Execute all type definition providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location or LocationLink instances.",xd)),new De("vscode.experimental.executeTypeDefinitionProvider_recursive","_executeTypeDefinitionProvider_recursive","Execute all type definition providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location or LocationLink instances.",xd)),new De("vscode.executeDeclarationProvider","_executeDeclarationProvider","Execute all declaration providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location or LocationLink instances.",xd)),new De("vscode.experimental.executeDeclarationProvider_recursive","_executeDeclarationProvider_recursive","Execute all declaration providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location or LocationLink instances.",xd)),new De("vscode.executeImplementationProvider","_executeImplementationProvider","Execute all implementation providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location or LocationLink instances.",xd)),new De("vscode.experimental.executeImplementationProvider_recursive","_executeImplementationProvider_recursive","Execute all implementation providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location or LocationLink instances.",xd)),new De("vscode.executeReferenceProvider","_executeReferenceProvider","Execute all reference providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location-instances.",Ni(io.to))),new De("vscode.experimental.executeReferenceProvider","_executeReferenceProvider_recursive","Execute all reference providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Location-instances.",Ni(io.to))),new De("vscode.executeHoverProvider","_executeHoverProvider","Execute all hover providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Hover-instances.",Ni(Am.to))),new De("vscode.experimental.executeHoverProvider_recursive","_executeHoverProvider_recursive","Execute all hover providers.",[Z.Uri,Z.Position],new we("A promise that resolves to an array of Hover-instances.",Ni(Am.to))),new De("vscode.executeSelectionRangeProvider","_executeSelectionRangeProvider","Execute selection range provider.",[Z.Uri,new Z("position","A position in a text document",r=>Array.isArray(r)&&r.every(t=>Ee.isPosition(t)),r=>r.map(dt.from))],new we("A promise that resolves to an array of ranges.",r=>r.map(t=>{let e;for(let n of t.reverse())e=new gs(K.to(n),e);return e}))),new De("vscode.executeWorkspaceSymbolProvider","_executeWorkspaceSymbolProvider","Execute all workspace symbol providers.",[Z.String.with("query","Search string")],new we("A promise that resolves to an array of SymbolInformation-instances.",r=>r.map(Zl.to))),new De("vscode.prepareCallHierarchy","_executePrepareCallHierarchy","Prepare call hierarchy at a position inside a document",[Z.Uri,Z.Position],new we("A promise that resolves to an array of CallHierarchyItem-instances",r=>r.map(Pa.to))),new De("vscode.provideIncomingCalls","_executeProvideIncomingCalls","Compute incoming calls for an item",[Z.CallHierarchyItem],new we("A promise that resolves to an array of CallHierarchyIncomingCall-instances",r=>r.map(a1.to))),new De("vscode.provideOutgoingCalls","_executeProvideOutgoingCalls","Compute outgoing calls for an item",[Z.CallHierarchyItem],new we("A promise that resolves to an array of CallHierarchyOutgoingCall-instances",r=>r.map(l1.to))),new De("vscode.prepareRename","_executePrepareRename","Execute the prepareRename of rename provider.",[Z.Uri,Z.Position],new we("A promise that resolves to a range and placeholder text.",r=>{if(r)return{range:K.to(r.range),placeholder:r.text}})),new De("vscode.executeDocumentRenameProvider","_executeDocumentRenameProvider","Execute rename provider.",[Z.Uri,Z.Position,Z.String.with("newName","The new symbol name")],new we("A promise that resolves to a WorkspaceEdit.",r=>{if(r){if(r.rejectReason)throw new Error(r.rejectReason);return so.to(r)}})),new De("vscode.executeLinkProvider","_executeLinkProvider","Execute document link provider.",[Z.Uri,Z.Number.with("linkResolveCount","Number of links that should be resolved, only when links are unresolved.").optional()],new we("A promise that resolves to an array of DocumentLink-instances.",r=>r.map(_a.to))),new De("vscode.provideDocumentSemanticTokensLegend","_provideDocumentSemanticTokensLegend","Provide semantic tokens legend for a document",[Z.Uri],new we("A promise that resolves to SemanticTokensLegend.",r=>{if(r)return new Mc(r.tokenTypes,r.tokenModifiers)})),new De("vscode.provideDocumentSemanticTokens","_provideDocumentSemanticTokens","Provide semantic tokens for a document",[Z.Uri],new we("A promise that resolves to SemanticTokens.",r=>{if(!r)return;let t=OM(r);if(t.type==="full")return new ki(t.data,void 0)})),new De("vscode.provideDocumentRangeSemanticTokensLegend","_provideDocumentRangeSemanticTokensLegend","Provide semantic tokens legend for a document range",[Z.Uri,Z.Range.optional()],new we("A promise that resolves to SemanticTokensLegend.",r=>{if(r)return new Mc(r.tokenTypes,r.tokenModifiers)})),new De("vscode.provideDocumentRangeSemanticTokens","_provideDocumentRangeSemanticTokens","Provide semantic tokens for a document range",[Z.Uri,Z.Range],new we("A promise that resolves to SemanticTokens.",r=>{if(!r)return;let t=OM(r);if(t.type==="full")return new ki(t.data,void 0)})),new De("vscode.executeCompletionItemProvider","_executeCompletionItemProvider","Execute completion item provider.",[Z.Uri,Z.Position,Z.String.with("triggerCharacter","Trigger completion when the user types the character, like `,` or `(`").optional(),Z.Number.with("itemResolveCount","Number of completions to resolve (too large numbers slow down completions)").optional()],new we("A promise that resolves to a CompletionList-instance.",(r,t,e)=>{if(!r)return new Ii([]);let n=r.suggestions.map(o=>m1.to(o,e));return new Ii(n,r.incomplete)})),new De("vscode.executeSignatureHelpProvider","_executeSignatureHelpProvider","Execute signature help provider.",[Z.Uri,Z.Position,Z.String.with("triggerCharacter","Trigger signature help when the user types the character, like `,` or `(`").optional()],new we("A promise that resolves to SignatureHelp.",r=>{if(r)return Mm.to(r)})),new De("vscode.executeCodeLensProvider","_executeCodeLensProvider","Execute code lens provider.",[Z.Uri,Z.Number.with("itemResolveCount","Number of lenses that should be resolved and returned. Will only return resolved lenses, will impact performance)").optional()],new we("A promise that resolves to an array of CodeLens-instances.",(r,t,e)=>Ni(n=>new wl(K.to(n.range),n.command&&e.fromInternal(n.command)))(r))),new De("vscode.executeCodeActionProvider","_executeCodeActionProvider","Execute code action provider.",[Z.Uri,new Z("rangeOrSelection","Range in a text document. Some refactoring provider requires Selection object.",r=>ge.isRange(r),r=>$n.isSelection(r)?yo.from(r):K.from(r)),Z.String.with("kind","Code action kind to return code actions for").optional(),Z.Number.with("itemResolveCount","Number of code actions to resolve (too large numbers slow down code actions)").optional()],new we("A promise that resolves to an array of Command-instances.",(r,t,e)=>Ni(n=>{if(n._isSynthetic){if(!n.command)throw new Error("Synthetic code actions must have a command");return e.fromInternal(n.command)}else{let o=new ms(n.title,n.kind?new yt(n.kind):void 0);return n.edit&&(o.edit=so.to(n.edit)),n.command&&(o.command=e.fromInternal(n.command)),o.isPreferred=n.isPreferred,o}})(r))),new De("vscode.executeDocumentColorProvider","_executeDocumentColorProvider","Execute document color provider.",[Z.Uri],new we("A promise that resolves to an array of ColorInformation objects.",r=>r?r.map(t=>new Rl(K.to(t.range),Jc.to(t.color))):[])),new De("vscode.executeColorPresentationProvider","_executeColorPresentationProvider","Execute color presentation provider.",[new Z("color","The color to show and insert",r=>r instanceof xi,Jc.from),new Z("context","Context object with uri and range",r=>!0,r=>({uri:r.uri,range:K.from(r.range)}))],new we("A promise that resolves to an array of ColorPresentation objects.",r=>r?r.map(Lv.to):[])),new De("vscode.executeInlayHintProvider","_executeInlayHintProvider","Execute inlay hints provider",[Z.Uri,Z.Range],new we("A promise that resolves to an array of Inlay objects",(r,t,e)=>r.map(g1.to.bind(void 0,e)))),new De("vscode.executeFoldingRangeProvider","_executeFoldingRangeProvider","Execute folding range provider",[Z.Uri],new we("A promise that resolves to an array of FoldingRange objects",(r,t)=>{if(r)return r.map(Nv.to)})),new De("vscode.resolveNotebookContentProviders","_resolveNotebookContentProvider","Resolve Notebook Content Providers",[],new we("A promise that resolves to an array of NotebookContentProvider static info objects.",Ni(r=>({viewType:r.viewType,displayName:r.displayName,options:{transientOutputs:r.options.transientOutputs,transientCellMetadata:r.options.transientCellMetadata,transientDocumentMetadata:r.options.transientDocumentMetadata},filenamePattern:r.filenamePattern.map(t=>Fv.to(t))})))),new De("vscode.executeInlineValueProvider","_executeInlineValueProvider","Execute inline value provider",[Z.Uri,Z.Range,new Z("context","An InlineValueContext",r=>r&&typeof r.frameId=="number"&&r.stoppedLocation instanceof ge,r=>Mv.from(r))],new we("A promise that resolves to an array of InlineValue objects",r=>r.map(Av.to))),new De("vscode.open","_workbench.open","Opens the provided resource in the editor. Can be a text or binary file, or an http(s) URL. If you need more control over the options for opening a text file, use vscode.window.showTextDocument instead.",[new Z("uriOrString","Uri-instance or string (only http/https)",r=>y.isUri(r)||typeof r=="string"&&eU(r,V.http,V.https),r=>r),new Z("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",r=>r===void 0||typeof r=="number"||typeof r=="object",r=>r&&(typeof r=="number"?[Ut.from(r),void 0]:[Ut.from(r.viewColumn),Uv.from(r)])).optional(),Z.String.with("label","").optional()],we.Void),new De("vscode.openWith","_workbench.openWith","Opens the provided resource with a specific editor.",[Z.Uri.with("resource","Resource to open"),Z.String.with("viewId","Custom editor view id. This should be the viewType string for custom editors or the notebookType string for notebooks. Use 'default' to use VS Code's default text editor"),new Z("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",r=>r===void 0||typeof r=="number"||typeof r=="object",r=>r&&(typeof r=="number"?[Ut.from(r),void 0]:[Ut.from(r.viewColumn),Uv.from(r)])).optional()],we.Void),new De("vscode.diff","_workbench.diff","Opens the provided resources in the diff editor to compare their contents.",[Z.Uri.with("left","Left-hand side resource of the diff editor"),Z.Uri.with("right","Right-hand side resource of the diff editor"),Z.String.with("title","Human readable title for the diff editor").optional(),new Z("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",r=>r===void 0||typeof r=="object",r=>r&&[Ut.from(r.viewColumn),Uv.from(r)]).optional()],we.Void),new De("vscode.changes","_workbench.changes","Opens a list of resources in the changes editor to compare their contents.",[Z.String.with("title","Human readable title for the changes editor"),new Z("resourceList","List of resources to compare",r=>{for(let t of r){if(t.length!==3)return!1;let[e,n,o]=t;if(!y.isUri(e)||!y.isUri(n)&&n!==void 0&&n!==null||!y.isUri(o)&&o!==void 0&&o!==null)return!1}return!0},r=>r)],we.Void),new De("vscode.prepareTypeHierarchy","_executePrepareTypeHierarchy","Prepare type hierarchy at a position inside a document",[Z.Uri,Z.Position],new we("A promise that resolves to an array of TypeHierarchyItem-instances",r=>r.map(Da.to))),new De("vscode.provideSupertypes","_executeProvideSupertypes","Compute supertypes for an item",[Z.TypeHierarchyItem],new we("A promise that resolves to an array of TypeHierarchyItem-instances",r=>r.map(Da.to))),new De("vscode.provideSubtypes","_executeProvideSubtypes","Compute subtypes for an item",[Z.TypeHierarchyItem],new we("A promise that resolves to an array of TypeHierarchyItem-instances",r=>r.map(Da.to))),new De("vscode.revealTestInExplorer","_revealTestInExplorer","Reveals a test instance in the explorer",[Z.TestItem],we.Void),new De("vscode.startContinuousTestRun","testing.startContinuousRunFromExtension","Starts running the given tests with continuous run mode.",[Z.TestProfile,Z.Arr(Z.TestItem)],we.Void),new De("vscode.stopContinuousTestRun","testing.stopContinuousRunFromExtension","Stops running the given tests with continuous run mode.",[Z.Arr(Z.TestItem)],we.Void),new De("vscode.experimental.editSession.continue","_workbench.editSessions.actions.continueEditSession","Continue the current edit session in a different workspace",[Z.Uri.with("workspaceUri","The target workspace to continue the current edit session in")],we.Void),new De("setContext","_setContext","Set a custom context key value that can be used in when clauses.",[Z.String.with("name","The context key name"),new Z("value","The context key value",()=>!0,r=>r)],we.Void),new De("vscode.editorChat.start","inlineChat.start","Invoke a new editor chat session",[new Z("Run arguments","",r=>!0,r=>{if(r)return{initialRange:r.initialRange?K.from(r.initialRange):void 0,initialSelection:$n.isSelection(r.initialSelection)?yo.from(r.initialSelection):void 0,message:r.message,attachments:r.attachments,autoSend:r.autoSend,position:r.position?dt.from(r.position):void 0,resolveOnResponse:r.resolveOnResponse}})],we.Void),new De("vscode.extensionPromptFileProvider","_listExtensionPromptFiles","Get all extension-contributed prompt files (custom agents, instructions, and prompt files).",[],new we("A promise that resolves to an array of objects containing uri and type.",r=>r?r.map(t=>({uri:y.revive(t.uri),type:t.type})):[]))],uE=class{static register(t){AK.forEach(t.registerApiCommand,t),this._registerValidateWhenClausesCommand(t)}static _registerValidateWhenClausesCommand(t){t.registerCommand(!1,"_validateWhenClauses",jU)}};function Ni(r){return t=>{if(Array.isArray(t))return t.map(r)}}function xd(r){if(!Array.isArray(r))return;let t=[];for(let e of r)e2(e)?t.push(Rm.to(e)):t.push(io.to(e));return t}var nf=class{constructor(t,e){this._proxy=t.getProxy(U.MainThreadBulkEdits),this._versionInformationProvider={getTextDocumentVersion:n=>e.getDocument(n)?.version,getNotebookDocumentVersion:()=>{}}}applyWorkspaceEdit(t,e,n){let o=new $t(so.from(t,this._versionInformationProvider));return this._proxy.$tryApplyWorkspaceEdit(o,void 0,n?.isRefactoring??!1)}};nf=_([C(0,ie)],nf);function RV(r){return!!r&&y.isUri(r.sessionResource)&&r.$mid===19}var MK;(u=>{let r;(E=>(E[E.Streaming=0]="Streaming",E[E.WaitingForConfirmation=1]="WaitingForConfirmation",E[E.Executing=2]="Executing",E[E.WaitingForPostApproval=3]="WaitingForPostApproval",E[E.Completed=4]="Completed",E[E.Cancelled=5]="Cancelled"))(r=u.StateKind||={});function t(m,g){if(m.kind==="toolInvocationSerialized")return m.isConfirmed===void 0||typeof m.isConfirmed=="boolean"?{type:m.isConfirmed?4:0}:m.isConfirmed;let h=m.state.read(g);if(!(h.type===0||h.type===1))return h.type===5?{type:h.reason}:h.confirmed}u.executionConfirmedOrDenied=t;function e(m,g){let h=t(m);if(h)return Promise.resolve(h);let f=new $;return new Promise(I=>{g&&f.add(g.onCancellationRequested(()=>{I({type:0})})),f.add(os(S=>{let E=t(m,S);E&&(f.dispose(),I(E))}))}).finally(()=>{f.dispose()})}u.awaitConfirmation=e;function n(m,g){let h=m.state.read(g);if(h.type===4)return h.postConfirmed||{type:1};if(h.type===5)return{type:h.reason}}function o(m,g){let h=m?.state.get();return h?.type===1||h?.type===3?(h.confirm(g),!0):!1}u.confirmWith=o;function i(m,g){let h=n(m);if(h)return Promise.resolve(h);let f=new $;return new Promise(I=>{g&&f.add(g.onCancellationRequested(()=>{I({type:0})})),f.add(os(S=>{let E=n(m,S);E&&(f.dispose(),I(E))}))}).finally(()=>{f.dispose()})}u.awaitPostConfirmation=i;function s(m,g){if(m.kind==="toolInvocationSerialized")return m.resultDetails;let h=m.state.read(g);if(h.type===4||h.type===3)return h.resultDetails}u.resultDetails=s;function a(m,g){if(m.kind==="toolInvocationSerialized")return!0;let h=m.state.read(g);return h.type===4||h.type===5}u.isComplete=a;function l(m,g){return m.kind==="toolInvocationSerialized"?!1:m.state.read(g).type===0}u.isStreaming=l;function d(m,g){if(m.kind==="toolInvocationSerialized")return;let h=m.state.read(g);if(h.type!==0)return h.parameters}u.getParameters=d;function c(m,g){if(m.kind==="toolInvocationSerialized")return;let h=m.state.read(g);if(h.type!==0)return h.confirmationMessages}u.getConfirmationMessages=c})(MK||={});var LK;(o=>{function r(i){return i.kind==="sent"}o.isSent=r;function t(i){return i.kind==="rejected"}o.isRejected=t;function e(i){return i.kind==="queued"}o.isQueued=e;function n(i){if(i.kind!=="sent")throw new Error(`Expected ChatSendResult to be 'sent', but was '${i.kind}'`)}o.assertSent=n})(LK||={});var of=R("IChatService");var rf=class{constructor(t,e,n,o,i,s,a){this._extension=t;this._request=e;this._proxy=n;this._commandsConverter=o;this._sessionDisposables=i;this._pendingCarouselResolvers=s;this._token=a;this._stopWatch=Zt.create(!1);this._isClosed=!1}close(){this._isClosed=!0}get timings(){return{firstProgress:this._firstProgress,totalElapsed:this._stopWatch.elapsed()}}get apiObject(){if(!this._apiObject){let n=function(l){if(t._isClosed){let d=new Error("Response stream has been closed");throw Error.captureStackTrace(d,l),d}},s=function(l,d){if(o.push(d!==void 0?[l,d]:l)===1&&queueMicrotask(()=>{let u=i;i=[],t._proxy.$handleProgressChunk(t._request.requestId,o).finally(()=>{u.forEach(m=>m())}),o.length=0}),d!==void 0)return new Promise(u=>{i.push(u)})},t=this;this._stopWatch.reset();let e=0,o=[],i=[],a=(l,d)=>{if(typeof this._firstProgress>"u"&&(l.kind==="markdownContent"||l.kind==="markdownVuln"||l.kind==="beginToolInvocation")&&(this._firstProgress=this._stopWatch.elapsed()),d){let c=e++,u=s(l,c),m={report:g=>{u.then(()=>{Gt.isMarkdownString(g.value)?s($v.from(g),c):s(Gc.from(g),c)})}};Promise.all([u,d(m)]).then(([g,h])=>{s(C1.from(h),c)})}else s(l)};this._apiObject=Object.freeze({clearToPreviousToolInvocation(l){return n(this.markdown),s({kind:"clearToPreviousToolInvocation",reason:l}),this},markdown(l){n(this.markdown);let d=new fa(l),c=Pv.from(d);return a(c),this},markdownWithVulnerabilities(l,d){n(this.markdown),d&&A(t._extension,"chatParticipantAdditions");let c=new xs(l,d),u=LC.from(c);return a(u),this},codeblockUri(l,d){n(this.codeblockUri),A(t._extension,"chatParticipantAdditions");let c=new Ia(l,d),u=MC.from(c);return a(u),this},filetree(l,d){n(this.filetree);let c=new va(l,d),u=_v.from(c);return a(u),this},anchor(l,d){let c=new Ss(l,d);return this.push(c)},button(l){n(this.anchor);let d=new ya(l),c=Dv.from(d,t._commandsConverter,t._sessionDisposables);return a(c),this},progress(l,d){n(this.progress);let c=new jl(l,d),u=d?FC.from(c):Vv.from(c);return a(u,d),this},thinkingProgress(l){n(this.thinkingProgress),A(t._extension,"chatParticipantAdditions");let d=new Pi(l.text??"",l.id,l.metadata),c=Bv.from(d);return a(c),this},hookProgress(l,d,c){n(this.hookProgress),A(t._extension,"chatParticipantAdditions");let u=new ba(l,d,c),m=UC.from(u);return a(m),this},warning(l){n(this.progress),A(t._extension,"chatParticipantAdditions");let d=new Cs(l),c=$v.from(d);return a(c),this},reference(l,d){return this.reference2(l,d)},reference2(l,d,c){if(n(this.reference),typeof l=="object"&&"variableName"in l&&A(t._extension,"chatParticipantAdditions"),typeof l=="object"&&"variableName"in l&&!l.value){let u=t._request.variables.variables.find(m=>m.name===l.variableName);if(u){let m;if(u.references?.length)m=u.references.map(g=>({kind:"reference",reference:{variableName:l.variableName,value:g.reference}}));else{let g=new qr(l,d,c);m=[Gc.from(g)]}return m.forEach(g=>a(g)),this}}else{let u=new qr(l,d,c),m=Gc.from(u);a(m)}return this},codeCitation(l,d,c){n(this.codeCitation),A(t._extension,"chatParticipantAdditions");let u=new xa(l,d,c),m=$C.from(u);a(m)},textEdit(l,d){n(this.textEdit),A(t._extension,"chatParticipantAdditions");let c=new Es(l,d);c.isDone=d===!0?!0:void 0;let u=HC.from(c);return a(u),this},notebookEdit(l,d){n(this.notebookEdit),A(t._extension,"chatParticipantAdditions");let c=new Ca(l,d),u=VC.from(c);return a(u),this},workspaceEdit(l){n(this.workspaceEdit),A(t._extension,"chatParticipantAdditions");let d=new Jl(l),c=BC.from(d);return a(c),this},async externalEdit(l,d){n(this.externalEdit);let c=Array.isArray(l)?l:[l],u=e++,m=Le();await s({kind:"externalEdits",start:!0,resources:c,undoStopId:m},u);try{return await d(),m}finally{await s({kind:"externalEdits",start:!1,resources:c,undoStopId:m},u)}},confirmation(l,d,c,u){n(this.confirmation),A(t._extension,"chatParticipantAdditions");let m=new ha(l,d,c,u),g=OC.from(m);return a(g),this},async questionCarousel(l,d=!0){n(this.questionCarousel),A(t._extension,"chatParticipantAdditions");let c=Le(),u=new Ts(l,d),m=NC.from(u);m.resolveId=c;let g=new Kt;return t._pendingCarouselResolvers.has(t._request.requestId)||t._pendingCarouselResolvers.set(t._request.requestId,new Map),t._pendingCarouselResolvers.get(t._request.requestId).set(c,g),a(m),np(g.p,t._token)},beginToolInvocation(l,d,c){n(this.beginToolInvocation),A(t._extension,"chatParticipantAdditions");let u={kind:"beginToolInvocation",toolCallId:l,toolName:d,streamData:c?{partialInput:c.partialInput}:void 0,subagentInvocationId:c?.subagentInvocationId};return a(u),this},updateToolInvocation(l,d){n(this.updateToolInvocation),A(t._extension,"chatParticipantAdditions");let c={kind:"updateToolInvocation",toolCallId:l,streamData:{partialInput:d.partialInput}};return a(c),this},push(l){if(n(this.push),(l instanceof Es||l instanceof Ca||l instanceof xs||l instanceof Cs||l instanceof ha||l instanceof Ts||l instanceof xa||l instanceof Sa||l instanceof Gl||l instanceof Nc||l instanceof Pi||l instanceof Ql||l instanceof jl)&&A(t._extension,"chatParticipantAdditions"),l instanceof qr)this.reference2(l.value,l.iconPath,l.options);else if(l instanceof jl){let d=l.task?FC.from(l):Vv.from(l);a(d,l.task)}else if(l instanceof Pi){let d=Bv.from(l);a(d)}else if(l instanceof Ss){let d=Dm.from(l);if(l.resolve){A(t._extension,"chatParticipantAdditions"),d.resolveId=Le();let c=new Ce;l.resolve(c.token).then(()=>{let u=Dm.from(l);t._proxy.$handleAnchorResolve(t._request.requestId,d.resolveId,u)}).then(()=>c.dispose(),()=>c.dispose()),t._sessionDisposables.add(G(()=>c.dispose(!0)))}a(d)}else{if(l instanceof Nc)return this.externalEdit(l.uris,l.callback).then(c=>l.didGetApplied(c)),this;{let d=Nm.from(l,t._commandsConverter,t._sessionDisposables);a(d)}}return this},usage(l){n(this.usage),A(t._extension,"chatParticipantAdditions");let d={kind:"usage",promptTokens:l.promptTokens,completionTokens:l.completionTokens,outputBuffer:l.outputBuffer,promptTokenDetails:l.promptTokenDetails};return a(d),this}})}return this._apiObject}},pE=class r extends O{constructor(e,n,o,i,s,a,l,d){super();this._logService=n;this._commands=o;this._documents=i;this._editorsAndDocuments=s;this._languageModels=a;this._diagnostics=l;this._tools=d;this._agents=new Map;this._participantDetectionProviders=new Map;this._promptFileProviders=new Map;this._sessionDisposables=this._register(new by);this._completionDisposables=this._register(new jn);this._inFlightRequests=new Set;this._pendingCarouselResolvers=new Map;this._onDidChangeChatRequestTools=this._register(new T);this.onDidChangeChatRequestTools=this._onDidChangeChatRequestTools.event;this._onDidDisposeChatSession=this._register(new T);this.onDidDisposeChatSession=this._onDidDisposeChatSession.event;this._onDidChangeCustomAgents=this._register(new T);this.onDidChangeCustomAgents=this._onDidChangeCustomAgents.event;this._onDidChangeInstructions=this._register(new T);this.onDidChangeInstructions=this._onDidChangeInstructions.event;this._onDidChangeSkills=this._register(new T);this.onDidChangeSkills=this._onDidChangeSkills.event;this._customAgents=[];this._instructions=[];this._skills=[];this._onDidChangeActiveChatPanelSessionResource=this._register(new T);this.onDidChangeActiveChatPanelSessionResource=this._onDidChangeActiveChatPanelSessionResource.event;this._proxy=e.getProxy(U.MainThreadChatAgents2),o.registerArgumentProcessor({processArgument:c=>RV(c)?null:c})}static{this._idPool=0}static{this._participantDetectionProviderIdPool=0}static{this._contributionsProviderIdPool=0}get activeChatPanelSessionResource(){return this._activeChatPanelSessionResource}get customAgents(){return this._customAgents}get instructions(){return this._instructions}get skills(){return this._skills}$acceptCustomAgents(e){this._customAgents=e.map(n=>Object.freeze({uri:y.revive(n.uri)})),this._onDidChangeCustomAgents.fire()}$acceptInstructions(e){this._instructions=e.map(n=>Object.freeze({uri:y.revive(n.uri)})),this._onDidChangeInstructions.fire()}$acceptSkills(e){this._skills=e.map(n=>Object.freeze({uri:y.revive(n.uri)})),this._onDidChangeSkills.fire()}async transferActiveChat(e){await this._proxy.$transferActiveChatSession(e)}createChatAgent(e,n,o){let i=r._idPool++,s=new mE(e,n,this._proxy,i,o);return this._agents.set(i,s),this._proxy.$registerAgent(i,e.identifier,n,{},void 0),s.apiAgent}createDynamicChatAgent(e,n,o,i){let s=r._idPool++,a=new mE(e,n,this._proxy,s,i);return this._agents.set(s,a),this._proxy.$registerAgent(s,e.identifier,n,{isSticky:!0},o),a.apiAgent}registerChatParticipantDetectionProvider(e,n){let o=r._participantDetectionProviderIdPool++;return this._participantDetectionProviders.set(o,new NM(e,n)),this._proxy.$registerChatParticipantDetectionProvider(o),G(()=>{this._participantDetectionProviders.delete(o),this._proxy.$unregisterChatParticipantDetectionProvider(o)})}registerPromptFileProvider(e,n,o){let i=r._contributionsProviderIdPool++;this._promptFileProviders.set(i,{extension:e,provider:o}),this._proxy.$registerPromptFileProvider(i,n,e.identifier);let s=new $,a;switch(n){case"agent":a=o.onDidChangeCustomAgents;break;case"instructions":a=o.onDidChangeInstructions;break;case"prompt":a=o.onDidChangePromptFiles;break;case"skill":a=o.onDidChangeSkills;break}return a&&s.add(a(()=>{this._proxy.$onDidChangePromptFiles(i)})),s.add(G(()=>{this._promptFileProviders.delete(i),this._proxy.$unregisterPromptFileProvider(i)})),s}async $providePromptFiles(e,n,o,i){let s=this._promptFileProviders.get(e);if(!s)return;let a=s.provider,l;switch(n){case"agent":l=await a.provideCustomAgents(o,i)??void 0;break;case"instructions":l=await a.provideInstructions(o,i)??void 0;break;case"prompt":l=await a.providePromptFiles(o,i)??void 0;break;case"skill":l=await a.provideSkills(o,i)??void 0;break}return l}async $detectChatParticipant(e,n,o,i,s){let a=this._participantDetectionProviders.get(e);if(!a)return;let{request:l,location:d,history:c}=await this._createRequest(n,o,a.extension),u=await this.getModelForRequest(l,a.extension),m=await this.getToolsForRequest(a.extension,l.userSelectedTools,u.id,s),g=Um.to(l,d,u,this.getDiagnosticsWhenEnabled(a.extension),m,a.extension,this._logService);return a.provider.provideParticipantDetection(g,{history:c,yieldRequested:!1},{participants:i.participants,location:Fm.to(i.location)},s)}async _createRequest(e,n,o){let i=Ht(e),s=await this.prepareHistoryTurns(o,i.agentId,n),a;if(i.locationData?.type==="editor"){let l=this._documents.getDocument(i.locationData.document),d=this._editorsAndDocuments.getEditor(i.locationData.id);a=new Sm(d.value,l,yo.to(i.locationData.selection),K.to(i.locationData.wholeRange))}else if(i.locationData?.type==="notebook"){let l=this._documents.getDocument(i.locationData.sessionInputUri);a=new Cm(l)}else i.locationData?.type,"terminal";return{request:i,location:a,history:s}}async getModelForRequest(e,n){let o;if(e.userSelectedModelId&&(o=await this._languageModels.getLanguageModelByIdentifier(n,e.userSelectedModelId)),!o&&(o=await this._languageModels.getDefaultLanguageModel(n),!o))throw new Error("Language model unavailable");return o}async $setRequestTools(e,n){let o=[...this._inFlightRequests].find(s=>s.requestId===e);if(!o)return;o.extRequest.tools.clear();let i=await this.getToolsForRequest(o.extension,n,o.extRequest.model.id,he.None);for(let[s,a]of i)o.extRequest.tools.set(s,a);this._onDidChangeChatRequestTools.fire(o.extRequest)}$setYieldRequested(e,n){let o=[...this._inFlightRequests].find(i=>i.requestId===e);o&&(o.yieldRequested=n)}async $invokeAgent(e,n,o,i){let s=this._agents.get(e);if(!s)throw new Error(`[CHAT](${e}) CANNOT invoke agent because the agent is not registered`);let a,l;try{let{request:d,location:c,history:u}=await this._createRequest(n,o,s.extension),m=this._sessionDisposables.get(d.sessionResource);m||(m=new $,this._sessionDisposables.set(d.sessionResource,m)),a=new rf(s.extension,d,this._proxy,this._commands.converter,m,this._pendingCarouselResolvers,i);let g=await this.getModelForRequest(d,s.extension),h=await this.getToolsForRequest(s.extension,d.userSelectedTools,g.id,i),f=Um.to(d,c,g,this.getDiagnosticsWhenEnabled(s.extension),h,s.extension,this._logService);l={requestId:n.requestId,extRequest:f,extension:s.extension,hooks:d.hooks,yieldRequested:!1},this._inFlightRequests.add(l);let I;o.chatSessionContext&&(I={chatSessionItem:{resource:y.revive(o.chatSessionContext.chatSessionResource),label:o.chatSessionContext.isUntitled?"Untitled Session":"Session"},isUntitled:o.chatSessionContext.isUntitled,initialSessionOptions:o.chatSessionContext.initialSessionOptions});let S={history:u,chatSessionContext:I,get yieldRequested(){return l?.yieldRequested??!1}},E=s.invoke(f,S,a.apiObject,i);return await OK(1e3,Promise.resolve(E).then(P=>{if(P?.metadata)try{JSON.stringify(P.metadata)}catch(j){let F=`result.metadata MUST be JSON.stringify-able. Got error: ${j.message}`;return this._logService.error(`[${s.extension.identifier.value}] [@${s.id}] ${F}`,s.extension),{errorDetails:{message:F},timings:a?.timings,nextQuestion:P.nextQuestion}}let L;return P?.errorDetails&&(L={...P.errorDetails,responseIsIncomplete:!0}),(L?.responseIsRedacted||L?.isQuotaExceeded||L?.isRateLimited||L?.confirmationButtons||L?.code)&&A(s.extension,"chatParticipantPrivate"),{errorDetails:L,timings:a?.timings,metadata:P?.metadata,nextQuestion:P?.nextQuestion,details:P?.details}}),i)}catch(d){this._logService.error(d,s.extension),d instanceof mr&&d.cause&&(d=d.cause);let c=d instanceof Error&&d.name==="ChatQuotaExceeded",u=d instanceof Error&&d.name==="ChatRateLimited";return{errorDetails:{message:fo(d),responseIsIncomplete:!0,isQuotaExceeded:c,isRateLimited:u}}}finally{l&&this._inFlightRequests.delete(l);let d=this._pendingCarouselResolvers.get(n.requestId);if(d){for(let c of d.values())c.complete(void 0);this._pendingCarouselResolvers.delete(n.requestId)}a?.close()}}getDiagnosticsWhenEnabled(e){return Fe(e,"chatReferenceDiagnostic")?this._diagnostics.getDiagnostics():[]}async getToolsForRequest(e,n,o,i){if(!n)return new Map;let s=new Map;for(let a of this._tools.getTools(e))typeof n[a.name]=="boolean"&&s.set(a,n[a.name]);return s}async prepareHistoryTurns(e,n,o){let i=[];for(let s of o.history){let a=Hm.to(s.result),l=n===s.request.agentId||AV(s.request.agentId)&&AV(n)?a:{...a,metadata:void 0},d=[],c=[];for(let h of s.request.variables.variables)if(h.kind==="tool")c.push(Qc.to(h));else if(h.kind==="toolset")c.push(...h.value.map(Qc.to));else{let f=zC.to(h,this.getDiagnosticsWhenEnabled(e),this._logService);f&&d.push(f)}let u=Fe(e,"chatParticipantPrivate")?s.request.editedFileEvents:void 0,m=new Ta(s.request.message,s.request.command,d,s.request.agentId,c,u,s.request.requestId);i.push(m);let g=nt(s.response.map(h=>Nm.toContent(h,this._commands.converter)));i.push(new fm(g,l,s.request.agentId,s.request.command))}return i}$releaseSession(e){let n=y.revive(e);this._sessionDisposables.deleteAndDispose(n);let o=hl.parseLocalSessionId(n);o&&this._onDidDisposeChatSession.fire(o)}$acceptActiveChatSession(e){let n=e?y.revive(e):void 0;this._activeChatPanelSessionResource?.toString()!==n?.toString()&&(this._activeChatPanelSessionResource=n,this._onDidChangeActiveChatPanelSessionResource.fire(n))}async $provideFollowups(e,n,o,i,s){let a=this._agents.get(n);if(!a)return Promise.resolve([]);let l=Ht(e),d=await this.prepareHistoryTurns(a.extension,a.id,i),c=Hm.to(o);return(await a.provideFollowups(c,{history:d,yieldRequested:!1},s)).filter(u=>{let m=!u.participant||Mt.some(this._agents.values(),g=>g.id===u.participant&&_e.equals(g.extension.identifier,a.extension.identifier));return m||this._logService.warn(`[@${a.id}] ChatFollowup refers to an unknown participant: ${u.participant}`),m}).map(u=>RC.from(u,l))}$acceptFeedback(e,n,o){let i=this._agents.get(e);if(!i)return;let s=Hm.to(n),a;switch(o.direction){case 0:a=0;break;case 1:a=1;break}let l={result:s,kind:a,unhelpfulReason:Fe(i.extension,"chatParticipantAdditions")?o.reason:void 0};i.acceptFeedback(Object.freeze(l))}$handleQuestionCarouselAnswer(e,n,o){let i=this._pendingCarouselResolvers.get(e);if(!i)return;let s=i.get(n);s&&(s.complete(o),i.delete(n)),i.size===0&&this._pendingCarouselResolvers.delete(e)}$acceptAction(e,n,o){let i=this._agents.get(e);if(!i||o.action.kind==="vote")return;let s=w1.to(n,o,this._commands.converter);s&&i.acceptAction(Object.freeze(s))}async $invokeCompletionProvider(e,n,o){let i=this._agents.get(e);if(!i)return[];let s=this._completionDisposables.get(e);return s?s.clear():(s=new $,this._completionDisposables.set(e,s)),(await i.invokeCompletionProvider(n,o)).map(l=>E1.from(l,this._commands.converter,s))}async $provideChatTitle(e,n,o){let i=this._agents.get(e);if(!i)return;let s=await this.prepareHistoryTurns(i.extension,i.id,{history:n}),a=n[0]?.request.sessionResource?y.revive(n[0].request.sessionResource):void 0;return await i.provideTitle({history:s,sessionResource:a,yieldRequested:!1},o)}async $provideChatSummary(e,n,o){let i=this._agents.get(e);if(!i)return;let s=await this.prepareHistoryTurns(i.extension,i.id,{history:n}),a=n[0]?.request.sessionResource?y.revive(n[0].request.sessionResource):void 0;return await i.provideSummary({history:s,sessionResource:a,yieldRequested:!1},o)}},NM=class{constructor(t,e){this.extension=t;this.provider=e}},mE=class{constructor(t,e,n,o,i){this.extension=t;this.id=e;this._proxy=n;this._handle=o;this._requestHandler=i;this._onDidReceiveFeedback=new T;this._onDidPerformAction=new T;this._pauseStateEmitter=new T}acceptFeedback(t){this._onDidReceiveFeedback.fire(t)}acceptAction(t){this._onDidPerformAction.fire(t)}setChatRequestPauseState(t){this._pauseStateEmitter.fire(t)}async invokeCompletionProvider(t,e){return this._agentVariableProvider?await this._agentVariableProvider.provider.provideCompletionItems(t,e)??[]:[]}async provideFollowups(t,e,n){if(!this._followupProvider)return[];let o=await this._followupProvider.provideFollowups(t,e,n);return o?o.filter(i=>!(i&&"commandId"in i)).filter(i=>!(i&&"message"in i)):[]}async provideTitle(t,e){if(this._titleProvider)return await this._titleProvider.provideChatTitle(t,e)??void 0}async provideSummary(t,e){if(this._summarizer)return await this._summarizer.provideChatSummary(t,e)??void 0}get apiAgent(){let t=!1,e=!1,n=()=>{t||e||(e=!0,queueMicrotask(()=>{this._proxy.$updateAgent(this._handle,{icon:this._iconPath?this._iconPath instanceof y?this._iconPath:"light"in this._iconPath?this._iconPath.light:void 0:void 0,iconDark:this._iconPath&&"dark"in this._iconPath?this._iconPath.dark:void 0,themeIcon:this._iconPath instanceof an?this._iconPath:void 0,hasFollowups:this._followupProvider!==void 0,helpTextPrefix:!this._helpTextPrefix||typeof this._helpTextPrefix=="string"?this._helpTextPrefix:me.from(this._helpTextPrefix),helpTextPostfix:!this._helpTextPostfix||typeof this._helpTextPostfix=="string"?this._helpTextPostfix:me.from(this._helpTextPostfix),supportIssueReporting:this._supportIssueReporting,additionalWelcomeMessage:!this._additionalWelcomeMessage||typeof this._additionalWelcomeMessage=="string"?this._additionalWelcomeMessage:me.from(this._additionalWelcomeMessage)}),e=!1}))},o=this;return{get id(){return o.id},get iconPath(){return o._iconPath},set iconPath(i){o._iconPath=i,n()},get requestHandler(){return o._requestHandler},set requestHandler(i){Bu(typeof i=="function","Invalid request handler"),o._requestHandler=i},get followupProvider(){return o._followupProvider},set followupProvider(i){o._followupProvider=i,n()},get helpTextPrefix(){return A(o.extension,"defaultChatParticipant"),o._helpTextPrefix},set helpTextPrefix(i){A(o.extension,"defaultChatParticipant"),o._helpTextPrefix=i,n()},get helpTextPostfix(){return A(o.extension,"defaultChatParticipant"),o._helpTextPostfix},set helpTextPostfix(i){A(o.extension,"defaultChatParticipant"),o._helpTextPostfix=i,n()},get supportIssueReporting(){return A(o.extension,"chatParticipantPrivate"),o._supportIssueReporting},set supportIssueReporting(i){A(o.extension,"chatParticipantPrivate"),o._supportIssueReporting=i,n()},get onDidReceiveFeedback(){return o._onDidReceiveFeedback.event},set participantVariableProvider(i){if(A(o.extension,"chatParticipantAdditions"),o._agentVariableProvider=i,i){if(!i.triggerCharacters.length)throw new Error("triggerCharacters are required");o._proxy.$registerAgentCompletionsProvider(o._handle,o.id,i.triggerCharacters)}else o._proxy.$unregisterAgentCompletionsProvider(o._handle,o.id)},get participantVariableProvider(){return A(o.extension,"chatParticipantAdditions"),o._agentVariableProvider},set additionalWelcomeMessage(i){A(o.extension,"defaultChatParticipant"),o._additionalWelcomeMessage=i,n()},get additionalWelcomeMessage(){return A(o.extension,"defaultChatParticipant"),o._additionalWelcomeMessage},set titleProvider(i){A(o.extension,"defaultChatParticipant"),o._titleProvider=i,n()},get titleProvider(){return A(o.extension,"defaultChatParticipant"),o._titleProvider},set summarizer(i){A(o.extension,"defaultChatParticipant"),o._summarizer=i},get summarizer(){return A(o.extension,"defaultChatParticipant"),o._summarizer},get onDidChangePauseState(){return A(o.extension,"chatParticipantAdditions"),o._pauseStateEmitter.event},onDidPerformAction:Fe(this.extension,"chatParticipantAdditions")?this._onDidPerformAction.event:void 0,dispose(){t=!0,o._followupProvider=void 0,o._onDidReceiveFeedback.dispose(),o._onDidPerformAction.dispose(),o._pauseStateEmitter.dispose(),o._proxy.$unregisterAgent(o._handle)}}}invoke(t,e,n,o){return this._requestHandler(t,e,n,o)}};function OK(r,t,e){return new Promise((n,o)=>{let i=e.onCancellationRequested(async()=>{i.dispose(),await Lt(r),n(void 0)});t.then(n,o).finally(()=>i.dispose())})}function AV(r){return r.startsWith("github.copilot")}var gE=class{constructor(t,e){this.webviews=e;this._renderers=new Map;this._proxy=t.getProxy(U.MainThreadChatOutputRenderer)}registerChatOutputRenderer(t,e,n){if(this._renderers.has(e))throw new Error(`Chat output renderer already registered for: ${e}`);return this._renderers.set(e,{extension:t,renderer:n}),this._proxy.$registerChatOutputRenderer(e,t.identifier,t.extensionLocation),new be(()=>{this._renderers.delete(e),this._proxy.$unregisterChatOutputRenderer(e)})}async $renderChatOutput(t,e,n,o,i){let s=this._renderers.get(t);if(!s)throw new Error(`No chat output renderer registered for: ${t}`);let a=this.webviews.createNewWebview(o,{},s.extension),l=Object.freeze({webview:a,onDidDispose:a._onDidDispose});return s.renderer.renderChatOutput(Object.freeze({mime:e,value:n.buffer}),l,{},i)}};var FM=class{#e;#t;#n;#o;#s;#i;#l;#a;#d;#c;#r;constructor(t,e,n){this.resource=t,this.#e=e,this.#r=n}get label(){return this.#e}set label(t){this.#e!==t&&(this.#e=t,this.#r())}get iconPath(){return this.#t}set iconPath(t){this.#t!==t&&(this.#t=t,this.#r())}get description(){return this.#n}set description(t){this.#n!==t&&(this.#n=t,this.#r())}get badge(){return this.#o}set badge(t){this.#o!==t&&(this.#o=t,this.#r())}get status(){return this.#s}set status(t){this.#s!==t&&(this.#s=t,this.#r())}get archived(){return this.#i}set archived(t){this.#i!==t&&(this.#i=t,this.#r())}get tooltip(){return this.#l}set tooltip(t){this.#l!==t&&(this.#l=t,this.#r())}get timing(){return this.#a}set timing(t){this.#a!==t&&(this.#a=t,this.#r())}get changes(){return this.#d}set changes(t){this.#d!==t&&(this.#d=t,this.#r())}get metadata(){return this.#c}set metadata(t){if(t!==void 0)try{JSON.stringify(t)}catch{throw new Error("metadata must be JSON-serializable")}tn(this.#c,t)||(this.#c=t,this.#r())}};function UK(r,t){let e={addedOrUpdated:new Ge,removed:new Rr};for(let[n,o]of t)r.get(n)!==o&&e.addedOrUpdated.set(n,o);for(let n of r.keys())t.has(n)||e.removed.add(n);return e}function FK(r){return{addedOrUpdated:r.addedOrUpdated?Array.from(r.addedOrUpdated.values(),Vm.from):[],removed:r.removed?Array.from(r.removed.keys()):[]}}var fE=class{#e=new Ge;#t;#n;constructor(t,e){this.#t=e,this.#n=t}get size(){return this.#e.size}replace(t){if(!t.length&&!this.#e.size)return;let e=new Ge(t.map(o=>[o.resource,o])),n=UK(this.#e,e);!n.addedOrUpdated?.size&&!n.removed?.size||(this.#e=e,this.#t.$updateChatSessionItems(this.#n,FK(n)))}forEach(t,e){for(let[n,o]of this.#e)t.call(e,o,this)}add(t){let e=this.#e.get(t.resource);e&&e===t||(this.#e.set(t.resource,t),this.#t.$addOrUpdateChatSessionItem(this.#n,Vm.from(t)))}delete(t){this.#e.delete(t)&&this.#t.$updateChatSessionItems(this.#n,{addedOrUpdated:[],removed:[t]})}get(t){return this.#e.get(t)}[Symbol.iterator](){return this.#e.entries()}},HM=class{constructor(t,e,n,o,i,s){this.session=t;this.extension=e;this.proxy=o;this.commandsConverter=i;this.sessionDisposables=s;this._pendingCarouselResolvers=new Map;this._stream=new rf(e,n,o,i,s,this._pendingCarouselResolvers,he.None)}get activeResponseStream(){return this._stream}getActiveRequestStream(t){return new rf(this.extension,t,this.proxy,this.commandsConverter,this.sessionDisposables,this._pendingCarouselResolvers,he.None)}},Sd=class extends O{constructor(e,n,o,i){super();this.commands=e;this._languageModels=n;this._extHostRpc=o;this._logService=i;this._itemControllerHandlePool=0;this._chatSessionItemControllers=new Map;this._contentProviderHandlePool=0;this._chatSessionContentProviders=new Map;this._extHostChatSessions=new Ge;this._providerOptionGroups=new Map;this._proxy=this._extHostRpc.getProxy(U.MainThreadChatSessions),e.registerArgumentProcessor({processArgument:s=>{if(s&&s.$mid===25){let a=s.session.resource;for(let{controller:l}of this._chatSessionItemControllers.values()){let d=l.items.get(a);if(d)return d}return this._logService.warn(`No chat session found with uri: ${a}`),s}return s}})}static{this._sessionHandlePool=0}registerChatSessionItemProvider(e,n,o){let i=this._itemControllerHandlePool++,s=new $,a=s.add(new T),l=new fE(i,this._proxy),d={id:n,items:l,createChatSessionItem:(c,u)=>{throw new Error("Not implemented for providers")},onDidChangeChatSessionItemState:a.event,newChatSessionItemHandler:void 0,dispose:()=>{s.dispose()},refreshHandler:async c=>{let u=await o.provideChatSessionItems(c)??[];l.replace(u)}};return this._chatSessionItemControllers.set(i,{chatSessionType:n,controller:d,extension:e,disposable:s,onDidChangeChatSessionItemStateEmitter:a}),this._proxy.$registerChatSessionItemController(i,n),o.onDidChangeChatSessionItems&&s.add(o.onDidChangeChatSessionItems(()=>{this._logService.trace(`ExtHostChatSessions. Provider items changed for ${n}`),d.refreshHandler(he.None)})),o.onDidCommitChatSessionItem&&s.add(o.onDidCommitChatSessionItem(c=>{let{original:u,modified:m}=c;this._proxy.$onDidCommitChatSessionItem(i,u.resource,m.resource)})),{dispose:()=>{this._chatSessionItemControllers.delete(i),s.dispose(),this._proxy.$unregisterChatSessionItemController(i)}}}createChatSessionItemController(e,n,o){let i=this._itemControllerHandlePool++,s=new $,a=!1,l,d=s.add(new T),c=new fE(i,this._proxy),u=Object.freeze({id:n,refreshHandler:async m=>{if(a)throw new Error("ChatSessionItemController has been disposed");this._logService.trace(`ExtHostChatSessions. Controller(${n}).refresh()`),await o(m)},items:c,onDidChangeChatSessionItemState:d.event,createChatSessionItem:(m,g)=>{if(a)throw new Error("ChatSessionItemController has been disposed");let h=new FM(m,g,()=>{c.get(m)===h&&this._proxy.$addOrUpdateChatSessionItem(i,Vm.from(h))});return h},get newChatSessionItemHandler(){return l},set newChatSessionItemHandler(m){l=m},dispose:()=>{a=!0,s.dispose()}});return this._chatSessionItemControllers.set(i,{controller:u,extension:e,disposable:s,chatSessionType:n,onDidChangeChatSessionItemStateEmitter:d}),this._proxy.$registerChatSessionItemController(i,n),s.add(G(()=>{this._chatSessionItemControllers.delete(i),this._proxy.$unregisterChatSessionItemController(i)})),u}registerChatSessionContentProvider(e,n,o,i,s){let a=this._contentProviderHandlePool++,l=new $;return this._chatSessionContentProviders.set(a,{provider:i,extension:e,capabilities:s,disposable:l}),this._proxy.$registerChatSessionContentProvider(a,n),i.onDidChangeChatSessionOptions&&l.add(i.onDidChangeChatSessionOptions(d=>{this._proxy.$onDidChangeChatSessionOptions(a,d.resource,d.updates)})),i.onDidChangeChatSessionProviderOptions&&l.add(i.onDidChangeChatSessionProviderOptions(()=>{this._proxy.$onDidChangeChatSessionProviderOptions(a)})),new be(()=>{this._chatSessionContentProviders.delete(a),l.dispose(),this._proxy.$unregisterChatSessionContentProvider(a)})}async $provideChatSessionContent(e,n,o,i){let s=this._chatSessionContentProviders.get(e);if(!s)throw new Error(`No provider for handle ${e}`);let a=y.revive(n),l=await s.provider.provideChatSessionContent(a,i,{sessionOptions:o?.initialSessionOptions??[]});if(i.isCancellationRequested)throw new Be;let d=new $,c=Sd._sessionHandlePool++,u=a.toString(),m=new HM(l,s.extension,{sessionResource:a,requestId:"ongoing",agentId:u,message:"",variables:{variables:[]},location:"panel"},{$handleProgressChunk:(f,I)=>this._proxy.$handleProgressChunk(e,a,f,I),$handleAnchorResolve:(f,I,S)=>{this._proxy.$handleAnchorResolve(e,a,f,I,S)}},this.commands.converter,d),g=d.add(new Ce);this._extHostChatSessions.set(a,{sessionObj:m,disposeCts:g}),l.activeResponseCallback&&Promise.resolve(l.activeResponseCallback(m.activeResponseStream.apiObject,g.token)).finally(()=>{this._proxy.$handleProgressComplete(e,a,"ongoing")});let{capabilities:h}=s;return{id:c+"",resource:y.revive(a),title:l.title,hasActiveResponseCallback:!!l.activeResponseCallback,hasRequestHandler:!!l.requestHandler,supportsInterruption:!!h?.supportsInterruptions,options:l.options,history:l.history.map(f=>f instanceof Ta?this.convertRequestTurn(f):this.convertResponseTurn(f,d))}}async $provideHandleOptionsChange(e,n,o,i){let s=y.revive(n),a=this._chatSessionContentProviders.get(e);if(!a){this._logService.warn(`No provider for handle ${e}`);return}if(!a.provider.provideHandleOptionsChange){this._logService.debug(`Provider for handle ${e} does not implement provideHandleOptionsChange`);return}try{let l=o.map(d=>({optionId:d.optionId,value:d.value===void 0?void 0:typeof d.value=="string"?d.value:d.value.id}));await a.provider.provideHandleOptionsChange(s,l,i)}catch(l){this._logService.error(`Error calling provideHandleOptionsChange for handle ${e}, sessionResource ${s}:`,l)}}async $provideChatSessionProviderOptions(e,n){let o=this._chatSessionContentProviders.get(e);if(!o){this._logService.warn(`No provider for handle ${e} when requesting chat session options`);return}let i=o.provider;if(i.provideChatSessionProviderOptions)try{let s=await i.provideChatSessionProviderOptions(n);if(!s)return;let{optionGroups:a,newSessionOptions:l}=s;return a&&this._providerOptionGroups.set(e,a),{optionGroups:a,newSessionOptions:l}}catch(s){this._logService.error(`Error calling provideChatSessionProviderOptions for handle ${e}:`,s);return}}async $interruptChatSessionActiveResponse(e,n,o){this._extHostChatSessions.get(y.revive(n))?.disposeCts.cancel()}async $disposeChatSessionContent(e,n){let o=this._extHostChatSessions.get(y.revive(n));if(!o){this._logService.warn(`No chat session found for resource: ${n}`);return}o.disposeCts.cancel(),o.sessionObj.sessionDisposables.dispose(),this._extHostChatSessions.delete(y.revive(n))}async $invokeChatSessionRequestHandler(e,n,o,i,s){let a=this._extHostChatSessions.get(y.revive(n));if(!a||!a.sessionObj.session.requestHandler)return{};let l=Um.to(o,void 0,await this.getModelForRequest(o,a.sessionObj.extension),[],new Map,a.sessionObj.extension,this._logService),d=a.sessionObj.getActiveRequestStream(o);return await a.sessionObj.session.requestHandler(l,{history:i,yieldRequested:!1},d.apiObject,s),{}}async getModelForRequest(e,n){let o;if(e.userSelectedModelId&&(o=await this._languageModels.getLanguageModelByIdentifier(n,e.userSelectedModelId)),!o&&(o=await this._languageModels.getDefaultLanguageModel(n),!o))throw new Error("Language model unavailable");return o}convertRequestTurn(e){let n=e.references.map(o=>this.convertReferenceToVariable(o));return{type:"request",id:e.id,prompt:e.prompt,participant:e.participant,command:e.command,variableData:n.length>0?{variables:n}:void 0,modelId:e.modelId}}convertReferenceToVariable(e){let n=e.value&&typeof e.value=="object"&&"uri"in e.value&&"range"in e.value?Gr.from(e.value):e.value,o=e.range?{start:e.range[0],endExclusive:e.range[1]}:void 0;if(n&&n instanceof Yl&&Array.isArray(n.diagnostics)&&n.diagnostics.length&&n.diagnostics[0][1].length){let a=ka.from(n.diagnostics[0][1][0]),l={filterRange:{startLineNumber:a.startLineNumber,startColumn:a.startColumn,endLineNumber:a.endLineNumber,endColumn:a.endColumn},filterSeverity:a.severity,filterUri:n.diagnostics[0][0],problemMessage:n.diagnostics[0][1][0].message};return QD.toEntry(l)}if(Qt.isLocation(e.value)&&e.name.startsWith("sym:")){let a=Gr.from(e.value);return{id:e.id,name:e.name,fullName:e.name.substring(4),value:{uri:e.value.uri,range:a.range},symbolKind:6,icon:FD.toIcon(6),kind:"symbol",range:o}}if(y.isUri(n)&&e.name.startsWith("prompt:")){if(e.id.startsWith("vscode.instructions.file.root"))return vl(n,"vscode.instructions.file.root");if(e.id.startsWith("vscode.instructions.file.reference"))return vl(n,"vscode.instructions.file.reference");if(e.id.startsWith("vscode.prompt.file"))return vl(n,"vscode.prompt.file")}let i=y.isUri(n)||n&&typeof n=="object"&&"uri"in n,s=i&&y.isUri(n)&&n.path.endsWith("/");return{id:e.id,name:e.name,value:n,modelDescription:e.modelDescription,range:o,kind:s?"directory":i?"file":"generic"}}convertResponseTurn(e,n){return{type:"response",parts:nt(e.response.map(i=>Nm.from(i,this.commands.converter,n))),participant:e.participant}}async $invokeOptionGroupSearch(e,n,o,i){let s=this._providerOptionGroups.get(e);if(!s)return this._logService.warn(`No option groups found for provider handle ${e}`),[];let a=s.find(l=>l.id===n);if(!a||!a.onSearch)return this._logService.warn(`No onSearch callback found for option group ${n}`),[];try{return await a.onSearch(o,i)??[]}catch(l){return this._logService.error(`Error calling onSearch for option group ${n}:`,l),[]}}async $refreshChatSessionItems(e,n){let o=this._chatSessionItemControllers.get(e);if(!o){this._logService.warn(`No controller found for handle ${e}`);return}await o.controller.refreshHandler(n)}async $newChatSessionItem(e,n,o){let i=this._chatSessionItemControllers.get(e);if(!i){this._logService.warn(`No controller found for handle ${e}`);return}let s=i.controller.newChatSessionItemHandler;if(!s)return;let a=await s({request:{prompt:n.prompt,command:n.command},sessionOptions:n.initialSessionOptions??[]},o);if(a)return Vm.from(a)}$onDidChangeChatSessionItemState(e,n,o){let i=this._chatSessionItemControllers.get(e);if(!i){this._logService.warn(`No controller found for handle ${e}`);return}let s=y.revive(n),a=i.controller.items.get(s);if(!a){this._logService.warn(`No item found for session resource ${s.toString()}`);return}a.archived=o,i.onDidChangeChatSessionItemStateEmitter.fire(a)}};Sd=_([C(2,ie),C(3,oe)],Sd);var hE=class{constructor(t){this._items=new Map;this._proxy=t.getProxy(U.MainThreadChatStatus)}createChatStatusItem(t,e){let n=HK(t.identifier,e);if(this._items.has(n))throw new Error(`Chat status item '${e}' already exists`);let o={id:n,title:"",description:"",detail:""},i=!1,s=!1,a=()=>{if(i)throw new Error("Chat status item is disposed");s&&this._proxy.$setEntry(e,o)},l=Object.freeze({id:e,get title(){return o.title},set title(d){o.title=d,a()},get description(){return o.description},set description(d){o.description=d,a()},get detail(){return o.detail},set detail(d){o.detail=d,a()},show:()=>{s=!0,a()},hide:()=>{s=!1,this._proxy.$disposeEntry(e)},dispose:()=>{i=!0,this._proxy.$disposeEntry(e),this._items.delete(n)}});return this._items.set(n,l),l}};function HK(r,t){return`${_e.toKey(r)}.${t}`}var vE=class{constructor(t){let e=t.getProxy(U.MainThreadClipboard);this.value=Object.freeze({readText(){return e.$readText()},writeText(n){return e.$writeText(n)}})}};var MV="vscode-cdn.net",WK=`vscode-resource.${MV}`,Rb=`'self' https://*.${MV}`;function Cd(r,t){return r.scheme===V.http||r.scheme===V.https?r:(t&&t.authority&&t.isRemote&&r.scheme===V.file&&(r=y.from({scheme:V.vscodeRemote,authority:t.authority,path:r.path})),y.from({scheme:V.https,authority:`${r.scheme}+${VK(r.authority)}.${WK}`,path:r.path,fragment:r.fragment,query:r.query}))}function VK(r){return r.replace(/./g,t=>{let e=t.charCodeAt(0);return e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57?t:"-"+e.toString(16).padStart(4,"0")})}var bE=class{constructor(t,e,n){this._proxy=t;this._editors=e;this._remoteInfo=n;this._handlePool=0;this._disposables=new $;this._insets=new Map;this._disposables.add(e.onDidChangeVisibleTextEditors(()=>{let o=e.getVisibleTextEditors();for(let i of this._insets.values())o.indexOf(i.editor)<0&&i.inset.dispose()}))}dispose(){this._insets.forEach(t=>t.inset.dispose()),this._disposables.dispose()}createWebviewEditorInset(t,e,n,o,i){let s;for(let g of this._editors.getVisibleTextEditors(!0))if(g.value===t){s=g;break}if(!s)throw new Error("not a visible editor");let a=this,l=this._handlePool++,d=new T,c=new T,u=new class{constructor(){this._html="";this._options=Object.create(null)}asWebviewUri(g){return Cd(g,a._remoteInfo)}get cspSource(){return Rb}set options(g){this._options=g,a._proxy.$setOptions(l,g)}get options(){return this._options}set html(g){this._html=g,a._proxy.$setHtml(l,g)}get html(){return this._html}get onDidReceiveMessage(){return d.event}postMessage(g){return a._proxy.$postMessage(l,g)}},m=new class{constructor(){this.editor=t;this.line=e;this.height=n;this.webview=u;this.onDidDispose=c.event}dispose(){a._insets.delete(l)&&(a._proxy.$disposeEditorInset(l),c.fire(),c.dispose(),d.dispose())}};return this._proxy.$createEditorInset(l,s.id,s.value.document.uri,e+1,n,o||{},i.identifier,i.extensionLocation),this._insets.set(l,{editor:t,inset:m,onDidReceiveMessage:d}),m}$onDidDispose(t){let e=this._insets.get(t);e&&e.inset.dispose()}$onDidReceiveMessage(t,e){this._insets.get(t)?.onDidReceiveMessage.fire(e)}};var yE=class r{constructor(t){this.providers=new Map;this._proxy=t.getProxy(U.MainThreadCodeMapper)}static{this._providerHandlePool=0}async $mapCode(t,e,n){let o=this.providers.get(t);if(!o)throw new Error(`Received request to map code for unknown provider handle ${t}`);let i={textEdit:(l,d)=>{d=Un(d),this._proxy.$handleProgress(e.requestId,{uri:l,edits:d.map(Cn.from)})},notebookEdit:(l,d)=>{d=Un(d),this._proxy.$handleProgress(e.requestId,{uri:l,edits:d.map(WC.from)})}},s={location:e.location,chatRequestId:e.chatRequestId,chatRequestModel:e.chatRequestModel,chatSessionId:e.chatSessionResource?hl.parseLocalSessionId(y.revive(e.chatSessionResource)):void 0,codeBlocks:e.codeBlocks.map(l=>({code:l.code,resource:y.revive(l.resource),markdownBeforeBlock:l.markdownBeforeBlock}))};return await o.provideMappedEdits(s,i,n)??null}registerMappedEditsProvider(t,e){let n=r._providerHandlePool++;return this._proxy.$registerCodeMapperProvider(n,t.displayName??t.name),this.providers.set(n,e),{dispose:()=>this._proxy.$unregisterCodeMapperProvider(n)}}};function LV(r,t,e){let n=r.getProxy(U.MainThreadComments);class o{constructor(){this._commentControllers=new Map;this._commentControllersByExtension=new no;t.registerArgumentProcessor({processArgument:f=>{if(f&&f.$mid===6){let I=this._commentControllers.get(f.handle);return I?I.value:f}else if(f&&f.$mid===7){let I=f,S=this._commentControllers.get(I.commentControlHandle);if(!S)return I;let E=S.getCommentThread(I.commentThreadHandle);return E?E.value:I}else if(f&&(f.$mid===9||f.$mid===8)){let I=this._commentControllers.get(f.thread.commentControlHandle);if(!I)return f;let S=I.getCommentThread(f.thread.commentThreadHandle);return S?f.$mid===8?S.value:{thread:S.value,text:f.text}:f}else if(f&&f.$mid===10){let I=this._commentControllers.get(f.thread.commentControlHandle);if(!I)return f;let S=I.getCommentThread(f.thread.commentThreadHandle);if(!S)return f;let E=f.commentUniqueId,P=S.getCommentByUniqueId(E);return P||f}else if(f&&f.$mid===11){let I=this._commentControllers.get(f.thread.commentControlHandle);if(!I)return f;let S=I.getCommentThread(f.thread.commentThreadHandle);if(!S)return f;let E=f.text,P=f.commentUniqueId,L=S.getCommentByUniqueId(P);return L?(typeof L.body=="string"?L.body=E:L.body=new Gt(E),L):f}return f}})}static{this.handlePool=0}createCommentController(f,I,S){let E=o.handlePool++,P=new s(f,E,I,S);this._commentControllers.set(P.handle,P);let L=this._commentControllersByExtension.get(f.identifier)||[];return L.push(P),this._commentControllersByExtension.set(f.identifier,L),P.value}async $createCommentThreadTemplate(f,I,S,E){let P=this._commentControllers.get(f);P&&P.$createCommentThreadTemplate(I,S,E)}async $setActiveComment(f,I){let S=this._commentControllers.get(f);S&&S.$setActiveComment(I??void 0)}async $updateCommentThreadTemplate(f,I,S){let E=this._commentControllers.get(f);E&&E.$updateCommentThreadTemplate(I,S)}$deleteCommentThread(f,I){this._commentControllers.get(f)?.$deleteCommentThread(I)}async $updateCommentThread(f,I,S){this._commentControllers.get(f)?.$updateCommentThread(I,S)}async $provideCommentingRanges(f,I,S){let E=this._commentControllers.get(f);if(!E||!E.commentingRangeProvider)return Promise.resolve(void 0);let P=await e.ensureDocumentData(y.revive(I));return pn(async()=>{let L=await E.commentingRangeProvider?.provideCommentingRanges(P.document,S),j;return Array.isArray(L)?j={ranges:L,fileComments:!1}:L?j={ranges:L.ranges||[],fileComments:L.enableFileComments||!1}:j=L??void 0,j}).then(L=>{let j;return L&&(j={ranges:L.ranges.map(F=>K.from(F)),fileComments:L.fileComments}),j})}$toggleReaction(f,I,S,E,P){let L=this._commentControllers.get(f);return!L||!L.reactionHandler?Promise.resolve(void 0):pn(()=>{let j=L.getCommentThread(I);if(j){let F=j.getCommentByUniqueId(E.uniqueIdInThread);if(L!==void 0&&F&&L.reactionHandler)return L.reactionHandler(F,d(P))}return Promise.resolve(void 0)})}}let g=class g{constructor(f,I,S,E,P,L,j,F,z){this._commentControllerHandle=I;this._id=S;this._uri=E;this._range=P;this._comments=L;this.extensionDescription=j;this._isTemplate=F;this.handle=g._handlePool++;this.commentHandle=0;this.modifications=Object.create(null);this._onDidUpdateCommentThread=new T;this.onDidUpdateCommentThread=this._onDidUpdateCommentThread.event;this._canReply=!0;this._commentsMap=new Map;this._acceptInputDisposables=new En;this._acceptInputDisposables.value=new $,this._id===void 0&&(this._id=`${f}.${this.handle}`),n.$createCommentThread(I,this.handle,this._id,this._uri,K.from(this._range),this._comments.map(Y=>a(this,Y,this._commentsMap,this.extensionDescription)),j.identifier,this._isTemplate,z),this._localDisposables=[],this._isDiposed=!1,this._localDisposables.push(this.onDidUpdateCommentThread(()=>{this.eventuallyUpdateCommentThread()})),this._localDisposables.push({dispose:()=>{n.$deleteCommentThread(I,this.handle)}});let J=this;this.value={get uri(){return J.uri},get range(){return J.range},set range(Y){J.range=Y},get comments(){return J.comments},set comments(Y){J.comments=Y},get collapsibleState(){return J.collapsibleState},set collapsibleState(Y){J.collapsibleState=Y},get canReply(){return J.canReply},set canReply(Y){J.canReply=Y},get contextValue(){return J.contextValue},set contextValue(Y){J.contextValue=Y},get label(){return J.label},set label(Y){J.label=Y},get state(){return J.state},set state(Y){J.state=Y},reveal:(Y,X)=>J.reveal(Y,X),hide:()=>J.hide(),dispose:()=>{J.dispose()}}}static{this._handlePool=0}set threadId(f){this._id=f}get threadId(){return this._id}get id(){return this._id}get resource(){return this._uri}get uri(){return this._uri}set range(f){(f===void 0!=(this._range===void 0)||!f||!this._range||!f.isEqual(this._range))&&(this._range=f,this.modifications.range=f,this._onDidUpdateCommentThread.fire())}get range(){return this._range}set canReply(f){this._canReply!==f&&(this._canReply=f,this.modifications.canReply=f,this._onDidUpdateCommentThread.fire())}get canReply(){return this._canReply}get label(){return this._label}set label(f){this._label=f,this.modifications.label=f,this._onDidUpdateCommentThread.fire()}get contextValue(){return this._contextValue}set contextValue(f){this._contextValue=f,this.modifications.contextValue=f,this._onDidUpdateCommentThread.fire()}get comments(){return this._comments}set comments(f){this._comments=f,this.modifications.comments=f,this._onDidUpdateCommentThread.fire()}get collapsibleState(){return this._collapseState}set collapsibleState(f){this._collapseState!==f&&(this._collapseState=f,this.modifications.collapsibleState=f,this._onDidUpdateCommentThread.fire())}get state(){return this._state}set state(f){this._state=f,typeof f=="object"?(A(this.extensionDescription,"commentThreadApplicability"),this.modifications.state=f.resolved,this.modifications.applicability=f.applicability):this.modifications.state=f,this._onDidUpdateCommentThread.fire()}get isDisposed(){return this._isDiposed}updateIsTemplate(){this._isTemplate&&(this._isTemplate=!1,this.modifications.isTemplate=!1)}eventuallyUpdateCommentThread(){if(this._isDiposed)return;this.updateIsTemplate(),this._acceptInputDisposables.value||(this._acceptInputDisposables.value=new $);let f=S=>Object.prototype.hasOwnProperty.call(this.modifications,S),I={};f("range")&&(I.range=K.from(this._range)),f("label")&&(I.label=this.label),f("contextValue")&&(I.contextValue=this.contextValue??null),f("comments")&&(I.comments=this._comments.map(S=>a(this,S,this._commentsMap,this.extensionDescription))),f("collapsibleState")&&(I.collapseState=c(this._collapseState)),f("canReply")&&(I.canReply=this.canReply),f("state")&&(I.state=u(this._state)),f("applicability")&&(I.applicability=m(this._state)),f("isTemplate")&&(I.isTemplate=this._isTemplate),this.modifications={},n.$updateCommentThread(this._commentControllerHandle,this.handle,this._id,this._uri,I)}getCommentByUniqueId(f){for(let I of this._commentsMap){let S=I[0],E=I[1];if(f===E)return S}}async reveal(f,I){A(this.extensionDescription,"commentReveal");let S;f&&f.body!==void 0?S=f:I=I??f;let E=S?this._commentsMap.get(S):void 0;E??=this._commentsMap.get(this._comments[0]);let P=!0,L=!1;return I?.focus===1?(L=!0,P=!1):I?.focus===2&&(P=!1),n.$revealCommentThread(this._commentControllerHandle,this.handle,E,{preserveFocus:P,focusReply:L})}async hide(){return n.$hideCommentThread(this._commentControllerHandle,this.handle)}dispose(){this._isDiposed=!0,this._acceptInputDisposables.dispose(),this._onDidUpdateCommentThread.dispose(),this._localDisposables.forEach(f=>f.dispose())}};_([Kd(100)],g.prototype,"eventuallyUpdateCommentThread",1);let i=g;class s{constructor(f,I,S,E){this._extension=f;this._handle=I;this._id=S;this._label=E;this._threads=new Map;n.$registerCommentController(this.handle,S,E,this._extension.identifier.value);let P=this;this.value=Object.freeze({id:P.id,label:P.label,get options(){return P.options},set options(L){P.options=L},get commentingRangeProvider(){return P.commentingRangeProvider},set commentingRangeProvider(L){P.commentingRangeProvider=L},get reactionHandler(){return P.reactionHandler},set reactionHandler(L){P.reactionHandler=L},get activeCommentThread(){return P.activeCommentThread},createCommentThread(L,j,F){return P.createCommentThread(L,j,F).value},dispose:()=>{P.dispose()}}),this._localDisposables=[],this._localDisposables.push({dispose:()=>{n.$unregisterCommentController(this.handle)}})}get id(){return this._id}get label(){return this._label}get handle(){return this._handle}get commentingRangeProvider(){return this._commentingRangeProvider}set commentingRangeProvider(f){this._commentingRangeProvider=f,f?.resourceHints&&A(this._extension,"commentingRangeHint"),n.$updateCommentingRanges(this.handle,f?.resourceHints)}get reactionHandler(){return this._reactionHandler}set reactionHandler(f){this._reactionHandler=f,n.$updateCommentControllerFeatures(this.handle,{reactionHandler:!!f})}get options(){return this._options}set options(f){this._options=f,n.$updateCommentControllerFeatures(this.handle,{options:this._options})}get activeComment(){return A(this._extension,"activeComment"),this._activeComment}get activeCommentThread(){return A(this._extension,"activeComment"),this._activeThread?.value}createCommentThread(f,I,S){let E=new i(this.id,this.handle,void 0,f,I,S,this._extension,!1);return this._threads.set(E.handle,E),E}$setActiveComment(f){if(!f){this._activeComment=void 0,this._activeThread=void 0;return}let I=this._threads.get(f.commentThreadHandle);I&&(this._activeComment=f.uniqueIdInThread?I.getCommentByUniqueId(f.uniqueIdInThread):void 0,this._activeThread=I)}$createCommentThreadTemplate(f,I,S){let E=new i(this.id,this.handle,void 0,y.revive(f),K.to(I),[],this._extension,!0,S);return E.collapsibleState=1,this._threads.set(E.handle,E),E}$updateCommentThreadTemplate(f,I){let S=this._threads.get(f);S&&(S.range=K.to(I))}$updateCommentThread(f,I){let S=this._threads.get(f);if(!S)return;(P=>Object.prototype.hasOwnProperty.call(I,P))("collapseState")&&(S.collapsibleState=c(I.collapseState))}$deleteCommentThread(f){this._threads.get(f)?.dispose(),this._threads.delete(f)}getCommentThread(f){return this._threads.get(f)}dispose(){this._threads.forEach(f=>{f.dispose()}),this._localDisposables.forEach(f=>f.dispose())}}function a(h,f,I,S){let E=I.get(f);return E||(E=++h.commentHandle,I.set(f,E)),f.state!==void 0&&A(S,"commentsDraftState"),f.reactions?.some(P=>P.reactors!==void 0)&&A(S,"commentReactor"),{mode:f.mode,contextValue:f.contextValue,uniqueIdInThread:E,body:typeof f.body=="string"?f.body:me.from(f.body),userName:f.author.name,userIconPath:f.author.iconPath,label:f.label,commentReactions:f.reactions?f.reactions.map(P=>l(P)):void 0,state:f.state,timestamp:f.timestamp?.toJSON()}}function l(h){return{label:h.label,iconPath:h.iconPath?Rv(h.iconPath):void 0,count:h.count,hasReacted:h.authorHasReacted,reactors:h.reactors&&h.reactors.length>0&&typeof h.reactors[0]!="string"?h.reactors.map(f=>f.name):h.reactors}}function d(h){return{label:h.label||"",count:h.count||0,iconPath:h.iconPath?y.revive(h.iconPath):"",authorHasReacted:h.hasReacted||!1,reactors:h.reactors?.map(f=>({name:f}))}}function c(h){if(h!==void 0)switch(h){case 1:return 1;case 0:return 0}return 0}function u(h){let f;if(typeof h=="object"?f=h.resolved:f=h,f!==void 0)switch(f){case 0:return 0;case 1:return 1}return 0}function m(h){let f;if(typeof h=="object"&&(f=h.applicability),f!==void 0)switch(f){case 0:return 0;case 1:return 1}return 0}return new o}var IE={},ht={exports:IE};(function(r,t){if(typeof IE=="object"&&typeof ht=="object")ht.exports=t();else if(typeof define=="function"&&define.amd)define([],t);else{var e=t();for(var n in e)(typeof IE=="object"?IE:r)[n]=e[n]}})(typeof self<"u"?self:void 0,(function(){return(function(r){var t={};function e(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return r[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=r,e.c=t,e.d=function(n,o,i){e.o(n,o)||Object.defineProperty(n,o,{enumerable:!0,get:i})},e.r=function(n){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,o){if(1&o&&(n=e(n)),8&o||4&o&&typeof n=="object"&&n&&n.__esModule)return n;var i=Object.create(null);if(e.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&o&&typeof n!="string")for(var s in n)e.d(i,s,function(a){return n[a]}.bind(null,s));return i},e.n=function(n){var o=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(o,"a",o),o},e.o=function(n,o){return Object.prototype.hasOwnProperty.call(n,o)},e.p="",e(e.s=0)})([function(r,t,e){(function(n){var o;t=r.exports=Tt,o=typeof n=="object"&&n.env&&n.env.NODE_DEBUG&&/\bsemver\b/i.test(n.env.NODE_DEBUG)?function(){var M=Array.prototype.slice.call(arguments,0);M.unshift("SEMVER"),console.log.apply(console,M)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var i=256,s=Number.MAX_SAFE_INTEGER||9007199254740991,a=t.re=[],l=t.src=[],d=0,c=d++;l[c]="0|[1-9]\\d*";var u=d++;l[u]="[0-9]+";var m=d++;l[m]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var g=d++;l[g]="("+l[c]+")\\.("+l[c]+")\\.("+l[c]+")";var h=d++;l[h]="("+l[u]+")\\.("+l[u]+")\\.("+l[u]+")";var f=d++;l[f]="(?:"+l[c]+"|"+l[m]+")";var I=d++;l[I]="(?:"+l[u]+"|"+l[m]+")";var S=d++;l[S]="(?:-("+l[f]+"(?:\\."+l[f]+")*))";var E=d++;l[E]="(?:-?("+l[I]+"(?:\\."+l[I]+")*))";var P=d++;l[P]="[0-9A-Za-z-]+";var L=d++;l[L]="(?:\\+("+l[P]+"(?:\\."+l[P]+")*))";var j=d++,F="v?"+l[g]+l[S]+"?"+l[L]+"?";l[j]="^"+F+"$";var z="[v=\\s]*"+l[h]+l[E]+"?"+l[L]+"?",J=d++;l[J]="^"+z+"$";var Y=d++;l[Y]="((?:<|>)?=?)";var X=d++;l[X]=l[u]+"|x|X|\\*";var q=d++;l[q]=l[c]+"|x|X|\\*";var He=d++;l[He]="[v=\\s]*("+l[q]+")(?:\\.("+l[q]+")(?:\\.("+l[q]+")(?:"+l[S]+")?"+l[L]+"?)?)?";var ct=d++;l[ct]="[v=\\s]*("+l[X]+")(?:\\.("+l[X]+")(?:\\.("+l[X]+")(?:"+l[E]+")?"+l[L]+"?)?)?";var et=d++;l[et]="^"+l[Y]+"\\s*"+l[He]+"$";var ne=d++;l[ne]="^"+l[Y]+"\\s*"+l[ct]+"$";var ee=d++;l[ee]="(?:^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])";var ae=d++;l[ae]="(?:~>?)";var re=d++;l[re]="(\\s*)"+l[ae]+"\\s+",a[re]=new RegExp(l[re],"g");var ce=d++;l[ce]="^"+l[ae]+l[He]+"$";var ve=d++;l[ve]="^"+l[ae]+l[ct]+"$";var Me=d++;l[Me]="(?:\\^)";var It=d++;l[It]="(\\s*)"+l[Me]+"\\s+",a[It]=new RegExp(l[It],"g");var Ne=d++;l[Ne]="^"+l[Me]+l[He]+"$";var Ct=d++;l[Ct]="^"+l[Me]+l[ct]+"$";var Ot=d++;l[Ot]="^"+l[Y]+"\\s*("+z+")$|^$";var je=d++;l[je]="^"+l[Y]+"\\s*("+F+")$|^$";var Tn=d++;l[Tn]="(\\s*)"+l[Y]+"\\s*("+z+"|"+l[He]+")",a[Tn]=new RegExp(l[Tn],"g");var So=d++;l[So]="^\\s*("+l[He]+")\\s+-\\s+("+l[He]+")\\s*$";var Hi=d++;l[Hi]="^\\s*("+l[ct]+")\\s+-\\s+("+l[ct]+")\\s*$";var Ha=d++;l[Ha]="(<|>)?=?\\s*\\*";for(var Zr=0;Zr<35;Zr++)o(Zr,l[Zr]),a[Zr]||(a[Zr]=new RegExp(l[Zr]));function ye(M,B){if(M instanceof Tt)return M;if(typeof M!="string"||M.length>i||!(B?a[J]:a[j]).test(M))return null;try{return new Tt(M,B)}catch{return null}}function Tt(M,B){if(M instanceof Tt){if(M.loose===B)return M;M=M.version}else if(typeof M!="string")throw new TypeError("Invalid Version: "+M);if(M.length>i)throw new TypeError("version is longer than "+i+" characters");if(!(this instanceof Tt))return new Tt(M,B);o("SemVer",M,B),this.loose=B;var Q=M.trim().match(B?a[J]:a[j]);if(!Q)throw new TypeError("Invalid Version: "+M);if(this.raw=M,this.major=+Q[1],this.minor=+Q[2],this.patch=+Q[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");Q[4]?this.prerelease=Q[4].split(".").map((function(ke){if(/^[0-9]+$/.test(ke)){var Ve=+ke;if(Ve>=0&&Ve<s)return Ve}return ke})):this.prerelease=[],this.build=Q[5]?Q[5].split("."):[],this.format()}t.parse=ye,t.valid=function(M,B){var Q=ye(M,B);return Q?Q.version:null},t.clean=function(M,B){var Q=ye(M.trim().replace(/^[=v]+/,""),B);return Q?Q.version:null},t.SemVer=Tt,Tt.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},Tt.prototype.toString=function(){return this.version},Tt.prototype.compare=function(M){return o("SemVer.compare",this.version,this.loose,M),M instanceof Tt||(M=new Tt(M,this.loose)),this.compareMain(M)||this.comparePre(M)},Tt.prototype.compareMain=function(M){return M instanceof Tt||(M=new Tt(M,this.loose)),fr(this.major,M.major)||fr(this.minor,M.minor)||fr(this.patch,M.patch)},Tt.prototype.comparePre=function(M){if(M instanceof Tt||(M=new Tt(M,this.loose)),this.prerelease.length&&!M.prerelease.length)return-1;if(!this.prerelease.length&&M.prerelease.length)return 1;if(!this.prerelease.length&&!M.prerelease.length)return 0;var B=0;do{var Q=this.prerelease[B],ke=M.prerelease[B];if(o("prerelease compare",B,Q,ke),Q===void 0&&ke===void 0)return 0;if(ke===void 0)return 1;if(Q===void 0)return-1;if(Q!==ke)return fr(Q,ke)}while(++B)},Tt.prototype.inc=function(M,B){switch(M){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",B);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",B);break;case"prepatch":this.prerelease.length=0,this.inc("patch",B),this.inc("pre",B);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",B),this.inc("pre",B);break;case"major":this.minor===0&&this.patch===0&&this.prerelease.length!==0||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":this.patch===0&&this.prerelease.length!==0||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{for(var Q=this.prerelease.length;--Q>=0;)typeof this.prerelease[Q]=="number"&&(this.prerelease[Q]++,Q=-2);Q===-1&&this.prerelease.push(0)}B&&(this.prerelease[0]===B?isNaN(this.prerelease[1])&&(this.prerelease=[B,0]):this.prerelease=[B,0]);break;default:throw new Error("invalid increment argument: "+M)}return this.format(),this.raw=this.version,this},t.inc=function(M,B,Q,ke){typeof Q=="string"&&(ke=Q,Q=void 0);try{return new Tt(M,Q).inc(B,ke).version}catch{return null}},t.diff=function(M,B){if(Ru(M,B))return null;var Q=ye(M),ke=ye(B);if(Q.prerelease.length||ke.prerelease.length){for(var Ve in Q)if((Ve==="major"||Ve==="minor"||Ve==="patch")&&Q[Ve]!==ke[Ve])return"pre"+Ve;return"prerelease"}for(var Ve in Q)if((Ve==="major"||Ve==="minor"||Ve==="patch")&&Q[Ve]!==ke[Ve])return Ve},t.compareIdentifiers=fr;var Bf=/^[0-9]+$/;function fr(M,B){var Q=Bf.test(M),ke=Bf.test(B);return Q&&ke&&(M=+M,B=+B),Q&&!ke?-1:ke&&!Q?1:M<B?-1:M>B?1:0}function Oo(M,B,Q){return new Tt(M,Q).compare(new Tt(B,Q))}function tt(M,B,Q){return Oo(M,B,Q)>0}function kd(M,B,Q){return Oo(M,B,Q)<0}function Ru(M,B,Q){return Oo(M,B,Q)===0}function ei(M,B,Q){return Oo(M,B,Q)!==0}function Wi(M,B,Q){return Oo(M,B,Q)>=0}function Pd(M,B,Q){return Oo(M,B,Q)<=0}function _d(M,B,Q,ke){var Ve;switch(B){case"===":typeof M=="object"&&(M=M.version),typeof Q=="object"&&(Q=Q.version),Ve=M===Q;break;case"!==":typeof M=="object"&&(M=M.version),typeof Q=="object"&&(Q=Q.version),Ve=M!==Q;break;case"":case"=":case"==":Ve=Ru(M,Q,ke);break;case"!=":Ve=ei(M,Q,ke);break;case">":Ve=tt(M,Q,ke);break;case">=":Ve=Wi(M,Q,ke);break;case"<":Ve=kd(M,Q,ke);break;case"<=":Ve=Pd(M,Q,ke);break;default:throw new TypeError("Invalid operator: "+B)}return Ve}function No(M,B){if(M instanceof No){if(M.loose===B)return M;M=M.value}if(!(this instanceof No))return new No(M,B);o("comparator",M,B),this.loose=B,this.parse(M),this.semver===Wa?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}t.rcompareIdentifiers=function(M,B){return fr(B,M)},t.major=function(M,B){return new Tt(M,B).major},t.minor=function(M,B){return new Tt(M,B).minor},t.patch=function(M,B){return new Tt(M,B).patch},t.compare=Oo,t.compareLoose=function(M,B){return Oo(M,B,!0)},t.rcompare=function(M,B,Q){return Oo(B,M,Q)},t.sort=function(M,B){return M.sort((function(Q,ke){return t.compare(Q,ke,B)}))},t.rsort=function(M,B){return M.sort((function(Q,ke){return t.rcompare(Q,ke,B)}))},t.gt=tt,t.lt=kd,t.eq=Ru,t.neq=ei,t.gte=Wi,t.lte=Pd,t.cmp=_d,t.Comparator=No;var Wa={};function ln(M,B){if(M instanceof ln)return M.loose===B?M:new ln(M.raw,B);if(M instanceof No)return new ln(M.value,B);if(!(this instanceof ln))return new ln(M,B);if(this.loose=B,this.raw=M,this.set=M.split(/\s*\|\|\s*/).map((function(Q){return this.parseRange(Q.trim())}),this).filter((function(Q){return Q.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+M);this.format()}function qn(M){return!M||M.toLowerCase()==="x"||M==="*"}function uy(M,B,Q,ke,Ve,dn,xt,_t,Yt,On,jo,gn,Nn){return((B=qn(Q)?"":qn(ke)?">="+Q+".0.0":qn(Ve)?">="+Q+"."+ke+".0":">="+B)+" "+(_t=qn(Yt)?"":qn(On)?"<"+(+Yt+1)+".0.0":qn(jo)?"<"+Yt+"."+(+On+1)+".0":gn?"<="+Yt+"."+On+"."+jo+"-"+gn:"<="+_t)).trim()}function Dd(M,B){for(var Q=0;Q<M.length;Q++)if(!M[Q].test(B))return!1;if(B.prerelease.length){for(Q=0;Q<M.length;Q++)if(o(M[Q].semver),M[Q].semver!==Wa&&M[Q].semver.prerelease.length>0){var ke=M[Q].semver;if(ke.major===B.major&&ke.minor===B.minor&&ke.patch===B.patch)return!0}return!1}return!0}function Hs(M,B,Q){try{B=new ln(B,Q)}catch{return!1}return B.test(M)}function Au(M,B,Q,ke){var Ve,dn,xt,_t,Yt;switch(M=new Tt(M,ke),B=new ln(B,ke),Q){case">":Ve=tt,dn=Pd,xt=kd,_t=">",Yt=">=";break;case"<":Ve=kd,dn=Wi,xt=tt,_t="<",Yt="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Hs(M,B,ke))return!1;for(var On=0;On<B.set.length;++On){var jo=B.set[On],gn=null,Nn=null;if(jo.forEach((function(Zn){Zn.semver===Wa&&(Zn=new No(">=0.0.0")),gn=gn||Zn,Nn=Nn||Zn,Ve(Zn.semver,gn.semver,ke)?gn=Zn:xt(Zn.semver,Nn.semver,ke)&&(Nn=Zn)})),gn.operator===_t||gn.operator===Yt||(!Nn.operator||Nn.operator===_t)&&dn(M,Nn.semver)||Nn.operator===Yt&&xt(M,Nn.semver))return!1}return!0}No.prototype.parse=function(M){var B=this.loose?a[Ot]:a[je],Q=M.match(B);if(!Q)throw new TypeError("Invalid comparator: "+M);this.operator=Q[1],this.operator==="="&&(this.operator=""),Q[2]?this.semver=new Tt(Q[2],this.loose):this.semver=Wa},No.prototype.toString=function(){return this.value},No.prototype.test=function(M){return o("Comparator.test",M,this.loose),this.semver===Wa||(typeof M=="string"&&(M=new Tt(M,this.loose)),_d(M,this.operator,this.semver,this.loose))},No.prototype.intersects=function(M,B){if(!(M instanceof No))throw new TypeError("a Comparator is required");var Q;if(this.operator==="")return Q=new ln(M.value,B),Hs(this.value,Q,B);if(M.operator==="")return Q=new ln(this.value,B),Hs(M.semver,Q,B);var ke=!(this.operator!==">="&&this.operator!==">"||M.operator!==">="&&M.operator!==">"),Ve=!(this.operator!=="<="&&this.operator!=="<"||M.operator!=="<="&&M.operator!=="<"),dn=this.semver.version===M.semver.version,xt=!(this.operator!==">="&&this.operator!=="<="||M.operator!==">="&&M.operator!=="<="),_t=_d(this.semver,"<",M.semver,B)&&(this.operator===">="||this.operator===">")&&(M.operator==="<="||M.operator==="<"),Yt=_d(this.semver,">",M.semver,B)&&(this.operator==="<="||this.operator==="<")&&(M.operator===">="||M.operator===">");return ke||Ve||dn&&xt||_t||Yt},t.Range=ln,ln.prototype.format=function(){return this.range=this.set.map((function(M){return M.join(" ").trim()})).join("||").trim(),this.range},ln.prototype.toString=function(){return this.range},ln.prototype.parseRange=function(M){var B=this.loose;M=M.trim(),o("range",M,B);var Q=B?a[Hi]:a[So];M=M.replace(Q,uy),o("hyphen replace",M),M=M.replace(a[Tn],"$1$2$3"),o("comparator trim",M,a[Tn]),M=(M=(M=M.replace(a[re],"$1~")).replace(a[It],"$1^")).split(/\s+/).join(" ");var ke=B?a[Ot]:a[je],Ve=M.split(" ").map((function(dn){return(function(xt,_t){return o("comp",xt),xt=(function(Yt,On){return Yt.trim().split(/\s+/).map((function(jo){return(function(gn,Nn){o("caret",gn,Nn);var Zn=Nn?a[Ct]:a[Ne];return gn.replace(Zn,(function(Go,We,Je,Vt,te){var Kn;return o("caret",gn,Go,We,Je,Vt,te),qn(We)?Kn="":qn(Je)?Kn=">="+We+".0.0 <"+(+We+1)+".0.0":qn(Vt)?Kn=We==="0"?">="+We+"."+Je+".0 <"+We+"."+(+Je+1)+".0":">="+We+"."+Je+".0 <"+(+We+1)+".0.0":te?(o("replaceCaret pr",te),te.charAt(0)!=="-"&&(te="-"+te),Kn=We==="0"?Je==="0"?">="+We+"."+Je+"."+Vt+te+" <"+We+"."+Je+"."+(+Vt+1):">="+We+"."+Je+"."+Vt+te+" <"+We+"."+(+Je+1)+".0":">="+We+"."+Je+"."+Vt+te+" <"+(+We+1)+".0.0"):(o("no pr"),Kn=We==="0"?Je==="0"?">="+We+"."+Je+"."+Vt+" <"+We+"."+Je+"."+(+Vt+1):">="+We+"."+Je+"."+Vt+" <"+We+"."+(+Je+1)+".0":">="+We+"."+Je+"."+Vt+" <"+(+We+1)+".0.0"),o("caret return",Kn),Kn}))})(jo,On)})).join(" ")})(xt,_t),o("caret",xt),xt=(function(Yt,On){return Yt.trim().split(/\s+/).map((function(jo){return(function(gn,Nn){var Zn=Nn?a[ve]:a[ce];return gn.replace(Zn,(function(Go,We,Je,Vt,te){var Kn;return o("tilde",gn,Go,We,Je,Vt,te),qn(We)?Kn="":qn(Je)?Kn=">="+We+".0.0 <"+(+We+1)+".0.0":qn(Vt)?Kn=">="+We+"."+Je+".0 <"+We+"."+(+Je+1)+".0":te?(o("replaceTilde pr",te),te.charAt(0)!=="-"&&(te="-"+te),Kn=">="+We+"."+Je+"."+Vt+te+" <"+We+"."+(+Je+1)+".0"):Kn=">="+We+"."+Je+"."+Vt+" <"+We+"."+(+Je+1)+".0",o("tilde return",Kn),Kn}))})(jo,On)})).join(" ")})(xt,_t),o("tildes",xt),xt=(function(Yt,On){return o("replaceXRanges",Yt,On),Yt.split(/\s+/).map((function(jo){return(function(gn,Nn){gn=gn.trim();var Zn=Nn?a[ne]:a[et];return gn.replace(Zn,(function(Go,We,Je,Vt,te,Kn){o("xRange",gn,Go,We,Je,Vt,te,Kn);var Mu=qn(Je),Va=Mu||qn(Vt),ti=Va||qn(te);return We==="="&&ti&&(We=""),Mu?Go=We===">"||We==="<"?"<0.0.0":"*":We&&ti?(Va&&(Vt=0),ti&&(te=0),We===">"?(We=">=",Va?(Je=+Je+1,Vt=0,te=0):ti&&(Vt=+Vt+1,te=0)):We==="<="&&(We="<",Va?Je=+Je+1:Vt=+Vt+1),Go=We+Je+"."+Vt+"."+te):Va?Go=">="+Je+".0.0 <"+(+Je+1)+".0.0":ti&&(Go=">="+Je+"."+Vt+".0 <"+Je+"."+(+Vt+1)+".0"),o("xRange return",Go),Go}))})(jo,On)})).join(" ")})(xt,_t),o("xrange",xt),xt=(function(Yt,On){return o("replaceStars",Yt,On),Yt.trim().replace(a[Ha],"")})(xt,_t),o("stars",xt),xt})(dn,B)})).join(" ").split(/\s+/);return this.loose&&(Ve=Ve.filter((function(dn){return!!dn.match(ke)}))),Ve=Ve.map((function(dn){return new No(dn,B)}))},ln.prototype.intersects=function(M,B){if(!(M instanceof ln))throw new TypeError("a Range is required");return this.set.some((function(Q){return Q.every((function(ke){return M.set.some((function(Ve){return Ve.every((function(dn){return ke.intersects(dn,B)}))}))}))}))},t.toComparators=function(M,B){return new ln(M,B).set.map((function(Q){return Q.map((function(ke){return ke.value})).join(" ").trim().split(" ")}))},ln.prototype.test=function(M){if(!M)return!1;typeof M=="string"&&(M=new Tt(M,this.loose));for(var B=0;B<this.set.length;B++)if(Dd(this.set[B],M))return!0;return!1},t.satisfies=Hs,t.maxSatisfying=function(M,B,Q){var ke=null,Ve=null;try{var dn=new ln(B,Q)}catch{return null}return M.forEach((function(xt){dn.test(xt)&&(ke&&Ve.compare(xt)!==-1||(Ve=new Tt(ke=xt,Q)))})),ke},t.minSatisfying=function(M,B,Q){var ke=null,Ve=null;try{var dn=new ln(B,Q)}catch{return null}return M.forEach((function(xt){dn.test(xt)&&(ke&&Ve.compare(xt)!==1||(Ve=new Tt(ke=xt,Q)))})),ke},t.validRange=function(M,B){try{return new ln(M,B).range||"*"}catch{return null}},t.ltr=function(M,B,Q){return Au(M,B,"<",Q)},t.gtr=function(M,B,Q){return Au(M,B,">",Q)},t.outside=Au,t.prerelease=function(M,B){var Q=ye(M,B);return Q&&Q.prerelease.length?Q.prerelease:null},t.intersects=function(M,B,Q){return M=new ln(M,Q),B=new ln(B,Q),M.intersects(B)},t.coerce=function(M){if(M instanceof Tt)return M;if(typeof M!="string")return null;var B=M.match(a[ee]);return B==null?null:ye((B[1]||"0")+"."+(B[2]||"0")+"."+(B[3]||"0"))}}).call(this,e(1))},function(r,t){var e,n,o=r.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(I){if(e===setTimeout)return setTimeout(I,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(I,0);try{return e(I,0)}catch{try{return e.call(null,I,0)}catch{return e.call(this,I,0)}}}(function(){try{e=typeof setTimeout=="function"?setTimeout:i}catch{e=i}try{n=typeof clearTimeout=="function"?clearTimeout:s}catch{n=s}})();var l,d=[],c=!1,u=-1;function m(){c&&l&&(c=!1,l.length?d=l.concat(d):u=-1,d.length&&g())}function g(){if(!c){var I=a(m);c=!0;for(var S=d.length;S;){for(l=d,d=[];++u<S;)l&&l[u].run();u=-1,S=d.length}l=null,c=!1,(function(E){if(n===clearTimeout)return clearTimeout(E);if((n===s||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(E);try{n(E)}catch{try{return n.call(null,E)}catch{return n.call(this,E)}}})(I)}}function h(I,S){this.fun=I,this.array=S}function f(){}o.nextTick=function(I){var S=new Array(arguments.length-1);if(arguments.length>1)for(var E=1;E<arguments.length;E++)S[E-1]=arguments[E];d.push(new h(I,S)),d.length!==1||c||a(g)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=f,o.addListener=f,o.once=f,o.off=f,o.removeListener=f,o.removeAllListeners=f,o.emit=f,o.prependListener=f,o.prependOnceListener=f,o.listeners=function(I){return[]},o.binding=function(I){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(I){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}}])}));var yje=ht.exports.SEMVER_SPEC_VERSION,Ije=ht.exports.parse,BK=ht.exports.valid,xje=ht.exports.coerce,Sje=ht.exports.clean,Cje=ht.exports.inc,Tje=ht.exports.major,Eje=ht.exports.minor,wje=ht.exports.patch,kje=ht.exports.prerelease,Pje=ht.exports.gt,_je=ht.exports.gte,Dje=ht.exports.lt,Rje=ht.exports.lte,Aje=ht.exports.eq,Mje=ht.exports.neq,Lje=ht.exports.cmp,Oje=ht.exports.compare,Nje=ht.exports.rcompare,Uje=ht.exports.compareIdentifiers,Fje=ht.exports.rcompareIdentifiers,Hje=ht.exports.compareBuild,Wje=ht.exports.sort,Vje=ht.exports.rsort,Bje=ht.exports.diff,$je=ht.exports.validRange,zje=ht.exports.satisfies,qje=ht.exports.maxSatisfying,Kje=ht.exports.minSatisfying,jje=ht.exports.minVersion,Gje=ht.exports.gtr,Qje=ht.exports.ltr,Jje=ht.exports.outside,Yje=ht.exports.intersects,Xje=ht.exports.SemVer,Zje=ht.exports.Comparator,eGe=ht.exports.Range;var OV=/^(\^|>=)?((\d+)|x)\.((\d+)|x)\.((\d+)|x)(\-.*)?$/,zK=/^-(\d{4})(\d{2})(\d{2})(\d{2})?(\d{2})?$/;function qK(r){return r=r.trim(),r==="*"||OV.test(r)}function WM(r){if(!qK(r))return null;if(r=r.trim(),r==="*")return{hasCaret:!1,hasGreaterEquals:!1,majorBase:0,majorMustEqual:!1,minorBase:0,minorMustEqual:!1,patchBase:0,patchMustEqual:!1,preRelease:null};let t=r.match(OV);return t?{hasCaret:t[1]==="^",hasGreaterEquals:t[1]===">=",majorBase:t[2]==="x"?0:parseInt(t[2],10),majorMustEqual:t[2]!=="x",minorBase:t[4]==="x"?0:parseInt(t[4],10),minorMustEqual:t[4]!=="x",patchBase:t[6]==="x"?0:parseInt(t[6],10),patchMustEqual:t[6]!=="x",preRelease:t[8]||null}:null}function VM(r){if(!r)return null;let t=r.majorBase,e=r.majorMustEqual,n=r.minorBase,o=r.minorMustEqual,i=r.patchBase,s=r.patchMustEqual;r.hasCaret&&(t===0||(o=!1),s=!1);let a=0;if(r.preRelease){let l=zK.exec(r.preRelease);if(l){let[,d,c,u,m,g]=l;a=Date.UTC(Number(d),Number(c)-1,Number(u),Number(m)||0,Number(g)||0)}}return{majorBase:t,majorMustEqual:e,minorBase:n,minorMustEqual:o,patchBase:i,patchMustEqual:s,isMinimum:r.hasGreaterEquals,notBefore:a}}var BM=class{constructor(){this.buffers=[]}add(t){let e=this.buffers.indexOf(t);return e<0&&(e=this.buffers.length,this.buffers.push(t)),e}};function NV(r,t){if(t.serializeBuffersForPostMessage){let e=new BM,o=JSON.stringify(r,(s,a)=>{if(a instanceof ArrayBuffer)return{$$vscode_array_buffer_reference$$:!0,index:e.add(a)};if(ArrayBuffer.isView(a)){let l=KK(a);if(l)return{$$vscode_array_buffer_reference$$:!0,index:e.add(a.buffer),view:{type:l,byteLength:a.byteLength,byteOffset:a.byteOffset}}}return a}),i=e.buffers.map(s=>{let a=new Uint8Array(s);return W.wrap(a)});return{message:o,buffers:i}}else return{message:JSON.stringify(r),buffers:[]}}function KK(r){switch(r.constructor.name){case"Int8Array":return 1;case"Uint8Array":return 2;case"Uint8ClampedArray":return 3;case"Int16Array":return 4;case"Uint16Array":return 5;case"Int32Array":return 6;case"Uint32Array":return 7;case"Float32Array":return 8;case"Float64Array":return 9;case"BigInt64Array":return 10;case"BigUint64Array":return 11}}function UV(r,t){let e=t.map(i=>{let s=new ArrayBuffer(i.byteLength);return new Uint8Array(s).set(i.buffer),s}),n=t.length?(i,s)=>{if(s&&typeof s=="object"&&s.$$vscode_array_buffer_reference$$){let a=s,{index:l}=a,d=e[l];if(a.view)switch(a.view.type){case 1:return new Int8Array(d,a.view.byteOffset,a.view.byteLength/Int8Array.BYTES_PER_ELEMENT);case 2:return new Uint8Array(d,a.view.byteOffset,a.view.byteLength/Uint8Array.BYTES_PER_ELEMENT);case 3:return new Uint8ClampedArray(d,a.view.byteOffset,a.view.byteLength/Uint8ClampedArray.BYTES_PER_ELEMENT);case 4:return new Int16Array(d,a.view.byteOffset,a.view.byteLength/Int16Array.BYTES_PER_ELEMENT);case 5:return new Uint16Array(d,a.view.byteOffset,a.view.byteLength/Uint16Array.BYTES_PER_ELEMENT);case 6:return new Int32Array(d,a.view.byteOffset,a.view.byteLength/Int32Array.BYTES_PER_ELEMENT);case 7:return new Uint32Array(d,a.view.byteOffset,a.view.byteLength/Uint32Array.BYTES_PER_ELEMENT);case 8:return new Float32Array(d,a.view.byteOffset,a.view.byteLength/Float32Array.BYTES_PER_ELEMENT);case 9:return new Float64Array(d,a.view.byteOffset,a.view.byteLength/Float64Array.BYTES_PER_ELEMENT);case 10:return new BigInt64Array(d,a.view.byteOffset,a.view.byteLength/BigInt64Array.BYTES_PER_ELEMENT);case 11:return new BigUint64Array(d,a.view.byteOffset,a.view.byteLength/BigUint64Array.BYTES_PER_ELEMENT);default:throw new Error("Unknown array buffer view type")}return d}return s}:void 0;return{message:JSON.parse(r,n),arrayBuffers:e}}var $M=class{constructor(t,e,n,o,i,s,a){this.#l="";this.#d=!1;this.#c=!1;this._onMessageEmitter=new T;this.onDidReceiveMessage=this._onMessageEmitter.event;this.#p=new T;this._onDidDispose=this.#p.event;this.#e=t,this.#t=e,this.#a=n,this.#o=o,this.#s=i,this.#i=s,this.#r=La(s),this.#u=jK(s),this.#n=a}#e;#t;#n;#o;#s;#i;#l;#a;#d;#c;#r;#u;#p;dispose(){this.#d=!0,this.#p.fire(),this.#p.dispose(),this._onMessageEmitter.dispose()}asWebviewUri(t){return this.#c=!0,Cd(t,this.#o)}get cspSource(){let t=this.#i.extensionLocation;if(t.scheme===V.https||t.scheme===V.http){let e=t.toString();return e.endsWith("/")||(e+="/"),e+" "+Rb}return Rb}get html(){return this.assertNotDisposed(),this.#l}set html(t){this.assertNotDisposed(),this.#l!==t&&(this.#l=t,this.#u&&!this.#c&&/(["'])vscode-resource:([^\s'"]+?)(["'])/i.test(t)&&(this.#c=!0,this.#n.report("Webview vscode-resource: uris",this.#i,"Please migrate to use the 'webview.asWebviewUri' api instead: https://aka.ms/vscode-webview-use-aswebviewuri")),this.#t.$setHtml(this.#e,this.rewriteOldResourceUrlsIfNeeded(t)))}get options(){return this.assertNotDisposed(),this.#a}set options(t){this.assertNotDisposed(),tn(this.#a,t)||this.#t.$setOptions(this.#e,zM(this.#i,this.#s,t)),this.#a=t}async postMessage(t){if(this.#d)return!1;let e=NV(t,{serializeBuffersForPostMessage:this.#r});return this.#t.$postMessage(this.#e,e.message,...e.buffers)}assertNotDisposed(){if(this.#d)throw new Error("Webview is disposed")}rewriteOldResourceUrlsIfNeeded(t){if(!this.#u)return t;let e=this.#i.extensionLocation?.scheme===V.vscodeRemote,n=this.#i.extensionLocation.scheme===V.vscodeRemote?this.#i.extensionLocation.authority:void 0;return t.replace(/(["'])(?:vscode-resource):(\/\/([^\s\/'"]+?)(?=\/))?([^\s'"]+?)(["'])/gi,(o,i,s,a,l,d)=>{let c=y.from({scheme:a||"file",path:decodeURIComponent(l)}),u=Cd(c,{isRemote:e,authority:n}).toString();return`${i}${u}${d}`}).replace(/(["'])(?:vscode-webview-resource):(\/\/[^\s\/'"]+\/([^\s\/'"]+?)(?=\/))?([^\s'"]+?)(["'])/gi,(o,i,s,a,l,d)=>{let c=y.from({scheme:a||"file",path:decodeURIComponent(l)}),u=Cd(c,{isRemote:e,authority:n}).toString();return`${i}${u}${d}`})}};function La(r){try{let t=VM(WM(r.engines.vscode));return!!t&&t.majorBase>=1&&t.minorBase>=57}catch{return!1}}function jK(r){try{let t=VM(WM(r.engines.vscode));return t?t.majorBase<1||t.majorBase===1&&t.minorBase<60:!1}catch{return!1}}var xE=class extends O{constructor(e,n,o,i,s){super();this.remoteInfo=n;this.workspace=o;this._logService=i;this._deprecationService=s;this._webviews=new Map;this._webviewProxy=e.getProxy(U.MainThreadWebviews)}dispose(){super.dispose();for(let e of this._webviews.values())e.dispose();this._webviews.clear()}$onMessage(e,n,o){let i=this.getWebview(e);if(i){let{message:s}=UV(n,o.value);i._onMessageEmitter.fire(s)}}$onMissingCsp(e,n){this._logService.warn(`${n} created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp`)}createNewWebview(e,n,o){let i=new $M(e,this._webviewProxy,GK(n),this.remoteInfo,this.workspace,o,this._deprecationService);this._webviews.set(e,i);let s=i._onDidDispose(()=>{s.dispose(),this.deleteWebview(e)});return i}deleteWebview(e){this._webviews.delete(e)}getWebview(e){return this._webviews.get(e)}};function bu(r){return{id:r.identifier,location:r.extensionLocation}}function zM(r,t,e){return{enableCommandUris:e.enableCommandUris,enableScripts:e.enableScripts,enableForms:e.enableForms,portMapping:e.portMapping,localResourceRoots:e.localResourceRoots||QK(r,t)}}function GK(r){return{enableCommandUris:r.enableCommandUris,enableScripts:r.enableScripts,enableForms:r.enableForms,portMapping:r.portMapping,localResourceRoots:r.localResourceRoots?.map(t=>y.from(t))}}function QK(r,t){return[...(t?.getWorkspaceFolders()||[]).map(e=>e.uri),r.extensionLocation]}var Lo=class r{constructor(t){this.id=t;this._data=new Map;this._idPool=1}static{this.enableDebugLogging=!1}add(t){let e=this._idPool++;return this._data.set(e,t),this.logDebugInfo(),e}get(t,e){return this._data.has(t)?this._data.get(t)[e]:void 0}delete(t){this._data.delete(t),this.logDebugInfo()}logDebugInfo(){r.enableDebugLogging&&console.log(`${this.id} cache size - ${this._data.size}`)}};var qM=class{constructor(t,e){this.document=t;this._storagePath=e;this._backupCounter=1;this._edits=new Lo("custom documents")}addEdit(t){return this._edits.add([t])}async undo(t,e){await this.getEdit(t).undo(),e||this.disposeBackup()}async redo(t,e){await this.getEdit(t).redo(),e||this.disposeBackup()}disposeEdits(t){for(let e of t)this._edits.delete(e)}getNewBackupUri(){if(!this._storagePath)throw new Error("Backup requires a valid storage path");let t=XK(this.document.uri)+this._backupCounter++;return St(this._storagePath,t)}updateBackup(t){this._backup?.delete(),this._backup=t}disposeBackup(){this._backup?.delete(),this._backup=void 0}getEdit(t){let e=this._edits.get(t,0);if(!e)throw new Error("No edit found");return e}},KM=class{constructor(){this._documents=new Map}get(t,e){return this._documents.get(this.key(t,e))}add(t,e,n){let o=this.key(t,e.uri);if(this._documents.has(o))throw new Error(`Document already exists for viewType:${t} resource:${e.uri}`);let i=new qM(e,n);return this._documents.set(o,i),i}delete(t,e){let n=this.key(t,e);this._documents.delete(n)}key(t,e){return`${t}@@@${e}`}};var jM=class{constructor(){this._providers=new Map}addTextProvider(t,e,n){return this.add(t,{type:0,extension:e,provider:n})}addCustomProvider(t,e,n){return this.add(t,{type:1,extension:e,provider:n})}get(t){return this._providers.get(t)}add(t,e){if(this._providers.has(t))throw new Error(`Provider for viewType:${t} already registered`);return this._providers.set(t,e),new be(()=>this._providers.delete(t))}},CE=class{constructor(t,e,n,o,i){this._extHostDocuments=e;this._extensionStoragePaths=n;this._extHostWebview=o;this._extHostWebviewPanels=i;this._editorProviders=new jM;this._documents=new KM;this._proxy=t.getProxy(U.MainThreadCustomEditors)}registerCustomEditorProvider(t,e,n,o){let i=new $;return JK(n)?(i.add(this._editorProviders.addTextProvider(e,t,n)),this._proxy.$registerTextEditorProvider(bu(t),e,o.webviewOptions||{},{supportsMove:!!n.moveCustomTextEditor},La(t))):(i.add(this._editorProviders.addCustomProvider(e,t,n)),SE(n)&&i.add(n.onDidChangeCustomDocument(s=>{let a=this.getCustomDocumentEntry(e,s.document.uri);if(YK(s)){let l=a.addEdit(s);this._proxy.$onDidEdit(s.document.uri,e,l,s.label)}else this._proxy.$onContentChange(s.document.uri,e)})),this._proxy.$registerCustomEditorProvider(bu(t),e,o.webviewOptions||{},!!o.supportsMultipleEditorsPerDocument,La(t))),be.from(i,new be(()=>{this._proxy.$unregisterEditorProvider(e)}))}async $createCustomDocument(t,e,n,o,i){let s=this._editorProviders.get(e);if(!s)throw new Error(`No provider found for '${e}'`);if(s.type!==1)throw new Error(`Invalid provide type for '${e}'`);let a=y.revive(t),l=await s.provider.openCustomDocument(a,{backupId:n,untitledDocumentData:o?.buffer},i),d;return SE(s.provider)&&this._extensionStoragePaths&&(d=this._extensionStoragePaths.workspaceValue(s.extension)??this._extensionStoragePaths.globalValue(s.extension)),this._documents.add(e,l,d),{editable:SE(s.provider)}}async $disposeCustomDocument(t,e){let n=this._editorProviders.get(e);if(!n)throw new Error(`No provider found for '${e}'`);if(n.type!==1)throw new Error(`Invalid provider type for '${e}'`);let o=y.revive(t),{document:i}=this.getCustomDocumentEntry(e,o);this._documents.delete(e,o),i.dispose()}async $resolveCustomEditor(t,e,n,o,i,s){let a=this._editorProviders.get(n);if(!a)throw new Error(`No provider found for '${n}'`);let l=Ut.to(i),d=this._extHostWebview.createNewWebview(e,o.contentOptions,a.extension),c=this._extHostWebviewPanels.createNewWebviewPanel(e,n,o.title,l,o.options,d,o.active),u=y.revive(t);switch(a.type){case 1:{let{document:m}=this.getCustomDocumentEntry(n,u);return a.provider.resolveCustomEditor(m,c,s)}case 0:{let m=this._extHostDocuments.getDocument(u);return a.provider.resolveCustomTextEditor(m,c,s)}default:throw new Error("Unknown webview provider type")}}$disposeEdits(t,e,n){this.getCustomDocumentEntry(e,t).disposeEdits(n)}async $onMoveCustomEditor(t,e,n){let o=this._editorProviders.get(n);if(!o)throw new Error(`No provider found for '${n}'`);if(!o.provider.moveCustomTextEditor)throw new Error(`Provider does not implement move '${n}'`);let i=this._extHostWebviewPanels.getWebviewPanel(t);if(!i)throw new Error("No webview found");let s=y.revive(e),a=this._extHostDocuments.getDocument(s);await o.provider.moveCustomTextEditor(a,i,he.None)}async $undo(t,e,n,o){return this.getCustomDocumentEntry(e,t).undo(n,o)}async $redo(t,e,n,o){return this.getCustomDocumentEntry(e,t).redo(n,o)}async $revert(t,e,n){let o=this.getCustomDocumentEntry(e,t);await this.getCustomEditorProvider(e).revertCustomDocument(o.document,n),o.disposeBackup()}async $onSave(t,e,n){let o=this.getCustomDocumentEntry(e,t);await this.getCustomEditorProvider(e).saveCustomDocument(o.document,n),o.disposeBackup()}async $onSaveAs(t,e,n,o){let i=this.getCustomDocumentEntry(e,t);return this.getCustomEditorProvider(e).saveCustomDocumentAs(i.document,y.revive(n),o)}async $backup(t,e,n){let o=this.getCustomDocumentEntry(e,t),s=await this.getCustomEditorProvider(e).backupCustomDocument(o.document,{destination:o.getNewBackupUri()},n);return o.updateBackup(s),s.id}getCustomDocumentEntry(t,e){let n=this._documents.get(t,y.revive(e));if(!n)throw new Error("No custom document found");return n}getCustomEditorProvider(t){let n=this._editorProviders.get(t)?.provider;if(!n||!SE(n))throw new Error("Custom document is not editable");return n}};function SE(r){return!!r.onDidChangeCustomDocument}function JK(r){return typeof r.resolveCustomTextEditor=="function"}function YK(r){return typeof r.undo=="function"&&typeof r.redo=="function"}function XK(r){let t=r.scheme===V.file||r.scheme===V.untitled?r.fsPath:r.toString();return oo(t)+""}var TE=class r{constructor(t,e,n,o,i,s,a,l){this._name=t;this._owner=e;this._maxDiagnosticsTotal=n;this._maxDiagnosticsPerFile=o;this._modelVersionIdProvider=i;this._isDisposed=!1;this._maxDiagnosticsTotal=Math.max(o,n),this.#n=new Ge(d=>s.getComparisonKey(d)),this.#e=a,this.#t=l}#e;#t;#n;dispose(){this._isDisposed||(this.#t.fire([...this.#n.keys()]),this.#e?.$clear(this._owner),this.#n.clear(),this._isDisposed=!0)}get name(){return this._checkDisposed(),this._name}set(t,e){if(!t){this.clear();return}this._checkDisposed();let n=[];if(y.isUri(t)){if(!e){this.delete(t);return}this.#n.set(t,nt(e)),n=[t]}else if(Array.isArray(t)){n=[];let s;t=[...t].sort(r._compareIndexedTuplesByUri);for(let a of t){let[l,d]=a;if((!s||l.toString()!==s.toString())&&(s&&this.#n.get(s).length===0&&this.#n.delete(s),s=l,n.push(l),this.#n.set(l,[])),d)this.#n.get(l)?.push(...nt(d));else{let c=this.#n.get(l);c&&(c.length=0)}}}if(this.#t.fire(n),!this.#e)return;let o=[],i=0;for(let s of n){let a=[],l=this.#n.get(s);if(l)if(l.length>this._maxDiagnosticsPerFile){a=[];let d=[0,1,2,3];e:for(let c=0;c<4;c++)for(let u of l)if(u.severity===d[c]&&a.push({...ka.from(u),modelVersionId:this._modelVersionIdProvider(s)})===this._maxDiagnosticsPerFile)break e;a.push({severity:2,message:p(3311,null,l.length-this._maxDiagnosticsPerFile),startLineNumber:a[a.length-1].startLineNumber,startColumn:a[a.length-1].startColumn,endLineNumber:a[a.length-1].endLineNumber,endColumn:a[a.length-1].endColumn})}else a=l.map(d=>({...ka.from(d),modelVersionId:this._modelVersionIdProvider(s)}));if(o.push([s,a]),i+=a.length,i>this._maxDiagnosticsTotal)break}this.#e.$changeMany(this._owner,o)}delete(t){this._checkDisposed(),this.#t.fire([t]),this.#n.delete(t),this.#e?.$changeMany(this._owner,[[t,void 0]])}clear(){this._checkDisposed(),this.#t.fire([...this.#n.keys()]),this.#n.clear(),this.#e?.$clear(this._owner)}forEach(t,e){this._checkDisposed();for(let[n,o]of this)t.call(e,n,o,this)}*[Symbol.iterator](){this._checkDisposed();for(let t of this.#n.keys())yield[t,this.get(t)]}get(t){this._checkDisposed();let e=this.#n.get(t);return Array.isArray(e)?Object.freeze(e.slice(0)):[]}has(t){return this._checkDisposed(),Array.isArray(this.#n.get(t))}_checkDisposed(){if(this._isDisposed)throw new Error("illegal state - object is disposed")}static _compareIndexedTuplesByUri(t,e){return t[0].toString()<e[0].toString()?-1:t[0].toString()>e[0].toString()?1:0}},Yr=class{constructor(t,e,n,o){this._logService=e;this._fileSystemInfoService=n;this._extHostDocumentsAndEditors=o;this._collections=new Map;this._onDidChangeDiagnostics=new Dy({merge:t=>t.flat(),delay:50});this.onDidChangeDiagnostics=fe.map(this._onDidChangeDiagnostics.event,Yr._mapper);this._proxy=t.getProxy(U.MainThreadDiagnostics)}static{this._idPool=0}static{this._maxDiagnosticsPerFile=1e3}static{this._maxDiagnosticsTotal=1.1*this._maxDiagnosticsPerFile}static _mapper(t){let e=new Ge;for(let n of t)e.set(n,n);return{uris:Object.freeze(Array.from(e.values()))}}createDiagnosticCollection(t,e){let{_collections:n,_proxy:o,_onDidChangeDiagnostics:i,_logService:s,_fileSystemInfoService:a,_extHostDocumentsAndEditors:l}=this,d=new class{$changeMany(m,g){o.$changeMany(m,g),s.trace("[DiagnosticCollection] change many (extension, owner, uris)",t.value,m,g.length===0?"CLEARING":g)}$clear(m){o.$clear(m),s.trace("[DiagnosticCollection] remove all (extension, owner)",t.value,m)}dispose(){o.dispose()}},c;if(!e)e="_generated_diagnostic_collection_name_#"+Yr._idPool++,c=e;else if(!n.has(e))c=e;else{this._logService.warn(`DiagnosticCollection with name '${e}' does already exist.`);do c=e+Yr._idPool++;while(n.has(c))}return new class extends TE{constructor(){super(e,c,Yr._maxDiagnosticsTotal,Yr._maxDiagnosticsPerFile,m=>l.getDocument(m)?.version,a.extUri,d,i),n.set(c,this)}dispose(){super.dispose(),n.delete(c)}}}getDiagnostics(t){if(t)return this._getDiagnostics(t);{let e=new Map,n=[];for(let o of this._collections.values())o.forEach((i,s)=>{let a=e.get(i.toString());typeof a>"u"&&(a=n.length,e.set(i.toString(),a),n.push([i,[]])),n[a][1]=n[a][1].concat(...s)});return n}}_getDiagnostics(t){let e=[];for(let n of this._collections.values())n.has(t)&&(e=e.concat(n.get(t)));return e}$acceptMarkersChange(t){if(!this._mirrorCollection){let e="_generated_mirror",n=new TE(e,e,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,o=>{},this._fileSystemInfoService.extUri,void 0,this._onDidChangeDiagnostics);this._collections.set(e,n),this._mirrorCollection=n}for(let[e,n]of t)this._mirrorCollection.set(y.revive(e),n.map(ka.to))}};Yr=_([C(1,oe),C(2,Ur)],Yr);var EE=class{constructor(t){this._proxy=t.getProxy(U.MainThreadDialogs)}showOpenDialog(t){return this._proxy.$showOpenDialog(t).then(e=>e?e.map(n=>y.revive(n)):void 0)}showSaveDialog(t){return this._proxy.$showSaveDialog(t).then(e=>e?y.revive(e):void 0)}};var wE=class r{constructor(t,e,n){this._documentsAndEditors=e;this._logService=n;this._documentContentProviders=new Map;this._proxy=t.getProxy(U.MainThreadDocumentContentProviders)}static{this._handlePool=0}registerTextDocumentContentProvider(t,e){if(Object.keys(V).indexOf(t)>=0)throw new Error(`scheme '${t}' already registered`);let n=r._handlePool++;this._documentContentProviders.set(n,e),this._proxy.$registerTextContentProvider(n,t);let o;if(typeof e.onDidChange=="function"){let i;o=e.onDidChange(async s=>{if(s.scheme!==t){this._logService.warn(`Provider for scheme '${t}' is firing event for schema '${s.scheme}' which will be IGNORED`);return}if(!this._documentsAndEditors.getDocument(s))return;i&&await i;let a=this.$provideTextDocumentContent(n,s).then(async l=>{if(!l&&typeof l!="string")return;let d=this._documentsAndEditors.getDocument(s);if(!d)return;let c=Hy(l);if(!d.equalLines(c))return this._proxy.$onVirtualDocumentChange(s,l)}).catch($e).finally(()=>{i===a&&(i=void 0)});i=a})}return new be(()=>{this._documentContentProviders.delete(n)&&this._proxy.$unregisterTextContentProvider(n),o&&(o.dispose(),o=void 0)})}$provideTextDocumentContent(t,e){let n=this._documentContentProviders.get(t);return n?Promise.resolve(n.provideTextDocumentContent(y.revive(e),he.None)):Promise.reject(new Error(`unsupported uri-scheme: ${e.scheme}`))}};var kE=class{constructor(t,e,n,o={timeout:1500,errors:3}){this._logService=t;this._documents=e;this._mainThreadBulkEdits=n;this._thresholds=o;this._callbacks=new po;this._badListeners=new WeakMap}dispose(){this._callbacks.clear()}getOnWillSaveTextDocumentEvent(t){return(e,n,o)=>{let s={dispose:this._callbacks.push([e,n,t])};return Array.isArray(o)&&o.push(s),s}}async $participateInSave(t,e){let n=y.revive(t),o=!1,i=setTimeout(()=>o=!0,this._thresholds.timeout),s=[];try{for(let a of[...this._callbacks]){if(o)break;let l=this._documents.getDocument(n),d=await this._deliverEventAsyncAndBlameBadListeners(a,{document:l,reason:Ov.to(e)});s.push(d)}}finally{clearTimeout(i)}return s}_deliverEventAsyncAndBlameBadListeners([t,e,n],o){let i=this._badListeners.get(t);return typeof i=="number"&&i>this._thresholds.errors?Promise.resolve(!1):this._deliverEventAsync(n,t,e,o).then(()=>!0,s=>{if(this._logService.error(`onWillSaveTextDocument-listener from extension '${n.identifier.value}' threw ERROR`),this._logService.error(s),!(s instanceof Error)||s.message!=="concurrent_edits"){let a=this._badListeners.get(t);this._badListeners.set(t,a?a+1:1),typeof a=="number"&&a>this._thresholds.errors&&this._logService.info(`onWillSaveTextDocument-listener from extension '${n.identifier.value}' will now be IGNORED because of timeouts and/or errors`)}return!1})}_deliverEventAsync(t,e,n,o){let i=[],s=Date.now(),{document:a,reason:l}=o,{version:d}=a,c=Object.freeze({document:a,reason:l,waitUntil(u){if(Object.isFrozen(i))throw Uu("waitUntil can not be called async");i.push(Promise.resolve(u))}});try{e.apply(n,[c])}catch(u){return Promise.reject(u)}return Object.freeze(i),new Promise((u,m)=>{let g=setTimeout(()=>m(new Error("timeout")),this._thresholds.timeout);return Promise.all(i).then(h=>{this._logService.debug(`onWillSaveTextDocument-listener from extension '${t.identifier.value}' finished after ${Date.now()-s}ms`),clearTimeout(g),u(h)}).catch(h=>{clearTimeout(g),m(h)})}).then(u=>{let m={edits:[]};for(let g of u)if(Array.isArray(g)&&g.every(h=>h instanceof An))for(let{newText:h,newEol:f,range:I}of g)m.edits.push({resource:a.uri,versionId:void 0,textEdit:{range:I&&K.from(I),text:h,eol:f&&Kc.from(f)}});if(m.edits.length!==0)return d===a.version?this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(new $t(m)):Promise.reject(new Error("concurrent_edits"))})}};var PE=class{constructor(t,e){this._toDispose=new $;this._onDidAddDocument=this._toDispose.add(new T);this._onDidRemoveDocument=this._toDispose.add(new T);this._onDidChangeDocument=this._toDispose.add(new T);this._onDidChangeDocumentWithReason=this._toDispose.add(new T);this._onDidSaveDocument=this._toDispose.add(new T);this.onDidAddDocument=this._onDidAddDocument.event;this.onDidRemoveDocument=this._onDidRemoveDocument.event;this.onDidChangeDocument=this._onDidChangeDocument.event;this.onDidChangeDocumentWithReason=this._onDidChangeDocumentWithReason.event;this.onDidSaveDocument=this._onDidSaveDocument.event;this._documentLoader=new Map;this._proxy=t.getProxy(U.MainThreadDocuments),this._documentsAndEditors=e,this._documentsAndEditors.onDidRemoveDocuments(n=>{for(let o of n)this._onDidRemoveDocument.fire(o.document)},void 0,this._toDispose),this._documentsAndEditors.onDidAddDocuments(n=>{for(let o of n)this._onDidAddDocument.fire(o.document)},void 0,this._toDispose)}dispose(){this._toDispose.dispose()}getAllDocumentData(){return[...this._documentsAndEditors.allDocuments()]}getDocumentData(t){if(!t)return;let e=this._documentsAndEditors.getDocument(t);if(e)return e}getDocument(t){let e=this.getDocumentData(t);if(!e?.document)throw new Error(`Unable to retrieve document from URI '${t}'`);return e.document}ensureDocumentData(t,e){let n=this._documentsAndEditors.getDocument(t);if(n&&(!e?.encoding||n.document.encoding===e.encoding))return Promise.resolve(n);let o=this._documentLoader.get(t.toString());return o?e?.encoding&&(o=o.then(i=>i.document.encoding!==e.encoding?this.ensureDocumentData(t,e):i)):(o=this._proxy.$tryOpenDocument(t,e).then(i=>{this._documentLoader.delete(t.toString());let s=y.revive(i);return oi(this._documentsAndEditors.getDocument(s))},i=>(this._documentLoader.delete(t.toString()),Promise.reject(i))),this._documentLoader.set(t.toString(),o)),o}createDocumentData(t){return this._proxy.$tryCreateDocument(t).then(e=>y.revive(e))}$acceptModelLanguageChanged(t,e){let n=y.revive(t),o=this._documentsAndEditors.getDocument(n);if(!o)throw new Error("unknown document");this._onDidRemoveDocument.fire(o.document),o._acceptLanguageId(e),this._onDidAddDocument.fire(o.document)}$acceptModelSaved(t){let e=y.revive(t),n=this._documentsAndEditors.getDocument(e);if(!n)throw new Error("unknown document");this.$acceptDirtyStateChanged(t,!1),this._onDidSaveDocument.fire(n.document)}$acceptDirtyStateChanged(t,e){let n=y.revive(t),o=this._documentsAndEditors.getDocument(n);if(!o)throw new Error("unknown document");o._acceptIsDirty(e),this._onDidChangeDocument.fire({document:o.document,contentChanges:[],reason:void 0}),this._onDidChangeDocumentWithReason.fire({document:o.document,contentChanges:[],reason:void 0,detailedReason:void 0})}$acceptEncodingChanged(t,e){let n=y.revive(t),o=this._documentsAndEditors.getDocument(n);if(!o)throw new Error("unknown document");o._acceptEncoding(e),this._onDidChangeDocument.fire({document:o.document,contentChanges:[],reason:void 0}),this._onDidChangeDocumentWithReason.fire({document:o.document,contentChanges:[],reason:void 0,detailedReason:void 0})}$acceptModelChanged(t,e,n){let o=y.revive(t),i=this._documentsAndEditors.getDocument(o);if(!i)throw new Error("unknown document");i._acceptIsDirty(n),i.onEvents(e);let s;e.isUndoing?s=1:e.isRedoing&&(s=2),this._onDidChangeDocument.fire(bh({document:i.document,contentChanges:e.changes.map(a=>({range:K.to(a.range),rangeOffset:a.rangeOffset,rangeLength:a.rangeLength,text:a.text})),reason:s})),this._onDidChangeDocumentWithReason.fire(bh({document:i.document,contentChanges:e.changes.map(a=>({range:K.to(a.range),rangeOffset:a.rangeOffset,rangeLength:a.rangeLength,text:a.text})),reason:s,detailedReason:e.detailedReason?{source:e.detailedReason.source,metadata:e.detailedReason}:void 0}))}setWordDefinitionFor(t,e){wW(t,e)}};var _E=class{constructor(t){this._provider=new Map;this._onDidChange=new T;this.onDidChange=this._onDidChange.event;this._allKnownModels=new Set;this._handlePool=0;this._proxy=t.getProxy(U.MainThreadEmbeddings)}registerEmbeddingsProvider(t,e,n){if(this._allKnownModels.has(e))throw new Error("An embeddings provider for this model is already registered");let o=this._handlePool++;return this._proxy.$registerEmbeddingProvider(o,e),this._provider.set(o,{id:e,provider:n}),G(()=>{this._allKnownModels.delete(e),this._proxy.$unregisterEmbeddingProvider(o),this._provider.delete(o)})}async computeEmbeddings(t,e,n){n??=he.None;let o=!1;typeof e=="string"&&(e=[e],o=!0);let i=await this._proxy.$computeEmbeddings(t,e,n);if(i.length!==e.length)throw new Error;if(o){if(i.length!==1)throw new Error;return i[0]}return i}async $provideEmbeddings(t,e,n){let o=this._provider.get(t);if(!o)return[];let i=await o.provider.provideEmbeddings(e,n);return i||[]}get embeddingsModels(){return Array.from(this._allKnownModels)}$acceptEmbeddingModels(t){this._allKnownModels=new Set(t),this._onDidChange.fire()}};var DE=class{constructor(t){this._AiEmbeddingVectorProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(U.MainThreadAiEmbeddingVector)}async $provideAiEmbeddingVector(t,e,n){if(this._AiEmbeddingVectorProviders.size===0)throw new Error("No embedding vector providers registered");let o=this._AiEmbeddingVectorProviders.get(t);if(!o)throw new Error("Embedding vector provider not found");let i=await o.provideEmbeddingVector(e,n);if(!i)throw new Error("Embedding vector provider returned undefined");return i}registerEmbeddingVectorProvider(t,e,n){let o=this._nextHandle;return this._nextHandle++,this._AiEmbeddingVectorProviders.set(o,n),this._proxy.$registerAiEmbeddingVectorProvider(e,o),new be(()=>{this._proxy.$unregisterAiEmbeddingVectorProvider(o),this._AiEmbeddingVectorProviders.delete(o)})}};var QM=class{constructor(t,e,n){let o=new Uint8Array(t*e);for(let i=0,s=t*e;i<s;i++)o[i]=n;this._data=o,this.rows=t,this.cols=e}get(t,e){return this._data[t*this.cols+e]}set(t,e,n){this._data[t*this.cols+e]=n}},Mb=class{constructor(t){let e=0,n=0;for(let i=0,s=t.length;i<s;i++){let[a,l,d]=t[i];l>e&&(e=l),a>n&&(n=a),d>n&&(n=d)}e++,n++;let o=new QM(n,e,0);for(let i=0,s=t.length;i<s;i++){let[a,l,d]=t[i];o.set(a,l,d)}this._states=o,this._maxCharCode=e}nextState(t,e){return e<0||e>=this._maxCharCode?0:this._states.get(t,e)}},GM=null;function ZK(){return GM===null&&(GM=new Mb([[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]])),GM}var Ab=null;function ej(){if(Ab===null){Ab=new hg(0);let r=` 	<>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026|`;for(let e=0;e<r.length;e++)Ab.set(r.charCodeAt(e),1);let t=".,;:";for(let e=0;e<t.length;e++)Ab.set(t.charCodeAt(e),2)}return Ab}var RE=class r{static _createLink(t,e,n,o,i){let s=i-1;do{let a=e.charCodeAt(s);if(t.get(a)!==2)break;s--}while(s>o);if(o>0){let a=e.charCodeAt(o-1),l=e.charCodeAt(s);(a===40&&l===41||a===91&&l===93||a===123&&l===125)&&s--}return{range:{startLineNumber:n,startColumn:o+1,endLineNumber:n,endColumn:s+2},url:e.substring(o,s+1)}}static computeLinks(t,e=ZK()){let n=ej(),o=[];for(let i=1,s=t.getLineCount();i<=s;i++){let a=t.getLineContent(i),l=a.length,d=0,c=0,u=0,m=1,g=!1,h=!1,f=!1,I=!1;for(;d<l;){let S=!1,E=a.charCodeAt(d);if(m===13){let P;switch(E){case 40:g=!0,P=0;break;case 41:P=g?0:1;break;case 91:f=!0,h=!0,P=0;break;case 93:f=!1,P=h?0:1;break;case 123:I=!0,P=0;break;case 125:P=I?0:1;break;case 39:case 34:case 96:u===E?P=1:u===39||u===34||u===96?P=0:P=1;break;case 42:P=u===42?1:0;break;case 32:P=f?0:1;break;default:P=n.get(E)}P===1&&(o.push(r._createLink(n,a,i,c,d)),S=!0)}else if(m===12){let P;E===91?(h=!0,P=0):P=n.get(E),P===1?S=!0:m=13}else m=e.nextState(m,E),m===0&&(S=!0);S&&(m=1,g=!1,h=!1,I=!1,c=d+1,u=E),d++}m===13&&o.push(r._createLink(n,a,i,c,l))}return o}};var JM=class{constructor(){this._schemes=[]}add(t){this._stateMachine=void 0,this._schemes.push(t)}delete(t){let e=this._schemes.indexOf(t);e>=0&&(this._schemes.splice(e,1),this._stateMachine=void 0)}_initStateMachine(){if(!this._stateMachine){let t=this._schemes.sort(),e=[],n,o,i=14,s=14;for(let a of t){let l=n?UN(n,a):0;for(l===0?o=1:o=s;l<a.length;l++)l+1===a.length?(i=s,s=9):s+=1,e.push([o,a.toUpperCase().charCodeAt(l),s]),e.push([o,a.toLowerCase().charCodeAt(l),s]),o=s;n=a,s=i}e.push([9,58,10]),e.push([10,47,12]),this._stateMachine=new Mb(e)}}provideDocumentLinks(t){this._initStateMachine();let e=[],n=RE.computeLinks({getLineContent(o){return t.lineAt(o-1).text},getLineCount(){return t.lineCount}},this._stateMachine);for(let o of n){let i=_a.to(o);i.target&&e.push(i)}return e}},AE=class r{constructor(t,e){this._extHostLanguageFeatures=e;this._linkProvider=new JM;this._fsProvider=new Map;this._registeredSchemes=new Set;this._watches=new Map;this._handlePool=0;this._proxy=t.getProxy(U.MainThreadFileSystem)}dispose(){this._linkProviderRegistration?.dispose()}registerFileSystemProvider(t,e,n,o={}){if(r._validateFileSystemProvider(n),this._registeredSchemes.has(e))throw new Error(`a provider for the scheme '${e}' is already registered`);this._linkProviderRegistration||(this._linkProviderRegistration=this._extHostLanguageFeatures.registerDocumentLinkProvider(t,"*",this._linkProvider));let i=this._handlePool++;this._linkProvider.add(e),this._registeredSchemes.add(e),this._fsProvider.set(i,n);let s=2;o.isCaseSensitive&&(s+=1024),o.isReadonly&&(s+=2048),typeof n.copy=="function"&&(s+=8),typeof n.open=="function"&&typeof n.close=="function"&&typeof n.read=="function"&&typeof n.write=="function"&&(A(t,"fsChunks"),s+=4);let a;o.isReadonly&&fi(o.isReadonly)&&o.isReadonly.value!==""&&(a={value:o.isReadonly.value,isTrusted:o.isReadonly.isTrusted,supportThemeIcons:o.isReadonly.supportThemeIcons,supportHtml:o.isReadonly.supportHtml,baseUri:o.isReadonly.baseUri,uris:o.isReadonly.uris}),this._proxy.$registerFileSystemProvider(i,e,s,a).catch(d=>{console.error(`FAILED to register filesystem provider of ${t.identifier.value}-extension for the scheme ${e}`),console.error(d)});let l=n.onDidChangeFile(d=>{let c=[];for(let u of d){let{uri:m,type:g}=u;if(m.scheme!==e)continue;let h;switch(g){case 1:h=0;break;case 2:h=1;break;case 3:h=2;break;default:throw new Error("Unknown FileChangeType")}c.push({resource:m,type:h})}this._proxy.$onFileSystemChange(i,c)});return G(()=>{l.dispose(),this._linkProvider.delete(e),this._registeredSchemes.delete(e),this._fsProvider.delete(i),this._proxy.$unregisterProvider(i)})}static _validateFileSystemProvider(t){if(!t)throw new Error("MISSING provider");if(typeof t.watch!="function")throw new Error("Provider does NOT implement watch");if(typeof t.stat!="function")throw new Error("Provider does NOT implement stat");if(typeof t.readDirectory!="function")throw new Error("Provider does NOT implement readDirectory");if(typeof t.createDirectory!="function")throw new Error("Provider does NOT implement createDirectory");if(typeof t.readFile!="function")throw new Error("Provider does NOT implement readFile");if(typeof t.writeFile!="function")throw new Error("Provider does NOT implement writeFile");if(typeof t.delete!="function")throw new Error("Provider does NOT implement delete");if(typeof t.rename!="function")throw new Error("Provider does NOT implement rename")}static _asIStat(t){let{type:e,ctime:n,mtime:o,size:i,permissions:s}=t;return{type:e,ctime:n,mtime:o,size:i,permissions:s}}$stat(t,e){return Promise.resolve(this._getFsProvider(t).stat(y.revive(e))).then(n=>r._asIStat(n))}$readdir(t,e){return Promise.resolve(this._getFsProvider(t).readDirectory(y.revive(e)))}$readFile(t,e){return Promise.resolve(this._getFsProvider(t).readFile(y.revive(e))).then(n=>W.wrap(n))}$writeFile(t,e,n,o){return Promise.resolve(this._getFsProvider(t).writeFile(y.revive(e),n.buffer,o))}$delete(t,e,n){return Promise.resolve(this._getFsProvider(t).delete(y.revive(e),n))}$rename(t,e,n,o){return Promise.resolve(this._getFsProvider(t).rename(y.revive(e),y.revive(n),o))}$copy(t,e,n,o){let i=this._getFsProvider(t);if(!i.copy)throw new Error('FileSystemProvider does not implement "copy"');return Promise.resolve(i.copy(y.revive(e),y.revive(n),o))}$mkdir(t,e){return Promise.resolve(this._getFsProvider(t).createDirectory(y.revive(e)))}$watch(t,e,n,o){let i=this._getFsProvider(t).watch(y.revive(n),o);this._watches.set(e,i)}$unwatch(t,e){let n=this._watches.get(e);n&&(n.dispose(),this._watches.delete(e))}$open(t,e,n){let o=this._getFsProvider(t);if(!o.open)throw new Error('FileSystemProvider does not implement "open"');return Promise.resolve(o.open(y.revive(e),n))}$close(t,e){let n=this._getFsProvider(t);if(!n.close)throw new Error('FileSystemProvider does not implement "close"');return Promise.resolve(n.close(e))}$read(t,e,n,o){let i=this._getFsProvider(t);if(!i.read)throw new Error('FileSystemProvider does not implement "read"');let s=W.alloc(o);return Promise.resolve(i.read(e,n,s.buffer,0,o)).then(a=>s.slice(0,a))}$write(t,e,n,o){let i=this._getFsProvider(t);if(!i.write)throw new Error('FileSystemProvider does not implement "write"');return Promise.resolve(i.write(e,n,o.buffer,0,o.byteLength))}_getFsProvider(t){let e=this._fsProvider.get(t);if(!e){let n=new Error;throw n.name="ENOPRO",n.message="no provider",n}return e}};function NE(r){return typeof r.correlationId=="number"}function FV(r){return r.recursive===!0}var ME=class r extends O{constructor(e,n,o,i){super();this.onFileChanges=e;this.onLogMessage=n;this.verboseLogging=o;this.options=i;this.watcherDisposables=this._register(new En);this.requests=void 0;this.restartCounter=0}static{this.MAX_RESTARTS=5}init(){let e=new $;this.watcherDisposables.value=e,this.watcher=this.createWatcher(e),this.watcher.setVerboseLogging(this.verboseLogging),e.add(this.watcher.onDidChangeFile(n=>this.onFileChanges(n))),e.add(this.watcher.onDidLogMessage(n=>this.onLogMessage(n))),e.add(this.watcher.onDidError(n=>this.onError(n.error,n.request)))}onError(e,n){this.canRestart(e,n)?this.restartCounter<r.MAX_RESTARTS&&this.requests?(this.error(`restarting watcher after unexpected error: ${e}`),this.restart(this.requests)):this.error(`gave up attempting to restart watcher after unexpected error: ${e}`):this.error(e)}canRestart(e,n){return!(!this.options.restartOnError||n||e.indexOf("No space left on device")!==-1||e.indexOf("EMFILE")!==-1)}restart(e){this.restartCounter++,this.init(),this.watch(e)}async watch(e){this.requests=e,await this.watcher?.watch(e)}async setVerboseLogging(e){this.verboseLogging=e,await this.watcher?.setVerboseLogging(e)}error(e){this.onLogMessage({type:"error",message:`[File Watcher (${this.options.type})] ${e}`})}trace(e){this.onLogMessage({type:"trace",message:`[File Watcher (${this.options.type})] ${e}`})}dispose(){return this.watcher=void 0,super.dispose()}},LE=class extends ME{constructor(t,e,n){super(t,e,n,{type:"node.js",restartOnError:!1})}},OE=class extends ME{constructor(t,e,n){super(t,e,n,{type:"universal",restartOnError:!0})}};function ZM(r){return r.map(t=>({type:t.type,resource:y.revive(t.resource),cId:t.cId}))}function HV(r){let t=new XM;for(let e of r)t.processEvent(e);return t.coalesce()}function eL(r,t){return typeof t=="string"&&!t.startsWith(ra)&&!In(t)?{base:r,pattern:t}:t}function tL(r,t,e){let n=[];for(let o of t)n.push(vo(eL(r,o),{ignoreCase:e}));return n}var XM=class{constructor(){this.coalesced=new Set;this.mapPathToChange=new Map}toKey(t){return Qe?t.resource.fsPath:t.resource.fsPath.toLowerCase()}processEvent(t){let e=this.mapPathToChange.get(this.toKey(t)),n=!1;if(e){let o=e.type,i=t.type;e.resource.fsPath!==t.resource.fsPath&&(t.type===2||t.type===1)?n=!0:o===1&&i===2?(this.mapPathToChange.delete(this.toKey(t)),this.coalesced.delete(e)):o===2&&i===1?e.type=0:o===1&&i===0||(e.type=i)}else n=!0;n&&(this.coalesced.add(t),this.mapPathToChange.set(this.toKey(t),t))}coalesce(){let t=[],e=[];return Array.from(this.coalesced).filter(n=>n.type!==2?(t.push(n),!1):!0).sort((n,o)=>n.resource.fsPath.length-o.resource.fsPath.length).filter(n=>e.some(o=>bF(n.resource.fsPath,o,!Qe))?!1:(e.push(n.resource.fsPath),!0)).concat(t)}};function WV(r,t){if(typeof t=="number")switch(r.type){case 1:return(t&4)===0;case 2:return(t&8)===0;case 0:return(t&2)===0}return!1}function VV(r){if(typeof r=="number"){let t=[];return r&4&&t.push("Added"),r&8&&t.push("Deleted"),r&2&&t.push("Updated"),t.length===0?"<all>":`[${t.join(", ")}]`}return"<none>"}var nL=class{constructor(t,e,n,o,i,s,a,l){this.session=Math.random();this._onDidCreate=new T;this._onDidChange=new T;this._onDidDelete=new T;this._config=0,l.ignoreCreateEvents&&(this._config+=1),l.ignoreChangeEvents&&(this._config+=2),l.ignoreDeleteEvents&&(this._config+=4);let d=typeof a=="string"?!((n.getCapabilities(V.file)??0)&1024):n.extUri.ignorePathCasing(y.revive(a.baseUri)),c=vo(a,{ignoreCase:d}),u=typeof a=="string",m=!1,g=s(h=>{if(!(typeof h.session=="number"&&h.session!==this.session)&&!(m&&typeof h.session>"u")){if(!l.ignoreCreateEvents)for(let f of h.created){let I=y.revive(f);c(I.fsPath)&&(!u||o.getWorkspaceFolder(I))&&this._onDidCreate.fire(I)}if(!l.ignoreChangeEvents)for(let f of h.changed){let I=y.revive(f);c(I.fsPath)&&(!u||o.getWorkspaceFolder(I))&&this._onDidChange.fire(I)}if(!l.ignoreDeleteEvents)for(let f of h.deleted){let I=y.revive(f);c(I.fsPath)&&(!u||o.getWorkspaceFolder(I))&&this._onDidDelete.fire(I)}}});this._disposable=be.from(this.ensureWatching(t,o,e,i,a,l,!1),this._onDidCreate,this._onDidChange,this._onDidDelete,g)}get ignoreCreateEvents(){return!!(this._config&1)}get ignoreChangeEvents(){return!!(this._config&2)}get ignoreDeleteEvents(){return!!(this._config&4)}ensureWatching(t,e,n,o,i,s,a){let l=be.from();if(typeof i=="string"||s.ignoreChangeEvents&&s.ignoreCreateEvents&&s.ignoreDeleteEvents)return l;let d=t.getProxy(U.MainThreadFileSystemEventService),c=!1;(i.pattern.includes(ra)||i.pattern.includes(Nx))&&(c=!0);let u=[],m,g;if(a)(s.ignoreChangeEvents||s.ignoreCreateEvents||s.ignoreDeleteEvents)&&(g=14,s.ignoreChangeEvents&&(g&=-3),s.ignoreCreateEvents&&(g&=-5),s.ignoreDeleteEvents&&(g&=-9));else if(c&&u.length===0){let h=e.getWorkspaceFolder(y.revive(i.baseUri)),f=n.getConfiguration("files",h).get("watcherExclude");if(f)for(let I in f)I&&f[I]===!0&&u.push(I)}else if(!c){let h=e.getWorkspaceFolder(y.revive(i.baseUri));if(h){let f=n.getConfiguration("files",h).get("watcherExclude");if(f){for(let I in f)if(I&&f[I]===!0){let S=`${nr(I,"/")}/${ra}`;m||(m=[]),m.push(eL(h.uri.fsPath,S))}}if(!m||m.length===0)return l}}return d.$watch(o.identifier.value,this.session,i.baseUri,{recursive:c,excludes:u,includes:m,filter:g},!!a),be.from({dispose:()=>d.$unwatch(this.session)})}dispose(){this._disposable.dispose()}get onDidCreate(){return this._onDidCreate.event}get onDidChange(){return this._onDidChange.event}get onDidDelete(){return this._onDidDelete.event}},oL=class{constructor(t){this._events=t;this._created=new pt(()=>this._events.created.map(y.revive));this._changed=new pt(()=>this._events.changed.map(y.revive));this._deleted=new pt(()=>this._events.deleted.map(y.revive));this.session=this._events.session}get created(){return this._created.value}get changed(){return this._changed.value}get deleted(){return this._deleted.value}},UE=class{constructor(t,e,n){this._mainContext=t;this._logService=e;this._extHostDocumentsAndEditors=n;this._onFileSystemEvent=new T;this._onDidRenameFile=new T;this._onDidCreateFile=new T;this._onDidDeleteFile=new T;this._onWillRenameFile=new Ki;this._onWillCreateFile=new Ki;this._onWillDeleteFile=new Ki;this.onDidRenameFile=this._onDidRenameFile.event;this.onDidCreateFile=this._onDidCreateFile.event;this.onDidDeleteFile=this._onDidDeleteFile.event}createFileSystemWatcher(t,e,n,o,i,s){return new nL(this._mainContext,e,n,t,o,this._onFileSystemEvent.event,Ao.from(i),s)}$onFileEvent(t){this._onFileSystemEvent.fire(new oL(t))}$onDidRunFileOperation(t,e){switch(t){case 2:this._onDidRenameFile.fire(Object.freeze({files:e.map(n=>({oldUri:y.revive(n.source),newUri:y.revive(n.target)}))}));break;case 1:this._onDidDeleteFile.fire(Object.freeze({files:e.map(n=>y.revive(n.target))}));break;case 0:case 3:this._onDidCreateFile.fire(Object.freeze({files:e.map(n=>y.revive(n.target))}));break;default:}}getOnWillRenameFileEvent(t){return this._createWillExecuteEvent(t,this._onWillRenameFile)}getOnWillCreateFileEvent(t){return this._createWillExecuteEvent(t,this._onWillCreateFile)}getOnWillDeleteFileEvent(t){return this._createWillExecuteEvent(t,this._onWillDeleteFile)}_createWillExecuteEvent(t,e){return(n,o,i)=>{let s=function(l){n.call(o,l)};return s.extension=t,e.event(s,void 0,i)}}async $onWillRunFileOperation(t,e,n,o){switch(t){case 2:return await this._fireWillEvent(this._onWillRenameFile,{files:e.map(i=>({oldUri:y.revive(i.source),newUri:y.revive(i.target)}))},n,o);case 1:return await this._fireWillEvent(this._onWillDeleteFile,{files:e.map(i=>y.revive(i.target))},n,o);case 0:case 3:return await this._fireWillEvent(this._onWillCreateFile,{files:e.map(i=>y.revive(i.target))},n,o)}}async _fireWillEvent(t,e,n,o){let i=new Set,s=[];if(await t.fireAsync(e,o,async(l,d)=>{let c=Date.now(),u=await Promise.resolve(l);u instanceof pr&&(s.push([d.extension,u]),i.add(d.extension.displayName??d.extension.identifier.value)),Date.now()-c>n&&this._logService.warn("SLOW file-participant",d.extension.identifier)}),o.isCancellationRequested||s.length===0)return;let a={edits:[]};for(let[,l]of s){let{edits:d}=so.from(l,{getTextDocumentVersion:c=>this._extHostDocumentsAndEditors.getDocument(c)?.version,getNotebookDocumentVersion:()=>{}});a.edits=a.edits.concat(d)}return{edit:a,extensionNames:Array.from(i)}}};var FE=class{constructor(t,e,n,o,i){this._extHostNotebooks=e;this._textDocumentsAndEditors=n;this._commands=o;let s=new De("interactive.open","_interactive.open","Open interactive window and return notebook editor and input URI",[new Z("showOptions","Show Options",a=>!0,a=>a),new Z("resource","Interactive resource Uri",a=>!0,a=>a),new Z("controllerId","Notebook controller Id",a=>!0,a=>a),new Z("title","Interactive editor title",a=>!0,a=>a)],new we("Notebook and input URI",a=>{if(i.debug("[ExtHostInteractive] open iw with notebook editor id",a.notebookEditorId),a.notebookEditorId!==void 0){let l=this._extHostNotebooks.getEditorById(a.notebookEditorId);return i.debug("[ExtHostInteractive] notebook editor found",l.id),{notebookUri:y.revive(a.notebookUri),inputUri:y.revive(a.inputUri),notebookEditor:l.apiEditor}}return i.debug("[ExtHostInteractive] notebook editor not found, uris for the interactive document",a.notebookUri,a.inputUri),{notebookUri:y.revive(a.notebookUri),inputUri:y.revive(a.inputUri)}}));this._commands.registerApiCommand(s)}$willAddInteractiveDocument(t,e,n,o){this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({addedDocuments:[{EOL:e,lines:[""],languageId:n,uri:t,isDirty:!1,versionId:1,encoding:"utf8"}]})}$willRemoveInteractiveDocument(t,e){this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({removedDocuments:[t]})}};var HE=class{constructor(t){this._handlePool=0;this._proxy=t.getProxy(U.MainThreadLabelService)}$registerResourceLabelFormatter(t){let e=this._handlePool++;return this._proxy.$registerResourceLabelFormatter(e,t),G(()=>{this._proxy.$unregisterResourceLabelFormatter(e)})}};var WE=class r extends Ke{constructor(t,e,n,o){super(t,e,n,o),this.selectionStartLineNumber=t,this.selectionStartColumn=e,this.positionLineNumber=n,this.positionColumn=o}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(t){return r.selectionsEqual(this,t)}static selectionsEqual(t,e){return t.selectionStartLineNumber===e.selectionStartLineNumber&&t.selectionStartColumn===e.selectionStartColumn&&t.positionLineNumber===e.positionLineNumber&&t.positionColumn===e.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(t,e){return this.getDirection()===0?new r(this.startLineNumber,this.startColumn,t,e):new r(t,e,this.startLineNumber,this.startColumn)}getPosition(){return new kn(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new kn(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(t,e){return this.getDirection()===0?new r(t,e,this.endLineNumber,this.endColumn):new r(this.endLineNumber,this.endColumn,t,e)}static fromPositions(t,e=t){return new r(t.lineNumber,t.column,e.lineNumber,e.column)}static fromRange(t,e){return e===0?new r(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new r(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)}static liftSelection(t){return new r(t.selectionStartLineNumber,t.selectionStartColumn,t.positionLineNumber,t.positionColumn)}static selectionsArrEqual(t,e){if(t&&!e||!t&&e)return!1;if(!t&&!e)return!0;if(t.length!==e.length)return!1;for(let n=0,o=t.length;n<o;n++)if(!this.selectionsEqual(t[n],e[n]))return!1;return!0}static isISelection(t){return!!t&&typeof t.selectionStartLineNumber=="number"&&typeof t.selectionStartColumn=="number"&&typeof t.positionLineNumber=="number"&&typeof t.positionColumn=="number"}static createWithDirection(t,e,n,o,i){return i===0?new r(t,e,n,o):new r(n,o,t,e)}};var VE=class r{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentSymbols(t,e){let n=this._documents.getDocument(t),o=await this._provider.provideDocumentSymbols(n,e);if(!Kf(o))return o[0]instanceof Tr?o.map(s1.from):r._asDocumentSymbolTree(o)}static _asDocumentSymbolTree(t){t=t.slice(0).sort((o,i)=>{let s=o.location.range.start.compareTo(i.location.range.start);return s===0&&(s=i.location.range.end.compareTo(o.location.range.end)),s});let e=[],n=[];for(let o of t){let i={name:o.name||"!!MISSING: name!!",kind:Er.from(o.kind),tags:o.tags?.map(Ea.from)||[],detail:"",containerName:o.containerName,range:K.from(o.location.range),selectionRange:K.from(o.location.range),children:[]};for(;;){if(n.length===0){n.push(i),e.push(i);break}let s=n[n.length-1];if(Ke.containsRange(s.range,i.range)&&!Ke.equalsRange(s.range,i.range)){s.children?.push(i),n.push(i);break}n.pop()}}return e}},sf=class{constructor(t,e,n,o,i,s){this._documents=t;this._commands=e;this._provider=n;this._extension=o;this._extTelemetry=i;this._logService=s;this._cache=new Lo("CodeLens");this._disposables=new Map}async provideCodeLenses(t,e){let n=this._documents.getDocument(t),o=await this._provider.provideCodeLenses(n,e);if(!o||e.isCancellationRequested)return;let i=this._cache.add(o),s=new $;this._disposables.set(i,s);let a={cacheId:i,lenses:[]};for(let l=0;l<o.length;l++){if(!ge.isRange(o[l].range)){console.warn("INVALID code lens, range is not defined",this._extension.identifier.value);continue}a.lenses.push({cacheId:[i,l],range:K.from(o[l].range),command:this._commands.toInternal(o[l].command,s)})}return a}async resolveCodeLens(t,e){let n=t.cacheId&&this._cache.get(...t.cacheId);if(!n)return;let o;if(typeof this._provider.resolveCodeLens!="function"||n.isResolved?o=n:o=await this._provider.resolveCodeLens(n,e),o||(o=n),e.isCancellationRequested)return;let i=t.cacheId&&this._disposables.get(t.cacheId[0]);if(i){if(!o.command){let s=new Error("INVALID code lens resolved, lacks command: "+this._extension.identifier.value);this._extTelemetry.onExtensionError(this._extension.identifier,s),this._logService.error(s);return}return t.command=this._commands.toInternal(o.command,i),t}}releaseCodeLenses(t){this._disposables.get(t)?.dispose(),this._disposables.delete(t),this._cache.delete(t)}};function rw(r){return Array.isArray(r)?r.map(Rm.from):r?[Rm.from(r)]:[]}var BE=class{constructor(t,e){this._documents=t;this._provider=e}async provideDefinition(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.provideDefinition(o,i,n);return rw(s)}},$E=class{constructor(t,e){this._documents=t;this._provider=e}async provideDeclaration(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.provideDeclaration(o,i,n);return rw(s)}},zE=class{constructor(t,e){this._documents=t;this._provider=e}async provideImplementation(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.provideImplementation(o,i,n);return rw(s)}},qE=class{constructor(t,e){this._documents=t;this._provider=e}async provideTypeDefinition(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.provideTypeDefinition(o,i,n);return rw(s)}},Lb=class r{constructor(t,e){this._documents=t;this._provider=e;this._hoverCounter=0;this._hoverMap=new Map}static{this.HOVER_MAP_MAX_SIZE=10}async provideHover(t,e,n,o){let i=this._documents.getDocument(t),s=dt.to(e),a;if(n&&n.verbosityRequest){let u=n.verbosityRequest.previousHover.id,m=this._hoverMap.get(u);if(!m)throw new Error(`Hover with id ${u} not found`);let g={verbosityDelta:n.verbosityRequest.verbosityDelta,previousHover:m};a=await this._provider.provideHover(i,s,o,g)}else a=await this._provider.provideHover(i,s,o);if(!a||Kf(a.contents))return;a.range||(a.range=i.getWordRangeAtPosition(s)),a.range||(a.range=new ge(s,s));let l=Am.from(a),d=this._hoverCounter;if(this._hoverMap.size===r.HOVER_MAP_MAX_SIZE){let u=Math.min(...this._hoverMap.keys());this._hoverMap.delete(u)}return this._hoverMap.set(d,a),this._hoverCounter+=1,{...l,id:d}}releaseHover(t){this._hoverMap.delete(t)}},KE=class{constructor(t,e){this._documents=t;this._provider=e}async provideEvaluatableExpression(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.provideEvaluatableExpression(o,i,n);if(s)return d1.from(s)}},jE=class{constructor(t,e){this._documents=t;this._provider=e}async provideInlineValues(t,e,n,o){let i=this._documents.getDocument(t),s=await this._provider.provideInlineValues(i,K.to(e),Mv.to(n),o);if(Array.isArray(s))return s.map(a=>Av.from(a))}},GE=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentHighlights(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.provideDocumentHighlights(o,i,n);if(Array.isArray(s))return s.map(qc.from)}},QE=class{constructor(t,e,n){this._documents=t;this._provider=e;this._logService=n}async provideMultiDocumentHighlights(t,e,n,o){let i=this._documents.getDocument(t),s=n.map(d=>{try{return this._documents.getDocument(d)}catch(c){this._logService.error("Error: Unable to retrieve document from URI: "+d+". Error message: "+c);return}}).filter(d=>d!==void 0),a=dt.to(e),l=await this._provider.provideMultiDocumentHighlights(i,a,s,o);if(Array.isArray(l))return l.map(c1.from)}},JE=class{constructor(t,e){this._documents=t;this._provider=e}async provideLinkedEditingRanges(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.provideLinkedEditingRanges(o,i,n);if(s&&Array.isArray(s.ranges))return{ranges:nt(s.ranges.map(K.from)),wordPattern:s.wordPattern}}},YE=class{constructor(t,e){this._documents=t;this._provider=e}async provideReferences(t,e,n,o){let i=this._documents.getDocument(t),s=dt.to(e),a=await this._provider.provideReferences(i,s,n,o);if(Array.isArray(a))return a.map(io.from)}},af=class r{constructor(t,e,n,o,i,s,a){this._documents=t;this._commands=e;this._diagnostics=n;this._provider=o;this._logService=i;this._extension=s;this._apiDeprecation=a;this._cache=new Lo("CodeAction");this._disposables=new Map}static{this._maxCodeActionsPerFile=1e3}async provideCodeActions(t,e,n,o){let i=this._documents.getDocument(t),s=WE.isISelection(e)?yo.to(e):K.to(e),a=[];for(let g of this._diagnostics.getDiagnostics(t))if(s.intersection(g.range)&&a.push(g)>r._maxCodeActionsPerFile)break;let l={diagnostics:a,only:n.only?new yt(n.only):void 0,triggerKind:S1.to(n.trigger)},d=await this._provider.provideCodeActions(i,s,l,o);if(!Ka(d)||o.isCancellationRequested)return;let c=this._cache.add(d),u=new $;this._disposables.set(c,u);let m=[];for(let g=0;g<d.length;g++){let h=d[g];if(h)if(r._isCommand(h)&&!(h instanceof ms))this._apiDeprecation.report("CodeActionProvider.provideCodeActions - return commands",this._extension,"Return 'CodeAction' instances instead."),m.push({_isSynthetic:!0,title:h.title,command:this._commands.toInternal(h,u)});else{let f=h;l.only&&(f.kind?l.only.contains(f.kind)||this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${l.only.value}' requested but returned code action is of kind '${f.kind.value}'. Code action will be dropped. Please check 'CodeActionContext.only' to only return requested code actions.`):this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${l.only.value}' requested but returned code action does not have a 'kind'. Code action will be dropped. Please set 'CodeAction.kind'.`));let I=f.ranges??[];m.push({cacheId:[c,g],title:f.title,command:f.command&&this._commands.toInternal(f.command,u),diagnostics:f.diagnostics&&f.diagnostics.map(ka.from),edit:f.edit&&so.from(f.edit,void 0),kind:f.kind&&f.kind.value,isPreferred:f.isPreferred,isAI:Fe(this._extension,"codeActionAI")?f.isAI:!1,ranges:Fe(this._extension,"codeActionRanges")?nt(I.map(K.from)):void 0,disabled:f.disabled?.reason})}}return{cacheId:c,actions:m}}async resolveCodeAction(t,e){let[n,o]=t,i=this._cache.get(n,o);if(!i||r._isCommand(i))return{};if(!this._provider.resolveCodeAction)return{};let s=await this._provider.resolveCodeAction(i,e)??i,a;s.edit&&(a=so.from(s.edit,void 0));let l;if(s.command){let d=this._disposables.get(n);d&&(l=this._commands.toInternal(s.command,d))}return{edit:a,command:l}}releaseCodeActions(t){this._disposables.get(t)?.dispose(),this._disposables.delete(t),this._cache.delete(t)}static _isCommand(t){return typeof t.command=="string"&&typeof t.title=="string"}},yu=class{constructor(t,e,n,o,i){this._proxy=t;this._documents=e;this._provider=n;this._handle=o;this._extension=i;this._editsCache=new Lo("DocumentPasteEdit.edits")}async prepareDocumentPaste(t,e,n,o){if(!this._provider.prepareDocumentPaste)return;this._cachedPrepare=void 0;let i=this._documents.getDocument(t),s=e.map(u=>K.to(u)),a=Xc.toDataTransfer(n,()=>{throw new gy});if(await this._provider.prepareDocumentPaste(i,s,a,o),o.isCancellationRequested)return;let l=Array.from(a).filter(([,u])=>!(u instanceof Wl)),d=new Map,c=await Promise.all(Array.from(l,async([u,m])=>{let g=Le();return d.set(g,m),[u,await zc.from(u,m,g)]}));return this._cachedPrepare=d,{items:c}}async providePasteEdits(t,e,n,o,i,s){if(!this._provider.provideDocumentPasteEdits)return[];let a=this._documents.getDocument(e),l=n.map(g=>K.to(g)),d=o.items.map(([g,h])=>{let f=this._cachedPrepare?.get(h.id);return f?[g,f]:[g,zc.to(g,h,async I=>(await this._proxy.$resolvePasteFileData(this._handle,t,I)).buffer)]}),c=new $r(d),u=await this._provider.provideDocumentPasteEdits(a,l,c,{only:i.only?new zr(i.only):void 0,triggerKind:i.triggerKind},s);if(!u||s.isCancellationRequested)return[];let m=this._editsCache.add(u);return u.map((g,h)=>({_cacheId:[m,h],title:g.title??p(3315,null,this._extension.displayName||this._extension.name),kind:g.kind,yieldTo:g.yieldTo?.map(f=>f.value),insertText:typeof g.insertText=="string"?g.insertText:{snippet:g.insertText.value},additionalEdit:g.additionalEdit?so.from(g.additionalEdit,void 0):void 0}))}async resolvePasteEdit(t,e){let[n,o]=t,i=this._editsCache.get(n,o);if(!i||!this._provider.resolveDocumentPasteEdit)return{};let s=await this._provider.resolveDocumentPasteEdit(i,e)??i;return{insertText:s.insertText,additionalEdit:s.additionalEdit?so.from(s.additionalEdit,void 0):void 0}}releasePasteEdits(t){this._editsCache.delete(t)}},XE=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentFormattingEdits(t,e,n){let o=this._documents.getDocument(t),i=await this._provider.provideDocumentFormattingEdits(o,e,n);if(Array.isArray(i))return i.map(Cn.from)}},Ob=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentRangeFormattingEdits(t,e,n,o){let i=this._documents.getDocument(t),s=K.to(e),a=await this._provider.provideDocumentRangeFormattingEdits(i,s,n,o);if(Array.isArray(a))return a.map(Cn.from)}async provideDocumentRangesFormattingEdits(t,e,n,o){Bu(typeof this._provider.provideDocumentRangesFormattingEdits=="function","INVALID invocation of `provideDocumentRangesFormattingEdits`");let i=this._documents.getDocument(t),s=e.map(K.to),a=await this._provider.provideDocumentRangesFormattingEdits(i,s,n,o);if(Array.isArray(a))return a.map(Cn.from)}},ZE=class{constructor(t,e){this._documents=t;this._provider=e;this.autoFormatTriggerCharacters=[]}async provideOnTypeFormattingEdits(t,e,n,o,i){let s=this._documents.getDocument(t),a=dt.to(e),l=await this._provider.provideOnTypeFormattingEdits(s,a,n,o,i);if(Array.isArray(l))return l.map(Cn.from)}},lf=class{constructor(t,e){this._provider=t;this._logService=e;this._cache=new Lo("WorkspaceSymbols")}async provideWorkspaceSymbols(t,e){let n=await this._provider.provideWorkspaceSymbols(t,e);if(!Ka(n))return{symbols:[]};let o=this._cache.add(n),i={cacheId:o,symbols:[]};for(let s=0;s<n.length;s++){let a=n[s];if(!a||!a.name){this._logService.warn("INVALID SymbolInformation",a);continue}i.symbols.push({...Zl.from(a),cacheId:[o,s]})}return i}async resolveWorkspaceSymbol(t,e){if(typeof this._provider.resolveWorkspaceSymbol!="function"||!t.cacheId)return t;let n=this._cache.get(...t.cacheId);if(n){let o=await this._provider.resolveWorkspaceSymbol(n,e);return o&&Uo(t,Zl.from(o),!0)}}releaseWorkspaceSymbols(t){this._cache.delete(t)}},df=class r{constructor(t,e,n){this._documents=t;this._provider=e;this._logService=n}static supportsResolving(t){return typeof t.prepareRename=="function"}async provideRenameEdits(t,e,n,o){let i=this._documents.getDocument(t),s=dt.to(e);try{let a=await this._provider.provideRenameEdits(i,s,n,o);return a?so.from(a):void 0}catch(a){let l=r._asMessage(a);return l?{rejectReason:l,edits:void 0}:Promise.reject(a)}}async resolveRenameLocation(t,e,n){if(typeof this._provider.prepareRename!="function")return Promise.resolve(void 0);let o=this._documents.getDocument(t),i=dt.to(e);try{let s=await this._provider.prepareRename(o,i,n),a,l;if(ge.isRange(s)?(a=s,l=o.getText(s)):ot(s)&&(a=s.range,l=s.placeholder),!a||!l)return;if(a.start.line>i.line||a.end.line<i.line){this._logService.warn("INVALID rename location: position line must be within range start/end lines");return}return{range:K.from(a),text:l}}catch(s){let a=r._asMessage(s);return a?{rejectReason:a,range:void 0,text:void 0}:Promise.reject(s)}}static _asMessage(t){return typeof t=="string"?t:t instanceof Error&&typeof t.message=="string"?t.message:void 0}},Nb=class r{constructor(t,e,n){this._documents=t;this._provider=e;this._logService=n}static{this.languageTriggerKindToVSCodeTriggerKind={0:0,1:1}}async supportsAutomaticNewSymbolNamesTriggerKind(){return this._provider.supportsAutomaticTriggerKind}async provideNewSymbolNames(t,e,n,o){let i=this._documents.getDocument(t),s=K.to(e);try{let a=r.languageTriggerKindToVSCodeTriggerKind[n],l=await this._provider.provideNewSymbolNames(i,s,a,o);return l?l.map(d=>typeof d=="string"?{newSymbolName:d}:{newSymbolName:d.newSymbolName,tags:d.tags}):void 0}catch(a){this._logService.error(r._asMessage(a)??JSON.stringify(a,null,"	"));return}}static _asMessage(t){return typeof t=="string"?t:t instanceof Error&&typeof t.message=="string"?t.message:void 0}},Ub=class{constructor(t,e){this.resultId=t;this.tokens=e}},Fb=class r{constructor(t,e){this._documents=t;this._provider=e;this._nextResultId=1;this._previousResults=new Map}async provideDocumentSemanticTokens(t,e,n){let o=this._documents.getDocument(t),i=e!==0?this._previousResults.get(e):null,s=typeof i?.resultId=="string"&&typeof this._provider.provideDocumentSemanticTokensEdits=="function"?await this._provider.provideDocumentSemanticTokensEdits(o,i.resultId,n):await this._provider.provideDocumentSemanticTokens(o,n);return i&&this._previousResults.delete(e),s?(s=r._fixProvidedSemanticTokens(s),this._send(r._convertToEdits(i,s),s)):null}async releaseDocumentSemanticColoring(t){this._previousResults.delete(t)}static _fixProvidedSemanticTokens(t){return r._isSemanticTokens(t)?r._isCorrectSemanticTokens(t)?t:new ki(new Uint32Array(t.data),t.resultId):r._isSemanticTokensEdits(t)?r._isCorrectSemanticTokensEdits(t)?t:new Vl(t.edits.map(e=>new tm(e.start,e.deleteCount,e.data?new Uint32Array(e.data):e.data)),t.resultId):t}static _isSemanticTokens(t){return t&&!!t.data}static _isCorrectSemanticTokens(t){return t.data instanceof Uint32Array}static _isSemanticTokensEdits(t){return t&&Array.isArray(t.edits)}static _isCorrectSemanticTokensEdits(t){for(let e of t.edits)if(!(e.data instanceof Uint32Array))return!1;return!0}static _convertToEdits(t,e){if(!r._isSemanticTokens(e)||!t||!t.tokens)return e;let n=t.tokens,o=n.length,i=e.data,s=i.length,a=0,l=Math.min(o,s);for(;a<l&&n[a]===i[a];)a++;if(a===o&&a===s)return new Vl([],e.resultId);let d=0,c=l-a;for(;d<c&&n[o-d-1]===i[s-d-1];)d++;return new Vl([{start:a,deleteCount:o-a-d,data:i.subarray(a,s-d)}],e.resultId)}_send(t,e){if(r._isSemanticTokens(t)){let n=this._nextResultId++;return this._previousResults.set(n,new Ub(t.resultId,t.data)),cE({id:n,type:"full",data:t.data})}if(r._isSemanticTokensEdits(t)){let n=this._nextResultId++;return r._isSemanticTokens(e)?this._previousResults.set(n,new Ub(e.resultId,e.data)):this._previousResults.set(n,new Ub(t.resultId)),cE({id:n,type:"delta",deltas:(t.edits||[]).map(o=>({start:o.start,deleteCount:o.deleteCount,data:o.data}))})}return null}},ew=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentRangeSemanticTokens(t,e,n){let o=this._documents.getDocument(t),i=await this._provider.provideDocumentRangeSemanticTokens(o,K.to(e),n);return i?this._send(i):null}_send(t){return cE({id:0,type:"full",data:t.data})}},Iu=class r{constructor(t,e,n,o,i){this._documents=t;this._commands=e;this._provider=n;this._apiDeprecation=o;this._extension=i;this._cache=new Lo("CompletionItem");this._disposables=new Map}static supportsResolving(t){return typeof t.resolveCompletionItem=="function"}async provideCompletionItems(t,e,n,o){let i=this._documents.getDocument(t),s=dt.to(e),a=i.getWordRangeAtPosition(s)||new ge(s,s),l=a.with({end:s}),d=new Zt,c=await this._provider.provideCompletionItems(i,s,o,u1.to(n));if(!c||o.isCancellationRequested)return;let u=Array.isArray(c)?new Ii(c):c,m=r.supportsResolving(this._provider)?this._cache.add(u.items):this._cache.add([]),g=new $;this._disposables.set(m,g);let h=[],f={x:m,b:h,a:{replace:K.from(a),insert:K.from(l)},c:u.isIncomplete||void 0,d:d.elapsed()};for(let I=0;I<u.items.length;I++){let S=u.items[I],E=this._convertCompletionItem(S,[m,I],l,a);h.push(E)}return f}async resolveCompletionItem(t,e){if(typeof this._provider.resolveCompletionItem!="function")return;let n=this._cache.get(...t);if(!n)return;let o=this._convertCompletionItem(n,t),i=await this._provider.resolveCompletionItem(n,e);if(!i)return;let s=this._convertCompletionItem(i,t);return(o.h!==s.h||o.i!==s.i)&&this._apiDeprecation.report("CompletionItem.insertText",this._extension,"extension MAY NOT change 'insertText' of a CompletionItem during resolve"),(o.n!==s.n||o.o!==s.o||!tn(o.p,s.p))&&this._apiDeprecation.report("CompletionItem.command",this._extension,"extension MAY NOT change 'command' of a CompletionItem during resolve"),{...o,d:s.d,c:s.c,l:s.l,h:s.h,i:s.i,n:s.n,o:s.o,p:s.p}}releaseCompletionItems(t){this._disposables.get(t)?.dispose(),this._disposables.delete(t),this._cache.delete(t)}_convertCompletionItem(t,e,n,o){let i=this._disposables.get(e[0]);if(!i)throw Error("DisposableStore is missing...");let s=this._commands.toInternal(t.command,i),a={x:e,a:t.label,b:t.kind!==void 0?kC.from(t.kind):void 0,m:t.tags&&t.tags.map(wC.from),c:t.detail,d:typeof t.documentation>"u"?void 0:me.fromStrict(t.documentation),e:t.sortText!==t.label?t.sortText:void 0,f:t.filterText!==t.label?t.filterText:void 0,g:t.preselect||void 0,i:t.keepWhitespace?1:0,k:t.commitCharacters?.join(""),l:t.additionalTextEdits&&t.additionalTextEdits.map(Cn.from),n:s?.$ident,o:s?.id,p:s?.$ident?void 0:s?.arguments};t.textEdit?(this._apiDeprecation.report("CompletionItem.textEdit",this._extension,"Use 'CompletionItem.insertText' and 'CompletionItem.range' instead."),a.h=t.textEdit.newText):typeof t.insertText=="string"?a.h=t.insertText:t.insertText instanceof zn&&(a.h=t.insertText.value,a.i|=4);let l;return t.textEdit?l=t.textEdit.range:t.range&&(l=t.range),ge.isRange(l)?a.j=K.from(l):l&&(!n?.isEqual(l.inserting)||!o?.isEqual(l.replacing))&&(a.j={insert:K.from(l.inserting),replace:K.from(l.replacing)}),a}},Ui=class{constructor(t,e,n,o){this._extension=t;this._documents=e;this._provider=n;this._commands=o;this._references=new rL;this.languageTriggerKindToVSCodeTriggerKind={0:1,1:0};this._isAdditionsProposedApiEnabled=Fe(this._extension,"inlineCompletionsAdditions")}get supportsHandleEvents(){return Fe(this._extension,"inlineCompletionsAdditions")&&(typeof this._provider.handleDidShowCompletionItem=="function"||typeof this._provider.handleDidPartiallyAcceptCompletionItem=="function"||typeof this._provider.handleDidRejectCompletionItem=="function"||typeof this._provider.handleEndOfLifetime=="function")}get supportsSetModelId(){return Fe(this._extension,"inlineCompletionsAdditions")&&typeof this._provider.setCurrentModelId=="function"}get supportsSetProviderOption(){return Fe(this._extension,"inlineCompletionsAdditions")&&typeof this._provider.setProviderOptionValue=="function"}get modelInfo(){if(this._isAdditionsProposedApiEnabled)return this._provider.modelInfo?{models:this._provider.modelInfo.models,currentModelId:this._provider.modelInfo.currentModelId}:void 0}setCurrentModelId(t){this._isAdditionsProposedApiEnabled&&this._provider.setCurrentModelId?.(t)}get providerOptions(){if(this._isAdditionsProposedApiEnabled)return this._provider.providerOptions?.map(t=>({id:t.id,label:t.label,values:t.values.map(e=>({id:e.id,label:e.label})),currentValueId:t.currentValueId}))}setProviderOption(t,e){this._isAdditionsProposedApiEnabled&&this._provider.setProviderOptionValue?.(t,e)}async provideInlineCompletions(t,e,n,o){let i=this._documents.getDocument(t),s=dt.to(e),a=await this._provider.provideInlineCompletionItems(i,s,{selectedCompletionInfo:n.selectedSuggestionInfo?{range:K.to(n.selectedSuggestionInfo.range),text:n.selectedSuggestionInfo.text}:void 0,triggerKind:this.languageTriggerKindToVSCodeTriggerKind[n.triggerKind],requestUuid:n.requestUuid,requestIssuedDateTime:n.requestIssuedDateTime,earliestShownDateTime:n.earliestShownDateTime,changeHint:n.changeHint},o);if(!a)return;let{resultItems:l,list:d}=Array.isArray(a)?{resultItems:a,list:void 0}:{resultItems:a.items,list:a},c=this._isAdditionsProposedApiEnabled?Array.isArray(a)?[]:a.commands||[]:[],u=this._isAdditionsProposedApiEnabled&&!Array.isArray(a)?a.enableForwardStability:void 0,m;return{pid:this._references.createReferenceId({dispose(){m?.dispose()},items:l,list:d}),languageId:i.languageId,items:l.map((f,I)=>{let S;f.command&&(m||(m=new $),S=this._commands.toInternal(f.command,m));let E;f.action&&(m||(m=new $),E=this._commands.toInternal(f.action,m));let P=f.insertText;return{insertText:P===void 0?void 0:typeof P=="string"?P:{snippet:P.value},range:f.range?K.from(f.range):void 0,showRange:this._isAdditionsProposedApiEnabled&&f.showRange?K.from(f.showRange):void 0,command:S,gutterMenuLinkAction:E,idx:I,completeBracketPairs:this._isAdditionsProposedApiEnabled?f.completeBracketPairs:!1,isInlineEdit:this._isAdditionsProposedApiEnabled?f.isInlineEdit:!1,showInlineEditMenu:this._isAdditionsProposedApiEnabled?f.showInlineEditMenu:!1,hint:f.displayLocation&&this._isAdditionsProposedApiEnabled?{range:K.from(f.displayLocation.range),content:f.displayLocation.label,style:f.displayLocation.kind?D1.from(f.displayLocation.kind):1}:void 0,warning:f.warning&&this._isAdditionsProposedApiEnabled?{message:me.from(f.warning.message),icon:f.warning.icon?Ri.fromThemeIcon(f.warning.icon):void 0}:void 0,correlationId:this._isAdditionsProposedApiEnabled?f.correlationId:void 0,suggestionId:void 0,uri:this._isAdditionsProposedApiEnabled&&f.uri?f.uri:void 0,supportsRename:this._isAdditionsProposedApiEnabled?f.supportsRename:!1,jumpToPosition:this._isAdditionsProposedApiEnabled&&f.jumpToPosition?dt.from(f.jumpToPosition):void 0}}),commands:c.map(f=>(m||(m=new $),p1.from(f,this._commands,m))),suppressSuggestions:!1,enableForwardStability:u}}disposeCompletions(t,e){let n=this._references.get(t);if(this._provider.handleListEndOfLifetime&&this._isAdditionsProposedApiEnabled&&n?.list){let i=function(s){switch(s.kind){case"lostRace":return{kind:3};case"tokenCancellation":return{kind:2};case"other":return{kind:0};case"empty":return{kind:1};case"notTaken":return{kind:4};default:return{kind:0}}};this._provider.handleListEndOfLifetime(n.list,i(e))}this._references.disposeReferenceId(t)?.dispose()}handleDidShowCompletionItem(t,e,n){let o=this._references.get(t)?.items[e];o&&this._provider.handleDidShowCompletionItem&&this._isAdditionsProposedApiEnabled&&this._provider.handleDidShowCompletionItem(o,n)}handlePartialAccept(t,e,n,o){let i=this._references.get(t)?.items[e];i&&this._provider.handleDidPartiallyAcceptCompletionItem&&this._isAdditionsProposedApiEnabled&&(this._provider.handleDidPartiallyAcceptCompletionItem(i,n),this._provider.handleDidPartiallyAcceptCompletionItem(i,P1.to(o)))}handleEndOfLifetime(t,e,n){let o=this._references.get(t)?.items[e];if(o&&this._provider.handleEndOfLifetime&&this._isAdditionsProposedApiEnabled){let i=_1.to(n,s=>this._references.get(s.pid)?.items[s.idx]);this._provider.handleEndOfLifetime(o,i)}}handleRejection(t,e){let n=this._references.get(t)?.items[e];n&&this._provider.handleDidRejectCompletionItem&&this._isAdditionsProposedApiEnabled&&this._provider.handleDidRejectCompletionItem(n)}},rL=class{constructor(){this._references=new Map;this._idPool=1}createReferenceId(t){let e=this._idPool++;return this._references.set(e,t),e}disposeReferenceId(t){let e=this._references.get(t);return this._references.delete(t),e}get(t){return this._references.get(t)}},Hb=class{constructor(t,e){this._documents=t;this._provider=e;this._cache=new Lo("SignatureHelp")}async provideSignatureHelp(t,e,n,o){let i=this._documents.getDocument(t),s=dt.to(e),a=this.reviveContext(n),l=await this._provider.provideSignatureHelp(i,s,o,a);if(l){let d=this._cache.add([l]);return{...Mm.from(l),id:d}}}reviveContext(t){let e;if(t.activeSignatureHelp){let n=Mm.to(t.activeSignatureHelp),o=this._cache.get(t.activeSignatureHelp.id,0);o?(e=o,e.activeSignature=n.activeSignature,e.activeParameter=n.activeParameter):e=n}return{...t,activeSignatureHelp:e}}releaseSignatureHelp(t){this._cache.delete(t)}},cf=class{constructor(t,e,n,o,i){this._documents=t;this._commands=e;this._provider=n;this._logService=o;this._extension=i;this._cache=new Lo("InlayHints");this._disposables=new Map}async provideInlayHints(t,e,n){let o=this._documents.getDocument(t),i=K.to(e),s=await this._provider.provideInlayHints(o,i,n);if(!Array.isArray(s)||s.length===0){this._logService.trace(`[InlayHints] NO inlay hints from '${this._extension.identifier.value}' for range ${JSON.stringify(e)}`);return}if(n.isCancellationRequested)return;let a=this._cache.add(s);this._disposables.set(a,new $);let l={hints:[],cacheId:a};for(let d=0;d<s.length;d++)this._isValidInlayHint(s[d],i)&&l.hints.push(this._convertInlayHint(s[d],[a,d]));return this._logService.trace(`[InlayHints] ${l.hints.length} inlay hints from '${this._extension.identifier.value}' for range ${JSON.stringify(e)}`),l}async resolveInlayHint(t,e){if(typeof this._provider.resolveInlayHint!="function")return;let n=this._cache.get(...t);if(!n)return;let o=await this._provider.resolveInlayHint(n,e);if(o&&this._isValidInlayHint(o))return this._convertInlayHint(o,t)}releaseHints(t){this._disposables.get(t)?.dispose(),this._disposables.delete(t),this._cache.delete(t)}_isValidInlayHint(t,e){return t.label.length===0||Array.isArray(t.label)&&t.label.every(n=>n.value.length===0)?(console.log("INVALID inlay hint, empty label",t),!1):!(e&&!e.contains(t.position))}_convertInlayHint(t,e){let n=this._disposables.get(e[0]);if(!n)throw Error("DisposableStore is missing...");let o={label:"",cacheId:e,tooltip:me.fromStrict(t.tooltip),position:dt.from(t.position),textEdits:t.textEdits&&t.textEdits.map(Cn.from),kind:t.kind&&PC.from(t.kind),paddingLeft:t.paddingLeft,paddingRight:t.paddingRight};if(typeof t.label=="string")o.label=t.label;else{let i=[];o.label=i;for(let s of t.label){if(!s.value){console.warn("INVALID inlay hint, empty label part",this._extension.identifier.value);continue}let a={label:s.value,tooltip:me.fromStrict(s.tooltip)};Qt.isLocation(s.location)&&(a.location=io.from(s.location)),s.command&&(a.command=this._commands.toInternal(s.command,n)),i.push(a)}}return o}},uf=class r{constructor(t,e){this._documents=t;this._provider=e;this._cache=new Lo("DocumentLink")}async provideLinks(t,e){let n=this._documents.getDocument(t),o=await this._provider.provideDocumentLinks(n,e);if(!(!Array.isArray(o)||o.length===0)&&!e.isCancellationRequested){if(typeof this._provider.resolveDocumentLink!="function")return{links:o.filter(r._validateLink).map(_a.from)};{let i=this._cache.add(o),s={links:[],cacheId:i};for(let a=0;a<o.length;a++){if(!r._validateLink(o[a]))continue;let l=_a.from(o[a]);l.cacheId=[i,a],s.links.push(l)}return s}}}static _validateLink(t){return t.target&&t.target.path.length>5e4?(console.warn("DROPPING link because it is too long"),!1):!0}async resolveLink(t,e){if(typeof this._provider.resolveDocumentLink!="function")return;let n=this._cache.get(...t);if(!n)return;let o=await this._provider.resolveDocumentLink(n,e);if(!(!o||!r._validateLink(o)))return _a.from(o)}releaseLinks(t){this._cache.delete(t)}},Wb=class{constructor(t,e){this._documents=t;this._provider=e}async provideColors(t,e){let n=this._documents.getDocument(t),o=await this._provider.provideDocumentColors(n,e);return Array.isArray(o)?o.map(s=>({color:Jc.from(s.color),range:K.from(s.range)})):[]}async provideColorPresentations(t,e,n){let o=this._documents.getDocument(t),i=K.to(e.range),s=Jc.to(e.color),a=await this._provider.provideColorPresentations(s,{document:o,range:i},n);if(Array.isArray(a))return a.map(Lv.from)}},tw=class{constructor(t,e){this._documents=t;this._provider=e}async provideFoldingRanges(t,e,n){let o=this._documents.getDocument(t),i=await this._provider.provideFoldingRanges(o,e,n);if(Array.isArray(i))return i.map(Nv.from)}},nw=class{constructor(t,e,n){this._documents=t;this._provider=e;this._logService=n}async provideSelectionRanges(t,e,n){let o=this._documents.getDocument(t),i=e.map(dt.to),s=await this._provider.provideSelectionRanges(o,i,n);if(!Ka(s))return[];if(s.length!==i.length)return this._logService.warn("BAD selection ranges, provider must return ranges for each position"),[];let a=[];for(let l=0;l<i.length;l++){let d=[];a.push(d);let c=i[l],u=s[l];for(;;){if(!u.range.contains(c))throw new Error("INVALID selection range, must contain the previous range");if(d.push(f1.from(u)),!u.parent)break;c=u.range,u=u.parent}}return a}},xu=class{constructor(t,e){this._documents=t;this._provider=e;this._idPool=new gd("");this._cache=new Map}async prepareSession(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.prepareCallHierarchy(o,i,n);if(!s)return;let a=this._idPool.nextId();return this._cache.set(a,new Map),Array.isArray(s)?s.map(l=>this._cacheAndConvertItem(a,l)):[this._cacheAndConvertItem(a,s)]}async provideCallsTo(t,e,n){let o=this._itemFromCache(t,e);if(!o)throw new Error("missing call hierarchy item");let i=await this._provider.provideCallHierarchyIncomingCalls(o,n);if(i)return i.map(s=>({from:this._cacheAndConvertItem(t,s.from),fromRanges:s.fromRanges.map(a=>K.from(a))}))}async provideCallsFrom(t,e,n){let o=this._itemFromCache(t,e);if(!o)throw new Error("missing call hierarchy item");let i=await this._provider.provideCallHierarchyOutgoingCalls(o,n);if(i)return i.map(s=>({to:this._cacheAndConvertItem(t,s.to),fromRanges:s.fromRanges.map(a=>K.from(a))}))}releaseSession(t){this._cache.delete(t)}_cacheAndConvertItem(t,e){let n=this._cache.get(t),o=Pa.from(e,t,n.size.toString(36));return n.set(o._itemId,e),o}_itemFromCache(t,e){return this._cache.get(t)?.get(e)}},Su=class{constructor(t,e){this._documents=t;this._provider=e;this._idPool=new gd("");this._cache=new Map}async prepareSession(t,e,n){let o=this._documents.getDocument(t),i=dt.to(e),s=await this._provider.prepareTypeHierarchy(o,i,n);if(!s)return;let a=this._idPool.nextId();return this._cache.set(a,new Map),Array.isArray(s)?s.map(l=>this._cacheAndConvertItem(a,l)):[this._cacheAndConvertItem(a,s)]}async provideSupertypes(t,e,n){let o=this._itemFromCache(t,e);if(!o)throw new Error("missing type hierarchy item");let i=await this._provider.provideTypeHierarchySupertypes(o,n);if(i)return i.map(s=>this._cacheAndConvertItem(t,s))}async provideSubtypes(t,e,n){let o=this._itemFromCache(t,e);if(!o)throw new Error("missing type hierarchy item");let i=await this._provider.provideTypeHierarchySubtypes(o,n);if(i)return i.map(s=>this._cacheAndConvertItem(t,s))}releaseSession(t){this._cache.delete(t)}_cacheAndConvertItem(t,e){let n=this._cache.get(t),o=Da.from(e,t,n.size.toString(36));return n.set(o._itemId,e),o}_itemFromCache(t,e){return this._cache.get(t)?.get(e)}},pf=class{constructor(t,e,n,o,i){this._proxy=t;this._documents=e;this._provider=n;this._handle=o;this._extension=i;this._cache=new Lo("DocumentDropEdit")}async provideDocumentOnDropEdits(t,e,n,o,i){let s=this._documents.getDocument(e),a=dt.to(n),l=Xc.toDataTransfer(o,async m=>(await this._proxy.$resolveDocumentOnDropFileData(this._handle,t,m)).buffer),d=await this._provider.provideDocumentDropEdits(s,a,l,i);if(!d)return;let c=Un(d),u=this._cache.add(c);return c.map((m,g)=>({_cacheId:[u,g],title:m.title??p(3314,null,this._extension.displayName||this._extension.name),kind:m.kind?.value,yieldTo:m.yieldTo?.map(h=>h.value),insertText:typeof m.insertText=="string"?m.insertText:{snippet:m.insertText.value},additionalEdit:m.additionalEdit?so.from(m.additionalEdit,void 0):void 0}))}async resolveDropEdit(t,e){let[n,o]=t,i=this._cache.get(n,o);if(!i||!this._provider.resolveDocumentDropEdit)return{};let s=await this._provider.resolveDocumentDropEdit(i,e)??i;return{additionalEdit:s.additionalEdit?so.from(s.additionalEdit,void 0):void 0}}releaseDropEdits(t){this._cache.delete(t)}},Cu=class{constructor(t,e){this.adapter=t;this.extension=e}},ow=class r extends O{constructor(e,n,o,i,s,a,l,d){super();this._uriTransformer=n;this._documents=o;this._commands=i;this._diagnostics=s;this._logService=a;this._apiDeprecation=l;this._extensionTelemetry=d;this._adapter=new Map;this._onDidChangeInlineCompletionsUnificationState=this._register(new T);this.onDidChangeInlineCompletionsUnificationState=this._onDidChangeInlineCompletionsUnificationState.event;this._proxy=e.getProxy(U.MainThreadLanguageFeatures),this._inlineCompletionsUnificationState={codeUnification:!1,modelUnification:!1,extensionUnification:!1,expAssignments:[]}}static{this._handlePool=0}get inlineCompletionsUnificationState(){return this._inlineCompletionsUnificationState}_transformDocumentSelector(e,n){return Di.from(e,this._uriTransformer,n)}_createDisposable(e){return new be(()=>{this._adapter.delete(e),this._proxy.$unregister(e)})}_nextHandle(){return r._handlePool++}async _withAdapter(e,n,o,i,s,a=!1){let l=this._adapter.get(e);if(!l||!(l.adapter instanceof n))return i;let d=Date.now();a||this._logService.trace(`[${l.extension.identifier.value}] INVOKE provider '${o.toString().replace(/[\r\n]/g,"")}'`);let c=o(l.adapter,l.extension);return Promise.resolve(c).catch(u=>{zt(u)||(this._logService.error(`[${l.extension.identifier.value}] provider FAILED`),this._logService.error(u),this._extensionTelemetry.onExtensionError(l.extension.identifier,u))}).finally(()=>{a||this._logService.trace(`[${l.extension.identifier.value}] provider DONE after ${Date.now()-d}ms`)}),he.isCancellationToken(s)?rl(c,s):c}_addNewAdapter(e,n){let o=this._nextHandle();return this._adapter.set(o,new Cu(e,n)),o}static _extLabel(e){return e.displayName||e.name}static _extId(e){return e.identifier.value}registerDocumentSymbolProvider(e,n,o,i){let s=this._addNewAdapter(new VE(this._documents,o),e),a=i&&i.label||r._extLabel(e);return this._proxy.$registerDocumentSymbolProvider(s,this._transformDocumentSelector(n,e),a),this._createDisposable(s)}$provideDocumentSymbols(e,n,o){return this._withAdapter(e,VE,i=>i.provideDocumentSymbols(y.revive(n),o),void 0,o)}registerCodeLensProvider(e,n,o){let i=this._nextHandle(),s=typeof o.onDidChangeCodeLenses=="function"?this._nextHandle():void 0;this._adapter.set(i,new Cu(new sf(this._documents,this._commands.converter,o,e,this._extensionTelemetry,this._logService),e)),this._proxy.$registerCodeLensSupport(i,this._transformDocumentSelector(n,e),s);let a=this._createDisposable(i);if(s!==void 0){let l=o.onDidChangeCodeLenses(d=>this._proxy.$emitCodeLensEvent(s));a=be.from(a,l)}return a}$provideCodeLenses(e,n,o){return this._withAdapter(e,sf,i=>i.provideCodeLenses(y.revive(n),o),void 0,o,n.scheme==="output")}$resolveCodeLens(e,n,o){return this._withAdapter(e,sf,i=>i.resolveCodeLens(n,o),void 0,void 0,!0)}$releaseCodeLenses(e,n){this._withAdapter(e,sf,o=>Promise.resolve(o.releaseCodeLenses(n)),void 0,void 0,!0)}registerDefinitionProvider(e,n,o){let i=this._addNewAdapter(new BE(this._documents,o),e);return this._proxy.$registerDefinitionSupport(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideDefinition(e,n,o,i){return this._withAdapter(e,BE,s=>s.provideDefinition(y.revive(n),o,i),[],i)}registerDeclarationProvider(e,n,o){let i=this._addNewAdapter(new $E(this._documents,o),e);return this._proxy.$registerDeclarationSupport(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideDeclaration(e,n,o,i){return this._withAdapter(e,$E,s=>s.provideDeclaration(y.revive(n),o,i),[],i)}registerImplementationProvider(e,n,o){let i=this._addNewAdapter(new zE(this._documents,o),e);return this._proxy.$registerImplementationSupport(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideImplementation(e,n,o,i){return this._withAdapter(e,zE,s=>s.provideImplementation(y.revive(n),o,i),[],i)}registerTypeDefinitionProvider(e,n,o){let i=this._addNewAdapter(new qE(this._documents,o),e);return this._proxy.$registerTypeDefinitionSupport(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideTypeDefinition(e,n,o,i){return this._withAdapter(e,qE,s=>s.provideTypeDefinition(y.revive(n),o,i),[],i)}registerHoverProvider(e,n,o,i){let s=this._addNewAdapter(new Lb(this._documents,o),e);return this._proxy.$registerHoverProvider(s,this._transformDocumentSelector(n,e)),this._createDisposable(s)}$provideHover(e,n,o,i,s){return this._withAdapter(e,Lb,a=>a.provideHover(y.revive(n),o,i,s),void 0,s)}$releaseHover(e,n){this._withAdapter(e,Lb,o=>Promise.resolve(o.releaseHover(n)),void 0,void 0)}registerEvaluatableExpressionProvider(e,n,o,i){let s=this._addNewAdapter(new KE(this._documents,o),e);return this._proxy.$registerEvaluatableExpressionProvider(s,this._transformDocumentSelector(n,e)),this._createDisposable(s)}$provideEvaluatableExpression(e,n,o,i){return this._withAdapter(e,KE,s=>s.provideEvaluatableExpression(y.revive(n),o,i),void 0,i)}registerInlineValuesProvider(e,n,o,i){let s=typeof o.onDidChangeInlineValues=="function"?this._nextHandle():void 0,a=this._addNewAdapter(new jE(this._documents,o),e);this._proxy.$registerInlineValuesProvider(a,this._transformDocumentSelector(n,e),s);let l=this._createDisposable(a);if(s!==void 0){let d=o.onDidChangeInlineValues(c=>this._proxy.$emitInlineValuesEvent(s));l=be.from(l,d)}return l}$provideInlineValues(e,n,o,i,s){return this._withAdapter(e,jE,a=>a.provideInlineValues(y.revive(n),o,i,s),void 0,s)}registerDocumentHighlightProvider(e,n,o){let i=this._addNewAdapter(new GE(this._documents,o),e);return this._proxy.$registerDocumentHighlightProvider(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}registerMultiDocumentHighlightProvider(e,n,o){let i=this._addNewAdapter(new QE(this._documents,o,this._logService),e);return this._proxy.$registerMultiDocumentHighlightProvider(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideDocumentHighlights(e,n,o,i){return this._withAdapter(e,GE,s=>s.provideDocumentHighlights(y.revive(n),o,i),void 0,i)}$provideMultiDocumentHighlights(e,n,o,i,s){return this._withAdapter(e,QE,a=>a.provideMultiDocumentHighlights(y.revive(n),o,i.map(l=>y.revive(l)),s),void 0,s)}registerLinkedEditingRangeProvider(e,n,o){let i=this._addNewAdapter(new JE(this._documents,o),e);return this._proxy.$registerLinkedEditingRangeProvider(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideLinkedEditingRanges(e,n,o,i){return this._withAdapter(e,JE,async s=>{let a=await s.provideLinkedEditingRanges(y.revive(n),o,i);if(a)return{ranges:a.ranges,wordPattern:a.wordPattern?r._serializeRegExp(a.wordPattern):void 0}},void 0,i)}registerReferenceProvider(e,n,o){let i=this._addNewAdapter(new YE(this._documents,o),e);return this._proxy.$registerReferenceSupport(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideReferences(e,n,o,i,s){return this._withAdapter(e,YE,a=>a.provideReferences(y.revive(n),o,i,s),void 0,s)}registerCodeActionProvider(e,n,o,i){let s=new $,a=this._addNewAdapter(new af(this._documents,this._commands.converter,this._diagnostics,o,this._logService,e,this._apiDeprecation),e);return this._proxy.$registerCodeActionSupport(a,this._transformDocumentSelector(n,e),{providedKinds:i?.providedCodeActionKinds?.map(l=>l.value),documentation:i?.documentation?.map(l=>({kind:l.kind.value,command:this._commands.converter.toInternal(l.command,s)}))},r._extLabel(e),r._extId(e),!!o.resolveCodeAction),s.add(this._createDisposable(a)),s}$provideCodeActions(e,n,o,i,s){return this._withAdapter(e,af,a=>a.provideCodeActions(y.revive(n),o,i,s),void 0,s)}$resolveCodeAction(e,n,o){return this._withAdapter(e,af,i=>i.resolveCodeAction(n,o),{},void 0)}$releaseCodeActions(e,n){this._withAdapter(e,af,o=>Promise.resolve(o.releaseCodeActions(n)),void 0,void 0)}registerDocumentFormattingEditProvider(e,n,o){let i=this._addNewAdapter(new XE(this._documents,o),e);return this._proxy.$registerDocumentFormattingSupport(i,this._transformDocumentSelector(n,e),e.identifier,e.displayName||e.name),this._createDisposable(i)}$provideDocumentFormattingEdits(e,n,o,i){return this._withAdapter(e,XE,s=>s.provideDocumentFormattingEdits(y.revive(n),o,i),void 0,i)}registerDocumentRangeFormattingEditProvider(e,n,o){let i=typeof o.provideDocumentRangesFormattingEdits=="function",s=this._addNewAdapter(new Ob(this._documents,o),e);return this._proxy.$registerRangeFormattingSupport(s,this._transformDocumentSelector(n,e),e.identifier,e.displayName||e.name,i),this._createDisposable(s)}$provideDocumentRangeFormattingEdits(e,n,o,i,s){return this._withAdapter(e,Ob,a=>a.provideDocumentRangeFormattingEdits(y.revive(n),o,i,s),void 0,s)}$provideDocumentRangesFormattingEdits(e,n,o,i,s){return this._withAdapter(e,Ob,a=>a.provideDocumentRangesFormattingEdits(y.revive(n),o,i,s),void 0,s)}registerOnTypeFormattingEditProvider(e,n,o,i){let s=this._addNewAdapter(new ZE(this._documents,o),e);return this._proxy.$registerOnTypeFormattingSupport(s,this._transformDocumentSelector(n,e),i,e.identifier),this._createDisposable(s)}$provideOnTypeFormattingEdits(e,n,o,i,s,a){return this._withAdapter(e,ZE,l=>l.provideOnTypeFormattingEdits(y.revive(n),o,i,s,a),void 0,a)}registerWorkspaceSymbolProvider(e,n){let o=this._addNewAdapter(new lf(n,this._logService),e);return this._proxy.$registerNavigateTypeSupport(o,typeof n.resolveWorkspaceSymbol=="function"),this._createDisposable(o)}$provideWorkspaceSymbols(e,n,o){return this._withAdapter(e,lf,i=>i.provideWorkspaceSymbols(n,o),{symbols:[]},o)}$resolveWorkspaceSymbol(e,n,o){return this._withAdapter(e,lf,i=>i.resolveWorkspaceSymbol(n,o),void 0,void 0)}$releaseWorkspaceSymbols(e,n){this._withAdapter(e,lf,o=>o.releaseWorkspaceSymbols(n),void 0,void 0)}registerRenameProvider(e,n,o){let i=this._addNewAdapter(new df(this._documents,o,this._logService),e);return this._proxy.$registerRenameSupport(i,this._transformDocumentSelector(n,e),df.supportsResolving(o)),this._createDisposable(i)}$provideRenameEdits(e,n,o,i,s){return this._withAdapter(e,df,a=>a.provideRenameEdits(y.revive(n),o,i,s),void 0,s)}$resolveRenameLocation(e,n,o,i){return this._withAdapter(e,df,s=>s.resolveRenameLocation(y.revive(n),o,i),void 0,i)}registerNewSymbolNamesProvider(e,n,o){let i=this._addNewAdapter(new Nb(this._documents,o,this._logService),e);return this._proxy.$registerNewSymbolNamesProvider(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$supportsAutomaticNewSymbolNamesTriggerKind(e){return this._withAdapter(e,Nb,n=>n.supportsAutomaticNewSymbolNamesTriggerKind(),!1,void 0)}$provideNewSymbolNames(e,n,o,i,s){return this._withAdapter(e,Nb,a=>a.provideNewSymbolNames(y.revive(n),o,i,s),void 0,s)}registerDocumentSemanticTokensProvider(e,n,o,i){let s=this._addNewAdapter(new Fb(this._documents,o),e),a=typeof o.onDidChangeSemanticTokens=="function"?this._nextHandle():void 0;this._proxy.$registerDocumentSemanticTokensProvider(s,this._transformDocumentSelector(n,e),i,a);let l=this._createDisposable(s);if(a){let d=o.onDidChangeSemanticTokens(c=>this._proxy.$emitDocumentSemanticTokensEvent(a));l=be.from(l,d)}return l}$provideDocumentSemanticTokens(e,n,o,i){return this._withAdapter(e,Fb,s=>s.provideDocumentSemanticTokens(y.revive(n),o,i),null,i)}$releaseDocumentSemanticTokens(e,n){this._withAdapter(e,Fb,o=>o.releaseDocumentSemanticColoring(n),void 0,void 0)}registerDocumentRangeSemanticTokensProvider(e,n,o,i){let s=this._addNewAdapter(new ew(this._documents,o),e),a=typeof o.onDidChangeSemanticTokens=="function"?this._nextHandle():void 0;this._proxy.$registerDocumentRangeSemanticTokensProvider(s,this._transformDocumentSelector(n,e),i,a);let l=this._createDisposable(s);if(a){let d=o.onDidChangeSemanticTokens(c=>this._proxy.$emitDocumentRangeSemanticTokensEvent(a));l=be.from(l,d)}return l}$provideDocumentRangeSemanticTokens(e,n,o,i){return this._withAdapter(e,ew,s=>s.provideDocumentRangeSemanticTokens(y.revive(n),o,i),null,i)}registerCompletionItemProvider(e,n,o,i){let s=this._addNewAdapter(new Iu(this._documents,this._commands.converter,o,this._apiDeprecation,e),e);return this._proxy.$registerCompletionsProvider(s,this._transformDocumentSelector(n,e),i,Iu.supportsResolving(o),e.identifier),this._createDisposable(s)}$provideCompletionItems(e,n,o,i,s){return this._withAdapter(e,Iu,a=>a.provideCompletionItems(y.revive(n),o,i,s),void 0,s)}$resolveCompletionItem(e,n,o){return this._withAdapter(e,Iu,i=>i.resolveCompletionItem(n,o),void 0,o)}$releaseCompletionItems(e,n){this._withAdapter(e,Iu,o=>o.releaseCompletionItems(n),void 0,void 0)}registerInlineCompletionsProvider(e,n,o,i){let s=new Ui(e,this._documents,o,this._commands.converter),a=this._addNewAdapter(s,e),l=this._createDisposable(a),d=Fe(e,"inlineCompletionsAdditions")&&typeof o.onDidChange=="function";if(d){let m=o.onDidChange(g=>this._proxy.$emitInlineCompletionsChange(a,g?{data:g.data}:void 0));l=be.from(l,m)}let c=Fe(e,"inlineCompletionsAdditions")&&typeof o.onDidChangeModelInfo=="function";if(c){let m=o.onDidChangeModelInfo(g=>this._proxy.$emitInlineCompletionModelInfoChange(a,s.modelInfo));l=be.from(l,m)}let u=Fe(e,"inlineCompletionsAdditions")&&typeof o.onDidChangeProviderOptions=="function";if(u){let m=o.onDidChangeProviderOptions(g=>this._proxy.$emitInlineCompletionProviderOptionsChange(a,s.providerOptions));l=be.from(l,m)}return this._proxy.$registerInlineCompletionsSupport(a,this._transformDocumentSelector(n,e),s.supportsHandleEvents,_e.toKey(e.identifier.value),e.version,i?.groupId?_e.toKey(i.groupId):void 0,i?.yieldTo?.map(m=>_e.toKey(m))||[],i?.displayName,i?.debounceDelayMs,i?.excludes?.map(m=>_e.toKey(m))||[],d,s.supportsSetModelId,s.modelInfo,c,s.supportsSetProviderOption,s.providerOptions,u),l}$provideInlineCompletions(e,n,o,i,s){return this._withAdapter(e,Ui,a=>a.provideInlineCompletions(y.revive(n),o,i,s),void 0,void 0)}$handleInlineCompletionDidShow(e,n,o,i){this._withAdapter(e,Ui,async s=>{s.handleDidShowCompletionItem(n,o,i)},void 0,void 0)}$handleInlineCompletionPartialAccept(e,n,o,i,s){this._withAdapter(e,Ui,async a=>{a.handlePartialAccept(n,o,i,s)},void 0,void 0)}$handleInlineCompletionEndOfLifetime(e,n,o,i){this._withAdapter(e,Ui,async s=>{s.handleEndOfLifetime(n,o,i)},void 0,void 0)}$handleInlineCompletionRejection(e,n,o){this._withAdapter(e,Ui,async i=>{i.handleRejection(n,o)},void 0,void 0)}$freeInlineCompletionsList(e,n,o){this._withAdapter(e,Ui,async i=>{i.disposeCompletions(n,o)},void 0,void 0)}$acceptInlineCompletionsUnificationState(e){this._inlineCompletionsUnificationState=e,this._onDidChangeInlineCompletionsUnificationState.fire()}$handleInlineCompletionSetCurrentModelId(e,n){this._withAdapter(e,Ui,async o=>{o.setCurrentModelId(n)},void 0,void 0)}$handleInlineCompletionSetProviderOption(e,n,o){this._withAdapter(e,Ui,async i=>{i.setProviderOption(n,o)},void 0,void 0)}registerSignatureHelpProvider(e,n,o,i){let s=Array.isArray(i)?{triggerCharacters:i,retriggerCharacters:[]}:i,a=this._addNewAdapter(new Hb(this._documents,o),e);return this._proxy.$registerSignatureHelpProvider(a,this._transformDocumentSelector(n,e),s),this._createDisposable(a)}$provideSignatureHelp(e,n,o,i,s){return this._withAdapter(e,Hb,a=>a.provideSignatureHelp(y.revive(n),o,i,s),void 0,s)}$releaseSignatureHelp(e,n){this._withAdapter(e,Hb,o=>o.releaseSignatureHelp(n),void 0,void 0)}registerInlayHintsProvider(e,n,o){let i=typeof o.onDidChangeInlayHints=="function"?this._nextHandle():void 0,s=this._addNewAdapter(new cf(this._documents,this._commands.converter,o,this._logService,e),e);this._proxy.$registerInlayHintsProvider(s,this._transformDocumentSelector(n,e),typeof o.resolveInlayHint=="function",i,r._extLabel(e));let a=this._createDisposable(s);if(i!==void 0){let l=o.onDidChangeInlayHints(d=>this._proxy.$emitInlayHintsEvent(i));a=be.from(a,l)}return a}$provideInlayHints(e,n,o,i){return this._withAdapter(e,cf,s=>s.provideInlayHints(y.revive(n),o,i),void 0,i)}$resolveInlayHint(e,n,o){return this._withAdapter(e,cf,i=>i.resolveInlayHint(n,o),void 0,o)}$releaseInlayHints(e,n){this._withAdapter(e,cf,o=>o.releaseHints(n),void 0,void 0)}registerDocumentLinkProvider(e,n,o){let i=this._addNewAdapter(new uf(this._documents,o),e);return this._proxy.$registerDocumentLinkProvider(i,this._transformDocumentSelector(n,e),typeof o.resolveDocumentLink=="function"),this._createDisposable(i)}$provideDocumentLinks(e,n,o){return this._withAdapter(e,uf,i=>i.provideLinks(y.revive(n),o),void 0,o,n.scheme==="output")}$resolveDocumentLink(e,n,o){return this._withAdapter(e,uf,i=>i.resolveLink(n,o),void 0,void 0,!0)}$releaseDocumentLinks(e,n){this._withAdapter(e,uf,o=>o.releaseLinks(n),void 0,void 0,!0)}registerColorProvider(e,n,o){let i=this._addNewAdapter(new Wb(this._documents,o),e);return this._proxy.$registerDocumentColorProvider(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideDocumentColors(e,n,o){return this._withAdapter(e,Wb,i=>i.provideColors(y.revive(n),o),[],o)}$provideColorPresentations(e,n,o,i){return this._withAdapter(e,Wb,s=>s.provideColorPresentations(y.revive(n),o,i),void 0,i)}registerFoldingRangeProvider(e,n,o){let i=this._nextHandle(),s=typeof o.onDidChangeFoldingRanges=="function"?this._nextHandle():void 0;this._adapter.set(i,new Cu(new tw(this._documents,o),e)),this._proxy.$registerFoldingRangeProvider(i,this._transformDocumentSelector(n,e),e.identifier,s);let a=this._createDisposable(i);if(s!==void 0){let l=o.onDidChangeFoldingRanges(()=>this._proxy.$emitFoldingRangeEvent(s));a=be.from(a,l)}return a}$provideFoldingRanges(e,n,o,i){return this._withAdapter(e,tw,s=>s.provideFoldingRanges(y.revive(n),o,i),void 0,i)}registerSelectionRangeProvider(e,n,o){let i=this._addNewAdapter(new nw(this._documents,o,this._logService),e);return this._proxy.$registerSelectionRangeProvider(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$provideSelectionRanges(e,n,o,i){return this._withAdapter(e,nw,s=>s.provideSelectionRanges(y.revive(n),o,i),[],i)}registerCallHierarchyProvider(e,n,o){let i=this._addNewAdapter(new xu(this._documents,o),e);return this._proxy.$registerCallHierarchyProvider(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$prepareCallHierarchy(e,n,o,i){return this._withAdapter(e,xu,s=>Promise.resolve(s.prepareSession(y.revive(n),o,i)),void 0,i)}$provideCallHierarchyIncomingCalls(e,n,o,i){return this._withAdapter(e,xu,s=>s.provideCallsTo(n,o,i),void 0,i)}$provideCallHierarchyOutgoingCalls(e,n,o,i){return this._withAdapter(e,xu,s=>s.provideCallsFrom(n,o,i),void 0,i)}$releaseCallHierarchy(e,n){this._withAdapter(e,xu,o=>Promise.resolve(o.releaseSession(n)),void 0,void 0)}registerTypeHierarchyProvider(e,n,o){let i=this._addNewAdapter(new Su(this._documents,o),e);return this._proxy.$registerTypeHierarchyProvider(i,this._transformDocumentSelector(n,e)),this._createDisposable(i)}$prepareTypeHierarchy(e,n,o,i){return this._withAdapter(e,Su,s=>Promise.resolve(s.prepareSession(y.revive(n),o,i)),void 0,i)}$provideTypeHierarchySupertypes(e,n,o,i){return this._withAdapter(e,Su,s=>s.provideSupertypes(n,o,i),void 0,i)}$provideTypeHierarchySubtypes(e,n,o,i){return this._withAdapter(e,Su,s=>s.provideSubtypes(n,o,i),void 0,i)}$releaseTypeHierarchy(e,n){this._withAdapter(e,Su,o=>Promise.resolve(o.releaseSession(n)),void 0,void 0)}registerDocumentOnDropEditProvider(e,n,o,i){let s=this._nextHandle();return this._adapter.set(s,new Cu(new pf(this._proxy,this._documents,o,s,e),e)),this._proxy.$registerDocumentOnDropEditProvider(s,this._transformDocumentSelector(n,e),i?{supportsResolve:!!o.resolveDocumentDropEdit,dropMimeTypes:i.dropMimeTypes,providedDropKinds:i.providedDropEditKinds?.map(a=>a.value)}:void 0),this._createDisposable(s)}$provideDocumentOnDropEdits(e,n,o,i,s,a){return this._withAdapter(e,pf,l=>Promise.resolve(l.provideDocumentOnDropEdits(n,y.revive(o),i,s,a)),void 0,void 0)}$resolveDropEdit(e,n,o){return this._withAdapter(e,pf,i=>i.resolveDropEdit(n,o),{},void 0)}$releaseDocumentOnDropEdits(e,n){this._withAdapter(e,pf,o=>Promise.resolve(o.releaseDropEdits(n)),void 0,void 0)}registerDocumentPasteEditProvider(e,n,o,i){let s=this._nextHandle();return this._adapter.set(s,new Cu(new yu(this._proxy,this._documents,o,s,e),e)),this._proxy.$registerPasteEditProvider(s,this._transformDocumentSelector(n,e),{supportsCopy:!!o.prepareDocumentPaste,supportsPaste:!!o.provideDocumentPasteEdits,supportsResolve:!!o.resolveDocumentPasteEdit,providedPasteEditKinds:i.providedPasteEditKinds?.map(a=>a.value),copyMimeTypes:i.copyMimeTypes,pasteMimeTypes:i.pasteMimeTypes}),this._createDisposable(s)}$prepareDocumentPaste(e,n,o,i,s){return this._withAdapter(e,yu,a=>a.prepareDocumentPaste(y.revive(n),o,i,s),void 0,s)}$providePasteEdits(e,n,o,i,s,a,l){return this._withAdapter(e,yu,d=>d.providePasteEdits(n,y.revive(o),i,s,a,l),void 0,l)}$resolvePasteEdit(e,n,o){return this._withAdapter(e,yu,i=>i.resolvePasteEdit(n,o),{},void 0)}$releasePasteEdits(e,n){this._withAdapter(e,yu,o=>Promise.resolve(o.releasePasteEdits(n)),void 0,void 0)}static _serializeRegExp(e){return{pattern:e.source,flags:e.flags}}static _serializeIndentationRule(e){return{decreaseIndentPattern:r._serializeRegExp(e.decreaseIndentPattern),increaseIndentPattern:r._serializeRegExp(e.increaseIndentPattern),indentNextLinePattern:e.indentNextLinePattern?r._serializeRegExp(e.indentNextLinePattern):void 0,unIndentedLinePattern:e.unIndentedLinePattern?r._serializeRegExp(e.unIndentedLinePattern):void 0}}static _serializeOnEnterRule(e){return{beforeText:r._serializeRegExp(e.beforeText),afterText:e.afterText?r._serializeRegExp(e.afterText):void 0,previousLineText:e.previousLineText?r._serializeRegExp(e.previousLineText):void 0,action:e.action}}static _serializeOnEnterRules(e){return e.map(r._serializeOnEnterRule)}static _serializeAutoClosingPair(e){return{open:e.open,close:e.close,notIn:e.notIn?e.notIn.map(n=>$c.toString(n)):void 0}}static _serializeAutoClosingPairs(e){return e.map(r._serializeAutoClosingPair)}setLanguageConfiguration(e,n,o){let{wordPattern:i}=o;if(i&&Fy(i))throw new Error(`Invalid language configuration: wordPattern '${i}' is not allowed to match the empty string.`);i?this._documents.setWordDefinitionFor(n,i):this._documents.setWordDefinitionFor(n,void 0),o.__electricCharacterSupport&&this._apiDeprecation.report("LanguageConfiguration.__electricCharacterSupport",e,"Do not use."),o.__characterPairSupport&&this._apiDeprecation.report("LanguageConfiguration.__characterPairSupport",e,"Do not use.");let s=this._nextHandle(),a={comments:o.comments,brackets:o.brackets,wordPattern:o.wordPattern?r._serializeRegExp(o.wordPattern):void 0,indentationRules:o.indentationRules?r._serializeIndentationRule(o.indentationRules):void 0,onEnterRules:o.onEnterRules?r._serializeOnEnterRules(o.onEnterRules):void 0,__electricCharacterSupport:o.__electricCharacterSupport,__characterPairSupport:o.__characterPairSupport,autoClosingPairs:o.autoClosingPairs?r._serializeAutoClosingPairs(o.autoClosingPairs):void 0};return this._proxy.$setLanguageConfiguration(s,n,a),this._createDisposable(s)}$setWordDefinitions(e){for(let n of e)this._documents.setWordDefinitionFor(n.languageId,new RegExp(n.regexSource,n.regexFlags))}};var BV=R("notebookService");var $V=R("codeMapperService");var iL="vscode_editFile",iw="vscode_editFile_internal",zV={id:iw,displayName:"",modelDescription:"",source:Sn.Internal},mf=class{constructor(t,e,n){this.chatService=t;this.codeMapperService=e;this.notebookService=n}async invoke(t,e,n,o){if(!t.context)throw new Error("toolInvocationToken is required for this tool");let i=t.parameters,s=y.revive(i.uri),a=jR.parse(s)?.notebook||s,l=this.chatService.getSession(t.context.sessionResource),d=l.getRequests().at(-1);l.acceptResponseProgress(d,{kind:"markdownContent",content:new Vn("\n````\n")}),l.acceptResponseProgress(d,{kind:"codeblockUri",uri:a,isEdit:!0}),l.acceptResponseProgress(d,{kind:"markdownContent",content:new Vn("\n````\n")}),this.notebookService.hasSupportedNotebooks(a)&&this.notebookService.getNotebookTextModel(a)?l.acceptResponseProgress(d,{kind:"notebookEdit",edits:[],uri:a}):l.acceptResponseProgress(d,{kind:"textEdit",edits:[],uri:a});let c=l.editingSession;if(!c)throw new Error("This tool must be called from within an editing session");let u=await this.codeMapperService.mapCode({codeBlocks:[{code:i.code,resource:a,markdownBeforeBlock:i.explanation}],location:"tool",chatRequestId:t.chatRequestId,chatRequestModel:t.modelId,chatSessionResource:t.context.sessionResource},{textEdit:(g,h)=>{l.acceptResponseProgress(d,{kind:"textEdit",uri:g,edits:h})},notebookEdit(g,h){l.acceptResponseProgress(d,{kind:"notebookEdit",uri:g,edits:h})}},o);if(this.notebookService.hasSupportedNotebooks(a)&&this.notebookService.getNotebookTextModel(a)?l.acceptResponseProgress(d,{kind:"notebookEdit",uri:a,edits:[],done:!0}):l.acceptResponseProgress(d,{kind:"textEdit",uri:a,edits:[],done:!0}),u?.errorMessage)throw new Error(u.errorMessage);let m;return await new Promise(g=>{let h=!1;m=os(f=>{let S=c.entries.read(f)?.find(E=>yr(E.modifiedURI,a));S&&(S.isCurrentlyBeingModifiedBy.read(f)?h=!0:h&&g(!0))})}).finally(()=>{m.dispose()}),{content:[{kind:"text",value:"The file was edited successfully"}]}}async prepareToolInvocation(t,e){return{presentation:"hidden"}}};mf=_([C(0,of),C(1,$V),C(2,BV)],mf);var sw=class{constructor(t,e,n,o,i,s,a){this.questions=t;this.allowSkip=e;this.resolveId=n;this.data=o;this.isUsed=i;this.message=s;this.source=a;this.kind="questionCarousel";this.completion=new Kt}toJSON(){return{kind:this.kind,questions:this.questions,allowSkip:this.allowSkip,resolveId:this.resolveId,data:this.data,isUsed:this.isUsed,message:this.message,source:this.source}}};var qV="The user is not available to respond and will review your work later. Work autonomously and make good decisions.",KV="vscode_askQuestions",jV={header:50,question:200},GV={header:75,question:300};function QV(r,t){if(r!==void 0)return r.length>t?r.slice(0,t-3)+"...":r}function nj(){let t={type:"object",properties:{questions:{type:"array",description:"List of questions to ask the user. Order is preserved.",items:{type:"object",properties:{header:{type:"string",description:"Short identifier for the question. Must be unique so answers can be mapped back to the question.",maxLength:jV.header},question:{type:"string",description:"The question text to display to the user. Keep it concise, ideally one sentence.",maxLength:jV.question},multiSelect:{type:"boolean",description:"Allow selecting multiple options when options are provided."},allowFreeformInput:{type:"boolean",description:"Allow freeform text answers in addition to option selection. Defaults to true; set to false to restrict to predefined options only."},options:{type:"array",description:"Optional list of selectable answers. If omitted, the question is free text.",items:{type:"object",properties:{label:{type:"string",description:"Display label and value for the option."},description:{type:"string",description:"Optional secondary text shown with the option."},recommended:{type:"boolean",description:"Mark this option as the recommended default."}},required:["label"]}}},required:["header","question"]},minItems:1}},required:["questions"]};return{id:KV,toolReferenceName:"askQuestions",legacyToolReferenceFullNames:[KV,"vscode/askQuestions"],canBeReferencedInPrompt:!1,icon:Et.fromId(de.question.id),displayName:p(8219,null),userDescription:p(8220,null),modelDescription:"Use this tool to ask the user a small number of clarifying questions before proceeding. Provide the questions array with concise headers and prompts. Use options for fixed choices, set multiSelect when multiple selections are allowed. Users can always provide a freeform text answer alongside options unless you set allowFreeformInput to false.",source:Sn.Internal,inputSchema:t}}var aL=nj(),gf=class extends O{constructor(e,n,o,i){super();this.chatService=e;this.telemetryService=n;this.logService=o;this.configService=i}async invoke(e,n,o,i){let s=Zt.create(!0),a=e.parameters,{questions:l}=a;if(this.logService.trace(`[AskQuestionsTool] Invoking with ${l?.length??0} question(s)`),!l||l.length===0)throw new Error(p(8217,null));let d=e.context?.sessionResource,c=e.chatRequestId,{request:u,sessionResource:m}=this.getRequest(d,c);if(!m||!u)return this.logService.warn("[AskQuestionsTool] Missing chat context; marking all questions as skipped."),this.createSkippedResult(l);if(u.modeInfo?.permissionLevel==="autopilot"||this.configService.getValue("chat.autoReply")){let z=u.modeInfo?.permissionLevel==="autopilot"?"Autopilot mode":"Auto-reply enabled";this.logService.info(`[AskQuestionsTool] ${z}: auto-responding to questions`);let{carousel:J,idToHeaderMap:Y}=this.toQuestionCarousel(l);return J.data=this.buildAutopilotCarouselAnswers(l,J,Y),J.isUsed=!0,this.chatService.appendProgress(u,J),this.createAutopilotResult(l)}let{carousel:g,idToHeaderMap:h}=this.toQuestionCarousel(l);this.chatService.appendProgress(u,g);let f=await np(g.completion.p,i);if(i.isCancellationRequested)throw new Be;o.report({message:p(8218,null)});let I=this.convertCarouselAnswers(l,f?.answers,h),{answeredCount:S,skippedCount:E,freeTextCount:P,recommendedAvailableCount:L,recommendedSelectedCount:j}=this.collectMetrics(l,I);this.sendTelemetry(e.chatRequestId,l.length,S,E,P,L,j,s.elapsed());let F=JSON.stringify(I);return this.logService.trace(`[AskQuestionsTool] Returning tool result with metrics: questions=${l.length}, answered=${S}, skipped=${E}, freeText=${P}, recommendedAvailable=${L}, recommendedSelected=${j}`),{content:[{kind:"text",value:F}]}}async prepareToolInvocation(e,n){let o=e.parameters,{questions:i}=o;if(!i||i.length===0)throw new Error(p(8217,null));for(let c of i){if(c.options&&c.options.length===1)throw new Error(p(8212,null,c.header));c.question=QV(c.question,GV.question)??c.question}let s=i.length,a=i.map(c=>c.header).join(", "),l=s===1?p(8215,null,a):p(8213,null,s,a),d=s===1?p(8216,null,a):p(8214,null,s,a);return{invocationMessage:new Vn(l),pastTenseMessage:new Vn(d)}}getRequest(e,n){if(!e)return{request:void 0,sessionResource:void 0};let o=this.chatService.getSession(e),i;return o&&(n&&(i=o.getRequests().find(s=>s.id===n)),i||(i=o.getRequests().at(-1))),i?{request:i,sessionResource:e}:{request:void 0,sessionResource:e}}toQuestionCarousel(e){let n=new Map,o=e.map(i=>this.toChatQuestion(i,n));return{carousel:new sw(o,!0,Le()),idToHeaderMap:n}}toChatQuestion(e,n){let o;!e.options||e.options.length===0?o="text":e.multiSelect?o="multiSelect":o="singleSelect";let i;if(e.options){let l=e.options.filter(d=>d.recommended);l.length>0&&(i=e.multiSelect?l.map(d=>d.label):l[0].label)}let s=Le();n.set(s,e.header);let a=QV(e.header,GV.header)??e.header;return{id:s,type:o,title:a,message:e.question,options:e.options?.map(l=>({id:l.label,label:l.description?`${l.label} - ${l.description}`:l.label,value:l.label})),defaultValue:i,allowFreeformInput:e.allowFreeformInput??!0}}convertCarouselAnswers(e,n,o){let i={answers:{}};n&&(this.logService.trace(`[AskQuestionsTool] Carousel answer keys: ${Object.keys(n).join(", ")}`),this.logService.trace(`[AskQuestionsTool] Question headers: ${e.map(a=>a.header).join(", ")}`));let s=new Map;for(let[a,l]of o)s.set(l,a);for(let a of e){if(!n){i.answers[a.header]={selected:[],freeText:null,skipped:!0};continue}let l=s.get(a.header),d=l?n[l]:void 0;if(this.logService.trace(`[AskQuestionsTool] Processing question "${a.header}" (internal ID: ${l}), raw answer: ${JSON.stringify(d)}, type: ${typeof d}`),d===void 0)i.answers[a.header]={selected:[],freeText:null,skipped:!0};else if(typeof d=="string")a.options?.some(c=>c.label===d)?i.answers[a.header]={selected:[d],freeText:null,skipped:!1}:i.answers[a.header]={selected:[],freeText:d,skipped:!1};else if(Array.isArray(d))i.answers[a.header]={selected:d.map(c=>String(c)),freeText:null,skipped:!1};else if(typeof d=="object"&&Qo(d,{selectedValues:!0})){let{selectedValues:c,freeformValue:u}=d;i.answers[a.header]={selected:c,freeText:u??null,skipped:!1}}else if(typeof d=="object"&&(Qo(d,{selectedValue:!0})||Qo(d,{freeformValue:!0}))){let{selectedValue:c,freeformValue:u}=d;u?i.answers[a.header]={selected:[],freeText:u,skipped:!1}:c!==void 0?a.options?.some(m=>m.label===c)?i.answers[a.header]={selected:[c],freeText:null,skipped:!1}:i.answers[a.header]={selected:[],freeText:c,skipped:!1}:i.answers[a.header]={selected:[],freeText:null,skipped:!0}}else this.logService.warn(`[AskQuestionsTool] Unknown answer format for "${a.header}": ${JSON.stringify(d)}`),i.answers[a.header]={selected:[],freeText:null,skipped:!0}}return i}collectMetrics(e,n){let o=Object.values(n.answers),i=o.filter(c=>!c.skipped).length,s=o.filter(c=>c.skipped).length,a=o.filter(c=>c.freeText!==null).length,l=e.filter(c=>c.options?.some(u=>u.recommended)).length,d=e.filter(c=>{let u=n.answers[c.header],m=c.options?.find(g=>g.recommended);return u&&!u.skipped&&m&&u.selected.includes(m.label)}).length;return{answeredCount:i,skippedCount:s,freeTextCount:a,recommendedAvailableCount:l,recommendedSelectedCount:d}}createSkippedResult(e){let n={};for(let o of e)n[o.header]={selected:[],freeText:null,skipped:!0};return{content:[{kind:"text",value:JSON.stringify({answers:n})}]}}createAutopilotResult(e){let n={};for(let o of e){let i=o.options?.find(l=>l.recommended),s=o.options?.[0],a=i?.label??s?.label;n[o.header]={selected:a?[a]:[],freeText:a?null:qV,skipped:!1}}return{content:[{kind:"text",value:JSON.stringify({answers:n})}]}}buildAutopilotCarouselAnswers(e,n,o){let i={},s=new Map;for(let[a,l]of o)s.set(l,a);for(let a of e){let l=s.get(a.header);if(!l)continue;let d=n.questions.find(g=>g.id===l);if(!d)continue;let c=a.options?.find(g=>g.recommended),u=a.options?.[0],m=c?.label??u?.label;d.type==="text"||!m?i[l]=qV:d.type==="multiSelect"?i[l]={selectedValues:[m]}:i[l]={selectedValue:m}}return i}sendTelemetry(e,n,o,i,s,a,l,d){this.telemetryService.publicLog2("askQuestionsToolInvoked",{requestId:e,questionCount:n,answeredCount:o,skippedCount:i,freeTextCount:s,recommendedAvailableCount:a,recommendedSelectedCount:l,duration:d})}};gf=_([C(0,of),C(1,ss),C(2,oe),C(3,sn)],gf);var oj="vscode_get_confirmation",rj="vscode_get_confirmation_with_options",ij="vscode_get_modified_files_confirmation",JV={id:oj,displayName:"Confirmation Tool",modelDescription:"A tool that demonstrates different types of confirmations. Takes a title, message, and confirmation type (basic or terminal).",source:Sn.Internal,inputSchema:{type:"object",properties:{title:{type:"string",description:"Title for the confirmation dialog"},message:{type:"string",description:"Message to show in the confirmation dialog"},confirmationType:{type:"string",enum:["basic","terminal"],description:"Type of confirmation to show - basic for simple confirmation, terminal for terminal command confirmation"},terminalCommand:{type:"string",description:'Terminal command to show (only used when confirmationType is "terminal")'}},required:["title","message","confirmationType"],additionalProperties:!1}},YV={id:rj,displayName:"Confirmation Tool with Options",modelDescription:"A tool that demonstrates different types of confirmations. Takes a title, message, and buttons.",source:Sn.Internal,inputSchema:{type:"object",properties:{title:{type:"string",description:"Title for the confirmation dialog"},message:{type:"string",description:"Message to show in the confirmation dialog"},buttons:{type:"array",items:{type:"string"},description:"Custom button labels to display."}},required:["title","message","buttons"],additionalProperties:!1}},XV={id:ij,displayName:"Modified Files Confirmation Tool",modelDescription:"A tool that shows a modified-files confirmation UI with a split primary button and a hardcoded cancel action.",source:Sn.Internal,inputSchema:{type:"object",properties:{title:{type:"string",description:"Title for the confirmation dialog"},message:{type:"string",description:"Message to show in the confirmation dialog"},options:{type:"array",items:{type:"string"},minItems:1,description:"Selectable option labels. The first option is used for the primary split button and the remaining options are placed in the dropdown menu."},modifiedFiles:{type:"array",items:{type:"object",properties:{uri:{type:"string",description:"URI of the modified file."},originalUri:{type:"string",description:"Optional original URI used when opening a diff."},insertions:{type:"number",description:"Optional number of lines added."},deletions:{type:"number",description:"Optional number of lines removed."},title:{type:"string",description:"Optional title shown in the file tooltip."},description:{type:"string",description:"Optional secondary label shown for the file entry."}},required:["uri"],additionalProperties:!1},description:"Modified files to show in the confirmation UI."}},required:["title","message","options","modifiedFiles"],additionalProperties:!1}},aw=class{async prepareToolInvocation(t,e){let n=t.parameters;if(!n.title||!n.message)throw new Error("Missing required parameters for ConfirmationTool");let o=n.confirmationType??"basic",i;return o==="terminal"?i={kind:"terminal",commandLine:{original:n.terminalCommand??""},language:"bash"}:i=void 0,{confirmationMessages:{title:n.title,message:new Vn(n.message),allowAutoConfirm:!(n.buttons||[]).length,customButtons:n.buttons},toolSpecificData:i,presentation:"hiddenAfterComplete"}}async invoke(t,e,n,o){return t.selectedCustomButton?{content:[{kind:"text",value:t.selectedCustomButton}]}:{content:[{kind:"text",value:"yes"}]}}},lw=class{async prepareToolInvocation(t,e){let n=t.parameters;if(!n.title||!n.message)throw new Error("Missing required parameters for ModifiedFilesConfirmationTool");if(!n.options?.length)throw new Error("ModifiedFilesConfirmationTool requires at least one option");let o={kind:"modifiedFilesConfirmation",options:n.options,modifiedFiles:n.modifiedFiles.map(i=>({uri:y.parse(i.uri).toJSON(),originalUri:i.originalUri?y.parse(i.originalUri).toJSON():void 0,insertions:i.insertions,deletions:i.deletions,title:i.title,description:i.description}))};return{confirmationMessages:{title:n.title,message:new Vn(n.message),allowAutoConfirm:!1},toolSpecificData:o,presentation:"hiddenAfterComplete"}}async invoke(t,e,n,o){return t.selectedCustomButton?{content:[{kind:"text",value:t.selectedCustomButton}]}:{content:[{kind:"text",value:"yes"}]}}};var dw=class r{constructor(t,e){this.storageService=e;this.id=r.COMMON_PREFIX+t}static{this.applicationMementos=new Map}static{this.profileMementos=new Map}static{this.workspaceMementos=new Map}static{this.COMMON_PREFIX="memento/"}getMemento(t,e){switch(t){case 1:{let n=r.workspaceMementos.get(this.id);return n||(n=new Vb(this.id,t,e,this.storageService),r.workspaceMementos.set(this.id,n)),n.getMemento()}case 0:{let n=r.profileMementos.get(this.id);return n||(n=new Vb(this.id,t,e,this.storageService),r.profileMementos.set(this.id,n)),n.getMemento()}case-1:{let n=r.applicationMementos.get(this.id);return n||(n=new Vb(this.id,t,e,this.storageService),r.applicationMementos.set(this.id,n)),n.getMemento()}}}onDidChangeValue(t,e){return this.storageService.onDidChangeValue(t,this.id,e)}saveMemento(){r.workspaceMementos.get(this.id)?.save(),r.profileMementos.get(this.id)?.save(),r.applicationMementos.get(this.id)?.save()}reloadMemento(t){let e;switch(t){case-1:e=r.applicationMementos.get(this.id);break;case 0:e=r.profileMementos.get(this.id);break;case 1:e=r.workspaceMementos.get(this.id);break}e?.reload()}static clear(t){switch(t){case 1:r.workspaceMementos.clear();break;case 0:r.profileMementos.clear();break;case-1:r.applicationMementos.clear();break}}},Vb=class{constructor(t,e,n,o){this.id=t;this.scope=e;this.target=n;this.storageService=o;this.mementoObj=this.doLoad()}doLoad(){try{return this.storageService.getObject(this.id,this.scope,{})}catch(t){$e(`[memento]: failed to parse contents: ${t} (id: ${this.id}, scope: ${this.scope}, contents: ${this.storageService.get(this.id,this.scope)})`)}return{}}getMemento(){return this.mementoObj}reload(){for(let t of Object.getOwnPropertyNames(this.mementoObj))delete this.mementoObj[t];Object.assign(this.mementoObj,this.doLoad())}save(){$u(this.mementoObj)?this.storageService.remove(this.id,this.scope):this.storageService.store(this.id,this.mementoObj,this.scope,this.target)}};var ZV=R("chatTodoListService"),Bb=class{constructor(t){this.memento=new dw("chat-todo-list",t)}getSessionData(t){return this.memento.getMemento(1,1)[this.toKey(t)]||[]}setSessionData(t,e){let n=this.memento.getMemento(1,1);n[this.toKey(t)]=e,this.memento.saveMemento()}getTodoList(t){return this.getSessionData(t)}setTodoList(t,e){this.setSessionData(t,e)}migrateTodoList(t,e){let n=this.getSessionData(t);if(n.length>0){this.setSessionData(e,n);let o=this.memento.getMemento(1,1);delete o[this.toKey(t)],this.memento.saveMemento()}}toKey(t){return d2(t)}};Bb=_([C(0,bi)],Bb);var cw=class extends O{constructor(e){super();this._onDidUpdateTodos=this._register(new T);this.onDidUpdateTodos=this._onDidUpdateTodos.event;this.todoListStorage=new Bb(e)}getTodos(e){return this.todoListStorage.getTodoList(e)}setTodos(e,n){this.todoListStorage.setTodoList(e,n),this._onDidUpdateTodos.fire(e)}migrateTodos(e,n){this.todoListStorage.migrateTodoList(e,n),this._onDidUpdateTodos.fire(n)}};cw=_([C(0,bi)],cw);var lL="manage_todo_list";function dL(){let r={type:"object",properties:{todoList:{type:"array",description:"Complete array of all todo items. Must include ALL items - both existing and new.",items:{type:"object",properties:{id:{type:"number",description:"Unique identifier for the todo. Use sequential numbers starting from 1."},title:{type:"string",description:"Concise action-oriented todo label (3-7 words). Displayed in UI."},status:{type:"string",enum:["not-started","in-progress","completed"],description:"not-started: Not begun | in-progress: Currently working (max 1) | completed: Fully finished with no blockers"}},required:["id","title","status"]}}},required:["todoList"]};return{id:lL,toolReferenceName:"todo",legacyToolReferenceFullNames:["todos"],canBeReferencedInPrompt:!0,icon:Et.fromId(de.checklist.id),displayName:p(8259,null),userDescription:p(8260,null),modelDescription:`Manage a structured todo list to track progress and plan tasks throughout your coding session. Use this tool VERY frequently to ensure task visibility and proper planning.

When to use this tool:
- Complex multi-step work requiring planning and tracking
- When user provides multiple tasks or requests (numbered/comma-separated)
- After receiving new instructions that require multiple steps
- BEFORE starting work on any todo (mark as in-progress)
- IMMEDIATELY after completing each todo (mark completed individually)
- When breaking down larger tasks into smaller actionable steps
- To give users visibility into your progress and planning

When NOT to use:
- Single, trivial tasks that can be completed in one step
- Purely conversational/informational requests
- When just reading files or performing simple searches

CRITICAL workflow:
1. Plan tasks by writing todo list with specific, actionable items
2. Mark ONE todo as in-progress before starting work
3. Complete the work for that specific todo
4. Mark that todo as completed IMMEDIATELY
5. Move to next todo and repeat

Todo states:
- not-started: Todo not yet begun
- in-progress: Currently working (limit ONE at a time)
- completed: Finished successfully

IMPORTANT: Mark todos completed as soon as they are done. Do not batch completions.`,source:Sn.Internal,inputSchema:r}}var KZe=dL(),ff=class extends O{constructor(e,n,o){super();this.chatTodoListService=e;this.logService=n;this.telemetryService=o}async invoke(e,n,o,i){let s=e.parameters,a=e.context?.sessionResource;if(!a&&s.operation==="read"&&s.chatSessionResource)try{a=y.parse(s.chatSessionResource)}catch(l){this.logService.error("ManageTodoListTool: Invalid chatSessionResource URI",l)}if(!a)return{content:[{kind:"text",value:"Error: No session resource available"}]};this.logService.debug(`ManageTodoListTool: Invoking with options ${JSON.stringify(s)}`);try{return s.operation==="read"?this.handleReadOperation(a):this.handleWriteOperation(s,a)}catch(l){return{content:[{kind:"text",value:`Error: ${l instanceof Error?l.message:"Unknown error"}`}]}}}async prepareToolInvocation(e,n){let o=e.parameters,i=e.chatSessionResource;if(!i)return;let s=this.chatTodoListService.getTodos(i),a;o.operation==="read"?a=p(8254,null):o.todoList&&(a=this.generatePastTenseMessage(s,o.todoList));let d=(o.todoList??s).map(m=>({id:m.id.toString(),title:m.title,status:m.status})),c=a?.replace(/^(Starting|Completed): /i,"")??p(8258,null);return{invocationMessage:new Vn(c),pastTenseMessage:new Vn(a??p(8257,null)),toolSpecificData:{kind:"todoList",todoList:d}}}generatePastTenseMessage(e,n){if(e.length===0)return n.length===1?p(8253,null):p(8252,null,n.length);let o=new Map(e.map(l=>[l.id,l])),i=n.filter(l=>{let d=o.get(l.id);return d&&d.status!=="in-progress"&&l.status==="in-progress"});if(i.length>0){let l=i[0],d=n.length,c=n.findIndex(u=>u.id===l.id)+1;return p(8255,null,l.title,c,d)}let s=n.filter(l=>{let d=o.get(l.id);return d&&d.status!=="completed"&&l.status==="completed"});if(s.length>0){let l=s[0],d=n.length,c=n.findIndex(u=>u.id===l.id)+1;return p(8251,null,l.title,c,d)}let a=n.filter(l=>!o.has(l.id));return a.length>0?a.length===1?p(8250,null):p(8249,null,a.length):p(8256,null)}handleRead(e,n){return e.length===0?"No todo list found.":`# Todo List

${this.formatTodoListAsMarkdownTaskList(e)}`}handleReadOperation(e){let n=this.chatTodoListService.getTodos(e),o=this.handleRead(n,e),i=this.calculateStatusCounts(n);return this.telemetryService.publicLog2("todoListToolInvoked",{operation:"read",notStartedCount:i.notStartedCount,inProgressCount:i.inProgressCount,completedCount:i.completedCount}),{content:[{kind:"text",value:o}]}}handleWriteOperation(e,n){if(!e.todoList)return{content:[{kind:"text",value:"Error: todoList is required for write operation"}]};let o=e.todoList.map(d=>({id:d.id,title:d.title,status:d.status})),i=this.chatTodoListService.getTodos(n),s=this.calculateTodoChanges(i,o);this.chatTodoListService.setTodos(n,o);let a=this.calculateStatusCounts(o),l=[];return o.length<3?l.push("Warning: Small todo list (<3 items). This task might not need a todo list."):o.length>10&&l.push("Warning: Large todo list (>10 items). Consider keeping the list focused and actionable."),s>3&&l.push("Warning: Did you mean to update so many todos at the same time? Consider working on them one by one."),this.telemetryService.publicLog2("todoListToolInvoked",{operation:"write",notStartedCount:a.notStartedCount,inProgressCount:a.inProgressCount,completedCount:a.completedCount}),{content:[{kind:"text",value:`Successfully wrote todo list${l.length?`

`+l.join(`
`):""}`}],toolMetadata:{warnings:l}}}calculateStatusCounts(e){let n=e.filter(s=>s.status==="not-started").length,o=e.filter(s=>s.status==="in-progress").length,i=e.filter(s=>s.status==="completed").length;return{notStartedCount:n,inProgressCount:o,completedCount:i}}formatTodoListAsMarkdownTaskList(e){return e.length===0?"":e.map(n=>{let o;switch(n.status){case"completed":o="[x]";break;case"in-progress":o="[-]";break;default:o="[ ]";break}return[`- ${o} ${n.title}`].join(`
`)}).join(`
`)}calculateTodoChanges(e,n){let o=0,i=Math.min(e.length,n.length);for(let d=0;d<i;d++){let c=e[d],u=n[d];(c.title!==u.title||c.status!==u.status)&&o++}let s=Math.max(0,n.length-e.length),a=Math.max(0,e.length-n.length);return s+a+o}};ff=_([C(0,ZV),C(1,oe),C(2,ss)],ff);var uw=R("chatDebugService");var sj="vscode_resolveDebugEventDetails_internal",cL={id:sj,toolReferenceName:"resolveDebugEventDetails",displayName:p(8264,null),when:zo.chatSessionHasDebugTools,canBeReferencedInPrompt:!1,modelDescription:"Resolves the full details for a specific chat debug event by its event ID. Use this tool to get detailed information about a debug event such as tool call input/output, model turn details, user message sections, or file lists. The event ID can be found in the debug event log summary provided in the conversation context.",source:Sn.Internal,inputSchema:{type:"object",properties:{eventId:{type:"string",description:"The ID of the debug event to resolve details for."}},required:["eventId"]}};function aj(r){switch(r.kind){case"text":return r.value;case"fileList":{let t=[`File list (${r.discoveryType}):`];if(r.sourceFolders)for(let e of r.sourceFolders)t.push(`  Source folder: ${e.uri.toString()} (${e.storage})`);for(let e of r.files){let n=e.status==="loaded"?"loaded":`skipped${e.skipReason?`: ${e.skipReason}`:""}`;t.push(`  ${e.uri.toString()} [${n}]`)}return t.join(`
`)}case"message":{let t=[`${r.type==="user"?"User":"Agent"} message: ${r.message}`];for(let e of r.sections)t.push(`--- ${e.name} ---`),t.push(e.content);return t.join(`
`)}case"toolCall":{let t=[`Tool call: ${r.toolName}`];return r.result&&t.push(`Result: ${r.result}`),r.durationInMillis!==void 0&&t.push(`Duration: ${r.durationInMillis}ms`),r.input&&t.push(`Input:
${r.input}`),r.output&&t.push(`Output:
${r.output}`),t.join(`
`)}case"modelTurn":{let t=[`Model turn: ${r.requestName}`];if(r.model&&t.push(`Model: ${r.model}`),r.status&&t.push(`Status: ${r.status}`),r.durationInMillis!==void 0&&t.push(`Duration: ${r.durationInMillis}ms`),(r.inputTokens!==void 0||r.outputTokens!==void 0)&&t.push(`Tokens: input=${r.inputTokens??"?"}, output=${r.outputTokens??"?"}, cached=${r.cachedTokens??"?"}, total=${r.totalTokens??"?"}`),r.errorMessage&&t.push(`Error: ${r.errorMessage}`),r.sections)for(let e of r.sections)t.push(`--- ${e.name} ---`),t.push(e.content);return t.join(`
`)}default:return JSON.stringify(r)}}function eB(r,t=30){if(r.length<=t)return r;let e=r.lastIndexOf(" ",t),n=e>t/2?e:t;return r.substring(0,n)+"\u2026"}function lj(r){switch(r.kind){case"generic":return r.name;case"toolCall":return r.toolName;case"modelTurn":return r.requestName??p(8262,null);case"userMessage":return p(8263,null,eB(r.message));case"agentResponse":return p(8261,null,eB(r.message));case"subagentInvocation":return r.agentName}}var hf=class{constructor(t){this.chatDebugService=t}async prepareToolInvocation(t,e){let n=t.parameters?.eventId,o;if(typeof n=="string"&&t.chatSessionResource){let s=this.chatDebugService.getEvents(t.chatSessionResource).find(a=>a.id===n);s&&(o=lj(s))}return o?{invocationMessage:p(8266,null,o),pastTenseMessage:p(8268,null,o)}:{invocationMessage:p(8265,null),pastTenseMessage:p(8267,null)}}async invoke(t,e,n,o){let i=t.parameters.eventId;if(typeof i!="string"||!i)return{content:[{kind:"text",value:"Error: eventId parameter is required."}]};let s=t.context?.sessionResource;if(!s)return{content:[{kind:"text",value:"Error: no chat session context available."}]};if(!this.chatDebugService.getEvents(s).some(d=>d.id===i))return{content:[{kind:"text",value:`No event with ID "${i}" found in the current session.`}]};let l=await this.chatDebugService.resolveEvent(i);return l?{content:[{kind:"text",value:aj(l)}]}:{content:[{kind:"text",value:`No details found for event ID: ${i}`}]}}};hf=_([C(0,uw)],hf);var uL={generic:`- generic (category: "discovery"): File discovery for instructions, skills, agents, hooks. Resolving returns a fileList with full file paths, load status, skip reasons, and source folders. Always resolve these for questions about customization files.
- generic (other): Miscellaneous logs. Resolving returns additional text details.`,toolCall:"- toolCall: A tool invocation. Resolving returns tool name, input, output, status, and duration.",modelTurn:"- modelTurn: An LLM round-trip. Resolving returns model name, token usage, timing, errors, and prompt sections.",subagentInvocation:"- subagentInvocation: A sub-agent spawn. Resolving returns agent name, status, duration, and counts.",userMessage:"- userMessage: The full prompt sent to the model. Resolving returns the complete message and all prompt sections (system prompt, instructions, context). Essential for understanding what the model received.",agentResponse:"- agentResponse: The model's response. Resolving returns the full response text and sections."};function oB(r){let t=[];for(let e of r){let n=e.created.toISOString(),o=e.id?` [id=${e.id}]`:"";switch(e.kind){case"generic":t.push(`[${n}]${o} ${e.level>=3?"ERROR":e.level>=2?"WARN":"INFO"}: ${e.name}${e.details?" - "+e.details:""}${e.category?" (category: "+e.category+")":""}`);break;case"toolCall":t.push(`[${n}]${o} TOOL_CALL: ${e.toolName}${e.result?" result="+e.result:""}${e.durationInMillis!==void 0?" duration="+e.durationInMillis+"ms":""}`);break;case"modelTurn":t.push(`[${n}]${o} MODEL_TURN: ${e.requestName??"unknown"}${e.model?" model="+e.model:""}${e.inputTokens!==void 0?" tokens(in="+e.inputTokens+",out="+(e.outputTokens??"?")+")":""}${e.durationInMillis!==void 0?" duration="+e.durationInMillis+"ms":""}`);break;case"subagentInvocation":t.push(`[${n}]${o} SUBAGENT: ${e.agentName}${e.status?" status="+e.status:""}${e.durationInMillis!==void 0?" duration="+e.durationInMillis+"ms":""}`);break;case"userMessage":t.push(`[${n}]${o} USER_MESSAGE: ${e.message.substring(0,200)}${e.message.length>200?"...":""} (${e.sections.length} sections)`);break;case"agentResponse":t.push(`[${n}]${o} AGENT_RESPONSE: ${e.message.substring(0,200)}${e.message.length>200?"...":""} (${e.sections.length} sections)`);break;default:{let i=e;break}}}return t.join(`
`)}function tB(r,t){if(r.kind.toLowerCase().includes(t))return!0;switch(r.kind){case"toolCall":return r.toolName.toLowerCase().includes(t)||(r.input?.toLowerCase().includes(t)??!1)||(r.output?.toLowerCase().includes(t)??!1);case"modelTurn":return(r.model?.toLowerCase().includes(t)??!1)||(r.requestName?.toLowerCase().includes(t)??!1);case"generic":return r.name.toLowerCase().includes(t)||(r.details?.toLowerCase().includes(t)??!1)||(r.category?.toLowerCase().includes(t)??!1);case"subagentInvocation":return r.agentName.toLowerCase().includes(t)||(r.description?.toLowerCase().includes(t)??!1);case"userMessage":case"agentResponse":return r.message.toLowerCase().includes(t)||r.sections.some(e=>e.name.toLowerCase().includes(t)||e.content.toLowerCase().includes(t))}}var dj=/\b(?:before|after):\d{4}(?:-\d{2}(?:-\d{2}(?:t\d{1,2}(?::\d{2}(?::\d{2})?)?)?)?)?(\b|$)/g;function nB(r,t){let n=new RegExp(`${t}:(\\d{4})(?:-(\\d{2})(?:-(\\d{2})(?:t(\\d{1,2})(?::(\\d{2})(?::(\\d{2}))?)?)?)?)?(?!\\w)`).exec(r);if(!n)return;let o=parseInt(n[1],10),i=n[2]!==void 0?parseInt(n[2],10)-1:void 0,s=n[3]!==void 0?parseInt(n[3],10):void 0,a=n[4]!==void 0?parseInt(n[4],10):void 0,l=n[5]!==void 0?parseInt(n[5],10):void 0,d=n[6]!==void 0?parseInt(n[6],10):void 0;return t==="before"?d!==void 0?new Date(o,i,s,a,l,d,999).getTime():l!==void 0?new Date(o,i,s,a,l,59,999).getTime():a!==void 0?new Date(o,i,s,a,59,59,999).getTime():s!==void 0?new Date(o,i,s,23,59,59,999).getTime():i!==void 0?new Date(o,i+1,0,23,59,59,999).getTime():new Date(o,11,31,23,59,59,999).getTime():new Date(o,i??0,s??1,a??0,l??0,d??0,0).getTime()}function cj(r){return r.replace(dj,"").trim()}function uj(r,t){let e=nB(t,"before"),n=nB(t,"after"),i=cj(t).split(/\s*,\s*/).filter(l=>l.length>0),s=i.filter(l=>!l.startsWith("!")).map(l=>l.trim()),a=i.filter(l=>l.startsWith("!")).map(l=>l.slice(1).trim()).filter(l=>l.length>0);return r.filter(l=>{let d=l.created.getTime();return e!==void 0&&d>e||n!==void 0&&d<n||a.some(c=>tB(l,c))?!1:s.length>0?s.some(c=>tB(l,c)):!0})}var rB="Comma-separated text search terms. Prefix a term with ! to exclude it. Matches against event kind, tool names, model names, agent names, categories, event names, and message content. Also supports before:YYYY[-MM[-DD[THH[:MM[:SS]]]]] and after:YYYY[-MM[-DD[THH[:MM[:SS]]]]] to filter by timestamp.";function iB(r,t){let e=r;return t.kind&&(e=e.filter(n=>n.kind===t.kind)),t.filter&&(e=uj(e,t.filter)),t.limit!==void 0&&t.limit>0&&e.length>t.limit&&(e=e.slice(e.length-t.limit)),e}var pj="vscode_listDebugEvents_internal",pL={id:pj,toolReferenceName:"listDebugEvents",displayName:p(8246,null),when:zo.chatSessionHasDebugTools,canBeReferencedInPrompt:!1,modelDescription:`Lists debug event summaries for the current chat session. Returns a compact log of events including timestamps, event IDs, and brief descriptions. Use this tool FIRST to get an overview of what happened, then call resolveDebugEventDetails on specific event IDs to get full details.

Event types:
`+Object.values(uL).join(`
`),source:Sn.Internal,inputSchema:{type:"object",properties:{kind:{type:"string",description:"Filter by event kind: "+Object.keys(uL).join(", ")+"."},filter:{type:"string",description:rB},limit:{type:"number",description:"Return only the N most recent matching events."}}}},vf=class{constructor(t){this.chatDebugService=t}async prepareToolInvocation(t,e){return{invocationMessage:p(8247,null),pastTenseMessage:p(8248,null)}}async invoke(t,e,n,o){let i=t.context?.sessionResource;if(!i)return{content:[{kind:"text",value:"Error: no chat session context available."}]};this.chatDebugService.hasInvokedProviders(i)||await this.chatDebugService.invokeProviders(i);let s=this.chatDebugService.getEvents(i);return s.length===0?{content:[{kind:"text",value:"No debug events found for this conversation."}]}:(s=iB(s,{kind:typeof t.parameters.kind=="string"?t.parameters.kind:void 0,filter:typeof t.parameters.filter=="string"?t.parameters.filter.toLowerCase():void 0,limit:typeof t.parameters.limit=="number"?t.parameters.limit:void 0}),s.length===0?{content:[{kind:"text",value:"No debug events matched the filter criteria."}]}:{content:[{kind:"text",value:`Debug event log for this conversation. Each line is a summary \u2014 call resolveDebugEventDetails with the event ID (shown as [id=...]) to get full details.

IMPORTANT: Do NOT mention event IDs or tool resolution steps in your response to the user.

`+oB(s)}]})}};vf=_([C(0,uw)],vf);var sB=R("chatAgentService"),pw=class extends O{constructor(e,n){super();this.contextKeyService=e;this.configurationService=n;this._agents=new Map;this._onDidChangeAgents=this._register(new T);this.onDidChangeAgents=this._onDidChangeAgents.event;this._agentsContextKeys=new Set;this._hasToolsAgent=!1;this._chatParticipantDetectionProviders=new Map;this._agentCompletionProviders=new Map;this._hasDefaultAgent=zo.enabled.bindTo(this.contextKeyService),this._extensionAgentRegistered=zo.extensionParticipantRegistered.bindTo(this.contextKeyService),this._defaultAgentRegistered=zo.panelParticipantRegistered.bindTo(this.contextKeyService),this._register(e.onDidChangeContext(o=>{o.affectsSome(this._agentsContextKeys)&&this._updateContextKeys()}))}static{this.AGENT_LEADER="@"}registerAgent(e,n){if(this.getAgent(e))throw new Error(`Agent already registered: ${JSON.stringify(e)}`);let i=this,s=n.slashCommands;n={...n,get slashCommands(){return s.filter(l=>!l.when||i.contextKeyService.contextMatchesRules(Nt.deserialize(l.when)))}};let a={data:n};return this._agents.set(e,a),this._updateAgentsContextKeys(),this._updateContextKeys(),this._onDidChangeAgents.fire(void 0),G(()=>{this._agents.delete(e),this._updateAgentsContextKeys(),this._updateContextKeys(),this._onDidChangeAgents.fire(void 0)})}_updateAgentsContextKeys(){this._agentsContextKeys.clear();for(let e of this._agents.values())if(e.data.when){let n=Nt.deserialize(e.data.when);for(let o of n?.keys()||[])this._agentsContextKeys.add(o)}}_updateContextKeys(){let e=!1,n=!1,o=!1;for(let i of this.getAgents())i.isDefault&&(i.isCore||(e=!0),i.id==="chat.setup"||i.id==="github.copilot.editsAgent"?o=!0:n=!0);this._defaultAgentRegistered.set(n),this._extensionAgentRegistered.set(e),o!==this._hasToolsAgent&&(this._hasToolsAgent=o,this._onDidChangeAgents.fire(this.getDefaultAgent("panel","agent")))}registerAgentImplementation(e,n){let o=this._agents.get(e);if(!o)throw new Error(`Unknown agent: ${JSON.stringify(e)}`);if(o.impl)throw new Error(`Agent already has implementation: ${JSON.stringify(e)}`);return o.data.isDefault&&this._hasDefaultAgent.set(!0),o.impl=n,this._onDidChangeAgents.fire(new bf(o.data,n)),G(()=>{o.impl=void 0,this._onDidChangeAgents.fire(void 0),o.data.isDefault&&this._hasDefaultAgent.set(Mt.some(this._agents.values(),i=>i.data.isDefault&&!!i.impl))})}registerDynamicAgent(e,n){e.isDynamic=!0;let o={data:e,impl:n};return this._agents.set(e.id,o),this._onDidChangeAgents.fire(new bf(e,n)),G(()=>{this._agents.delete(e.id),this._onDidChangeAgents.fire(void 0)})}registerAgentCompletionProvider(e,n){return this._agentCompletionProviders.set(e,n),{dispose:()=>{this._agentCompletionProviders.delete(e)}}}async getAgentCompletionItems(e,n,o){return await this._agentCompletionProviders.get(e)?.(n,o)??[]}updateAgent(e,n){let o=this._agents.get(e);if(!o?.impl)throw new Error(`No activated agent with id ${JSON.stringify(e)} registered`);o.data.metadata={...o.data.metadata,...n},this._onDidChangeAgents.fire(new bf(o.data,o.impl))}getDefaultAgent(e,n="ask"){return this._preferExtensionAgent(this.getActivatedAgents().filter(o=>n&&!o.modes.includes(n)?!1:!!o.isDefault&&o.locations.includes(e)))}get hasToolsAgent(){return!!this.configurationService.getValue("chat.agent.enabled")}getContributedDefaultAgent(e){return this._preferExtensionAgent(this.getAgents().filter(n=>!!n.isDefault&&n.locations.includes(e)))}_preferExtensionAgent(e){return BO(e,n=>!n.isCore)??e.at(-1)}getAgent(e,n=!1){if(!(!this._agentIsEnabled(e)&&!n))return this._agents.get(e)?.data}_agentIsEnabled(e){let n=typeof e=="string"?this._agents.get(e):e;return!n?.data.when||this.contextKeyService.contextMatchesRules(Nt.deserialize(n.data.when))}getAgentByFullyQualifiedId(e){let n=Mt.find(this._agents.values(),o=>mj(o.data)===e)?.data;if(!(n&&!this._agentIsEnabled(n.id)))return n}getAgents(){return Array.from(this._agents.values()).map(e=>e.data).filter(e=>this._agentIsEnabled(e.id))}getActivatedAgents(){return Array.from(this._agents.values()).filter(e=>!!e.impl).filter(e=>this._agentIsEnabled(e.data.id)).map(e=>new bf(e.data,e.impl))}getAgentsByName(e){return this._preferExtensionAgents(this.getAgents().filter(n=>n.name===e))}_preferExtensionAgents(e){let n=e.filter(o=>!o.isCore);return n.length>0?n:e}agentHasDupeName(e){let n=this.getAgent(e);return n?this.getAgentsByName(n.name).filter(o=>o.extensionId.value!==n.extensionId.value).length>0:!1}async invokeAgent(e,n,o,i,s){let a=this._agents.get(e);if(!a?.impl)throw new Error(`No activated agent with id "${e}"`);return await a.impl.invoke(n,o,i,s)}setRequestTools(e,n,o){let i=this._agents.get(e);if(!i?.impl)throw new Error(`No activated agent with id "${e}"`);i.impl.setRequestTools?.(n,o)}setYieldRequested(e,n,o){let i=this._agents.get(e);i?.impl&&i.impl.setYieldRequested?.(n,o)}async getFollowups(e,n,o,i,s){let a=this._agents.get(e);return a?.impl?.provideFollowups?a.impl.provideFollowups(n,o,i,s):[]}async getChatTitle(e,n,o){let i=this._agents.get(e);if(i?.impl?.provideChatTitle)return i.impl.provideChatTitle(n,o)}async getChatSummary(e,n,o){let i=this._agents.get(e);if(i?.impl?.provideChatSummary)return i.impl.provideChatSummary(n,o)}registerChatParticipantDetectionProvider(e,n){return this._chatParticipantDetectionProviders.set(e,n),G(()=>{this._chatParticipantDetectionProviders.delete(e)})}hasChatParticipantDetectionProviders(){return this._chatParticipantDetectionProviders.size>0}async detectAgentOrCommand(e,n,o,i){let s=Mt.first(this._chatParticipantDetectionProviders.values());if(!s)return;let a=this.getAgents().reduce((u,m)=>{if(m.locations.includes(o.location)){u.push({participant:m.id,disambiguation:m.disambiguation??[]});for(let g of m.slashCommands)u.push({participant:m.id,command:g.name,disambiguation:g.disambiguation??[]})}return u},[]),l=await s.provideParticipantDetection(e,n,{...o,participants:a},i);if(!l)return;let d=this.getAgent(l.participant);if(!d)return;if(!l.command)return{agent:d};let c=d?.slashCommands.find(u=>u.name===l.command);if(c)return{agent:d,command:c}}};pw=_([C(0,wo),C(1,sn)],pw);var bf=class{constructor(t,e){this.data=t;this.impl=e}get id(){return this.data.id}get name(){return this.data.name??""}get fullName(){return this.data.fullName??""}get description(){return this.data.description??""}get extensionId(){return this.data.extensionId}get extensionVersion(){return this.data.extensionVersion}get extensionPublisherId(){return this.data.extensionPublisherId}get extensionPublisherDisplayName(){return this.data.publisherDisplayName}get extensionDisplayName(){return this.data.extensionDisplayName}get isDefault(){return this.data.isDefault}get isCore(){return this.data.isCore}get metadata(){return this.data.metadata}get slashCommands(){return this.data.slashCommands}get locations(){return this.data.locations}get modes(){return this.data.modes}get disambiguation(){return this.data.disambiguation}async invoke(t,e,n,o){return this.impl.invoke(t,e,n,o)}setRequestTools(t,e){this.impl.setRequestTools?.(t,e)}setYieldRequested(t,e){this.impl.setYieldRequested?.(t,e)}async provideFollowups(t,e,n,o){return this.impl.provideFollowups?this.impl.provideFollowups(t,e,n,o):[]}toJSON(){return this.data}},Jet=R("chatAgentNameService"),mw=class{constructor(t){this.languageModelsService=t}getAgentNameRestriction(t){if(t.isCore)return!0;let e=this.checkAgentNameRestriction(t.name,t).get(),n=!t.fullName||this.checkAgentNameRestriction(t.fullName.replace(/\s/g,""),t).get();return e&&n}checkAgentNameRestriction(t,e){return this.languageModelsService.restrictedChatParticipants.map(o=>o[t.toLowerCase()]).map(o=>o?o.some(i=>xn(i,i.includes(".")?e.extensionId.value:e.extensionPublisherId)):!0)}};mw=_([C(0,Ax)],mw);function mj(r){return`${r.extensionId.value}.${r.id}`}var aB=R("labelService");var gw=R("IPromptsService");var{basename:gj,dirname:gL}=ze,fj=".prompt.md",hj=".instructions.md",vj=".chatmode.md",bj=".agent.md",yj="SKILL.md";var Ij="copilot-instructions.md";var xj=".github/prompts",Sj=".github/instructions";var dB=".github/agents",fw=".claude/agents",cB="~/.copilot/agents",mL=".claude/rules";var Cj=[{path:".github/skills",source:"github-workspace",storage:"local"},{path:".agents/skills",source:"agents-workspace",storage:"local"},{path:".claude/skills",source:"claude-workspace",storage:"local"},{path:"~/.copilot/skills",source:"copilot-personal",storage:"user"},{path:"~/.agents/skills",source:"agents-personal",storage:"user"},{path:"~/.claude/skills",source:"claude-personal",storage:"user"}],Tj=[{path:Sj,source:"github-workspace",storage:"local"},{path:mL,source:"claude-workspace",storage:"local"},{path:"~/.copilot/instructions",source:"copilot-personal",storage:"user"},{path:"~/"+mL,source:"claude-personal",storage:"user"}],Ej=[{path:xj,source:"github-workspace",storage:"local"}],wj=[{path:dB,source:"github-workspace",storage:"local"},{path:fw,source:"claude-workspace",storage:"local"},{path:"~/"+fw,source:"claude-personal",storage:"user"},{path:cB,source:"copilot-personal",storage:"user"}],kj=[{path:".github/hooks",source:"github-workspace",storage:"local"},{path:".claude/settings.local.json",source:"claude-workspace-local",storage:"local"},{path:".claude/settings.json",source:"claude-workspace",storage:"local"},{path:"~/.copilot/hooks",source:"copilot-personal",storage:"user"},{path:"~/.claude/settings.json",source:"claude-personal",storage:"user"}];function Pj(r){let t=gL(r.path);return t.endsWith("/"+dB)||t.endsWith("/"+fw)||_j(r)}function uB(r){return gL(r.path).endsWith("/"+fw)}function _j(r){return gL(r.path).endsWith(cB.substring(1))}function fL(r){return r.path.includes("/"+mL+"/")}function Dj(r){let t=gj(r.path);if(t.endsWith(fj))return"prompt";if(t.endsWith(hj)||t===Ij)return"instructions";if(t.endsWith(vj)||t.endsWith(bj))return"agent";if(t.toLowerCase()===yj.toLowerCase())return"skill";if(t.endsWith(".md")&&t!=="README.md"&&Pj(r))return"agent";if(t.endsWith(".md")&&t!=="README.md"&&fL(r))return"instructions";if(t.toLowerCase().endsWith(".json"))return"hook"}function hL(r){return Dj(r)!==void 0}function pB(r){switch(r){case"instructions":return Tj;case"prompt":return Ej;case"agent":return wj;case"skill":return Cj;case"hook":return kj;default:throw new Error("Unknown prompt type")}}var Fi;(F=>{F.PROMPT_LOCATIONS_KEY="chat.promptFilesLocations",F.INSTRUCTIONS_LOCATION_KEY="chat.instructionsFilesLocations",F.MODE_LOCATION_KEY="chat.modeFilesLocations",F.AGENTS_LOCATION_KEY="chat.agentFilesLocations",F.SKILLS_LOCATION_KEY="chat.agentSkillsLocations",F.HOOKS_LOCATION_KEY="chat.hookFilesLocations",F.PROMPT_FILES_SUGGEST_KEY="chat.promptFilesRecommendations",F.USE_COPILOT_INSTRUCTION_FILES="github.copilot.chat.codeGeneration.useInstructionFiles",F.USE_AGENT_MD="chat.useAgentsMdFile",F.USE_NESTED_AGENT_MD="chat.useNestedAgentsMdFiles",F.USE_CLAUDE_MD="chat.useClaudeMdFile",F.USE_AGENT_SKILLS="chat.useAgentSkills",F.USE_CHAT_HOOKS="chat.useHooks",F.USE_CLAUDE_HOOKS="chat.useClaudeHooks",F.USE_CUSTOM_AGENT_HOOKS="chat.useCustomAgentHooks",F.USE_SKILL_ADHERENCE_PROMPT="chat.experimental.useSkillAdherencePrompt",F.INCLUDE_APPLYING_INSTRUCTIONS="chat.includeApplyingInstructions",F.INCLUDE_REFERENCED_INSTRUCTIONS="chat.includeReferencedInstructions",F.USE_CUSTOMIZATIONS_IN_PARENT_REPOS="chat.useCustomizationsInParentRepositories";function P(z,J){let Y=Rj(J),X=z.getValue(Y);if(!(X==null||Array.isArray(X))&&typeof X=="object"){let q={};for(let[He,ct]of Object.entries(X)){let et=He.trim(),ne=mB(ct);ne!==void 0&&et&&(q[et]=ne)}return q}}F.getLocationsValue=P;function L(z,J){let Y=P(z,J),X=pB(J);if(Y&&typeof Y=="object"){let q=[],He=new Set(X.map(ct=>ct.path));for(let ct of X)Y[ct.path]!==!1&&q.push(ct);for(let[ct,et]of Object.entries(Y)){if(et===!1||He.has(ct))continue;let ne=Aj(ct)?"user":"local";q.push({path:ct,source:ne==="local"?"config-personal":"config-workspace",storage:ne})}return q}return[]}F.promptSourceFolders=L;function j(z,J){let Y=z.getValue(F.PROMPT_FILES_SUGGEST_KEY,{resource:J});if(!Y||typeof Y!="object"||Array.isArray(Y))return;let X={};for(let[q,He]of Object.entries(Y)){let ct=q.trim();if(!ct)continue;if(typeof He=="boolean"){X[ct]=He;continue}if(typeof He=="string"){let ne=He.trim();ne&&(X[ct]=ne);continue}let et=mB(He);et!==void 0&&(X[ct]=et)}return Object.keys(X).length>0?X:void 0}F.getPromptFilesRecommendationsValue=j})(Fi||={});function Rj(r){switch(r){case"instructions":return Fi.INSTRUCTIONS_LOCATION_KEY;case"prompt":return Fi.PROMPT_LOCATIONS_KEY;case"agent":return Fi.AGENTS_LOCATION_KEY;case"skill":return Fi.SKILLS_LOCATION_KEY;case"hook":return Fi.HOOKS_LOCATION_KEY;default:throw new Error("Unknown prompt type")}}function mB(r){if(typeof r=="boolean")return r;if(typeof r=="string"){let t=r.trim().toLowerCase();return t==="true"?!0:t==="false"?!1:void 0}}function Aj(r){return r.startsWith("~/")}var hw=class r{constructor(t,e){this.start=t;this.endExclusive=e;if(t>e)throw new Dt(`Invalid range: ${this.toString()}`)}static fromTo(t,e){return new r(t,e)}static equals(t,e){return t.start===e.start&&t.endExclusive===e.endExclusive}static addRange(t,e){let n=0;for(;n<e.length&&e[n].endExclusive<t.start;)n++;let o=n;for(;o<e.length&&e[o].start<=t.endExclusive;)o++;if(n===o)e.splice(n,0,t);else{let i=Math.min(t.start,e[n].start),s=Math.max(t.endExclusive,e[o-1].endExclusive);e.splice(n,o-n,new r(i,s))}}static tryCreate(t,e){if(!(t>e))return new r(t,e)}static ofLength(t){return new r(0,t)}static ofStartAndLength(t,e){return new r(t,t+e)}static emptyAt(t){return new r(t,t)}get isEmpty(){return this.start===this.endExclusive}delta(t){return new r(this.start+t,this.endExclusive+t)}deltaStart(t){return new r(this.start+t,this.endExclusive)}deltaEnd(t){return new r(this.start,this.endExclusive+t)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}equals(t){return this.start===t.start&&this.endExclusive===t.endExclusive}containsRange(t){return this.start<=t.start&&t.endExclusive<=this.endExclusive}contains(t){return this.start<=t&&t<this.endExclusive}join(t){return new r(Math.min(this.start,t.start),Math.max(this.endExclusive,t.endExclusive))}intersect(t){let e=Math.max(this.start,t.start),n=Math.min(this.endExclusive,t.endExclusive);if(e<=n)return new r(e,n)}intersectionLength(t){let e=Math.max(this.start,t.start),n=Math.min(this.endExclusive,t.endExclusive);return Math.max(0,n-e)}intersects(t){let e=Math.max(this.start,t.start),n=Math.min(this.endExclusive,t.endExclusive);return e<n}intersectsOrTouches(t){let e=Math.max(this.start,t.start),n=Math.min(this.endExclusive,t.endExclusive);return e<=n}isBefore(t){return this.endExclusive<=t.start}isAfter(t){return this.start>=t.endExclusive}slice(t){return t.slice(this.start,this.endExclusive)}substring(t){return t.substring(this.start,this.endExclusive)}clip(t){if(this.isEmpty)throw new Dt(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,t))}clipCyclic(t){if(this.isEmpty)throw new Dt(`Invalid clipping range: ${this.toString()}`);return t<this.start?this.endExclusive-(this.start-t)%this.length:t>=this.endExclusive?this.start+(t-this.start)%this.length:t}map(t){let e=[];for(let n=this.start;n<this.endExclusive;n++)e.push(t(n));return e}forEach(t){for(let e=this.start;e<this.endExclusive;e++)t(e)}joinRightTouching(t){if(this.endExclusive!==t.start)throw new Dt(`Invalid join: ${this.toString()} and ${t.toString()}`);return new r(this.start,t.endExclusive)}withMargin(t,e){return e===void 0&&(e=t),new r(this.start-t,this.endExclusive+e)}};function Mj(){return{applyingInstructionsCount:0,referencedInstructionsCount:0,agentInstructionsCount:0,listedInstructionsCount:0,totalInstructionsCount:0,claudeRulesCount:0,claudeMdCount:0,claudeAgentsCount:0}}var yf=class{constructor(t,e,n,o,i,s,a,l,d,c,u,m,g,h){this._modeKind=t;this._enabledTools=e;this._enabledSubagents=n;this._sessionResource=o;this._promptsService=i;this._logService=s;this._labelService=a;this._configurationService=l;this._contextKeyService=d;this._workspaceService=c;this._fileService=u;this._remoteAgentService=m;this._telemetryService=g;this._languageModelToolsService=h;this._parseResults=new Ge}async _parseInstructionsFile(t,e){if(this._parseResults.has(t))return this._parseResults.get(t);try{let n=await this._promptsService.parseNew(t,e);return this._parseResults.set(t,n),n}catch(n){this._logService.error(`[InstructionsContextComputer] Failed to parse instruction file: ${t}`,n);return}}async collect(t,e){let n=await this._promptsService.getInstructionFiles(e,this._sessionResource);this._logService.trace(`[InstructionsContextComputer] ${n.length} instruction files available.`);let o=Mj(),i=this._getContext(t);await this.addApplyingInstructions(n,i,t,o,e),await this._addReferencedInstructions(t,o,e),await this._addAgentInstructions(t,o,e);let s=await this._getCustomizationsIndex(n,t,o,e);s&&(t.add(s),o.listedInstructionsCount++),this.sendTelemetry(o)}sendTelemetry(t){t.totalInstructionsCount=t.agentInstructionsCount+t.referencedInstructionsCount+t.applyingInstructionsCount+t.listedInstructionsCount,this._telemetryService.publicLog2("instructionsCollected",t)}async addApplyingInstructions(t,e,n,o,i){if(!this._configurationService.getValue(Fi.INCLUDE_APPLYING_INSTRUCTIONS)&&this._modeKind!=="edit"){this._logService.trace("[InstructionsContextComputer] includeApplyingInstructions is disabled and agent kind is not Edit. No applying instructions will be added.");return}for(let{uri:a}of t){let l=await this._parseInstructionsFile(a,i);if(!l){this._logService.trace(`[InstructionsContextComputer] Unable to read: ${a}`);continue}let d=l.header?.applyTo,c=l.header?.paths,u=fL(a),m=u?c?.join(", ")??"**":d;if(!m){this._logService.trace(`[InstructionsContextComputer] No 'applyTo' found: ${a}`);continue}if(e.instructions.has(a)){this._logService.trace(`[InstructionsContextComputer] Skipping already processed instruction file: ${a}`);continue}let g=this._matches(e.files,m);if(g){this._logService.trace(`[InstructionsContextComputer] Match for ${a} with ${g.pattern}${g.file?` for file ${g.file}`:""}`);let h=g.file?p(7881,null,m,this._labelService.getUriLabel(g.file,{relative:!0})):p(7879,null);n.add(vl(a,"vscode.instructions.file.root",h,!0)),o.applyingInstructionsCount++,u&&o.claudeRulesCount++}else this._logService.trace(`[InstructionsContextComputer] No match for ${a} with ${m}`)}}_getContext(t){let e=new Rr,n=new Rr;for(let o of t.asArray())if(qh(o))n.add(o.value);else{let i=JD.toUri(o);i&&e.add(i)}return{files:e,instructions:n}}async _addAgentInstructions(t,e,n){let o={logInfo:l=>this._logService.trace(`[InstructionsContextComputer] ${l}`)},i=await this._promptsService.listAgentInstructions(n,o),s=new dc,a=new dc;for(let{uri:l,type:d}of i){let c=vl(l,"vscode.instructions.file.root",void 0,!0);s.add(c),d==="copilotInstructionsMd"&&a.add(c),e.agentInstructionsCount++,d==="claudeMd"&&e.claudeMdCount++,o.logInfo(`Agent instruction file added: ${l.toString()}`)}if(a.length>0){await this._addReferencedInstructions(a,e,n);for(let l of a.asArray())t.add(l)}for(let l of s.asArray())t.add(l)}_getApplyToPattern(t,e){if(t)return t;if(e&&e.length>0)return e.join(", ")}_matches(t,e){let n=ia(e,","),o=i=>{if(i=i.trim(),i.length!==0){if(i==="**"||i==="**/*"||i==="*")return{pattern:i};!i.startsWith("/")&&!i.startsWith("**/")&&(i="**/"+i);for(let s of t)if(Br(i,s.path,{ignoreCase:!0}))return{pattern:i,file:s}}};for(let i of n){let s=o(i);if(s)return s}}_getTool(t){if(!this._enabledTools)return;let e=this._languageModelToolsService.getToolByName(t);if(e&&this._enabledTools[e.id])return{tool:e,variable:`#tool:${this._languageModelToolsService.getFullReferenceName(e)}`}}async _getCustomizationsIndex(t,e,n,o){let i=this._getTool("readFile"),s=this._getTool(Zh.runSubagent),l=(await this._remoteAgentService.getEnvironment())?.os,d=h=>Lj(h,l),c=[];if(i){let f=this._configurationService.getValue(Fi.USE_NESTED_AGENT_MD)?this._promptsService.listNestedAgentMDs(o):Promise.resolve([]);c.push("<instructions>"),c.push("Here is a list of instruction files that contain rules for working with this codebase."),c.push("These files are important for understanding the codebase structure, conventions, and best practices."),c.push("Please make sure to follow the rules specified in these files when working with the codebase."),c.push(`If the file is not already available as attachment, use the ${i.variable} tool to acquire it.`),c.push("Make sure to acquire the instructions before working with the codebase.");let I=!1;for(let{uri:F}of t){let z=await this._parseInstructionsFile(F,o);if(z){if(c.push("<instruction>"),z.header){let{description:J,applyTo:Y,paths:X}=z.header;J&&c.push(`<description>${J}</description>`),c.push(`<file>${d(F)}</file>`);let q=this._getApplyToPattern(Y,X);q&&c.push(`<applyTo>${q}</applyTo>`)}else c.push(`<file>${d(F)}</file>`);c.push("</instruction>"),I=!0}}let S=await f;for(let{uri:F}of S){let z=this._labelService.getUriLabel(li(F),{relative:!0}),J=z.trim().length===0?p(7878,null):p(7877,null,z);c.push("<instruction>"),c.push(`<description>${J}</description>`),c.push(`<file>${d(F)}</file>`),c.push("</instruction>"),I=!0}I?c.push("</instructions>","",""):c.length=0;let E=await this._promptsService.findAgentSkills(o,this._sessionResource),P=this._configurationService.getValue(h2),L=this._configurationService.getValue(v2),j=E?.filter(F=>!(F.disableModelInvocation||F.when&&!this._contextKeyService.contextMatchesRules(F.when)||(!P||!L)&&F.uri.path.includes(b2)));if(j&&j.length>0){let F=this._configurationService.getValue(Fi.USE_SKILL_ADHERENCE_PROMPT);c.push("<skills>"),F?(c.push("Skills provide specialized capabilities, domain knowledge, and refined workflows for producing high-quality outputs. Each skill folder contains tested instructions for specific domains like testing strategies, API design, or performance optimization. Multiple skills can be combined when a task spans different domains."),c.push(`BLOCKING REQUIREMENT: When a skill applies to the user's request, you MUST load and read the SKILL.md file IMMEDIATELY as your first action, BEFORE generating any other response or taking action on the task. Use ${i.variable} to load the relevant skill(s).`),c.push("NEVER just mention or reference a skill in your response without actually reading it first. If a skill is relevant, load it before proceeding."),c.push("How to determine if a skill applies:"),c.push("1. Review the available skills below and match their descriptions against the user's request"),c.push("2. If any skill's domain overlaps with the task, load that skill immediately"),c.push("3. When multiple skills apply (e.g., a flowchart in documentation), load all relevant skills"),c.push("Examples:"),c.push(`- "Help me write unit tests for this module" -> Load the testing skill via ${i.variable} FIRST, then proceed`),c.push(`- "Optimize this slow function" -> Load the performance-profiling skill via ${i.variable} FIRST, then proceed`),c.push('- "Add a discount code field to checkout" -> Load both the checkout-flow and form-validation skills FIRST'),c.push("Available skills:")):(c.push("Here is a list of skills that contain domain specific knowledge on a variety of topics."),c.push("Each skill comes with a description of the topic and a file path that contains the detailed instructions."),c.push(`When a user asks you to perform a task that falls within the domain of a skill, use the ${i.variable} tool to acquire the full instructions from the file URI.`));for(let z of j)c.push("<skill>"),c.push(`<name>${z.name}</name>`),z.description&&c.push(`<description>${z.description}</description>`),c.push(`<file>${d(z.uri)}</file>`),c.push("</skill>");c.push("</skills>","","")}}if(s&&this._configurationService.getValue("chat.customAgentInSubagent.enabled")){let h=(()=>{if(!this._enabledSubagents||this._enabledSubagents.includes("*"))return I=>I.visibility.agentInvocable;{let I=this._enabledSubagents;return S=>I.includes(S.name)}})(),f=await this._promptsService.getCustomAgents(o,this._sessionResource);if(f.length>0){c.push("<agents>"),c.push("Here is a list of agents that can be used when running a subagent."),c.push("Each agent has optionally a description with the agent's purpose and expertise. When asked to run a subagent, choose the most appropriate agent from this list."),c.push(`Use the ${s.variable} tool with the agent name to run the subagent.`);for(let I of f)h(I)&&(c.push("<agent>"),c.push(`<name>${I.name}</name>`),I.description&&c.push(`<description>${I.description}</description>`),I.argumentHint&&c.push(`<argumentHint>${I.argumentHint}</argumentHint>`),c.push("</agent>"),uB(I.uri)&&n.claudeAgentsCount++);c.push("</agents>","","")}}if(c.length===0)return;let u=c.join(`
`),m=[],g=h=>{if(h){let f=u.indexOf(h.variable);for(;f>=0;)m.push(m2(h.tool,new hw(f,f+h.variable.length))),f=u.indexOf(h.variable,f+1)}};return g(i),g(s),p2(u,!0,m)}async _addReferencedInstructions(t,e,n){if(!this._configurationService.getValue(Fi.INCLUDE_REFERENCED_INSTRUCTIONS)&&this._modeKind!=="edit"){this._logService.trace("[InstructionsContextComputer] includeReferencedInstructions is disabled and agent kind is not Edit. No referenced instructions will be added.");return}let i=new Rr,s=[];for(let l of t.asArray())qh(l)&&(i.has(l.value)||(s.push(l.value),i.add(l.value)));let a=s.pop();for(;a;){let l=await this._parseInstructionsFile(a,n);if(l&&l.body){let d=[];for(let c of l.body.fileReferences){let u=l.body.resolveFilePath(c.content);u&&!i.has(u)&&(hL(u)||this._workspaceService.getWorkspaceFolder(u)!==void 0)&&(d.push({resource:u}),i.add(u))}if(d.length>0){let c=await this._fileService.resolveAll(d);for(let u=0;u<c.length;u++){let m=c[u],g=d[u].resource;if(m.success&&m.stat?.isFile){hL(g)&&s.push(g);let h=p(7880,null,qt(a));t.add(vl(g,"vscode.instructions.file.reference",h,!0)),e.referencedInstructionsCount++,this._logService.trace(`[InstructionsContextComputer] ${g.toString()} added, referenced by ${a.toString()}`)}}}}a=s.pop()}}};yf=_([C(4,gw),C(5,oe),C(6,aB),C(7,sn),C(8,wo),C(9,es),C(10,tc),C(11,vg),C(12,ss),C(13,fc)],yf);function Lj(r,t){if(r.scheme===V.file||r.scheme===V.vscodeRemote){let e=r.fsPath;return t!==void 0?t===1?e.replace(/\//g,"\\"):e.replace(/\\/g,"/"):e}return r.toString()}function Oj(r,t,e){let n=e.defaultChatAgent?.chatExtensionId;if(!n)return!1;let o=_e.equals(t,n),i=r.path.includes("/github/");return o&&i}function gB(r,t,e){if(r.storage!=="extension")return!1;let n=e.defaultChatAgent?.chatExtensionId;return!n||!_e.equals(r.extensionId,n)?!1:!Oj(t,r.extensionId,e)}function vw(r){return{content:[{kind:"text",value:r}]}}var Nj=`Launch a new agent to handle complex, multi-step tasks autonomously. This tool is good at researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries, use this agent to perform the search for you.

- Agents do not run async or in the background, you will wait for the agent's result.
- When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
- Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.
- The agent's outputs should generally be trusted
- Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent`,Oa=class extends O{constructor(e,n,o,i,s,a,l,d,c,u){super();this.chatAgentService=e;this.chatService=n;this.languageModelToolsService=o;this.languageModelsService=i;this.logService=s;this.toolsService=a;this.configurationService=l;this.promptsService=d;this.instantiationService=c;this.productService=u;this._resolvedModels=new Map;this.onDidUpdateToolData=fe.filter(this.configurationService.onDidChangeConfiguration,m=>m.affectsConfiguration("chat.customAgentInSubagent.enabled"))}static{this.Id="runSubagent"}getToolData(){let e=Nj,n={type:"object",properties:{prompt:{type:"string",description:"A detailed description of the task for the agent to perform"},description:{type:"string",description:"A short (3-5 word) description of the task"}},required:["prompt","description"]};return this.configurationService.getValue("chat.customAgentInSubagent.enabled")&&(n.properties.agentName={type:"string",description:"Optional name of a specific agent to invoke. If not provided, uses the current agent."},e+=`
- If the user asks for a certain agent, you MUST provide that EXACT agent name (case-sensitive) to invoke that specific agent.`),{id:Oa.Id,toolReferenceName:Zh.runSubagent,icon:Et.fromId(de.organization.id),displayName:p(8269,null),userDescription:p(8270,null),modelDescription:e,source:Sn.Internal,inputSchema:n}}async invoke(e,n,o,i){let s=e.parameters;if(this.logService.debug(`RunSubagentTool: Invoking with prompt: ${s.prompt.substring(0,100)}...`),!e.context)throw new Error("toolInvocationToken is required for this tool");let a=this.chatService.getSession(e.context.sessionResource);if(!a)throw new Error("Chat model not found for session");let l=a.getRequests().at(-1),d=new $;try{let c=this.chatAgentService.getDefaultAgent("panel","agent");if(!c)return vw("Error: No default agent available");let u=e.modelId,m=e.userSelectedTools,g,h,f,I=s.agentName;if(I)if(h=await this.getSubAgentByName(I),h){let q=this._resolvedModels.get(e.callId);if(q)this._resolvedModels.delete(e.callId),u=q.modeModelId,f=q.resolvedModelName;else{let et=this.resolveSubagentModel(h,e.modelId);u=et.modeModelId,f=et.resolvedModelName}let He=h.tools;if(He){let et=this.languageModelToolsService.toToolAndToolSetEnablementMap(He,void 0);m={};for(let[ne,ee]of et)q2(ne)||(m[ne.id]=ee)}let ct=h.agentInstructions;g=ct&&{name:I,content:ct.content,toolReferences:this.toolsService.toToolReferences(ct.toolReferences),metadata:ct.metadata,isBuiltin:gB(h.source,h.uri,this.productService)}}else throw new Error(`Requested agent '${I}' not found. Try again with the correct agent name, or omit the agentName to use the current agent.`);else{let q=this._resolvedModels.get(e.callId);q?(this._resolvedModels.delete(e.callId),f=q.resolvedModelName):f=(u?this.languageModelsService.lookupLanguageModel(u):void 0)?.name}let S=[],E=e.callId??`subagent-${Le()}`,P=!1,L=q=>{for(let He of q)He.kind==="textEdit"||He.kind==="notebookEdit"||He.kind==="codeblockUri"?(He.kind==="codeblockUri"&&!P&&(P=!0,a.acceptResponseProgress(l,{kind:"markdownContent",content:new Vn("```\n")})),He.kind==="codeblockUri"?a.acceptResponseProgress(l,{...He,subAgentInvocationId:E}):a.acceptResponseProgress(l,He)):He.kind==="hook"?a.acceptResponseProgress(l,{...He,subAgentInvocationId:E}):He.kind==="markdownContent"&&(P&&(a.acceptResponseProgress(l,{kind:"markdownContent",content:new Vn("\n```\n\n")}),P=!1),S.push(He.content.value))};m&&(m[Oa.Id]=!1,m[lL]=!1,m.copilot_askQuestions=!1);let j=new dc;await this.instantiationService.createInstance(yf,"agent",m,void 0,e.context.sessionResource).collect(j,i);let z;try{z=(await this.promptsService.getHooks(i,e.context.sessionResource))?.hooks}catch(q){this.logService.warn("[ChatService] Failed to collect hooks:",q)}if(h?.hooks){let q={...h.hooks};if(q.Stop){let He=q.Stop;q.SubagentStop=q.SubagentStop?[...q.SubagentStop,...He]:He,q.Stop=void 0}z=x2(z,q)}let J={sessionResource:e.context.sessionResource,requestId:e.callId??`subagent-${Date.now()}`,agentId:c.id,message:s.prompt,variables:{variables:j.asArray()},location:"panel",subAgentInvocationId:e.callId,subAgentName:I,userSelectedModelId:u,userSelectedTools:m,modeInstructions:g,parentRequestId:e.chatRequestId,hooks:z,hasHooksEnabled:!!z&&Object.values(z).some(q=>q.length>0)};d.add(this.languageModelToolsService.onDidInvokeTool(q=>{q.subagentInvocationId===E&&(S.length=0)}));let Y=await this.chatAgentService.invokeAgent(c.id,J,L,[],i);if(Y.errorDetails)return vw(`Agent error: ${Y.errorDetails.message}`);let X=S.join("").replace(/^\n*```\n+```\n*/g,"").trim()||"Agent completed with no output";return e.toolSpecificData?.kind==="subagent"&&(e.toolSpecificData.result=X,e.toolSpecificData.modelName=f),{content:[{kind:"text",value:X}],toolMetadata:{subAgentInvocationId:E,description:s.description,agentName:J.subAgentName,modelName:f}}}catch(c){let u=`Error invoking subagent: ${c instanceof Error?c.message:"Unknown error"}`;return this.logService.error(u,c),vw(u)}finally{d.dispose()}}async getSubAgentByName(e){return(await this.promptsService.getCustomAgents(he.None)).find(o=>o.name===e)}resolveSubagentModel(e,n){let o=n;if(e){let s=e.model;if(s)e:for(let a of s){let l=this.languageModelsService.lookupLanguageModelByQualifiedName(a);if(l?.identifier){o=l.identifier;break e}}if(o&&o!==n){let a=n?this.languageModelsService.lookupLanguageModel(n):void 0,l=this.languageModelsService.lookupLanguageModel(o),d=a?.multiplierNumeric,c=l?.multiplierNumeric;d!==void 0&&c!==void 0&&c>d&&(this.logService.warn(`[RunSubagentTool] Subagent '${e.name}' requested model '${l?.name}' (multiplier: ${c}) which has a larger multiplier than the main agent model '${a?.name}' (multiplier: ${d}). Falling back to the main agent model.`),o=n)}}let i=o?this.languageModelsService.lookupLanguageModel(o):void 0;return{modeModelId:o,resolvedModelName:i?.name}}async prepareToolInvocation(e,n){let o=e.parameters,i=o.agentName?await this.getSubAgentByName(o.agentName):void 0,s=this.resolveSubagentModel(i,e.modelId);return this._resolvedModels.set(e.toolCallId,s),{invocationMessage:o.description,toolSpecificData:{kind:"subagent",description:o.description,agentName:i?.name,prompt:o.prompt,modelName:s.resolvedModelName}}}};Oa=_([C(0,sB),C(1,of),C(2,fc),C(3,Ax),C(4,oe),C(5,fc),C(6,sn),C(7,gw),C(8,Fo),C(9,is)],Oa);var Uj="task_complete";var fB={id:Uj,displayName:"Task Complete",modelDescription:`Signal that the user's task is fully done. You MUST call this tool when your work is complete \u2014 whether you made code changes, answered a question, or completed any other kind of task. Provide a brief summary of what was accomplished. Do not restate the summary in your message text \u2014 it is shown to the user directly.

IMPORTANT: Before calling this tool, you MUST output a brief text message summarizing what was done. The task is not complete until both your summary message AND this tool call are present.

When to call:
- After answering the user's question or completing a conversational request
- After you have completed ALL requested changes
- After verifying results: tests pass, terminal commands succeeded, tool calls returned expected output

When NOT to call:
- If a terminal command failed or produced unexpected output
- If an MCP or external tool call returned an error
- If you encountered errors you have not resolved
- If there are remaining steps to complete
- If you have not verified your changes work`,source:Sn.Internal,inputSchema:{type:"object",properties:{summary:{type:"string",description:"Brief summary of what was accomplished. Omit for trivial interactions."}}}},bw=class{async prepareToolInvocation(t,e){return{presentation:"hidden"}}async invoke(t,e,n,o){return{content:[{kind:"text",value:t.parameters?.summary??"All done!"}]}}};var yw=class extends O{static{this.ID="chat.builtinTools"}constructor(t,e){super();let n=e.createInstance(mf);this._register(t.registerTool(zV,n));let o=this._register(e.createInstance(gf));this._register(t.registerTool(aL,o)),this._register(t.vscodeToolSet.addTool(aL));let i=dL(),s=this._register(e.createInstance(ff));this._register(t.registerTool(i,s));let a=e.createInstance(aw);this._register(t.registerTool(JV,a)),this._register(t.registerTool(YV,a));let l=e.createInstance(lw);this._register(t.registerTool(XV,l));let d=e.createInstance(bw);this._register(t.registerTool(fB,d));let c=e.createInstance(hf);this._register(t.registerTool(cL,c)),this._register(t.readToolSet.addTool(cL));let u=e.createInstance(vf);this._register(t.registerTool(pL,u)),this._register(t.readToolSet.addTool(pL));let m=this._register(e.createInstance(Oa)),g,h,f=()=>{g?.dispose(),h?.dispose(),t.flushToolUpdates();let I=m.getToolData();g=t.registerTool(I,m),h=t.agentToolSet.addTool(I)};f(),this._register(m.onDidUpdateToolData(f)),this._register({dispose:()=>{g?.dispose(),h?.dispose()}})}};yw=_([C(0,fc),C(1,Fo)],yw);var hB="vscode_fetchWebPage_internal";var vL=R("commandService"),$b=new class{constructor(){this._commands=new Map;this._onDidRegisterCommand=new T;this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(r,t){if(!r)throw new Error("invalid command");if(typeof r=="string"){if(!t)throw new Error("invalid command");return this.registerCommand({id:r,handler:t})}if(r.metadata&&Array.isArray(r.metadata.args)){let s=[];for(let l of r.metadata.args)s.push(l.constraint);let a=r.handler;r.handler=function(l,...d){return iN(d,s),a(l,...d)}}let{id:e}=r,n=this._commands.get(e);n||(n=new po,this._commands.set(e,n));let o=n.unshift(r),i=G(()=>{o(),this._commands.get(e)?.isEmpty()&&this._commands.delete(e)});return this._onDidRegisterCommand.fire(e),Gf(i)}registerCommandAlias(r,t){return $b.registerCommand(r,(e,...n)=>e.get(vL).executeCommand(t,...n))}getCommand(r){let t=this._commands.get(r);if(!(!t||t.isEmpty()))return Mt.first(t)}getCommands(){let r=new Map;for(let t of this._commands.keys()){let e=this.getCommand(t);e&&r.set(t,e)}return r}};$b.registerCommand("noop",()=>{});var zb=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(t,e){this._keyCodeToStr[t]=e,this._strToKeyCode[e.toLowerCase()]=t}keyCodeToStr(t){return this._keyCodeToStr[t]}strToKeyCode(t){return this._strToKeyCode[t.toLowerCase()]||0}},Iw=new zb,bL=new zb,yL=new zb,Fj=new Array(230),Hj={},Wj={},Vj=[],Bj=Object.create(null),$j=Object.create(null);var vB=[],IL=[];for(let r=0;r<=193;r++)vB[r]=-1;for(let r=0;r<=132;r++)IL[r]=-1;(function(){let t=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN","",""],[1,1,"Hyper",0,"",0,"","",""],[1,2,"Super",0,"",0,"","",""],[1,3,"Fn",0,"",0,"","",""],[1,4,"FnLock",0,"",0,"","",""],[1,5,"Suspend",0,"",0,"","",""],[1,6,"Resume",0,"",0,"","",""],[1,7,"Turbo",0,"",0,"","",""],[1,8,"Sleep",0,"",0,"VK_SLEEP","",""],[1,9,"WakeUp",0,"",0,"","",""],[0,10,"KeyA",31,"A",65,"VK_A","",""],[0,11,"KeyB",32,"B",66,"VK_B","",""],[0,12,"KeyC",33,"C",67,"VK_C","",""],[0,13,"KeyD",34,"D",68,"VK_D","",""],[0,14,"KeyE",35,"E",69,"VK_E","",""],[0,15,"KeyF",36,"F",70,"VK_F","",""],[0,16,"KeyG",37,"G",71,"VK_G","",""],[0,17,"KeyH",38,"H",72,"VK_H","",""],[0,18,"KeyI",39,"I",73,"VK_I","",""],[0,19,"KeyJ",40,"J",74,"VK_J","",""],[0,20,"KeyK",41,"K",75,"VK_K","",""],[0,21,"KeyL",42,"L",76,"VK_L","",""],[0,22,"KeyM",43,"M",77,"VK_M","",""],[0,23,"KeyN",44,"N",78,"VK_N","",""],[0,24,"KeyO",45,"O",79,"VK_O","",""],[0,25,"KeyP",46,"P",80,"VK_P","",""],[0,26,"KeyQ",47,"Q",81,"VK_Q","",""],[0,27,"KeyR",48,"R",82,"VK_R","",""],[0,28,"KeyS",49,"S",83,"VK_S","",""],[0,29,"KeyT",50,"T",84,"VK_T","",""],[0,30,"KeyU",51,"U",85,"VK_U","",""],[0,31,"KeyV",52,"V",86,"VK_V","",""],[0,32,"KeyW",53,"W",87,"VK_W","",""],[0,33,"KeyX",54,"X",88,"VK_X","",""],[0,34,"KeyY",55,"Y",89,"VK_Y","",""],[0,35,"KeyZ",56,"Z",90,"VK_Z","",""],[0,36,"Digit1",22,"1",49,"VK_1","",""],[0,37,"Digit2",23,"2",50,"VK_2","",""],[0,38,"Digit3",24,"3",51,"VK_3","",""],[0,39,"Digit4",25,"4",52,"VK_4","",""],[0,40,"Digit5",26,"5",53,"VK_5","",""],[0,41,"Digit6",27,"6",54,"VK_6","",""],[0,42,"Digit7",28,"7",55,"VK_7","",""],[0,43,"Digit8",29,"8",56,"VK_8","",""],[0,44,"Digit9",30,"9",57,"VK_9","",""],[0,45,"Digit0",21,"0",48,"VK_0","",""],[1,46,"Enter",3,"Enter",13,"VK_RETURN","",""],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE","",""],[1,48,"Backspace",1,"Backspace",8,"VK_BACK","",""],[1,49,"Tab",2,"Tab",9,"VK_TAB","",""],[1,50,"Space",10,"Space",32,"VK_SPACE","",""],[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,"",0,"","",""],[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","",""],[1,64,"F1",59,"F1",112,"VK_F1","",""],[1,65,"F2",60,"F2",113,"VK_F2","",""],[1,66,"F3",61,"F3",114,"VK_F3","",""],[1,67,"F4",62,"F4",115,"VK_F4","",""],[1,68,"F5",63,"F5",116,"VK_F5","",""],[1,69,"F6",64,"F6",117,"VK_F6","",""],[1,70,"F7",65,"F7",118,"VK_F7","",""],[1,71,"F8",66,"F8",119,"VK_F8","",""],[1,72,"F9",67,"F9",120,"VK_F9","",""],[1,73,"F10",68,"F10",121,"VK_F10","",""],[1,74,"F11",69,"F11",122,"VK_F11","",""],[1,75,"F12",70,"F12",123,"VK_F12","",""],[1,76,"PrintScreen",0,"",0,"","",""],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL","",""],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE","",""],[1,79,"Insert",19,"Insert",45,"VK_INSERT","",""],[1,80,"Home",14,"Home",36,"VK_HOME","",""],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR","",""],[1,82,"Delete",20,"Del",46,"VK_DELETE","Delete",""],[1,83,"End",13,"End",35,"VK_END","",""],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT","",""],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",""],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",""],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",""],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",""],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK","",""],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE","",""],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY","",""],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT","",""],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD","",""],[1,94,"NumpadEnter",3,"",0,"","",""],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1","",""],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2","",""],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3","",""],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4","",""],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5","",""],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6","",""],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7","",""],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8","",""],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9","",""],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0","",""],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL","",""],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102","",""],[1,107,"ContextMenu",58,"ContextMenu",93,"","",""],[1,108,"Power",0,"",0,"","",""],[1,109,"NumpadEqual",0,"",0,"","",""],[1,110,"F13",71,"F13",124,"VK_F13","",""],[1,111,"F14",72,"F14",125,"VK_F14","",""],[1,112,"F15",73,"F15",126,"VK_F15","",""],[1,113,"F16",74,"F16",127,"VK_F16","",""],[1,114,"F17",75,"F17",128,"VK_F17","",""],[1,115,"F18",76,"F18",129,"VK_F18","",""],[1,116,"F19",77,"F19",130,"VK_F19","",""],[1,117,"F20",78,"F20",131,"VK_F20","",""],[1,118,"F21",79,"F21",132,"VK_F21","",""],[1,119,"F22",80,"F22",133,"VK_F22","",""],[1,120,"F23",81,"F23",134,"VK_F23","",""],[1,121,"F24",82,"F24",135,"VK_F24","",""],[1,122,"Open",0,"",0,"","",""],[1,123,"Help",0,"",0,"","",""],[1,124,"Select",0,"",0,"","",""],[1,125,"Again",0,"",0,"","",""],[1,126,"Undo",0,"",0,"","",""],[1,127,"Cut",0,"",0,"","",""],[1,128,"Copy",0,"",0,"","",""],[1,129,"Paste",0,"",0,"","",""],[1,130,"Find",0,"",0,"","",""],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE","",""],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP","",""],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN","",""],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR","",""],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1","",""],[1,136,"KanaMode",0,"",0,"","",""],[0,137,"IntlYen",0,"",0,"","",""],[1,138,"Convert",0,"",0,"","",""],[1,139,"NonConvert",0,"",0,"","",""],[1,140,"Lang1",0,"",0,"","",""],[1,141,"Lang2",0,"",0,"","",""],[1,142,"Lang3",0,"",0,"","",""],[1,143,"Lang4",0,"",0,"","",""],[1,144,"Lang5",0,"",0,"","",""],[1,145,"Abort",0,"",0,"","",""],[1,146,"Props",0,"",0,"","",""],[1,147,"NumpadParenLeft",0,"",0,"","",""],[1,148,"NumpadParenRight",0,"",0,"","",""],[1,149,"NumpadBackspace",0,"",0,"","",""],[1,150,"NumpadMemoryStore",0,"",0,"","",""],[1,151,"NumpadMemoryRecall",0,"",0,"","",""],[1,152,"NumpadMemoryClear",0,"",0,"","",""],[1,153,"NumpadMemoryAdd",0,"",0,"","",""],[1,154,"NumpadMemorySubtract",0,"",0,"","",""],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR","",""],[1,156,"NumpadClearEntry",0,"",0,"","",""],[1,0,"",5,"Ctrl",17,"VK_CONTROL","",""],[1,0,"",4,"Shift",16,"VK_SHIFT","",""],[1,0,"",6,"Alt",18,"VK_MENU","",""],[1,0,"",57,"Meta",91,"VK_COMMAND","",""],[1,157,"ControlLeft",5,"",0,"VK_LCONTROL","",""],[1,158,"ShiftLeft",4,"",0,"VK_LSHIFT","",""],[1,159,"AltLeft",6,"",0,"VK_LMENU","",""],[1,160,"MetaLeft",57,"",0,"VK_LWIN","",""],[1,161,"ControlRight",5,"",0,"VK_RCONTROL","",""],[1,162,"ShiftRight",4,"",0,"VK_RSHIFT","",""],[1,163,"AltRight",6,"",0,"VK_RMENU","",""],[1,164,"MetaRight",57,"",0,"VK_RWIN","",""],[1,165,"BrightnessUp",0,"",0,"","",""],[1,166,"BrightnessDown",0,"",0,"","",""],[1,167,"MediaPlay",0,"",0,"","",""],[1,168,"MediaRecord",0,"",0,"","",""],[1,169,"MediaFastForward",0,"",0,"","",""],[1,170,"MediaRewind",0,"",0,"","",""],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK","",""],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK","",""],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP","",""],[1,174,"Eject",0,"",0,"","",""],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE","",""],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT","",""],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL","",""],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2","",""],[1,179,"LaunchApp1",0,"",0,"VK_MEDIA_LAUNCH_APP1","",""],[1,180,"SelectTask",0,"",0,"","",""],[1,181,"LaunchScreenSaver",0,"",0,"","",""],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH","",""],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME","",""],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK","",""],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD","",""],[1,186,"BrowserStop",0,"",0,"VK_BROWSER_STOP","",""],[1,187,"BrowserRefresh",0,"",0,"VK_BROWSER_REFRESH","",""],[1,188,"BrowserFavorites",0,"",0,"VK_BROWSER_FAVORITES","",""],[1,189,"ZoomToggle",0,"",0,"","",""],[1,190,"MailReply",0,"",0,"","",""],[1,191,"MailForward",0,"",0,"","",""],[1,192,"MailSend",0,"",0,"","",""],[1,0,"",114,"KeyInComposition",229,"","",""],[1,0,"",116,"ABNT_C2",194,"VK_ABNT_C2","",""],[1,0,"",96,"OEM_8",223,"VK_OEM_8","",""],[1,0,"",0,"",0,"VK_KANA","",""],[1,0,"",0,"",0,"VK_HANGUL","",""],[1,0,"",0,"",0,"VK_JUNJA","",""],[1,0,"",0,"",0,"VK_FINAL","",""],[1,0,"",0,"",0,"VK_HANJA","",""],[1,0,"",0,"",0,"VK_KANJI","",""],[1,0,"",0,"",0,"VK_CONVERT","",""],[1,0,"",0,"",0,"VK_NONCONVERT","",""],[1,0,"",0,"",0,"VK_ACCEPT","",""],[1,0,"",0,"",0,"VK_MODECHANGE","",""],[1,0,"",0,"",0,"VK_SELECT","",""],[1,0,"",0,"",0,"VK_PRINT","",""],[1,0,"",0,"",0,"VK_EXECUTE","",""],[1,0,"",0,"",0,"VK_SNAPSHOT","",""],[1,0,"",0,"",0,"VK_HELP","",""],[1,0,"",0,"",0,"VK_APPS","",""],[1,0,"",0,"",0,"VK_PROCESSKEY","",""],[1,0,"",0,"",0,"VK_PACKET","",""],[1,0,"",0,"",0,"VK_DBE_SBCSCHAR","",""],[1,0,"",0,"",0,"VK_DBE_DBCSCHAR","",""],[1,0,"",0,"",0,"VK_ATTN","",""],[1,0,"",0,"",0,"VK_CRSEL","",""],[1,0,"",0,"",0,"VK_EXSEL","",""],[1,0,"",0,"",0,"VK_EREOF","",""],[1,0,"",0,"",0,"VK_PLAY","",""],[1,0,"",0,"",0,"VK_ZOOM","",""],[1,0,"",0,"",0,"VK_NONAME","",""],[1,0,"",0,"",0,"VK_PA1","",""],[1,0,"",0,"",0,"VK_OEM_CLEAR","",""]],e=[],n=[];for(let o of t){let[i,s,a,l,d,c,u,m,g]=o;if(n[s]||(n[s]=!0,Vj[s]=a,Bj[a]=s,$j[a.toLowerCase()]=s,i&&(vB[s]=l,l!==0&&l!==3&&!qj(l)&&(IL[l]=s))),!e[l]){if(e[l]=!0,!d)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);Iw.define(l,d),bL.define(l,m||d),yL.define(l,g||m||d)}c&&(Fj[c]=l),a&&(Wj[a]=c),u&&(Hj[u]=l)}IL[3]=46})();var zj;(s=>{function r(a){return Iw.keyCodeToStr(a)}s.toString=r;function t(a){return Iw.strToKeyCode(a)}s.fromString=t;function e(a){return bL.keyCodeToStr(a)}s.toUserSettingsUS=e;function n(a){return yL.keyCodeToStr(a)}s.toUserSettingsGeneral=n;function o(a){return bL.strToKeyCode(a)||yL.strToKeyCode(a)}s.fromUserSettings=o;function i(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right";case 20:return"Delete"}return Iw.keyCodeToStr(a)}s.toElectronAccelerator=i})(zj||={});function qj(r){return r===5||r===4||r===6||r===57}function SL(r,t){if(typeof r=="number"){if(r===0)return null;let e=(r&65535)>>>0,n=(r&4294901760)>>>16;return n!==0?new If([xw(e,t),xw(n,t)]):new If([xw(e,t)])}else{let e=[];for(let n=0;n<r.length;n++)e.push(xw(r[n],t));return new If(e)}}function xw(r,t){let e=!!(r&2048),n=!!(r&256),o=t===2?n:e,i=!!(r&1024),s=!!(r&512),a=t===2?e:n,l=r&255;return new xL(o,i,s,a,l)}var xL=class r{constructor(t,e,n,o,i){this.ctrlKey=t;this.shiftKey=e;this.altKey=n;this.metaKey=o;this.keyCode=i}equals(t){return t instanceof r&&this.ctrlKey===t.ctrlKey&&this.shiftKey===t.shiftKey&&this.altKey===t.altKey&&this.metaKey===t.metaKey&&this.keyCode===t.keyCode}getHashCode(){let t=this.ctrlKey?"1":"0",e=this.shiftKey?"1":"0",n=this.altKey?"1":"0",o=this.metaKey?"1":"0";return`K${t}${e}${n}${o}${this.keyCode}`}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}toKeybinding(){return new If([this])}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}};var If=class{constructor(t){if(t.length===0)throw Ue("chords");this.chords=t}getHashCode(){let t="";for(let e=0,n=this.chords.length;e<n;e++)e!==0&&(t+=";"),t+=this.chords[e].getHashCode();return t}equals(t){if(t===null||this.chords.length!==t.chords.length)return!1;for(let e=0;e<this.chords.length;e++)if(!this.chords[e].equals(t.chords[e]))return!1;return!0}};var CL=class r{constructor(){this._coreKeybindings=new po,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(t){if(Yo===1){if(t&&t.win)return t.win}else if(Yo===2){if(t&&t.mac)return t.mac}else if(t&&t.linux)return t.linux;return t}registerKeybindingRule(t){let e=r.bindToCurrentPlatform(t),n=new $;if(e&&e.primary){let o=SL(e.primary,Yo);o&&n.add(this._registerDefaultKeybinding(o,t.id,t.args,t.weight,0,t.when))}if(e&&Array.isArray(e.secondary))for(let o=0,i=e.secondary.length;o<i;o++){let s=e.secondary[o],a=SL(s,Yo);a&&n.add(this._registerDefaultKeybinding(a,t.id,t.args,t.weight,-o-1,t.when))}return n}setExtensionKeybindings(t){let e=[],n=0;for(let o of t)o.keybinding&&(e[n++]={keybinding:o.keybinding,command:o.id,commandArgs:o.args,when:o.when,weight1:o.weight,weight2:0,extensionId:o.extensionId||null,isBuiltinExtension:o.isBuiltinExtension||!1});this._extensionKeybindings=e,this._cachedMergedKeybindings=null}registerCommandAndKeybindingRule(t){return zu(this.registerKeybindingRule(t),$b.registerCommand(t))}_registerDefaultKeybinding(t,e,n,o,i,s){let a=this._coreKeybindings.push({keybinding:t,command:e,commandArgs:n,when:s,weight1:o,weight2:i,extensionId:null,isBuiltinExtension:!1});return this._cachedMergedKeybindings=null,G(()=>{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(jj)),this._cachedMergedKeybindings.slice(0)}},bB=new CL,Kj={EditorModes:"platform.keybindingsRegistry"};gt.add(Kj.EditorModes,bB);function jj(r,t){if(r.weight1!==t.weight1)return r.weight1-t.weight1;if(r.command&&t.command){if(r.command<t.command)return-1;if(r.command>t.command)return 1}return r.weight2-t.weight2}function Gj(r){return r.command!==void 0}var Td=class r{static{this._instances=new Map}static{this.CommandPalette=new r("CommandPalette")}static{this.DebugBreakpointsContext=new r("DebugBreakpointsContext")}static{this.DebugCallStackContext=new r("DebugCallStackContext")}static{this.DebugConsoleContext=new r("DebugConsoleContext")}static{this.DebugVariablesContext=new r("DebugVariablesContext")}static{this.NotebookVariablesContext=new r("NotebookVariablesContext")}static{this.DebugHoverContext=new r("DebugHoverContext")}static{this.DebugWatchContext=new r("DebugWatchContext")}static{this.DebugToolBar=new r("DebugToolBar")}static{this.DebugToolBarStop=new r("DebugToolBarStop")}static{this.DebugDisassemblyContext=new r("DebugDisassemblyContext")}static{this.DebugCallStackToolbar=new r("DebugCallStackToolbar")}static{this.DebugCreateConfiguration=new r("DebugCreateConfiguration")}static{this.DebugScopesContext=new r("DebugScopesContext")}static{this.EditorContext=new r("EditorContext")}static{this.SimpleEditorContext=new r("SimpleEditorContext")}static{this.EditorContent=new r("EditorContent")}static{this.EditorLineNumberContext=new r("EditorLineNumberContext")}static{this.EditorContextCopy=new r("EditorContextCopy")}static{this.EditorContextPeek=new r("EditorContextPeek")}static{this.EditorContextShare=new r("EditorContextShare")}static{this.EditorTitle=new r("EditorTitle")}static{this.ModalEditorTitle=new r("ModalEditorTitle")}static{this.ModalEditorEditorTitle=new r("ModalEditorEditorTitle")}static{this.CompactWindowEditorTitle=new r("CompactWindowEditorTitle")}static{this.EditorTitleRun=new r("EditorTitleRun")}static{this.EditorTitleContext=new r("EditorTitleContext")}static{this.EditorTitleContextShare=new r("EditorTitleContextShare")}static{this.EmptyEditorGroup=new r("EmptyEditorGroup")}static{this.EmptyEditorGroupContext=new r("EmptyEditorGroupContext")}static{this.EditorTabsBarContext=new r("EditorTabsBarContext")}static{this.EditorTabsBarShowTabsSubmenu=new r("EditorTabsBarShowTabsSubmenu")}static{this.EditorTabsBarShowTabsZenModeSubmenu=new r("EditorTabsBarShowTabsZenModeSubmenu")}static{this.EditorActionsPositionSubmenu=new r("EditorActionsPositionSubmenu")}static{this.EditorSplitMoveSubmenu=new r("EditorSplitMoveSubmenu")}static{this.ExplorerContext=new r("ExplorerContext")}static{this.ExplorerContextShare=new r("ExplorerContextShare")}static{this.ExtensionContext=new r("ExtensionContext")}static{this.ExtensionEditorContextMenu=new r("ExtensionEditorContextMenu")}static{this.GlobalActivity=new r("GlobalActivity")}static{this.CommandCenter=new r("CommandCenter")}static{this.CommandCenterCenter=new r("CommandCenterCenter")}static{this.LayoutControlMenuSubmenu=new r("LayoutControlMenuSubmenu")}static{this.LayoutControlMenu=new r("LayoutControlMenu")}static{this.MenubarMainMenu=new r("MenubarMainMenu")}static{this.MenubarAppearanceMenu=new r("MenubarAppearanceMenu")}static{this.MenubarDebugMenu=new r("MenubarDebugMenu")}static{this.MenubarEditMenu=new r("MenubarEditMenu")}static{this.MenubarCopy=new r("MenubarCopy")}static{this.MenubarFileMenu=new r("MenubarFileMenu")}static{this.MenubarGoMenu=new r("MenubarGoMenu")}static{this.MenubarHelpMenu=new r("MenubarHelpMenu")}static{this.MenubarLayoutMenu=new r("MenubarLayoutMenu")}static{this.MenubarNewBreakpointMenu=new r("MenubarNewBreakpointMenu")}static{this.PanelAlignmentMenu=new r("PanelAlignmentMenu")}static{this.PanelPositionMenu=new r("PanelPositionMenu")}static{this.ActivityBarPositionMenu=new r("ActivityBarPositionMenu")}static{this.NotificationsCenterPositionMenu=new r("NotificationsCenterPositionMenu")}static{this.MenubarPreferencesMenu=new r("MenubarPreferencesMenu")}static{this.MenubarRecentMenu=new r("MenubarRecentMenu")}static{this.MenubarSelectionMenu=new r("MenubarSelectionMenu")}static{this.MenubarShare=new r("MenubarShare")}static{this.MenubarSwitchEditorMenu=new r("MenubarSwitchEditorMenu")}static{this.MenubarSwitchGroupMenu=new r("MenubarSwitchGroupMenu")}static{this.MenubarTerminalMenu=new r("MenubarTerminalMenu")}static{this.MenubarTerminalSuggestStatusMenu=new r("MenubarTerminalSuggestStatusMenu")}static{this.MenubarViewMenu=new r("MenubarViewMenu")}static{this.MenubarHomeMenu=new r("MenubarHomeMenu")}static{this.OpenEditorsContext=new r("OpenEditorsContext")}static{this.OpenEditorsContextShare=new r("OpenEditorsContextShare")}static{this.ProblemsPanelContext=new r("ProblemsPanelContext")}static{this.SCMInputBox=new r("SCMInputBox")}static{this.SCMChangeContext=new r("SCMChangeContext")}static{this.SCMResourceContext=new r("SCMResourceContext")}static{this.SCMResourceContextShare=new r("SCMResourceContextShare")}static{this.SCMResourceFolderContext=new r("SCMResourceFolderContext")}static{this.SCMResourceGroupContext=new r("SCMResourceGroupContext")}static{this.SCMSourceControl=new r("SCMSourceControl")}static{this.SCMSourceControlInline=new r("SCMSourceControlInline")}static{this.SCMSourceControlTitle=new r("SCMSourceControlTitle")}static{this.SCMHistoryTitle=new r("SCMHistoryTitle")}static{this.SCMHistoryItemContext=new r("SCMHistoryItemContext")}static{this.SCMHistoryItemChangeContext=new r("SCMHistoryItemChangeContext")}static{this.SCMHistoryItemRefContext=new r("SCMHistoryItemRefContext")}static{this.SCMArtifactGroupContext=new r("SCMArtifactGroupContext")}static{this.SCMArtifactContext=new r("SCMArtifactContext")}static{this.SCMQuickDiffDecorations=new r("SCMQuickDiffDecorations")}static{this.SCMTitle=new r("SCMTitle")}static{this.SearchContext=new r("SearchContext")}static{this.SearchActionMenu=new r("SearchActionContext")}static{this.StatusBarWindowIndicatorMenu=new r("StatusBarWindowIndicatorMenu")}static{this.StatusBarRemoteIndicatorMenu=new r("StatusBarRemoteIndicatorMenu")}static{this.StickyScrollContext=new r("StickyScrollContext")}static{this.TestItem=new r("TestItem")}static{this.TestItemGutter=new r("TestItemGutter")}static{this.TestProfilesContext=new r("TestProfilesContext")}static{this.TestMessageContext=new r("TestMessageContext")}static{this.TestMessageContent=new r("TestMessageContent")}static{this.TestPeekElement=new r("TestPeekElement")}static{this.TestPeekTitle=new r("TestPeekTitle")}static{this.TestCallStack=new r("TestCallStack")}static{this.TestCoverageFilterItem=new r("TestCoverageFilterItem")}static{this.TouchBarContext=new r("TouchBarContext")}static{this.TitleBar=new r("TitleBar")}static{this.TitleBarContext=new r("TitleBarContext")}static{this.TitleBarTitleContext=new r("TitleBarTitleContext")}static{this.TunnelContext=new r("TunnelContext")}static{this.TunnelPrivacy=new r("TunnelPrivacy")}static{this.TunnelProtocol=new r("TunnelProtocol")}static{this.TunnelPortInline=new r("TunnelInline")}static{this.TunnelTitle=new r("TunnelTitle")}static{this.TunnelLocalAddressInline=new r("TunnelLocalAddressInline")}static{this.TunnelOriginInline=new r("TunnelOriginInline")}static{this.ViewItemContext=new r("ViewItemContext")}static{this.ViewContainerTitle=new r("ViewContainerTitle")}static{this.ViewContainerTitleContext=new r("ViewContainerTitleContext")}static{this.ViewTitle=new r("ViewTitle")}static{this.ViewTitleContext=new r("ViewTitleContext")}static{this.CommentEditorActions=new r("CommentEditorActions")}static{this.CommentThreadTitle=new r("CommentThreadTitle")}static{this.CommentThreadActions=new r("CommentThreadActions")}static{this.CommentThreadAdditionalActions=new r("CommentThreadAdditionalActions")}static{this.CommentThreadTitleContext=new r("CommentThreadTitleContext")}static{this.CommentThreadCommentContext=new r("CommentThreadCommentContext")}static{this.CommentTitle=new r("CommentTitle")}static{this.CommentActions=new r("CommentActions")}static{this.CommentsViewThreadActions=new r("CommentsViewThreadActions")}static{this.InteractiveToolbar=new r("InteractiveToolbar")}static{this.InteractiveCellTitle=new r("InteractiveCellTitle")}static{this.InteractiveCellDelete=new r("InteractiveCellDelete")}static{this.InteractiveCellExecute=new r("InteractiveCellExecute")}static{this.InteractiveInputExecute=new r("InteractiveInputExecute")}static{this.InteractiveInputConfig=new r("InteractiveInputConfig")}static{this.ReplInputExecute=new r("ReplInputExecute")}static{this.IssueReporter=new r("IssueReporter")}static{this.NotebookToolbar=new r("NotebookToolbar")}static{this.NotebookToolbarContext=new r("NotebookToolbarContext")}static{this.NotebookStickyScrollContext=new r("NotebookStickyScrollContext")}static{this.NotebookCellTitle=new r("NotebookCellTitle")}static{this.NotebookCellDelete=new r("NotebookCellDelete")}static{this.NotebookCellInsert=new r("NotebookCellInsert")}static{this.NotebookCellBetween=new r("NotebookCellBetween")}static{this.NotebookCellListTop=new r("NotebookCellTop")}static{this.NotebookCellExecute=new r("NotebookCellExecute")}static{this.NotebookCellExecuteGoTo=new r("NotebookCellExecuteGoTo")}static{this.NotebookCellExecutePrimary=new r("NotebookCellExecutePrimary")}static{this.NotebookDiffCellInputTitle=new r("NotebookDiffCellInputTitle")}static{this.NotebookDiffDocumentMetadata=new r("NotebookDiffDocumentMetadata")}static{this.NotebookDiffCellMetadataTitle=new r("NotebookDiffCellMetadataTitle")}static{this.NotebookDiffCellOutputsTitle=new r("NotebookDiffCellOutputsTitle")}static{this.NotebookOutputToolbar=new r("NotebookOutputToolbar")}static{this.NotebookOutlineFilter=new r("NotebookOutlineFilter")}static{this.NotebookOutlineActionMenu=new r("NotebookOutlineActionMenu")}static{this.NotebookEditorLayoutConfigure=new r("NotebookEditorLayoutConfigure")}static{this.NotebookKernelSource=new r("NotebookKernelSource")}static{this.BulkEditTitle=new r("BulkEditTitle")}static{this.BulkEditContext=new r("BulkEditContext")}static{this.TimelineItemContext=new r("TimelineItemContext")}static{this.TimelineTitle=new r("TimelineTitle")}static{this.TimelineTitleContext=new r("TimelineTitleContext")}static{this.TimelineFilterSubMenu=new r("TimelineFilterSubMenu")}static{this.AccountsContext=new r("AccountsContext")}static{this.SidebarTitle=new r("SidebarTitle")}static{this.PanelTitle=new r("PanelTitle")}static{this.AuxiliaryBarTitle=new r("AuxiliaryBarTitle")}static{this.TerminalInstanceContext=new r("TerminalInstanceContext")}static{this.TerminalEditorInstanceContext=new r("TerminalEditorInstanceContext")}static{this.TerminalNewDropdownContext=new r("TerminalNewDropdownContext")}static{this.TerminalTabContext=new r("TerminalTabContext")}static{this.TerminalTabEmptyAreaContext=new r("TerminalTabEmptyAreaContext")}static{this.TerminalStickyScrollContext=new r("TerminalStickyScrollContext")}static{this.WebviewContext=new r("WebviewContext")}static{this.InlineCompletionsActions=new r("InlineCompletionsActions")}static{this.InlineEditsActions=new r("InlineEditsActions")}static{this.NewFile=new r("NewFile")}static{this.MergeInput1Toolbar=new r("MergeToolbar1Toolbar")}static{this.MergeInput2Toolbar=new r("MergeToolbar2Toolbar")}static{this.MergeBaseToolbar=new r("MergeBaseToolbar")}static{this.MergeInputResultToolbar=new r("MergeToolbarResultToolbar")}static{this.InlineSuggestionToolbar=new r("InlineSuggestionToolbar")}static{this.InlineEditToolbar=new r("InlineEditToolbar")}static{this.ChatContext=new r("ChatContext")}static{this.ChatCodeBlock=new r("ChatCodeblock")}static{this.ChatCompareBlock=new r("ChatCompareBlock")}static{this.ChatMessageTitle=new r("ChatMessageTitle")}static{this.ChatWelcomeContext=new r("ChatWelcomeContext")}static{this.ChatMessageFooter=new r("ChatMessageFooter")}static{this.ChatExecute=new r("ChatExecute")}static{this.ChatExecuteQueue=new r("ChatExecuteQueue")}static{this.ChatInput=new r("ChatInput")}static{this.ChatInputSecondary=new r("ChatInputSecondary")}static{this.ChatInputSide=new r("ChatInputSide")}static{this.ChatModePicker=new r("ChatModePicker")}static{this.ChatEditingWidgetToolbar=new r("ChatEditingWidgetToolbar")}static{this.ChatEditingSessionChangesToolbar=new r("ChatEditingSessionChangesToolbar")}static{this.ChatEditingSessionApplySubmenu=new r("ChatEditingSessionApplySubmenu")}static{this.ChatEditingSessionChangesVersionsSubmenu=new r("ChatEditingSessionChangesVersionsSubmenu")}static{this.ChatEditingEditorContent=new r("ChatEditingEditorContent")}static{this.ChatEditingEditorHunk=new r("ChatEditingEditorHunk")}static{this.ChatEditingDeletedNotebookCell=new r("ChatEditingDeletedNotebookCell")}static{this.ChatInputAttachmentToolbar=new r("ChatInputAttachmentToolbar")}static{this.ChatEditingWidgetModifiedFilesToolbar=new r("ChatEditingWidgetModifiedFilesToolbar")}static{this.ChatInputResourceAttachmentContext=new r("ChatInputResourceAttachmentContext")}static{this.ChatInputSymbolAttachmentContext=new r("ChatInputSymbolAttachmentContext")}static{this.ChatInlineResourceAnchorContext=new r("ChatInlineResourceAnchorContext")}static{this.ChatInlineSymbolAnchorContext=new r("ChatInlineSymbolAnchorContext")}static{this.ChatMessageCheckpoint=new r("ChatMessageCheckpoint")}static{this.ChatMessageRestoreCheckpoint=new r("ChatMessageRestoreCheckpoint")}static{this.ChatNewMenu=new r("ChatNewMenu")}static{this.ChatEditingCodeBlockContext=new r("ChatEditingCodeBlockContext")}static{this.ChatTitleBarMenu=new r("ChatTitleBarMenu")}static{this.ChatAttachmentsContext=new r("ChatAttachmentsContext")}static{this.ChatTipContext=new r("ChatTipContext")}static{this.ChatTipToolbar=new r("ChatTipToolbar")}static{this.ChatToolOutputResourceToolbar=new r("ChatToolOutputResourceToolbar")}static{this.ChatTextEditorMenu=new r("ChatTextEditorMenu")}static{this.ChatToolOutputResourceContext=new r("ChatToolOutputResourceContext")}static{this.ChatMultiDiffContext=new r("ChatMultiDiffContext")}static{this.ChatConfirmationMenu=new r("ChatConfirmationMenu")}static{this.ChatEditorInlineMenu=new r("ChatEditorInlineGutter")}static{this.ChatEditorInlineExecute=new r("ChatEditorInputExecute")}static{this.ChatEditorInlineInputSide=new r("ChatEditorInputSide")}static{this.InlineChatEditorAffordance=new r("InlineChatEditorAffordance")}static{this.InlineChatInput=new r("InlineChatInput")}static{this.AccessibleView=new r("AccessibleView")}static{this.MultiDiffEditorContent=new r("MultiDiffEditorContent")}static{this.MultiDiffEditorFileToolbar=new r("MultiDiffEditorFileToolbar")}static{this.DiffEditorHunkToolbar=new r("DiffEditorHunkToolbar")}static{this.DiffEditorSelectionToolbar=new r("DiffEditorSelectionToolbar")}static{this.BrowserNavigationToolbar=new r("BrowserNavigationToolbar")}static{this.BrowserActionsToolbar=new r("BrowserActionsToolbar")}static{this.AgentSessionsViewerFilterSubMenu=new r("AgentSessionsViewerFilterSubMenu")}static{this.AgentSessionsContext=new r("AgentSessionsContext")}static{this.AgentSessionSectionContext=new r("AgentSessionSectionContext")}static{this.AgentSessionsCreateSubMenu=new r("AgentSessionsCreateSubMenu")}static{this.AgentSessionsToolbar=new r("AgentSessionsToolbar")}static{this.AgentSessionItemToolbar=new r("AgentSessionItemToolbar")}static{this.AgentSessionSectionToolbar=new r("AgentSessionSectionToolbar")}static{this.AgentsTitleBarControlMenu=new r("AgentsTitleBarControlMenu")}static{this.ChatViewSessionTitleNavigationToolbar=new r("ChatViewSessionTitleNavigationToolbar")}static{this.ChatViewSessionTitleToolbar=new r("ChatViewSessionTitleToolbar")}static{this.ChatContextUsageActions=new r("ChatContextUsageActions")}static for(t){return r._instances.get(t)??new r(t)}constructor(t){if(r._instances.has(t))throw new TypeError(`MenuId with identifier '${t}' already exists. Use MenuId.for(ident) or a unique identifier`);r._instances.set(t,this),this.id=t}},Xot=R("menuService"),Tu=class r{constructor(t){this.id=t;this.has=e=>e===t}static{this._all=new Map}static for(t){let e=this._all.get(t);return e||(e=new r(t),this._all.set(t,e)),e}static merge(t){let e=new Set;for(let n of t)n instanceof r&&e.add(n.id);return e}},Zot=new class{constructor(){this._commands=new Map;this._menuItems=new Map;this._onDidChangeMenu=new Ry({merge:Tu.merge});this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(r){return this._commands.set(r.id,r),this._onDidChangeMenu.fire(Tu.for(Td.CommandPalette)),Gf(G(()=>{this._commands.delete(r.id)&&this._onDidChangeMenu.fire(Tu.for(Td.CommandPalette))}))}getCommand(r){return this._commands.get(r)}getCommands(){let r=new Map;return this._commands.forEach((t,e)=>r.set(e,t)),r}appendMenuItem(r,t){let e=this._menuItems.get(r);e||(e=new po,this._menuItems.set(r,e));let n=e.push(t);return this._onDidChangeMenu.fire(Tu.for(r)),Gf(G(()=>{n(),this._onDidChangeMenu.fire(Tu.for(r))}))}appendMenuItems(r){let t=new $;for(let{id:e,item:n}of r)t.add(this.appendMenuItem(e,n));return t}getMenuItems(r){let t;return this._menuItems.has(r)?t=[...this._menuItems.get(r)]:t=[],r===Td.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(r){let t=new Set;for(let e of r)Gj(e)&&(t.add(e.command.id),e.alt&&t.add(e.alt.id));this._commands.forEach((e,n)=>{t.has(n)||r.push({command:e})})}};var Eu=class{constructor(t,e,n,o,i,s,a){this.hideActions=o;this.menuKeybinding=i;this._commandService=a;this.id=t.id,this.label=Eu.label(t,n),this.tooltip=(typeof t.tooltip=="string"?t.tooltip:t.tooltip?.value)??"",this.enabled=!t.precondition||s.contextMatchesRules(t.precondition),this.checked=void 0;let l;if(t.toggled){let d=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=s.contextMatchesRules(d.condition),this.checked&&d.tooltip&&(this.tooltip=typeof d.tooltip=="string"?d.tooltip:d.tooltip.value),this.checked&&Et.isThemeIcon(d.icon)&&(l=d.icon),this.checked&&d.title&&(this.label=typeof d.title=="string"?d.title:d.title.value)}l||(l=Et.isThemeIcon(t.icon)?t.icon:void 0),this.item=t,this.alt=e?new Eu(e,void 0,n,o,void 0,s,a):void 0,this._options=n,this.class=l&&Et.asClassName(l)}static label(t,e){return e?.renderShortTitle&&t.shortTitle?typeof t.shortTitle=="string"?t.shortTitle:t.shortTitle.value:typeof t.title=="string"?t.title:t.title.value}run(...t){let e=[];return this._options?.args?e=[...e,...this._options.args]:this._options?.arg&&(e=[...e,this._options.arg]),this._options?.shouldForwardArgs&&(e=[...e,...t]),this._commandService.executeCommand(this.id,...e)}};Eu=_([C(5,wo),C(6,vL)],Eu);var rrt=R("IExtensionGalleryManifestService");var frt=Ud(10300,"Extensions");var TL=R("extensionsWorkbenchService");var Sw=class extends O{constructor(e,n){super();this.containers=e;this._register(n.onChange(this.update,this))}set extension(e){this.containers.forEach(n=>n.extension=e)}update(e){for(let n of this.containers)e&&n.extension?fH(n.extension.identifier,e.identifier)&&(n.extension.server&&e.server&&n.extension.server!==e.server?n.updateWhenCounterExtensionChanges&&n.update():n.extension=e):n.update()}};Sw=_([C(1,TL)],Sw);var hrt=new w("defaultExtensionViews",!0),vrt=new w("hasOutdatedExtensions",!1),brt=new w("hasGallery",!1),yrt=new w("extensionsGalleryStatus","unavailable"),Irt=new w("extensionResultListFocused ",!0),xrt=new w("searchMcpServers",!1),Srt=new w("searchAgentPlugins",!1);var Crt=new Td("extensionsSearchActionsMenu"),Trt=new Td("extensionsFilterSubMenu");var EL="vscode_searchExtensions_internal",$rt={id:EL,toolReferenceName:"extensions",legacyToolReferenceFullNames:["extensions"],icon:Et.fromId(de.extensions.id),displayName:p(10313,null),modelDescription:"This is a tool for browsing Visual Studio Code Extensions Marketplace. It allows the model to search for extensions and retrieve detailed information about them. The model should use this tool whenever it needs to discover extensions or resolve information about known ones. To use the tool, the model has to provide the category of the extensions, relevant search keywords, or known extension IDs. Note that search results may include false positives, so reviewing and filtering is recommended.",userDescription:p(10315,null),source:Sn.Internal,inputSchema:{type:"object",properties:{category:{type:"string",description:"The category of extensions to search for",enum:II},keywords:{type:"array",items:{type:"string"},description:"The keywords to search for"},ids:{type:"array",items:{type:"string"},description:"The ids of the extensions to search for"}}}},Cw=class{constructor(t){this.extensionWorkbenchService=t}async invoke(t,e,n,o){let i=t.parameters;if(!i.keywords?.length&&!i.category&&!i.ids?.length)return{content:[{kind:"text",value:p(10314,null)}]};let s=new Map,a=c=>{for(let u of c)u.deprecationInfo||u.isMalicious||s.set(u.identifier.id.toLowerCase(),{id:u.identifier.id,name:u.displayName,description:u.description,installed:u.state===1,installCount:u.installCount??0,rating:u.rating??0,categories:u.categories??[],tags:u.gallery?.tags??[]})},l=async c=>{let u=await this.extensionWorkbenchService.queryGallery({text:c,pageSize:10,sortBy:"InstallCount"},o);u.firstPage.length&&a(u.firstPage)};if(i.ids?.length){let c=await this.extensionWorkbenchService.getExtensions(i.ids.map(u=>({id:u})),o);a(c)}if(i.keywords?.length)for(let c of i.keywords??[])if(c==="featured")await l("featured");else{let u=i.category?`category:"${i.category}"`:"";u=c?`${u} ${c}`.trim():u,await l(u)}else await l(`category:"${i.category}"`);let d=Array.from(s.values());return{content:[{kind:"text",value:`Here are the list of extensions:
${JSON.stringify(d)}
. Important: Use the following format to display extensions to the user because there is a renderer available to parse these extensions in this format and display them with all details. So, do not describe about the extensions to the user.
\`\`\`vscode-extensions
extensionId1,extensionId2
\`\`\`
.`}],toolResultDetails:{input:JSON.stringify(i),output:[{type:"embed",isText:!0,value:JSON.stringify(d.map(c=>c.id))}]}}}};Cw=_([C(0,TL)],Cw);var Tw=class{constructor(t){this._data=t}update(t){this._data=t,this._apiObject=void 0,this._apiObjectWithChatParticipantAdditions=void 0}get data(){return this._data}get apiObject(){return this._apiObject||(this._apiObject=Object.freeze({name:this._data.id,description:this._data.modelDescription,inputSchema:this._data.inputSchema,tags:this._data.tags??[],source:void 0})),this._apiObject}get apiObjectWithChatParticipantAdditions(){return this._apiObjectWithChatParticipantAdditions||(this._apiObjectWithChatParticipantAdditions=Object.freeze({name:this._data.id,description:this._data.modelDescription,inputSchema:this._data.inputSchema,tags:this._data.tags??[],source:A1.to(this._data.source)})),this._apiObjectWithChatParticipantAdditions}},Ew=class{constructor(t,e){this._languageModels=e;this._registeredTools=new Map;this._tokenCountFuncs=new Map;this._allTools=new Map;this._proxy=t.getProxy(U.MainThreadLanguageModelTools),this._proxy.$getTools().then(n=>{for(let o of n)this._allTools.set(o.id,new Tw(Ht(o)))})}async $countTokensForInvocation(t,e,n){let o=this._tokenCountFuncs.get(t);if(!o)throw new Error(`Tool invocation call ${t} not found`);return await o(e,n)}async invokeTool(t,e,n,o){let i=typeof e=="string"?e:e.name,s=Le();n.tokenizationOptions&&this._tokenCountFuncs.set(s,n.tokenizationOptions.countTokens);try{if(n.toolInvocationToken&&!z2(n.toolInvocationToken))throw new Error("Invalid tool invocation token");if((i===iw||i===iL)&&!Fe(t,"chatParticipantPrivate"))throw new Error(`Invalid tool: ${i}`);let a=await this._proxy.$invokeTool({toolId:i,callId:s,parameters:n.input,tokenBudget:n.tokenizationOptions?.tokenBudget,context:n.toolInvocationToken,chatRequestId:Fe(t,"chatParticipantPrivate")?n.chatRequestId:void 0,chatInteractionId:Fe(t,"chatParticipantPrivate")?n.chatInteractionId:void 0,subAgentInvocationId:Fe(t,"chatParticipantPrivate")?n.subAgentInvocationId:void 0,chatStreamToolCallId:Fe(t,"chatParticipantAdditions")?n.chatStreamToolCallId:void 0,preToolUseResult:Fe(t,"chatParticipantPrivate")?n.preToolUseResult:void 0},o),l=a instanceof $t?a.value:a;return KC.to(Ht(l))}finally{this._tokenCountFuncs.delete(s)}}$onDidChangeTools(t){let e=new Set(this._allTools.keys());for(let n of t){e.delete(n.id);let o=this._allTools.get(n.id);o?o.update(n):this._allTools.set(n.id,new Tw(Ht(n)))}for(let n of e)this._allTools.delete(n)}getTools(t){let e=Fe(t,"chatParticipantPrivate");return Array.from(this._allTools.values()).map(n=>e?n.apiObjectWithChatParticipantAdditions:n.apiObject).filter(n=>{switch(n.name){case iw:case iL:case hB:case EL:return Fe(t,"chatParticipantPrivate");default:return!0}})}async $invokeTool(t,e){let n=this._registeredTools.get(t.toolId);if(!n)throw new Error(`Unknown tool ${t.toolId}`);let o={input:t.parameters,toolInvocationToken:Ht(t.context)};Fe(n.extension,"chatParticipantPrivate")&&(o.chatRequestId=t.chatRequestId,o.chatInteractionId=t.chatInteractionId,o.chatSessionResource=y.revive(t.context?.sessionResource),o.subAgentInvocationId=t.subAgentInvocationId),Fe(n.extension,"chatParticipantAdditions")&&t.modelId&&(o.model=await this.getModel(t.modelId,n.extension)),Fe(n.extension,"chatParticipantAdditions")&&t.chatStreamToolCallId&&(o.chatStreamToolCallId=t.chatStreamToolCallId),t.tokenBudget!==void 0&&(o.tokenizationOptions={tokenBudget:t.tokenBudget,countTokens:this._tokenCountFuncs.get(t.callId)||((a,l=he.None)=>this._proxy.$countTokensForInvocation(t.callId,a,l))});let i;if(Fe(n.extension,"toolProgress")){let a;i={report:l=>{l.increment!==void 0&&(a=(a??0)+l.increment),this._proxy.$acceptToolProgress(t.callId,{message:me.fromStrict(l.message),progress:a===void 0?void 0:a/100})}}}let s=await np(Promise.resolve(n.tool.invoke(o,e,i)),e);if(!s)throw new Be;return KC.from(s,n.extension)}async getModel(t,e){let n;if(t&&(n=await this._languageModels.getLanguageModelByIdentifier(e,t)),!n&&(n=await this._languageModels.getDefaultLanguageModel(e),!n))throw new Error("Language model unavailable");return n}async $handleToolStream(t,e,n){let o=this._registeredTools.get(t);if(!o)throw new Error(`Unknown tool ${t}`);if(!o.tool.handleToolStream)return;A(o.extension,"chatParticipantAdditions");let i={rawInput:e.rawInput,chatRequestId:e.chatRequestId,chatSessionResource:e.chatSessionResource,chatInteractionId:e.chatInteractionId},s=await o.tool.handleToolStream(i,n);if(s)return{invocationMessage:me.fromStrict(s.invocationMessage)}}async $prepareToolInvocation(t,e,n){let o=this._registeredTools.get(t);if(!o)throw new Error(`Unknown tool ${t}`);let i={input:e.parameters,chatRequestId:e.chatRequestId,chatSessionResource:e.chatSessionResource,chatInteractionId:e.chatInteractionId,forceConfirmationReason:e.forceConfirmationReason};if(e.forceConfirmationReason&&A(o.extension,"chatParticipantPrivate"),o.tool.prepareInvocation){let s=await o.tool.prepareInvocation(i,n);return s?((s.pastTenseMessage||s.presentation)&&A(o.extension,"chatParticipantPrivate"),{confirmationMessages:s.confirmationMessages?{title:typeof s.confirmationMessages.title=="string"?s.confirmationMessages.title:me.from(s.confirmationMessages.title),message:typeof s.confirmationMessages.message=="string"?s.confirmationMessages.message:me.from(s.confirmationMessages.message)}:void 0,invocationMessage:me.fromStrict(s.invocationMessage),pastTenseMessage:me.fromStrict(s.pastTenseMessage),presentation:s.presentation}):void 0}}registerTool(t,e,n){return this._registeredTools.set(e,{extension:t,tool:n}),this._proxy.$registerTool(e,typeof n.handleToolStream=="function"),G(()=>{this._registeredTools.delete(e),this._proxy.$unregisterTool(e)})}registerToolDefinition(t,e,n){A(t,"languageModelToolSupportsModel");let o=e.name,i={id:o,displayName:e.displayName,toolReferenceName:e.toolReferenceName,userDescription:e.userDescription,modelDescription:e.description,inputSchema:e.inputSchema,source:{type:"extension",label:t.displayName??t.name,extensionId:t.identifier},icon:Ri.from(e.icon),models:e.models,toolSet:e.toolSet};return this._registeredTools.set(o,{extension:t,tool:n}),this._proxy.$registerToolWithDefinition(t.identifier,i,typeof n.handleToolStream=="function"),G(()=>{this._registeredTools.delete(o),this._proxy.$unregisterTool(o)})}};var ww=class{constructor(t,e,n,o){this._documents=e;this._commands=n;this._uriTransformer=o;this._languageIds=[];this._handlePool=0;this._ids=new Set;this._proxy=t.getProxy(U.MainThreadLanguages)}$acceptLanguageIds(t){this._languageIds=t}async getLanguages(){return this._languageIds.slice(0)}async changeLanguage(t,e){await this._proxy.$changeLanguage(t,e);let n=this._documents.getDocumentData(t);if(!n)throw new Error(`document '${t.toString()}' NOT found`);return n.document}async tokenAtPosition(t,e){let n=t.version,o=dt.from(e),i=await this._proxy.$tokensAtPosition(t.uri,o),s={type:0,range:t.getWordRangeAtPosition(e)??new ge(e.line,e.character,e.line,e.character)};if(!i)return s;let a={range:K.to(i.range),type:o1.to(i.type)};return!a.range.contains(e)||n!==t.version?s:a}createLanguageStatusItem(t,e,n){let o=this._handlePool++,i=this._proxy,s=this._ids,a=`${t.identifier.value}/${e}`;if(s.has(a))throw new Error(`LanguageStatusItem with id '${e}' ALREADY exists`);s.add(a);let l={selector:n,id:e,name:t.displayName??t.name,severity:0,command:void 0,text:"",detail:"",busy:!1},d,c=new $,u=()=>{if(d?.dispose(),!s.has(a)){console.warn(`LanguageStatusItem (${e}) from ${t.identifier.value} has been disposed and CANNOT be updated anymore`);return}d=dh(()=>{c.clear(),this._proxy.$setLanguageStatus(o,{id:a,name:l.name??t.displayName??t.name,source:t.displayName??t.name,selector:Di.from(l.selector,this._uriTransformer),label:l.text,detail:l.detail??"",severity:l.severity===2?Xe.Error:l.severity===1?Xe.Warning:Xe.Info,command:l.command&&this._commands.toInternal(l.command,c),accessibilityInfo:l.accessibilityInformation,busy:l.busy})},0)},m={dispose(){c.dispose(),d?.dispose(),i.$removeLanguageStatus(o),s.delete(a)},get id(){return l.id},get name(){return l.name},set name(g){l.name=g,u()},get selector(){return l.selector},set selector(g){l.selector=g,u()},get text(){return l.text},set text(g){l.text=g,u()},set text2(g){A(t,"languageStatusText"),l.text=g,u()},get text2(){return A(t,"languageStatusText"),l.text},get detail(){return l.detail},set detail(g){l.detail=g,u()},get severity(){return l.severity},set severity(g){l.severity=g,u()},get accessibilityInformation(){return l.accessibilityInformation},set accessibilityInformation(g){l.accessibilityInformation=g,u()},get command(){return l.command},set command(g){l.command=g,u()},get busy(){return l.busy},set busy(g){l.busy=g,u()}};return u(),m}};function Qj(r){return r&&r.title}var xf=class{constructor(t,e){this._logService=e;this._proxy=t.getProxy(U.MainThreadMessageService)}showMessage(t,e,n,o,i){let s={source:{identifier:t.identifier,label:t.displayName||t.name}},a;typeof o=="string"||Qj(o)?a=[o,...i]:(s.modal=o?.modal,s.useCustom=o?.useCustom,s.detail=o?.detail,a=i),s.useCustom&&A(t,"resolvers");let l=[],d=!1;for(let c=0;c<a.length;c++){let u=a[c];if(typeof u=="string")l.push({title:u,handle:c,isCloseAffordance:!1});else if(typeof u=="object"){let{title:m,isCloseAffordance:g}=u;l.push({title:m,isCloseAffordance:!!g,handle:c}),g&&(d?this._logService.warn(`[${t.identifier}] Only one message item can have 'isCloseAffordance':`,u):d=!0)}else this._logService.warn(`[${t.identifier}] Invalid message item:`,u)}return this._proxy.$showMessage(e,n,s,l).then(c=>{if(typeof c=="number")return a[c]})}};xf=_([C(1,oe)],xf);var qb=class{constructor(t,e,n,o){this.start=t;this.deletedCount=e;this.deletedItems=n;this.items=o}asApiEvent(){return{range:new Yn(this.start,this.start+this.deletedCount),addedCells:this.items.map(t=>t.apiCell),removedCells:this.deletedItems}}},Sf=class{constructor(t,e,n){this.notebook=t;this._extHostDocument=e;this._cellData=n;this.handle=n.handle,this.uri=y.revive(n.uri),this.cellKind=n.cellKind,this._outputs=n.outputs.map(wa.to),this._internalMetadata=n.internalMetadata??{},this._metadata=Object.freeze(n.metadata??{}),this._previousResult=Object.freeze(_m.to(n.internalMetadata??{}))}static asModelAddData(t){return{EOL:t.eol,lines:t.source,languageId:t.language,uri:t.uri,isDirty:!1,versionId:1,encoding:"utf8"}}get internalMetadata(){return this._internalMetadata}get apiCell(){if(!this._apiCell){let t=this,e=this._extHostDocument.getDocument(this.uri);if(!e)throw new Error(`MISSING extHostDocument for notebook cell: ${this.uri}`);let n={get index(){return t.notebook.getCellIndex(t)},notebook:t.notebook.apiNotebook,kind:Ev.to(this._cellData.cellKind),document:e.document,get mime(){return t._mime},set mime(o){t._mime=o},get outputs(){return t._outputs.slice(0)},get metadata(){return t._metadata},get executionSummary(){return t._previousResult}};this._apiCell=Object.freeze(n)}return this._apiCell}setOutputs(t){this._outputs=t.map(wa.to)}setOutputItems(t,e,n){let o=n.map(jc.to),i=this._outputs.find(s=>s.id===t);if(i&&(e||(i.items.length=0),i.items.push(...o),i.items.length>1&&i.items.every(s=>$I(s.mime)))){let s=new Map,a=[];i.items.forEach(l=>{let d;s.has(l.mime)?d=s.get(l.mime):(d=[],s.set(l.mime,d),a.push(l.mime)),d.push(l.data)}),i.items.length=0,a.forEach(l=>{let d=ZH(s.get(l));i.items.push({mime:l,data:d.data.buffer})})}}setMetadata(t){this._metadata=Object.freeze(t)}setInternalMetadata(t){this._internalMetadata=t,this._previousResult=Object.freeze(_m.to(t))}setMime(t){}},kw=class r{constructor(t,e,n,o,i){this._proxy=t;this._textDocumentsAndEditors=e;this._textDocuments=n;this.uri=o;this.handle=r._handlePool++;this._cells=[];this._versionId=0;this._isDirty=!1;this._disposed=!1;this._notebookType=i.viewType,this._metadata=Object.freeze(i.metadata??Object.create(null)),this._spliceNotebookCells([[0,0,i.cells]],!0,void 0),this._versionId=i.versionId}static{this._handlePool=0}dispose(){this._disposed=!0}get versionId(){return this._versionId}get apiNotebook(){if(!this._notebook){let t=this,e={get uri(){return t.uri},get version(){return t._versionId},get notebookType(){return t._notebookType},get isDirty(){return t._isDirty},get isUntitled(){return t.uri.scheme===V.untitled},get isClosed(){return t._disposed},get metadata(){return t._metadata},get cellCount(){return t._cells.length},cellAt(n){return n=t._validateIndex(n),t._cells[n].apiCell},getCells(n){return(n?t._getCells(n):t._cells).map(i=>i.apiCell)},save(){return t._save()},[Symbol.for("debug.description")](){return`NotebookDocument(${this.uri.toString()})`}};this._notebook=Object.freeze(e)}return this._notebook}acceptDocumentPropertiesChanged(t){t.metadata&&(this._metadata=Object.freeze({...this._metadata,...t.metadata}))}acceptDirty(t){this._isDirty=t}acceptModelChanged(t,e,n){this._versionId=t.versionId,this._isDirty=e,this.acceptDocumentPropertiesChanged({metadata:n});let o={notebook:this.apiNotebook,metadata:n,cellChanges:[],contentChanges:[]},i=[];for(let a of t.rawEvents)a.kind===1?this._spliceNotebookCells(a.changes,!1,o.contentChanges):a.kind===2?this._moveCells(a.index,a.length,a.newIdx,o.contentChanges):a.kind===8?(this._setCellOutputs(a.index,a.outputs),i.push({cell:this._cells[a.index].apiCell,outputs:this._cells[a.index].apiCell.outputs})):a.kind===9?(this._setCellOutputItems(a.index,a.outputId,a.append,a.outputItems),i.push({cell:this._cells[a.index].apiCell,outputs:this._cells[a.index].apiCell.outputs})):a.kind===5?(this._changeCellLanguage(a.index,a.language),i.push({cell:this._cells[a.index].apiCell,document:this._cells[a.index].apiCell.document})):a.kind===10?i.push({cell:this._cells[a.index].apiCell,document:this._cells[a.index].apiCell.document}):a.kind===13?this._changeCellMime(a.index,a.mime):a.kind===7?(this._changeCellMetadata(a.index,a.metadata),i.push({cell:this._cells[a.index].apiCell,metadata:this._cells[a.index].apiCell.metadata})):a.kind===12&&(this._changeCellInternalMetadata(a.index,a.internalMetadata),i.push({cell:this._cells[a.index].apiCell,executionSummary:this._cells[a.index].apiCell.executionSummary}));let s=new Map;for(let a=0;a<i.length;a++){let l=i[a],d=s.get(l.cell);if(d===void 0){let c=o.cellChanges.push({document:void 0,executionSummary:void 0,metadata:void 0,outputs:void 0,...l});s.set(l.cell,c-1)}else o.cellChanges[d]={...o.cellChanges[d],...l}}return Object.freeze(o),Object.freeze(o.cellChanges),Object.freeze(o.contentChanges),o}_validateIndex(t){return t=t|0,t<0?0:t>=this._cells.length?this._cells.length-1:t}_validateRange(t){let e=t.start|0,n=t.end|0;return e<0&&(e=0),n>this._cells.length&&(n=this._cells.length),t.with({start:e,end:n})}_getCells(t){t=this._validateRange(t);let e=[];for(let n=t.start;n<t.end;n++)e.push(this._cells[n]);return e}async _save(){return this._disposed?Promise.reject(new Error("Notebook has been closed")):this._proxy.$trySaveNotebook(this.uri)}_spliceNotebookCells(t,e,n){if(this._disposed)return;let o=[],i=[],s=[];if(t.reverse().forEach(a=>{let d=a[2].map(m=>{let g=new Sf(this,this._textDocumentsAndEditors,m);return e||i.push(Sf.asModelAddData(m)),g}),c=new qb(a[0],a[1],[],d),u=this._cells.splice(a[0],a[1],...d);for(let m of u)s.push(m.uri),c.deletedItems.push(m.apiCell);o.push(c)}),this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({addedDocuments:i,removedDocuments:s}),n)for(let a of o)n.push(a.asApiEvent())}_moveCells(t,e,n,o){let i=this._cells.splice(t,e);this._cells.splice(n,0,...i);let s=[new qb(t,e,i.map(a=>a.apiCell),[]),new qb(n,0,[],i)];for(let a of s)o.push(a.asApiEvent())}_setCellOutputs(t,e){this._cells[t].setOutputs(e)}_setCellOutputItems(t,e,n,o){this._cells[t].setOutputItems(e,n,o)}_changeCellLanguage(t,e){let n=this._cells[t];n.apiCell.document.languageId!==e&&this._textDocuments.$acceptModelLanguageChanged(n.uri,e)}_changeCellMime(t,e){let n=this._cells[t];n.apiCell.mime=e}_changeCellMetadata(t,e){this._cells[t].setMetadata(e)}_changeCellInternalMetadata(t,e){this._cells[t].setInternalMetadata(e)}getCellFromApiCell(t){return this._cells.find(e=>e.apiCell===t)}getCellFromIndex(t){return this._cells[t]}getCell(t){return this._cells.find(e=>e.handle===t)}getCellIndex(t){return this._cells.indexOf(t)}};var wu=class r{constructor(t,e,n,o,i,s,a){this.id=t;this._proxy=e;this.notebookData=n;this._visibleRanges=o;this._selections=i;this._viewColumn=s;this.viewType=a;this._visible=!1}static{this.apiEditorsToExtHost=new WeakMap}get apiEditor(){if(!this._editor){let t=this;this._editor={get notebook(){return t.notebookData.apiNotebook},get selection(){return t._selections[0]},set selection(e){this.selections=[e]},get selections(){return t._selections},set selections(e){if(!Array.isArray(e)||!e.every(Yn.isNotebookRange))throw Ue("selections");t._selections=e.length===0?[new Yn(0,0)]:e,t._trySetSelections(t._selections)},get visibleRanges(){return t._visibleRanges},revealRange(e,n){t._proxy.$tryRevealRange(t.id,wr.from(e),n??0)},get viewColumn(){return t._viewColumn},get replOptions(){if(t.viewType==="repl")return{appendIndex:this.notebook.cellCount-1}},[Symbol.for("debug.description")](){return`NotebookEditor(${this.notebook.uri.toString()})`}},r.apiEditorsToExtHost.set(this._editor,this)}return this._editor}get visible(){return this._visible}_acceptVisibility(t){this._visible=t}_acceptVisibleRanges(t){this._visibleRanges=t}_acceptSelections(t){this._selections=t}_trySetSelections(t){this._proxy.$trySetSelections(this.id,t.map(wr.from))}_acceptViewColumn(t){this._viewColumn=t}};var Cf=class{constructor(t,e){this.piece=t,this.color=e,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==xe)return Pw(this.right);let t=this;for(;t.parent!==xe&&t.parent.left!==t;)t=t.parent;return t.parent===xe?xe:t.parent}prev(){if(this.left!==xe)return kL(this.left);let t=this;for(;t.parent!==xe&&t.parent.right!==t;)t=t.parent;return t.parent===xe?xe:t.parent}detach(){this.parent=null,this.left=null,this.right=null}};var xe=new Cf(null,0);xe.parent=xe;xe.left=xe;xe.right=xe;xe.color=0;function Pw(r){for(;r.left!==xe;)r=r.left;return r}function kL(r){for(;r.right!==xe;)r=r.right;return r}function PL(r){return r===xe?0:r.size_left+r.piece.length+PL(r.right)}function _L(r){return r===xe?0:r.lf_left+r.piece.lineFeedCnt+_L(r.right)}function wL(){xe.parent=xe}function jb(r,t){let e=t.right;e.size_left+=t.size_left+(t.piece?t.piece.length:0),e.lf_left+=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),t.right=e.left,e.left!==xe&&(e.left.parent=t),e.parent=t.parent,t.parent===xe?r.root=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}function Gb(r,t){let e=t.left;t.left=e.right,e.right!==xe&&(e.right.parent=t),e.parent=t.parent,t.size_left-=e.size_left+(e.piece?e.piece.length:0),t.lf_left-=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),t.parent===xe?r.root=e:t===t.parent.right?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}function Qb(r,t){let e,n;if(t.left===xe?(n=t,e=n.right):t.right===xe?(n=t,e=n.left):(n=Pw(t.right),e=n.right),n===r.root){r.root=e,e.color=0,t.detach(),wL(),r.root.parent=xe;return}let o=n.color===1;if(n===n.parent.left?n.parent.left=e:n.parent.right=e,n===t?(e.parent=n.parent,Kb(r,e)):(n.parent===t?e.parent=n:e.parent=n.parent,Kb(r,e),n.left=t.left,n.right=t.right,n.parent=t.parent,n.color=t.color,t===r.root?r.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left!==xe&&(n.left.parent=n),n.right!==xe&&(n.right.parent=n),n.size_left=t.size_left,n.lf_left=t.lf_left,Kb(r,n)),t.detach(),e.parent.left===e){let s=PL(e),a=_L(e);if(s!==e.parent.size_left||a!==e.parent.lf_left){let l=s-e.parent.size_left,d=a-e.parent.lf_left;e.parent.size_left=s,e.parent.lf_left=a,Ls(r,e.parent,l,d)}}if(Kb(r,e.parent),o){wL();return}let i;for(;e!==r.root&&e.color===0;)e===e.parent.left?(i=e.parent.right,i.color===1&&(i.color=0,e.parent.color=1,jb(r,e.parent),i=e.parent.right),i.left.color===0&&i.right.color===0?(i.color=1,e=e.parent):(i.right.color===0&&(i.left.color=0,i.color=1,Gb(r,i),i=e.parent.right),i.color=e.parent.color,e.parent.color=0,i.right.color=0,jb(r,e.parent),e=r.root)):(i=e.parent.left,i.color===1&&(i.color=0,e.parent.color=1,Gb(r,e.parent),i=e.parent.left),i.left.color===0&&i.right.color===0?(i.color=1,e=e.parent):(i.left.color===0&&(i.right.color=0,i.color=1,jb(r,i),i=e.parent.left),i.color=e.parent.color,e.parent.color=0,i.left.color=0,Gb(r,e.parent),e=r.root));e.color=0,wL()}function DL(r,t){for(Kb(r,t);t!==r.root&&t.parent.color===1;)if(t.parent===t.parent.parent.left){let e=t.parent.parent.right;e.color===1?(t.parent.color=0,e.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&(t=t.parent,jb(r,t)),t.parent.color=0,t.parent.parent.color=1,Gb(r,t.parent.parent))}else{let e=t.parent.parent.left;e.color===1?(t.parent.color=0,e.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&(t=t.parent,Gb(r,t)),t.parent.color=0,t.parent.parent.color=1,jb(r,t.parent.parent))}r.root.color=0}function Ls(r,t,e,n){for(;t!==r.root&&t!==xe;)t.parent.left===t&&(t.parent.size_left+=e,t.parent.lf_left+=n),t=t.parent}function Kb(r,t){let e=0,n=0;if(t!==r.root){for(;t!==r.root&&t===t.parent.right;)t=t.parent;if(t!==r.root)for(t=t.parent,e=PL(t.left)-t.size_left,n=_L(t.left)-t.lf_left,t.size_left+=e,t.lf_left+=n;t!==r.root&&(e!==0||n!==0);)t.parent.left===t&&(t.parent.size_left+=e,t.parent.lf_left+=n),t=t.parent}}var Na=65535;function yB(r){let t;return r[r.length-1]<65536?t=new Uint16Array(r.length):t=new Uint32Array(r.length),t.set(r,0),t}var RL=class{constructor(t,e,n,o,i){this.lineStarts=t;this.cr=e;this.lf=n;this.crlf=o;this.isBasicASCII=i}};function Os(r,t=!0){let e=[0],n=1;for(let o=0,i=r.length;o<i;o++){let s=r.charCodeAt(o);s===13?o+1<i&&r.charCodeAt(o+1)===10?(e[n++]=o+2,o++):e[n++]=o+1:s===10&&(e[n++]=o+1)}return t?yB(e):e}function IB(r,t){r.length=0,r[0]=0;let e=1,n=0,o=0,i=0,s=!0;for(let l=0,d=t.length;l<d;l++){let c=t.charCodeAt(l);c===13?l+1<d&&t.charCodeAt(l+1)===10?(i++,r[e++]=l+2,l++):(n++,r[e++]=l+1):c===10?(o++,r[e++]=l+1):s&&c!==9&&(c<32||c>126)&&(s=!1)}let a=new RL(yB(r),n,o,i,s);return r.length=0,a}var xo=class{constructor(t,e,n,o,i){this.bufferIndex=t,this.start=e,this.end=n,this.lineFeedCnt=o,this.length=i}},Ns=class{constructor(t,e){this.buffer=t,this.lineStarts=e}},AL=class{constructor(t,e){this._pieces=[],this._tree=t,this._BOM=e,this._index=0,t.root!==xe&&t.iterate(t.root,n=>(n!==xe&&this._pieces.push(n.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}},ML=class{constructor(t){this._limit=t,this._cache=[]}get(t){for(let e=this._cache.length-1;e>=0;e--){let n=this._cache[e];if(n.nodeStartOffset<=t&&n.nodeStartOffset+n.node.piece.length>=t)return n}return null}get2(t){for(let e=this._cache.length-1;e>=0;e--){let n=this._cache[e];if(n.nodeStartLineNumber&&n.nodeStartLineNumber<t&&n.nodeStartLineNumber+n.node.piece.lineFeedCnt>=t)return n}return null}set(t){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(t)}validate(t){let e=!1,n=this._cache;for(let o=0;o<n.length;o++){let i=n[o];if(i.node.parent===null||i.nodeStartOffset>=t){n[o]=null,e=!0;continue}}if(e){let o=[];for(let i of n)i!==null&&o.push(i);this._cache=o}}},_w=class{constructor(t,e,n){this.create(t,e,n)}create(t,e,n){this._buffers=[new Ns("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=xe,this._lineCnt=1,this._length=0,this._EOL=e,this._EOLLength=e.length,this._EOLNormalized=n;let o=null;for(let i=0,s=t.length;i<s;i++)if(t[i].buffer.length>0){t[i].lineStarts||(t[i].lineStarts=Os(t[i].buffer));let a=new xo(i+1,{line:0,column:0},{line:t[i].lineStarts.length-1,column:t[i].buffer.length-t[i].lineStarts[t[i].lineStarts.length-1]},t[i].lineStarts.length-1,t[i].buffer.length);this._buffers.push(t[i]),o=this.rbInsertRight(o,a)}this._searchCache=new ML(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(t){let e=Na,n=e-Math.floor(e/3),o=n*2,i="",s=0,a=[];if(this.iterate(this.root,l=>{let d=this.getNodeContent(l),c=d.length;if(s<=n||s+c<o)return i+=d,s+=c,!0;let u=i.replace(/\r\n|\r|\n/g,t);return a.push(new Ns(u,Os(u))),i=d,s=c,!0}),s>0){let l=i.replace(/\r\n|\r|\n/g,t);a.push(new Ns(l,Os(l)))}this.create(a,t,!0)}getEOL(){return this._EOL}setEOL(t){this._EOL=t,this._EOLLength=this._EOL.length,this.normalizeEOL(t)}createSnapshot(t){return new AL(this,t)}equal(t){if(this.getLength()!==t.getLength()||this.getLineCount()!==t.getLineCount())return!1;let e=0;return this.iterate(this.root,o=>{if(o===xe)return!0;let i=this.getNodeContent(o),s=i.length,a=t.nodeAt(e),l=t.nodeAt(e+s),d=t.getValueInRange2(a,l);return e+=s,i===d})}getOffsetAt(t,e){let n=0,o=this.root;for(;o!==xe;)if(o.left!==xe&&o.lf_left+1>=t)o=o.left;else if(o.lf_left+o.piece.lineFeedCnt+1>=t){n+=o.size_left;let i=this.getAccumulatedValue(o,t-o.lf_left-2);return n+=i+e-1}else t-=o.lf_left+o.piece.lineFeedCnt,n+=o.size_left+o.piece.length,o=o.right;return n}getPositionAt(t){t=Math.floor(t),t=Math.max(0,t);let e=this.root,n=0,o=t;for(;e!==xe;)if(e.size_left!==0&&e.size_left>=t)e=e.left;else if(e.size_left+e.piece.length>=t){let i=this.getIndexOf(e,t-e.size_left);if(n+=e.lf_left+i.index,i.index===0){let s=this.getOffsetAt(n+1,1),a=o-s;return new kn(n+1,a+1)}return new kn(n+1,i.remainder+1)}else if(t-=e.size_left+e.piece.length,n+=e.lf_left+e.piece.lineFeedCnt,e.right===xe){let i=this.getOffsetAt(n+1,1),s=o-t-i;return new kn(n+1,s+1)}else e=e.right;return new kn(1,1)}getValueInRange(t,e){if(t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn)return"";let n=this.nodeAt2(t.startLineNumber,t.startColumn),o=this.nodeAt2(t.endLineNumber,t.endColumn),i=this.getValueInRange2(n,o);return e?e!==this._EOL||!this._EOLNormalized?i.replace(/\r\n|\r|\n/g,e):e===this.getEOL()&&this._EOLNormalized?i:i.replace(/\r\n|\r|\n/g,e):i}getValueInRange2(t,e){if(t.node===e.node){let a=t.node,l=this._buffers[a.piece.bufferIndex].buffer,d=this.offsetInBuffer(a.piece.bufferIndex,a.piece.start);return l.substring(d+t.remainder,d+e.remainder)}let n=t.node,o=this._buffers[n.piece.bufferIndex].buffer,i=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start),s=o.substring(i+t.remainder,i+n.piece.length);for(n=n.next();n!==xe;){let a=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(n===e.node){s+=a.substring(l,l+e.remainder);break}else s+=a.substr(l,n.piece.length);n=n.next()}return s}getLinesContent(){let t=[],e=0,n="",o=!1;return this.iterate(this.root,i=>{if(i===xe)return!0;let s=i.piece,a=s.length;if(a===0)return!0;let l=this._buffers[s.bufferIndex].buffer,d=this._buffers[s.bufferIndex].lineStarts,c=s.start.line,u=s.end.line,m=d[c]+s.start.column;if(o&&(l.charCodeAt(m)===10&&(m++,a--),t[e++]=n,n="",o=!1,a===0))return!0;if(c===u)return!this._EOLNormalized&&l.charCodeAt(m+a-1)===13?(o=!0,n+=l.substr(m,a-1)):n+=l.substr(m,a),!0;n+=this._EOLNormalized?l.substring(m,Math.max(m,d[c+1]-this._EOLLength)):l.substring(m,d[c+1]).replace(/(\r\n|\r|\n)$/,""),t[e++]=n;for(let g=c+1;g<u;g++)n=this._EOLNormalized?l.substring(d[g],d[g+1]-this._EOLLength):l.substring(d[g],d[g+1]).replace(/(\r\n|\r|\n)$/,""),t[e++]=n;return!this._EOLNormalized&&l.charCodeAt(d[u]+s.end.column-1)===13?(o=!0,s.end.column===0?e--:n=l.substr(d[u],s.end.column-1)):n=l.substr(d[u],s.end.column),!0}),o&&(t[e++]=n,n=""),t[e++]=n,t}getLength(){return this._length}getLineCount(){return this._lineCnt}getLineContent(t){return this._lastVisitedLine.lineNumber===t?this._lastVisitedLine.value:(this._lastVisitedLine.lineNumber=t,t===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(t):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(t,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(t).replace(/(\r\n|\r|\n)$/,""),this._lastVisitedLine.value)}_getCharCode(t){if(t.remainder===t.node.piece.length){let e=t.node.next();if(!e)return 0;let n=this._buffers[e.piece.bufferIndex],o=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);return n.buffer.charCodeAt(o)}else{let e=this._buffers[t.node.piece.bufferIndex],o=this.offsetInBuffer(t.node.piece.bufferIndex,t.node.piece.start)+t.remainder;return e.buffer.charCodeAt(o)}}getLineCharCode(t,e){let n=this.nodeAt2(t,e+1);return this._getCharCode(n)}getLineLength(t){if(t===this.getLineCount()){let e=this.getOffsetAt(t,1);return this.getLength()-e}return this.getOffsetAt(t+1,1)-this.getOffsetAt(t,1)-this._EOLLength}getCharCode(t){let e=this.nodeAt(t);return this._getCharCode(e)}getNearestChunk(t){let e=this.nodeAt(t);if(e.remainder===e.node.piece.length){let n=e.node.next();if(!n||n===xe)return"";let o=this._buffers[n.piece.bufferIndex],i=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return o.buffer.substring(i,i+n.piece.length)}else{let n=this._buffers[e.node.piece.bufferIndex],o=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start),i=o+e.remainder,s=o+e.node.piece.length;return n.buffer.substring(i,s)}}findMatchesInNode(t,e,n,o,i,s,a,l,d,c,u){let m=this._buffers[t.piece.bufferIndex],g=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start),h=this.offsetInBuffer(t.piece.bufferIndex,i),f=this.offsetInBuffer(t.piece.bufferIndex,s),I,S={line:0,column:0},E,P;e._wordSeparators?(E=m.buffer.substring(h,f),P=L=>L+h,e.reset(0)):(E=m.buffer,P=L=>L,e.reset(h));do if(I=e.next(E),I){if(P(I.index)>=f)return c;this.positionInBuffer(t,P(I.index)-g,S);let L=this.getLineFeedCnt(t.piece.bufferIndex,i,S),j=S.line===i.line?S.column-i.column+o:S.column+1,F=j+I[0].length;if(u[c++]=y0(new Ke(n+L,j,n+L,F),I,l),P(I.index)+I[0].length>=f||c>=d)return c}while(I);return c}findMatchesLineByLine(t,e,n,o){let i=[],s=0,a=new fT(e.wordSeparators,e.regex),l=this.nodeAt2(t.startLineNumber,t.startColumn);if(l===null)return[];let d=this.nodeAt2(t.endLineNumber,t.endColumn);if(d===null)return[];let c=this.positionInBuffer(l.node,l.remainder),u=this.positionInBuffer(d.node,d.remainder);if(l.node===d.node)return this.findMatchesInNode(l.node,a,t.startLineNumber,t.startColumn,c,u,e,n,o,s,i),i;let m=t.startLineNumber,g=l.node;for(;g!==d.node;){let f=this.getLineFeedCnt(g.piece.bufferIndex,c,g.piece.end);if(f>=1){let S=this._buffers[g.piece.bufferIndex].lineStarts,E=this.offsetInBuffer(g.piece.bufferIndex,g.piece.start),P=S[c.line+f],L=m===t.startLineNumber?t.startColumn:1;if(s=this.findMatchesInNode(g,a,m,L,c,this.positionInBuffer(g,P-E),e,n,o,s,i),s>=o)return i;m+=f}let I=m===t.startLineNumber?t.startColumn-1:0;if(m===t.endLineNumber){let S=this.getLineContent(m).substring(I,t.endColumn-1);return s=this._findMatchesInLine(e,a,S,t.endLineNumber,I,s,i,n,o),i}if(s=this._findMatchesInLine(e,a,this.getLineContent(m).substr(I),m,I,s,i,n,o),s>=o)return i;m++,l=this.nodeAt2(m,1),g=l.node,c=this.positionInBuffer(l.node,l.remainder)}if(m===t.endLineNumber){let f=m===t.startLineNumber?t.startColumn-1:0,I=this.getLineContent(m).substring(f,t.endColumn-1);return s=this._findMatchesInLine(e,a,I,t.endLineNumber,f,s,i,n,o),i}let h=m===t.startLineNumber?t.startColumn:1;return s=this.findMatchesInNode(d.node,a,m,h,c,u,e,n,o,s,i),i}_findMatchesInLine(t,e,n,o,i,s,a,l,d){let c=t.wordSeparators;if(!l&&t.simpleSearch){let m=t.simpleSearch,g=m.length,h=n.length,f=-g;for(;(f=n.indexOf(m,f+g))!==-1;)if((!c||I0(c,n,h,f,g))&&(a[s++]=new lc(new Ke(o,f+1+i,o,f+1+g+i),null),s>=d))return s;return s}let u;e.reset(0);do if(u=e.next(n),u&&(a[s++]=y0(new Ke(o,u.index+1+i,o,u.index+1+u[0].length+i),u,l),s>=d))return s;while(u);return s}insert(t,e,n=!1){if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==xe){let{node:o,remainder:i,nodeStartOffset:s}=this.nodeAt(t),a=o.piece,l=a.bufferIndex,d=this.positionInBuffer(o,i);if(o.piece.bufferIndex===0&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&s+a.length===t&&e.length<Na){this.appendToNode(o,e),this.computeBufferMetadata();return}if(s===t)this.insertContentToNodeLeft(e,o),this._searchCache.validate(t);else if(s+o.piece.length>t){let c=[],u=new xo(a.bufferIndex,d,a.end,this.getLineFeedCnt(a.bufferIndex,d,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,d));if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.nodeCharCodeAt(o,i)===10){let f={line:u.start.line+1,column:0};u=new xo(u.bufferIndex,f,u.end,this.getLineFeedCnt(u.bufferIndex,f,u.end),u.length-1),e+=`
`}if(this.shouldCheckCRLF()&&this.startWithLF(e))if(this.nodeCharCodeAt(o,i-1)===13){let f=this.positionInBuffer(o,i-1);this.deleteNodeTail(o,f),e="\r"+e,o.piece.length===0&&c.push(o)}else this.deleteNodeTail(o,d);else this.deleteNodeTail(o,d);let m=this.createNewPieces(e);u.length>0&&this.rbInsertRight(o,u);let g=o;for(let h=0;h<m.length;h++)g=this.rbInsertRight(g,m[h]);this.deleteNodes(c)}else this.insertContentToNodeRight(e,o)}else{let o=this.createNewPieces(e),i=this.rbInsertLeft(null,o[0]);for(let s=1;s<o.length;s++)i=this.rbInsertRight(i,o[s])}this.computeBufferMetadata()}delete(t,e){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",e<=0||this.root===xe)return;let n=this.nodeAt(t),o=this.nodeAt(t+e),i=n.node,s=o.node;if(i===s){let m=this.positionInBuffer(i,n.remainder),g=this.positionInBuffer(i,o.remainder);if(n.nodeStartOffset===t){if(e===i.piece.length){let h=i.next();Qb(this,i),this.validateCRLFWithPrevNode(h),this.computeBufferMetadata();return}this.deleteNodeHead(i,g),this._searchCache.validate(t),this.validateCRLFWithPrevNode(i),this.computeBufferMetadata();return}if(n.nodeStartOffset+i.piece.length===t+e){this.deleteNodeTail(i,m),this.validateCRLFWithNextNode(i),this.computeBufferMetadata();return}this.shrinkNode(i,m,g),this.computeBufferMetadata();return}let a=[],l=this.positionInBuffer(i,n.remainder);this.deleteNodeTail(i,l),this._searchCache.validate(t),i.piece.length===0&&a.push(i);let d=this.positionInBuffer(s,o.remainder);this.deleteNodeHead(s,d),s.piece.length===0&&a.push(s);let c=i.next();for(let m=c;m!==xe&&m!==s;m=m.next())a.push(m);let u=i.piece.length===0?i.prev():i;this.deleteNodes(a),this.validateCRLFWithNextNode(u),this.computeBufferMetadata()}insertContentToNodeLeft(t,e){let n=[];if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.startWithLF(e)){let s=e.piece,a={line:s.start.line+1,column:0},l=new xo(s.bufferIndex,a,s.end,this.getLineFeedCnt(s.bufferIndex,a,s.end),s.length-1);e.piece=l,t+=`
`,Ls(this,e,-1,-1),e.piece.length===0&&n.push(e)}let o=this.createNewPieces(t),i=this.rbInsertLeft(e,o[o.length-1]);for(let s=o.length-2;s>=0;s--)i=this.rbInsertLeft(i,o[s]);this.validateCRLFWithPrevNode(i),this.deleteNodes(n)}insertContentToNodeRight(t,e){this.adjustCarriageReturnFromNext(t,e)&&(t+=`
`);let n=this.createNewPieces(t),o=this.rbInsertRight(e,n[0]),i=o;for(let s=1;s<n.length;s++)i=this.rbInsertRight(i,n[s]);this.validateCRLFWithPrevNode(o)}positionInBuffer(t,e,n){let o=t.piece,i=t.piece.bufferIndex,s=this._buffers[i].lineStarts,l=s[o.start.line]+o.start.column+e,d=o.start.line,c=o.end.line,u=0,m=0,g=0;for(;d<=c&&(u=d+(c-d)/2|0,g=s[u],u!==c);)if(m=s[u+1],l<g)c=u-1;else if(l>=m)d=u+1;else break;return n?(n.line=u,n.column=l-g,null):{line:u,column:l-g}}getLineFeedCnt(t,e,n){if(n.column===0)return n.line-e.line;let o=this._buffers[t].lineStarts;if(n.line===o.length-1)return n.line-e.line;let i=o[n.line+1],s=o[n.line]+n.column;if(i>s+1)return n.line-e.line;let a=s-1;return this._buffers[t].buffer.charCodeAt(a)===13?n.line-e.line+1:n.line-e.line}offsetInBuffer(t,e){return this._buffers[t].lineStarts[e.line]+e.column}deleteNodes(t){for(let e=0;e<t.length;e++)Qb(this,t[e])}createNewPieces(t){if(t.length>Na){let c=[];for(;t.length>Na;){let m=t.charCodeAt(Na-1),g;m===13||m>=55296&&m<=56319?(g=t.substring(0,Na-1),t=t.substring(Na-1)):(g=t.substring(0,Na),t=t.substring(Na));let h=Os(g);c.push(new xo(this._buffers.length,{line:0,column:0},{line:h.length-1,column:g.length-h[h.length-1]},h.length-1,g.length)),this._buffers.push(new Ns(g,h))}let u=Os(t);return c.push(new xo(this._buffers.length,{line:0,column:0},{line:u.length-1,column:t.length-u[u.length-1]},u.length-1,t.length)),this._buffers.push(new Ns(t,u)),c}let e=this._buffers[0].buffer.length,n=Os(t,!1),o=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===e&&e!==0&&this.startWithLF(t)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},o=this._lastChangeBufferPos;for(let c=0;c<n.length;c++)n[c]+=e+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(n.slice(1)),this._buffers[0].buffer+="_"+t,e+=1}else{if(e!==0)for(let c=0;c<n.length;c++)n[c]+=e;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(n.slice(1)),this._buffers[0].buffer+=t}let i=this._buffers[0].buffer.length,s=this._buffers[0].lineStarts.length-1,a=i-this._buffers[0].lineStarts[s],l={line:s,column:a},d=new xo(0,o,l,this.getLineFeedCnt(0,o,l),i-e);return this._lastChangeBufferPos=l,[d]}getLinesRawContent(){return this.getContentOfSubTree(this.root)}getLineRawContent(t,e=0){let n=this.root,o="",i=this._searchCache.get2(t);if(i){n=i.node;let s=this.getAccumulatedValue(n,t-i.nodeStartLineNumber-1),a=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(i.nodeStartLineNumber+n.piece.lineFeedCnt===t)o=a.substring(l+s,l+n.piece.length);else{let d=this.getAccumulatedValue(n,t-i.nodeStartLineNumber);return a.substring(l+s,l+d-e)}}else{let s=0,a=t;for(;n!==xe;)if(n.left!==xe&&n.lf_left>=t-1)n=n.left;else if(n.lf_left+n.piece.lineFeedCnt>t-1){let l=this.getAccumulatedValue(n,t-n.lf_left-2),d=this.getAccumulatedValue(n,t-n.lf_left-1),c=this._buffers[n.piece.bufferIndex].buffer,u=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return s+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:s,nodeStartLineNumber:a-(t-1-n.lf_left)}),c.substring(u+l,u+d-e)}else if(n.lf_left+n.piece.lineFeedCnt===t-1){let l=this.getAccumulatedValue(n,t-n.lf_left-2),d=this._buffers[n.piece.bufferIndex].buffer,c=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);o=d.substring(c+l,c+n.piece.length);break}else t-=n.lf_left+n.piece.lineFeedCnt,s+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==xe;){let s=this._buffers[n.piece.bufferIndex].buffer;if(n.piece.lineFeedCnt>0){let a=this.getAccumulatedValue(n,0),l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return o+=s.substring(l,l+a-e),o}else{let a=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);o+=s.substr(a,n.piece.length)}n=n.next()}return o}computeBufferMetadata(){let t=this.root,e=1,n=0;for(;t!==xe;)e+=t.lf_left+t.piece.lineFeedCnt,n+=t.size_left+t.piece.length,t=t.right;this._lineCnt=e,this._length=n,this._searchCache.validate(this._length)}getIndexOf(t,e){let n=t.piece,o=this.positionInBuffer(t,e),i=o.line-n.start.line;if(this.offsetInBuffer(n.bufferIndex,n.end)-this.offsetInBuffer(n.bufferIndex,n.start)===e){let s=this.getLineFeedCnt(t.piece.bufferIndex,n.start,o);if(s!==i)return{index:s,remainder:0}}return{index:i,remainder:o.column}}getAccumulatedValue(t,e){if(e<0)return 0;let n=t.piece,o=this._buffers[n.bufferIndex].lineStarts,i=n.start.line+e+1;return i>n.end.line?o[n.end.line]+n.end.column-o[n.start.line]-n.start.column:o[i]-o[n.start.line]-n.start.column}deleteNodeTail(t,e){let n=t.piece,o=n.lineFeedCnt,i=this.offsetInBuffer(n.bufferIndex,n.end),s=e,a=this.offsetInBuffer(n.bufferIndex,s),l=this.getLineFeedCnt(n.bufferIndex,n.start,s),d=l-o,c=a-i,u=n.length+c;t.piece=new xo(n.bufferIndex,n.start,s,l,u),Ls(this,t,c,d)}deleteNodeHead(t,e){let n=t.piece,o=n.lineFeedCnt,i=this.offsetInBuffer(n.bufferIndex,n.start),s=e,a=this.getLineFeedCnt(n.bufferIndex,s,n.end),l=this.offsetInBuffer(n.bufferIndex,s),d=a-o,c=i-l,u=n.length+c;t.piece=new xo(n.bufferIndex,s,n.end,a,u),Ls(this,t,c,d)}shrinkNode(t,e,n){let o=t.piece,i=o.start,s=o.end,a=o.length,l=o.lineFeedCnt,d=e,c=this.getLineFeedCnt(o.bufferIndex,o.start,d),u=this.offsetInBuffer(o.bufferIndex,e)-this.offsetInBuffer(o.bufferIndex,i);t.piece=new xo(o.bufferIndex,o.start,d,c,u),Ls(this,t,u-a,c-l);let m=new xo(o.bufferIndex,n,s,this.getLineFeedCnt(o.bufferIndex,n,s),this.offsetInBuffer(o.bufferIndex,s)-this.offsetInBuffer(o.bufferIndex,n)),g=this.rbInsertRight(t,m);this.validateCRLFWithPrevNode(g)}appendToNode(t,e){this.adjustCarriageReturnFromNext(e,t)&&(e+=`
`);let n=this.shouldCheckCRLF()&&this.startWithLF(e)&&this.endWithCR(t),o=this._buffers[0].buffer.length;this._buffers[0].buffer+=e;let i=Os(e,!1);for(let g=0;g<i.length;g++)i[g]+=o;if(n){let g=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:o-g}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1));let s=this._buffers[0].lineStarts.length-1,a=this._buffers[0].buffer.length-this._buffers[0].lineStarts[s],l={line:s,column:a},d=t.piece.length+e.length,c=t.piece.lineFeedCnt,u=this.getLineFeedCnt(0,t.piece.start,l),m=u-c;t.piece=new xo(t.piece.bufferIndex,t.piece.start,l,u,d),this._lastChangeBufferPos=l,Ls(this,t,e.length,m)}nodeAt(t){let e=this.root,n=this._searchCache.get(t);if(n)return{node:n.node,nodeStartOffset:n.nodeStartOffset,remainder:t-n.nodeStartOffset};let o=0;for(;e!==xe;)if(e.size_left>t)e=e.left;else if(e.size_left+e.piece.length>=t){o+=e.size_left;let i={node:e,remainder:t-e.size_left,nodeStartOffset:o};return this._searchCache.set(i),i}else t-=e.size_left+e.piece.length,o+=e.size_left+e.piece.length,e=e.right;return null}nodeAt2(t,e){let n=this.root,o=0;for(;n!==xe;)if(n.left!==xe&&n.lf_left>=t-1)n=n.left;else if(n.lf_left+n.piece.lineFeedCnt>t-1){let i=this.getAccumulatedValue(n,t-n.lf_left-2),s=this.getAccumulatedValue(n,t-n.lf_left-1);return o+=n.size_left,{node:n,remainder:Math.min(i+e-1,s),nodeStartOffset:o}}else if(n.lf_left+n.piece.lineFeedCnt===t-1){let i=this.getAccumulatedValue(n,t-n.lf_left-2);if(i+e-1<=n.piece.length)return{node:n,remainder:i+e-1,nodeStartOffset:o};e-=n.piece.length-i;break}else t-=n.lf_left+n.piece.lineFeedCnt,o+=n.size_left+n.piece.length,n=n.right;for(n=n.next();n!==xe;){if(n.piece.lineFeedCnt>0){let i=this.getAccumulatedValue(n,0),s=this.offsetOfNode(n);return{node:n,remainder:Math.min(e-1,i),nodeStartOffset:s}}else if(n.piece.length>=e-1){let i=this.offsetOfNode(n);return{node:n,remainder:e-1,nodeStartOffset:i}}else e-=n.piece.length;n=n.next()}return null}nodeCharCodeAt(t,e){if(t.piece.lineFeedCnt<1)return-1;let n=this._buffers[t.piece.bufferIndex],o=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start)+e;return n.buffer.charCodeAt(o)}offsetOfNode(t){if(!t)return 0;let e=t.size_left;for(;t!==this.root;)t.parent.right===t&&(e+=t.parent.size_left+t.parent.piece.length),t=t.parent;return e}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===`
`)}startWithLF(t){if(typeof t=="string")return t.charCodeAt(0)===10;if(t===xe||t.piece.lineFeedCnt===0)return!1;let e=t.piece,n=this._buffers[e.bufferIndex].lineStarts,o=e.start.line,i=n[o]+e.start.column;return o===n.length-1||n[o+1]>i+1?!1:this._buffers[e.bufferIndex].buffer.charCodeAt(i)===10}endWithCR(t){return typeof t=="string"?t.charCodeAt(t.length-1)===13:t===xe||t.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(t,t.piece.length-1)===13}validateCRLFWithPrevNode(t){if(this.shouldCheckCRLF()&&this.startWithLF(t)){let e=t.prev();this.endWithCR(e)&&this.fixCRLF(e,t)}}validateCRLFWithNextNode(t){if(this.shouldCheckCRLF()&&this.endWithCR(t)){let e=t.next();this.startWithLF(e)&&this.fixCRLF(t,e)}}fixCRLF(t,e){let n=[],o=this._buffers[t.piece.bufferIndex].lineStarts,i;t.piece.end.column===0?i={line:t.piece.end.line-1,column:o[t.piece.end.line]-o[t.piece.end.line-1]-1}:i={line:t.piece.end.line,column:t.piece.end.column-1};let s=t.piece.length-1,a=t.piece.lineFeedCnt-1;t.piece=new xo(t.piece.bufferIndex,t.piece.start,i,a,s),Ls(this,t,-1,-1),t.piece.length===0&&n.push(t);let l={line:e.piece.start.line+1,column:0},d=e.piece.length-1,c=this.getLineFeedCnt(e.piece.bufferIndex,l,e.piece.end);e.piece=new xo(e.piece.bufferIndex,l,e.piece.end,c,d),Ls(this,e,-1,-1),e.piece.length===0&&n.push(e);let u=this.createNewPieces(`\r
`);this.rbInsertRight(t,u[0]);for(let m=0;m<n.length;m++)Qb(this,n[m])}adjustCarriageReturnFromNext(t,e){if(this.shouldCheckCRLF()&&this.endWithCR(t)){let n=e.next();if(this.startWithLF(n)){if(t+=`
`,n.piece.length===1)Qb(this,n);else{let o=n.piece,i={line:o.start.line+1,column:0},s=o.length-1,a=this.getLineFeedCnt(o.bufferIndex,i,o.end);n.piece=new xo(o.bufferIndex,i,o.end,a,s),Ls(this,n,-1,-1)}return!0}}return!1}iterate(t,e){if(t===xe)return e(xe);let n=this.iterate(t.left,e);return n&&e(t)&&this.iterate(t.right,e)}getNodeContent(t){if(t===xe)return"";let e=this._buffers[t.piece.bufferIndex],n=t.piece,o=this.offsetInBuffer(n.bufferIndex,n.start),i=this.offsetInBuffer(n.bufferIndex,n.end);return e.buffer.substring(o,i)}getPieceContent(t){let e=this._buffers[t.bufferIndex],n=this.offsetInBuffer(t.bufferIndex,t.start),o=this.offsetInBuffer(t.bufferIndex,t.end);return e.buffer.substring(n,o)}rbInsertRight(t,e){let n=new Cf(e,1);if(n.left=xe,n.right=xe,n.parent=xe,n.size_left=0,n.lf_left=0,this.root===xe)this.root=n,n.color=0;else if(t.right===xe)t.right=n,n.parent=t;else{let i=Pw(t.right);i.left=n,n.parent=i}return DL(this,n),n}rbInsertLeft(t,e){let n=new Cf(e,1);if(n.left=xe,n.right=xe,n.parent=xe,n.size_left=0,n.lf_left=0,this.root===xe)this.root=n,n.color=0;else if(t.left===xe)t.left=n,n.parent=t;else{let o=kL(t.left);o.right=n,n.parent=o}return DL(this,n),n}getContentOfSubTree(t){let e="";return this.iterate(t,n=>(e+=this.getNodeContent(n),!0)),e}};function Dw(r){let t=0,e=0,n=0,o=0;for(let i=0,s=r.length;i<s;i++){let a=r.charCodeAt(i);a===13?(t===0&&(e=i),t++,i+1<s&&r.charCodeAt(i+1)===10?(o|=2,i++):o|=3,n=i+1):a===10&&(o|=1,t===0&&(e=i),t++,n=i+1)}return t===0&&(e=r.length),[t,e,r.length-n,o]}var LL;function Jj(){return LL||(LL=new TextDecoder("UTF-16LE")),LL}function xB(r,t,e){let n=new Uint16Array(r.buffer,t,e);return e>0&&(n[0]===65279||n[0]===65534)?Yj(r,t,e):Jj().decode(n)}function Yj(r,t,e){let n=[],o=0;for(let i=0;i<e;i++){let s=gU(r,t);t+=2,n[o++]=String.fromCharCode(s)}return n.join("")}function Rw(r){return r.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}var Aw=class r{constructor(t,e,n,o){this.oldPosition=t;this.oldText=e;this.newPosition=n;this.newText=o}get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${Rw(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${Rw(this.oldText)}")`:`(replace@${this.oldPosition} "${Rw(this.oldText)}" with "${Rw(this.newText)}")`}static _writeStringSize(t){return 4+2*t.length}static _writeString(t,e,n){let o=e.length;ph(t,o,n),n+=4;for(let i=0;i<o;i++)fU(t,e.charCodeAt(i),n),n+=2;return n}static _readString(t,e){let n=uh(t,e);return e+=4,xB(t,e,n)}writeSize(){return 8+r._writeStringSize(this.oldText)+r._writeStringSize(this.newText)}write(t,e){return ph(t,this.oldPosition,e),e+=4,ph(t,this.newPosition,e),e+=4,e=r._writeString(t,this.oldText,e),e=r._writeString(t,this.newText,e),e}static read(t,e,n){let o=uh(t,e);e+=4;let i=uh(t,e);e+=4;let s=r._readString(t,e);e+=r._writeStringSize(s);let a=r._readString(t,e);return e+=r._writeStringSize(a),n.push(new r(o,s,i,a)),e}};var Mw=class r extends O{constructor(e,n,o,i,s,a,l){super();this._onDidChangeContent=this._register(new T);this._BOM=n,this._mightContainNonBasicASCII=!a,this._mightContainRTL=i,this._mightContainUnusualLineTerminators=s,this._pieceTree=new _w(e,o,l)}get onDidChangeContent(){return this._onDidChangeContent.event}equals(e){return!(e instanceof r)||this._BOM!==e._BOM||this.getEOL()!==e.getEOL()?!1:this._pieceTree.equal(e._pieceTree)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(e){return this._pieceTree.createSnapshot(e?this._BOM:"")}getOffsetAt(e,n){return this._pieceTree.getOffsetAt(e,n)}getPositionAt(e){return this._pieceTree.getPositionAt(e)}getRangeAt(e,n){let o=e+n,i=this.getPositionAt(e),s=this.getPositionAt(o);return new Ke(i.lineNumber,i.column,s.lineNumber,s.column)}getValueInRange(e,n=0){if(e.isEmpty())return"";let o=this._getEndOfLine(n);return this._pieceTree.getValueInRange(e,o)}getValueLengthInRange(e,n=0){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;let o=this.getOffsetAt(e.startLineNumber,e.startColumn),i=this.getOffsetAt(e.endLineNumber,e.endColumn),s=0,a=this._getEndOfLine(n),l=this.getEOL();if(a.length!==l.length){let d=a.length-l.length,c=e.endLineNumber-e.startLineNumber;s=d*c}return i-o+s}getCharacterCountInRange(e,n=0){if(this._mightContainNonBasicASCII){let o=0,i=e.startLineNumber,s=e.endLineNumber;for(let a=i;a<=s;a++){let l=this.getLineContent(a),d=a===i?e.startColumn-1:0,c=a===s?e.endColumn-1:l.length;for(let u=d;u<c;u++)Bd(l.charCodeAt(u))?(o=o+1,u=u+1):o=o+1}return o+=this._getEndOfLine(n).length*(s-i),o}return this.getValueLengthInRange(e,n)}getNearestChunk(e){return this._pieceTree.getNearestChunk(e)}getLength(){return this._pieceTree.getLength()}getLineCount(){return this._pieceTree.getLineCount()}getLinesContent(){return this._pieceTree.getLinesContent()}getLineContent(e){return this._pieceTree.getLineContent(e)}getLineCharCode(e,n){return this._pieceTree.getLineCharCode(e,n)}getCharCode(e){return this._pieceTree.getCharCode(e)}getLineLength(e){return this._pieceTree.getLineLength(e)}getLineMinColumn(e){return 1}getLineMaxColumn(e){return this.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){let n=Wy(this.getLineContent(e));return n===-1?0:n+1}getLineLastNonWhitespaceColumn(e){let n=ON(this.getLineContent(e));return n===-1?0:n+2}_getEndOfLine(e){switch(e){case 1:return`
`;case 2:return`\r
`;case 0:return this.getEOL();default:throw new Error("Unknown EOL preference")}}setEOL(e){this._pieceTree.setEOL(e)}applyEdits(e,n,o){let i=this._mightContainRTL,s=this._mightContainUnusualLineTerminators,a=this._mightContainNonBasicASCII,l=!0,d=[];for(let I=0;I<e.length;I++){let S=e[I];l&&S._isTracked&&(l=!1);let E=S.range;if(S.text){let z=!0;a||(z=!FN(S.text),a=z),!i&&z&&(i=$y(S.text)),!s&&z&&(s=zy(S.text))}let P="",L=0,j=0,F=0;if(S.text){let z;[L,j,F,z]=Dw(S.text);let J=this.getEOL(),Y=J===`\r
`?2:1;z===0||z===Y?P=S.text:P=S.text.replace(/\r\n|\r|\n/g,J)}d[I]={sortIndex:I,identifier:S.identifier||null,range:E,rangeOffset:this.getOffsetAt(E.startLineNumber,E.startColumn),rangeLength:this.getValueLengthInRange(E),text:P,eolCount:L,firstLineLength:j,lastLineLength:F,forceMoveMarkers:!!S.forceMoveMarkers,isAutoWhitespaceEdit:S.isAutoWhitespaceEdit||!1}}d.sort(r._sortOpsAscending);let c=!1;for(let I=0,S=d.length-1;I<S;I++){let E=d[I].range.getEndPosition(),P=d[I+1].range.getStartPosition();if(P.isBeforeOrEqual(E)){if(P.isBefore(E))throw new Error("Overlapping ranges are not allowed!");c=!0}}l&&(d=this._reduceOperations(d));let u=o||n?r._getInverseEditRanges(d):[],m=[];if(n)for(let I=0;I<d.length;I++){let S=d[I],E=u[I];if(S.isAutoWhitespaceEdit&&S.range.isEmpty())for(let P=E.startLineNumber;P<=E.endLineNumber;P++){let L="";P===E.startLineNumber&&(L=this.getLineContent(S.range.startLineNumber),Wy(L)!==-1)||m.push({lineNumber:P,oldContent:L})}}let g=null;if(o){let I=0;g=[];for(let S=0;S<d.length;S++){let E=d[S],P=u[S],L=this.getValueInRange(E.range),j=E.rangeOffset+I;I+=E.text.length-L.length,g[S]={sortIndex:E.sortIndex,identifier:E.identifier,range:P,text:L,textChange:new Aw(E.rangeOffset,L,j,E.text)}}c||g.sort((S,E)=>S.sortIndex-E.sortIndex)}this._mightContainRTL=i,this._mightContainUnusualLineTerminators=s,this._mightContainNonBasicASCII=a;let h=this._doApplyEdits(d),f=null;if(n&&m.length>0){m.sort((I,S)=>S.lineNumber-I.lineNumber),f=[];for(let I=0,S=m.length;I<S;I++){let E=m[I].lineNumber;if(I>0&&m[I-1].lineNumber===E)continue;let P=m[I].oldContent,L=this.getLineContent(E);L.length===0||L===P||Wy(L)!==-1||f.push(E)}}return this._onDidChangeContent.fire(),new GI(g,h,f)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let n=!1,o=e[0].range,i=e[e.length-1].range,s=new Ke(o.startLineNumber,o.startColumn,i.endLineNumber,i.endColumn),a=o.startLineNumber,l=o.startColumn,d=[];for(let h=0,f=e.length;h<f;h++){let I=e[h],S=I.range;n=n||I.forceMoveMarkers,d.push(this.getValueInRange(new Ke(a,l,S.startLineNumber,S.startColumn))),I.text.length>0&&d.push(I.text),a=S.endLineNumber,l=S.endColumn}let c=d.join(""),[u,m,g]=Dw(c);return{sortIndex:0,identifier:e[0].identifier,range:s,rangeOffset:this.getOffsetAt(s.startLineNumber,s.startColumn),rangeLength:this.getValueLengthInRange(s,0),text:c,eolCount:u,firstLineLength:m,lastLineLength:g,forceMoveMarkers:n,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(r._sortOpsDescending);let n=[];for(let o=0;o<e.length;o++){let i=e[o],s=i.range.startLineNumber,a=i.range.startColumn,l=i.range.endLineNumber,d=i.range.endColumn;if(s===l&&a===d&&i.text.length===0)continue;i.text?(this._pieceTree.delete(i.rangeOffset,i.rangeLength),this._pieceTree.insert(i.rangeOffset,i.text,!0)):this._pieceTree.delete(i.rangeOffset,i.rangeLength);let c=new Ke(s,a,l,d);n.push({range:c,rangeLength:i.rangeLength,text:i.text,rangeOffset:i.rangeOffset,forceMoveMarkers:i.forceMoveMarkers})}return n}findMatchesLineByLine(e,n,o,i){return this._pieceTree.findMatchesLineByLine(e,n,o,i)}getPieceTree(){return this._pieceTree}static _getInverseEditRange(e,n){let o=e.startLineNumber,i=e.startColumn,[s,a,l]=Dw(n),d;if(n.length>0){let c=s+1;c===1?d=new Ke(o,i,o,i+a):d=new Ke(o,i,o+c-1,l+1)}else d=new Ke(o,i,o,i);return d}static _getInverseEditRanges(e){let n=[],o=0,i=0,s=null;for(let a=0,l=e.length;a<l;a++){let d=e[a],c,u;s?s.range.endLineNumber===d.range.startLineNumber?(c=o,u=i+(d.range.startColumn-s.range.endColumn)):(c=o+(d.range.startLineNumber-s.range.endLineNumber),u=d.range.startColumn):(c=d.range.startLineNumber,u=d.range.startColumn);let m;if(d.text.length>0){let g=d.eolCount+1;g===1?m=new Ke(c,u,c,u+d.firstLineLength):m=new Ke(c,u,c+g-1,d.lastLineLength+1)}else m=new Ke(c,u,c,u);o=m.endLineNumber,i=m.endColumn,n.push(m),s=d}return n}static _sortOpsAscending(e,n){let o=Ke.compareRangesUsingEnds(e.range,n.range);return o===0?e.sortIndex-n.sortIndex:o}static _sortOpsDescending(e,n){let o=Ke.compareRangesUsingEnds(e.range,n.range);return o===0?n.sortIndex-e.sortIndex:-o}};var OL=class{constructor(t,e,n,o,i,s,a,l,d){this._chunks=t;this._bom=e;this._cr=n;this._lf=o;this._crlf=i;this._containsRTL=s;this._containsUnusualLineTerminators=a;this._isBasicASCII=l;this._normalizeEOL=d}_getEOL(t){let e=this._cr+this._lf+this._crlf,n=this._cr+this._crlf;return e===0?t===1?`
`:`\r
`:n>e/2?`\r
`:`
`}create(t){let e=this._getEOL(t),n=this._chunks;if(this._normalizeEOL&&(e===`\r
`&&(this._cr>0||this._lf>0)||e===`
`&&(this._cr>0||this._crlf>0)))for(let i=0,s=n.length;i<s;i++){let a=n[i].buffer.replace(/\r\n|\r|\n/g,e),l=Os(a);n[i]=new Ns(a,l)}let o=new Mw(n,this._bom,e,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:o,disposable:o}}getFirstLineText(t){return this._chunks[0].buffer.substr(0,t).split(/\r\n|\r|\n/)[0]}},Jb=class{constructor(){this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}acceptChunk(t){if(t.length===0)return;this.chunks.length===0&&WN(t)&&(this.BOM=HN,t=t.substr(1));let e=t.charCodeAt(t.length-1);e===13||e>=55296&&e<=56319?(this._acceptChunk1(t.substr(0,t.length-1),!1),this._hasPreviousChar=!0,this._previousChar=e):(this._acceptChunk1(t,!1),this._hasPreviousChar=!1,this._previousChar=e)}_acceptChunk1(t,e){!e&&t.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+t):this._acceptChunk2(t))}_acceptChunk2(t){let e=IB(this._tmpLineStarts,t);this.chunks.push(new Ns(t,e.lineStarts)),this.cr+=e.cr,this.lf+=e.lf,this.crlf+=e.crlf,e.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=$y(t)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=zy(t)))}finish(t=!0){return this._finish(),new OL(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,t)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;let t=this.chunks[this.chunks.length-1];t.buffer+=String.fromCharCode(this._previousChar);let e=Os(t.buffer);t.lineStarts=e,this._previousChar===13&&this.cr++}}};var Lw=class extends O{constructor(e,n,o){super();this._source=e;this._inputTextBuffer=n;this._outputs=o;this._outputTextBuffers=void 0}_getFullModelRange(e){let n=e.getLineCount();return new Ke(1,1,n,this._getLineMaxColumn(e,n))}_getLineMaxColumn(e,n){if(n<1||n>e.getLineCount())throw new Error("Illegal value for lineNumber");return e.getLineLength(n)+1}get inputTextBuffer(){if(!this._inputTextBuffer){let e=new Jb;e.acceptChunk(this._source);let n=e.finish(!0),{textBuffer:o,disposable:i}=n.create(1);this._inputTextBuffer=o,this._register(i)}return this._inputTextBuffer}get outputTextBuffers(){return this._outputTextBuffers||(this._outputTextBuffers=this._outputs.map(e=>{let n=new Jb;n.acceptChunk(e);let o=n.finish(!0),{textBuffer:i,disposable:s}=o.create(1);return this._register(s),i})),this._outputTextBuffers}findInInputs(e){let o=new sb(e,!1,!1,null).parseSearchRequest();if(!o)return[];let i=this._getFullModelRange(this.inputTextBuffer);return this.inputTextBuffer.findMatchesLineByLine(i,o,!0,5e3)}findInOutputs(e){let o=new sb(e,!1,!1,null).parseSearchRequest();return o?this.outputTextBuffers.map(i=>{let s=i.findMatchesLineByLine(this._getFullModelRange(i),o,!0,5e3);if(s.length!==0)return{textBuffer:i,matches:s}}).filter(i=>!!i):[]}};function NL(r,t){let e=-1,n=[],o=[];return r.forEach(s=>{s.range.startLineNumber!==e&&o.length>0&&(n.push([...o]),o=[]),o.push(s),e=s.range.endLineNumber}),o.length>0&&n.push([...o]),n.map(s=>{let a=[],l=s[0].range.startLineNumber,d=s[s.length-1].range.endLineNumber;for(let c=l;c<=d;c++)a.push(t.getLineContent(c));return new $m(a.join(`
`)+`
`,s.map(c=>new Ke(c.range.startLineNumber-1,c.range.startColumn-1,c.range.endLineNumber-1,c.range.endColumn-1)))})}var vat=Object.freeze({id:"application",order:100,title:p(4653,null),type:"object"}),SB=Object.freeze({id:"workbench",order:7,title:p(4661,null),type:"object"}),Zj=Object.freeze({id:"security",scope:1,title:p(4659,null),type:"object",order:7}),bat=Object.freeze({id:"problems",title:p(4655,null),type:"object",order:101}),eG=Object.freeze({id:"window",order:8,title:p(4660,null),type:"object"}),tG={ConfigurationMigration:"base.contributions.configuration.migration"},UL=class{constructor(){this.migrations=[];this._onDidRegisterConfigurationMigrations=new T;this.onDidRegisterConfigurationMigration=this._onDidRegisterConfigurationMigrations.event}registerConfigurationMigrations(t){this.migrations.push(...t)}},Fw=new UL;gt.add(tG.ConfigurationMigration,Fw);var Ow=class extends O{constructor(e,n){super();this.configurationService=e;this.workspaceService=n;this._register(this.workspaceService.onDidChangeWorkspaceFolders(async o=>{for(let i of o.added)await this.migrateConfigurationsForFolder(i,Fw.migrations)})),this.migrateConfigurations(Fw.migrations),this._register(Fw.onDidRegisterConfigurationMigration(o=>this.migrateConfigurations(o)))}static{this.ID="workbench.contrib.configurationMigration"}async migrateConfigurations(e){await this.migrateConfigurationsForFolder(void 0,e);for(let n of this.workspaceService.getWorkspace().folders)await this.migrateConfigurationsForFolder(n,e)}async migrateConfigurationsForFolder(e,n){await Promise.all([n.map(o=>this.migrateConfigurationsForFolderAndOverride(o,e?.uri))])}async migrateConfigurationsForFolderAndOverride(e,n){let o=this.configurationService.inspect(e.key,{resource:n}),i=this.workspaceService.getWorkbenchState()===3?[["user",2],["userLocal",3],["userRemote",4],["workspace",5],["workspaceFolder",6]]:[["user",2],["userLocal",3],["userRemote",4],["workspace",5]];for(let[s,a]of i){let l=o[s];if(!l)continue;let d=[];if(l.value!==void 0){let c=await this.runMigration(e,s,l.value,n,void 0);for(let u of c??[])d.push([u,[]])}for(let{identifiers:c,value:u}of l.overrides??[])if(u!==void 0){let m=await this.runMigration(e,s,u,n,c);for(let g of m??[])d.push([g,c])}d.length&&await Promise.allSettled(d.map(async([[c,u],m])=>this.configurationService.updateValue(c,u.value,{resource:n,overrideIdentifiers:m},a)))}}async runMigration(e,n,o,i,s){let a=d=>{let u=this.configurationService.inspect(d,{resource:i})[n];if(u)return s?u.overrides?.find(({identifiers:m})=>tn(m,s))?.value:u.value},l=await e.migrateFn(o,a);return Array.isArray(l)?l:[[e.key,l]]}};Ow=_([C(0,sn),C(1,es)],Ow);var Nw=class extends O{constructor(e){super();this.remoteAgentService=e;this._ready=new Kt;this.ready=this._ready.p;this.create()}static{this.ID="workbench.contrib.dynamicWorkbenchSecurityConfiguration"}async create(){try{await this.doCreate()}finally{this._ready.complete()}}async doCreate(){if(!Ie&&(await this.remoteAgentService.getEnvironment())?.os!==1)return;gt.as(ur.Configuration).registerConfiguration({...Zj,properties:{"security.allowedUNCHosts":{type:"array",items:{type:"string",pattern:"^[^\\\\]+$",patternErrorMessage:p(4657,null)},default:[],markdownDescription:p(4656,null),scope:3},"security.restrictUNCAccess":{type:"boolean",default:!0,markdownDescription:p(4658,null),scope:3}}})}};Nw=_([C(0,vg)],Nw);var Yb="window.newWindowProfile",Uw=class extends O{constructor(e,n){super();this.userDataProfilesService=e;this.configurationService=n;this.registerNewWindowProfileConfiguration(),this._register(this.userDataProfilesService.onDidChangeProfiles(o=>this.registerNewWindowProfileConfiguration())),this.setNewWindowProfile(),this.checkAndResetNewWindowProfileConfig(),this._register(n.onDidChangeConfiguration(o=>{o.source!==7&&o.affectsConfiguration(Yb)&&this.setNewWindowProfile()})),this._register(this.userDataProfilesService.onDidChangeProfiles(()=>this.checkAndResetNewWindowProfileConfig()))}static{this.ID="workbench.contrib.dynamicWindowConfiguration"}registerNewWindowProfileConfiguration(){let e=gt.as(ur.Configuration),n={...eG,properties:{[Yb]:{type:["string","null"],default:null,enum:[...this.userDataProfilesService.profiles.map(o=>o.name),null],enumItemLabels:[...this.userDataProfilesService.profiles.map(()=>""),p(4652,null)],description:p(4654,null),scope:1}}};this.configurationNode?e.updateConfigurations({add:[n],remove:[this.configurationNode]}):e.registerConfiguration(n),this.configurationNode=n}setNewWindowProfile(){let e=this.configurationService.getValue(Yb);this.newWindowProfile=e?this.userDataProfilesService.profiles.find(n=>n.name===e):void 0}checkAndResetNewWindowProfileConfig(){let e=this.configurationService.getValue(Yb);if(!e)return;let n=this.newWindowProfile?this.userDataProfilesService.profiles.find(o=>o.id===this.newWindowProfile.id):void 0;e!==n?.name&&this.configurationService.updateValue(Yb,n?.name)}};Uw=_([C(0,lH),C(1,sn)],Uw);var Rat=R("editorResolverService");var nG=gt.as(ur.Configuration),oG={...SB,properties:{"workbench.editorAssociations":{type:"object",markdownDescription:p(17104,null),additionalProperties:{type:"string"}}}};nG.registerConfiguration(oG);function CB(r,t){if(new Set([V.extension,V.webviewPanel,V.vscodeWorkspaceTrust,V.vscodeSettings]).has(t.scheme))return!1;let o=typeof r=="string"&&r.indexOf(ze.sep)>=0?`${t.scheme}:${t.path}`:qt(t);return Br(r,o,{ignoreCase:!0})}var Hw=class r{constructor(t,e,n,o,i,s,a){this._textDocumentsAndEditors=n;this._textDocuments=o;this._extHostFileSystem=i;this._extHostSearch=s;this._logService=a;this._notebookStatusBarItemProviders=new Map;this._documents=new Ge;this._editors=new Map;this._onDidChangeActiveNotebookEditor=new T;this.onDidChangeActiveNotebookEditor=this._onDidChangeActiveNotebookEditor.event;this._visibleNotebookEditors=[];this._onDidOpenNotebookDocument=new T;this.onDidOpenNotebookDocument=this._onDidOpenNotebookDocument.event;this._onDidCloseNotebookDocument=new T;this.onDidCloseNotebookDocument=this._onDidCloseNotebookDocument.event;this._onDidChangeVisibleNotebookEditors=new T;this.onDidChangeVisibleNotebookEditors=this._onDidChangeVisibleNotebookEditors.event;this._statusBarCache=new Lo("NotebookCellStatusBarCache");this._handlePool=0;this._notebookSerializer=new Map;this._notebookProxy=t.getProxy(U.MainThreadNotebook),this._notebookDocumentsProxy=t.getProxy(U.MainThreadNotebookDocuments),this._notebookEditorsProxy=t.getProxy(U.MainThreadNotebookEditors),this._commandsConverter=e.converter,e.registerArgumentProcessor({processArgument:l=>{if(l&&l.$mid===13){let d=l.notebookEditor?.notebookUri,c=l.cell.handle,m=this._documents.get(d)?.getCell(c);if(m)return m.apiCell}if(l&&l.$mid===14){let d=l.uri,c=this._documents.get(d);if(c)return c.apiNotebook}return l}}),r._registerApiCommands(e)}static{this._notebookStatusBarItemProviderHandlePool=0}get activeNotebookEditor(){return this._activeNotebookEditor?.apiEditor}get visibleNotebookEditors(){return this._visibleNotebookEditors.map(t=>t.apiEditor)}getEditorById(t){let e=this._editors.get(t);if(!e)throw new Error(`unknown text editor: ${t}. known editors: ${[...this._editors.keys()]} `);return e}getIdByEditor(t){for(let[e,n]of this._editors)if(n.apiEditor===t)return e}get notebookDocuments(){return[...this._documents.values()]}getNotebookDocument(t,e){let n=this._documents.get(t);if(!n&&!e)throw new Error(`NO notebook document for '${t}'`);return n}static _convertNotebookRegistrationData(t,e){if(!e)return;let n=e.filenamePattern.map(o=>Fv.from(o)).filter(o=>o!==void 0);if(e.filenamePattern&&!n){console.warn(`Notebook content provider view options file name pattern is invalid ${e.filenamePattern}`);return}return{extension:t.identifier,providerDisplayName:t.displayName||t.name,displayName:e.displayName,filenamePattern:n,priority:e.exclusive?"exclusive":void 0}}registerNotebookCellStatusBarItemProvider(t,e,n){let o=r._notebookStatusBarItemProviderHandlePool++,i=typeof n.onDidChangeCellStatusBarItems=="function"?r._notebookStatusBarItemProviderHandlePool++:void 0;this._notebookStatusBarItemProviders.set(o,n),this._notebookProxy.$registerNotebookCellStatusBarItemProvider(o,i,e);let s;return i!==void 0&&(s=n.onDidChangeCellStatusBarItems(a=>this._notebookProxy.$emitCellStatusBarEvent(i))),new be(()=>{this._notebookStatusBarItemProviders.delete(o),this._notebookProxy.$unregisterNotebookCellStatusBarItemProvider(o,i),s?.dispose()})}async createNotebookDocument(t){let e=await this._notebookDocumentsProxy.$tryCreateNotebook({viewType:t.viewType,content:t.content&&ed.from(t.content)});return y.revive(e)}async openNotebookDocument(t){let e=this._documents.get(t);if(e)return e.apiNotebook;let n=await this._notebookDocumentsProxy.$tryOpenNotebook(t),o=this._documents.get(y.revive(n));return oi(o?.apiNotebook)}async showNotebookDocument(t,e){let n;typeof e=="object"?n={position:Ut.from(e.viewColumn),preserveFocus:e.preserveFocus,selections:e.selections&&e.selections.map(wr.from),pinned:typeof e.preview=="boolean"?!e.preview:void 0,label:typeof e.asRepl=="string"?e.asRepl:typeof e.asRepl=="object"?e.asRepl.label:void 0}:n={preserveFocus:!1,pinned:!0};let o=e?.asRepl?"repl":t.notebookType,i=await this._notebookEditorsProxy.$tryShowNotebookDocument(t.uri,o,n),s=i&&this._editors.get(i)?.apiEditor;if(s)return s;throw i?new Error(`Could NOT open editor for "${t.uri.toString()}" because another editor opened in the meantime.`):new Error(`Could NOT open editor for "${t.uri.toString()}".`)}async $provideNotebookCellStatusBarItems(t,e,n,o){let i=this._notebookStatusBarItemProviders.get(t),s=y.revive(e),a=this._documents.get(s);if(!a||!i)return;let l=a.getCellFromIndex(n);if(!l)return;let d=await i.provideCellStatusBarItems(l.apiCell,o);if(!d)return;let c=new $,u=this._statusBarCache.add([c]),g=(Array.isArray(d)?d:[d]).map(h=>v1.from(h,this._commandsConverter,c));return{cacheId:u,items:g}}$releaseNotebookCellStatusBarItems(t){this._statusBarCache.delete(t)}registerNotebookSerializer(t,e,n,o,i){if(Gi(e))throw new Error("viewType cannot be empty or just whitespace");let s=this._handlePool++;return this._notebookSerializer.set(s,{viewType:e,serializer:n,options:o}),this._notebookProxy.$registerNotebookSerializer(s,{id:t.identifier,location:t.extensionLocation},e,y1.from(o),r._convertNotebookRegistrationData(t,i)),G(()=>{this._notebookProxy.$unregisterNotebookSerializer(s)})}async $dataToNotebook(t,e,n){let o=this._notebookSerializer.get(t);if(!o)throw new Error("NO serializer found");let i=await o.serializer.deserializeNotebook(e.buffer,n);return new $t(ed.from(i))}async $notebookToData(t,e,n){let o=this._notebookSerializer.get(t);if(!o)throw new Error("NO serializer found");let i=await o.serializer.serializeNotebook(ed.to(e.value),n);return W.wrap(i)}async $saveNotebook(t,e,n,o,i){let s=y.revive(e),a=this._notebookSerializer.get(t);this.trace(`enter saveNotebook(versionId: ${n}, ${s.toString()})`);try{if(!a)throw new Xb("NO serializer found");let l=this._documents.get(s);if(!l)throw new Xb("Document NOT found");if(l.versionId!==n)throw new Xb("Document version mismatch, expected: "+n+", actual: "+l.versionId);if(!this._extHostFileSystem.value.isWritableFileSystem(s.scheme))throw new ml(p(3320,null,this._resourceForError(s)),6);let d={metadata:s_(l.apiNotebook.metadata,h=>!(a.options?.transientDocumentMetadata??{})[h]),cells:[]};for(let h of l.apiNotebook.getCells()){let f=new cs(h.kind,h.document.getText(),h.document.languageId,h.mime,a.options?.transientOutputs?[]:[...h.outputs],h.metadata,h.executionSummary);f.metadata=s_(h.metadata,I=>!(a.options?.transientCellMetadata??{})[I]),d.cells.push(f)}if(await this._validateWriteFile(s,o),i.isCancellationRequested)throw new Be;let c=await a.serializer.serializeNotebook(d,i);if(i.isCancellationRequested)throw new Be;this.trace(`serialized versionId: ${n} ${s.toString()}`),await this._extHostFileSystem.value.writeFile(s,c),this.trace(`Finished write versionId: ${n} ${s.toString()}`);let u=this._extHostFileSystem.getFileSystemProviderExtUri(s.scheme),m=await this._extHostFileSystem.value.stat(s),g={name:u.basename(s),isFile:(m.type&1)!==0,isDirectory:(m.type&2)!==0,isSymbolicLink:(m.type&64)!==0,mtime:m.mtime,ctime:m.ctime,size:m.size,readonly:!!((m.permissions??0)&1)||!this._extHostFileSystem.value.isWritableFileSystem(s.scheme),locked:!!((m.permissions??0)&2),executable:!!((m.permissions??0)&4),etag:ID({mtime:m.mtime,size:m.size})};return this.trace(`exit saveNotebook(versionId: ${n}, ${s.toString()})`),g}catch(l){if(l instanceof ml)return{...l,message:l.message};throw l}}async $searchInNotebooks(t,e,n,o,i){let s=this._notebookSerializer.get(t)?.serializer;if(!s)return{limitHit:!1,results:[]};let a=new Rr;await(async(m,g,h)=>{await Promise.all(m.map(async f=>await Promise.all(f.filenamePatterns.map(I=>{let S={_reason:h._reason,folderQueries:h.folderQueries,includePattern:h.includePattern,excludePattern:h.excludePattern,maxResults:h.maxResults,type:1,filePattern:I};return this._extHostSearch.doInternalFileSearchWithCustomCallback(S,g,E=>{E.forEach(P=>{a.has(P)||o.some(j=>f.isFromSettings&&!j.isFromSettings?!1:j.filenamePatterns.some(F=>CB(F,P)))||a.add(P)})}).catch(E=>{if(E.code==="ENOENT")return console.warn("Could not find notebook search results, ignoring notebook results."),{limitHit:!1,messages:[]};throw E})}))))})(n,i,e);let d=new Ge,c=!1,u=Array.from(a).map(async m=>{let g=[];try{if(i.isCancellationRequested)return;if(e.maxResults&&[...d.values()].reduce((S,E)=>S+E.cellResults.length,0)>e.maxResults){c=!0;return}let h=[],f=this._documents.get(m);if(f)f.apiNotebook.getCells().forEach(E=>h.push({input:E.document.getText(),outputs:E.outputs.flatMap(P=>P.items.map(L=>L.data.toString()))}));else{let S=await this._extHostFileSystem.value.readFile(m),E=W.fromString(S.toString()),P=await s.deserializeNotebook(E.buffer,i);if(i.isCancellationRequested)return;ed.from(P).cells.forEach(j=>h.push({input:j.source,outputs:j.outputs.flatMap(F=>F.items.map(z=>z.valueBytes.toString()))}))}if(i.isCancellationRequested)return;h.forEach((S,E)=>{let P=e.contentPattern.pattern,L=new Lw(S.input,void 0,S.outputs),j=L.findInInputs(P),F=L.findInOutputs(P),z=F.flatMap(J=>NL(J.matches,J.textBuffer)).map((J,Y)=>(J.webviewIndex=Y,J));if(j.length>0||F.length>0){let J={index:E,contentResults:NL(j,L.inputTextBuffer),webviewResults:z};g.push(J)}});let I={resource:m,cellResults:g};d.set(m,I);return}catch{return}});return await Promise.all(u),{limitHit:c,results:[...d.values()]}}async _validateWriteFile(t,e){let n=await this._extHostFileSystem.value.stat(t);if(typeof e?.mtime=="number"&&typeof e.etag=="string"&&e.etag!==yF&&typeof n.mtime=="number"&&typeof n.size=="number"&&e.mtime<n.mtime&&e.etag!==ID({mtime:e.mtime,size:n.size}))throw new ml(p(3321,null),3,e)}_resourceForError(t){return t.scheme===V.file?t.fsPath:t.toString()}_createExtHostEditor(t,e,n){if(this._editors.has(e))throw new Error(`editor with id ALREADY EXSIST: ${e}`);let o=new wu(e,this._notebookEditorsProxy,t,n.visibleRanges.map(wr.to),n.selections.map(wr.to),typeof n.viewColumn=="number"?Ut.to(n.viewColumn):void 0,n.viewType);this._editors.set(e,o)}$acceptDocumentAndEditorsDelta(t){if(t.value.removedDocuments)for(let n of t.value.removedDocuments){let o=y.revive(n),i=this._documents.get(o);i&&(i.dispose(),this._documents.delete(o),this._textDocumentsAndEditors.$acceptDocumentsAndEditorsDelta({removedDocuments:i.apiNotebook.getCells().map(s=>s.document.uri)}),this._onDidCloseNotebookDocument.fire(i.apiNotebook));for(let s of this._editors.values())s.notebookData.uri.toString()===o.toString()&&this._editors.delete(s.id)}if(t.value.addedDocuments){let n=[];for(let o of t.value.addedDocuments){let i=y.revive(o.uri);if(this._documents.has(i))throw new Error(`adding EXISTING notebook ${i} `);let s=new kw(this._notebookDocumentsProxy,this._textDocumentsAndEditors,this._textDocuments,i,o);n.push(...o.cells.map(a=>Sf.asModelAddData(a))),this._documents.get(i)?.dispose(),this._documents.set(i,s),this._textDocumentsAndEditors.$acceptDocumentsAndEditorsDelta({addedDocuments:n}),this._onDidOpenNotebookDocument.fire(s.apiNotebook)}}if(t.value.addedEditors)for(let n of t.value.addedEditors){if(this._editors.has(n.id))return;let o=y.revive(n.documentUri),i=this._documents.get(o);i&&this._createExtHostEditor(i,n.id,n)}let e=[];if(t.value.removedEditors)for(let n of t.value.removedEditors){let o=this._editors.get(n);o&&(this._editors.delete(n),this._activeNotebookEditor?.id===o.id&&(this._activeNotebookEditor=void 0),e.push(o))}if(t.value.visibleEditors){this._visibleNotebookEditors=t.value.visibleEditors.map(o=>this._editors.get(o)).filter(o=>!!o);let n=new Set;this._visibleNotebookEditors.forEach(o=>n.add(o.id));for(let o of this._editors.values()){let i=n.has(o.id);o._acceptVisibility(i)}this._visibleNotebookEditors=[...this._editors.values()].map(o=>o).filter(o=>o.visible),this._onDidChangeVisibleNotebookEditors.fire(this.visibleNotebookEditors)}t.value.newActiveEditor===null?this._activeNotebookEditor=void 0:t.value.newActiveEditor&&(this._editors.get(t.value.newActiveEditor)||console.error(`FAILED to find active notebook editor ${t.value.newActiveEditor}`),this._activeNotebookEditor=this._editors.get(t.value.newActiveEditor)),t.value.newActiveEditor!==void 0&&this._onDidChangeActiveNotebookEditor.fire(this._activeNotebookEditor?.apiEditor)}static _registerApiCommands(t){let e=Z.String.with("notebookType","A notebook type"),n=new De("vscode.executeDataToNotebook","_executeDataToNotebook","Invoke notebook serializer",[e,new Z("data","Bytes to convert to data",i=>i instanceof Uint8Array,i=>W.wrap(i))],new we("Notebook Data",i=>ed.to(i.value))),o=new De("vscode.executeNotebookToData","_executeNotebookToData","Invoke notebook serializer",[e,new Z("NotebookData","Notebook data to convert to bytes",i=>!0,i=>new $t(ed.from(i)))],new we("Bytes",i=>i.buffer));t.registerApiCommand(n),t.registerApiCommand(o)}trace(t){this._logService.trace(`[Extension Host Notebook] ${t}`)}},Xb=class extends Error{constructor(t){super(t),this.name="NotebookSaveError"}};var Ww=class{constructor(t,e,n,o={timeout:1500,errors:3}){this._logService=t;this._notebooksAndEditors=e;this._mainThreadBulkEdits=n;this._thresholds=o;this._onWillSaveNotebookDocumentEvent=new Ki}dispose(){}getOnWillSaveNotebookDocumentEvent(t){return(e,n,o)=>{let i=function(a){e.call(n,a)};return i.extension=t,this._onWillSaveNotebookDocumentEvent.event(i,void 0,o)}}async $participateInSave(t,e,n){let o=y.revive(t),i=this._notebooksAndEditors.getNotebookDocument(o);if(!i)throw new Error("Unable to resolve notebook document");let s=[];if(await this._onWillSaveNotebookDocumentEvent.fireAsync({notebook:i.apiNotebook,reason:Ov.to(e)},n,async(l,d)=>{let c=Date.now(),u=await await Promise.resolve(l);Date.now()-c>this._thresholds.timeout&&this._logService.warn("onWillSaveNotebookDocument-listener from extension",d.extension.identifier),!n.isCancellationRequested&&u&&(u instanceof pr?s.push(u):this._logService.warn("onWillSaveNotebookDocument-listener from extension",d.extension.identifier,"ignored due to invalid data"))}),n.isCancellationRequested)return!1;if(s.length===0)return!0;let a={edits:[]};for(let l of s){let{edits:d}=so.from(l);a.edits=a.edits.concat(d)}return this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(new $t(a))}};var Vw=class{constructor(t){this._notebooksAndEditors=t;this._onDidSaveNotebookDocument=new T;this.onDidSaveNotebookDocument=this._onDidSaveNotebookDocument.event;this._onDidChangeNotebookDocument=new T;this.onDidChangeNotebookDocument=this._onDidChangeNotebookDocument.event}$acceptModelChanged(t,e,n,o){let s=this._notebooksAndEditors.getNotebookDocument(y.revive(t)).acceptModelChanged(e.value,n,o);this._onDidChangeNotebookDocument.fire(s)}$acceptDirtyStateChanged(t,e){this._notebooksAndEditors.getNotebookDocument(y.revive(t)).acceptDirty(e)}$acceptModelSaved(t){let e=this._notebooksAndEditors.getNotebookDocument(y.revive(t));this._onDidSaveNotebookDocument.fire(e.apiNotebook)}};var Tf=class{constructor(t,e){this._logService=t;this._notebooksAndEditors=e;this._onDidChangeNotebookEditorSelection=new T;this._onDidChangeNotebookEditorVisibleRanges=new T;this.onDidChangeNotebookEditorSelection=this._onDidChangeNotebookEditorSelection.event;this.onDidChangeNotebookEditorVisibleRanges=this._onDidChangeNotebookEditorVisibleRanges.event}$acceptEditorPropertiesChanged(t,e){this._logService.debug("ExtHostNotebook#$acceptEditorPropertiesChanged",t,e);let n=this._notebooksAndEditors.getEditorById(t);e.visibleRanges&&n._acceptVisibleRanges(e.visibleRanges.ranges.map(wr.to)),e.selections&&n._acceptSelections(e.selections.selections.map(wr.to)),e.visibleRanges&&this._onDidChangeNotebookEditorVisibleRanges.fire({notebookEditor:n.apiEditor,visibleRanges:n.apiEditor.visibleRanges}),e.selections&&this._onDidChangeNotebookEditorSelection.fire(Object.freeze({notebookEditor:n.apiEditor,selections:n.apiEditor.selections}))}$acceptEditorViewColumns(t){for(let e in t)this._notebooksAndEditors.getEditorById(e)._acceptViewColumn(Ut.to(t[e]))}};Tf=_([C(0,oe)],Tf);var Blt=R("INotebookExecutionService");var TB=100;var qlt=R("INotebookKernelService"),Klt=R("INotebookKernelHistoryService");var Ef=class{constructor(t,e,n,o,i){this._initData=e;this._extHostNotebook=n;this._commands=o;this._logService=i;this._activeExecutions=new Ge;this._activeNotebookExecutions=new Ge;this._kernelDetectionTask=new Map;this._kernelDetectionTaskHandlePool=0;this._kernelSourceActionProviders=new Map;this._kernelSourceActionProviderHandlePool=0;this._kernelData=new Map;this._handlePool=0;this.id=0;this.variableStore={};this._proxy=t.getProxy(U.MainThreadNotebookKernels);let s=new De("notebook.selectKernel","_notebook.selectKernel","Trigger kernel picker for specified notebook editor widget",[new Z("options","Select kernel options",l=>!0,l=>{if(l&&"notebookEditor"in l&&"id"in l){let d=this._extHostNotebook.getIdByEditor(l.notebookEditor);return{id:l.id,extension:l.extension,notebookEditorId:d}}else if(l&&"notebookEditor"in l){let d=this._extHostNotebook.getIdByEditor(l.notebookEditor);if(d===void 0)throw new Error(`Cannot invoke 'notebook.selectKernel' for unrecognized notebook editor ${l.notebookEditor.notebook.uri.toString()}`);return"skipIfAlreadySelected"in l?{notebookEditorId:d,skipIfAlreadySelected:l.skipIfAlreadySelected}:{notebookEditorId:d}}return l})],we.Void),a=new De("vscode.executeNotebookVariableProvider","_executeNotebookVariableProvider","Execute notebook variable provider",[Z.Uri],new we("A promise that resolves to an array of variables",(l,d)=>l.map(c=>({variable:{name:c.name,value:c.value,expression:c.expression,type:c.type,language:c.language},hasNamedChildren:c.hasNamedChildren,indexedChildrenCount:c.indexedChildrenCount}))));this._commands.registerApiCommand(s),this._commands.registerApiCommand(a)}createNotebookController(t,e,n,o,i,s){for(let F of this._kernelData.values())if(F.controller.id===e&&_e.equals(t.identifier,F.extensionId))throw new Error(`notebook controller with id '${e}' ALREADY exist`);let a=this._handlePool++,l=this;this._logService.trace(`NotebookController[${a}], CREATED by ${t.identifier.value}, ${e}`);let d=()=>console.warn(`NO execute handler from notebook controller '${g.id}' of extension: '${t.identifier}'`),c=!1,u=new T,m=new T,g={id:Bw(t.identifier,e),notebookType:n,extensionId:t.identifier,extensionLocation:t.extensionLocation,label:o||t.identifier.value,preloads:s?s.map(DC.from):[]},h=i??d,f,I,S;this._proxy.$addKernel(a,g).catch(F=>{console.log(F),c=!0});let E=0,P=()=>{if(c)return;let F=++E;Promise.resolve().then(()=>{F===E&&this._proxy.$updateKernel(a,g)})},L=new Ge,j={get id(){return e},get notebookType(){return g.notebookType},onDidChangeSelectedNotebooks:u.event,get label(){return g.label},set label(F){g.label=F??t.displayName??t.name,P()},get detail(){return g.detail??""},set detail(F){g.detail=F,P()},get description(){return g.description??""},set description(F){g.description=F,P()},get supportedLanguages(){return g.supportedLanguages},set supportedLanguages(F){g.supportedLanguages=F,P()},get supportsExecutionOrder(){return g.supportsExecutionOrder??!1},set supportsExecutionOrder(F){g.supportsExecutionOrder=F,P()},get rendererScripts(){return g.preloads?g.preloads.map(DC.to):[]},get executeHandler(){return h},set executeHandler(F){h=F??d},get interruptHandler(){return f},set interruptHandler(F){f=F,g.supportsInterrupt=!!F,P()},set variableProvider(F){A(t,"notebookVariableProvider"),S?.dispose(),I=F,g.hasVariableProvider=!!F,S=F?.onDidChangeVariables(z=>l._proxy.$variablesUpdated(z.uri)),P()},get variableProvider(){return I},createNotebookCellExecution(F){if(c)throw new Error("notebook controller is DISPOSED");if(!L.has(F.notebook.uri))throw l._logService.trace(`NotebookController[${a}] NOT associated to notebook, associated to THESE notebooks:`,Array.from(L.keys()).map(z=>z.toString())),new Error(`notebook controller is NOT associated to notebook: ${F.notebook.uri.toString()}`);return l._createNotebookCellExecution(F,Bw(t.identifier,this.id))},createNotebookExecution(F){if(A(t,"notebookExecution"),c)throw new Error("notebook controller is DISPOSED");if(!L.has(F.uri))throw l._logService.trace(`NotebookController[${a}] NOT associated to notebook, associated to THESE notebooks:`,Array.from(L.keys()).map(z=>z.toString())),new Error(`notebook controller is NOT associated to notebook: ${F.uri.toString()}`);return l._createNotebookExecution(F,Bw(t.identifier,this.id))},dispose:()=>{c||(this._logService.trace(`NotebookController[${a}], DISPOSED`),c=!0,this._kernelData.delete(a),u.dispose(),m.dispose(),S?.dispose(),this._proxy.$removeKernel(a))},updateNotebookAffinity(F,z){z===-1&&A(t,"notebookControllerAffinityHidden"),l._proxy.$updateNotebookPriority(a,F.uri,z)},onDidReceiveMessage:m.event,postMessage(F,z){return A(t,"notebookMessaging"),l._proxy.$postMessage(a,z&&l._extHostNotebook.getIdByEditor(z),F)},asWebviewUri(F){return A(t,"notebookMessaging"),Cd(F,l._initData.remote)}};return this._kernelData.set(a,{extensionId:t.identifier,controller:j,onDidReceiveMessage:m,onDidChangeSelection:u,associatedNotebooks:L}),j}getIdByController(t){for(let[e,n]of this._kernelData)if(n.controller===t)return Bw(n.extensionId,t.id);return null}createNotebookControllerDetectionTask(t,e){let n=this._kernelDetectionTaskHandlePool++,o=this;this._logService.trace(`NotebookControllerDetectionTask[${n}], CREATED by ${t.identifier.value}`),this._proxy.$addKernelDetectionTask(n,e);let i={dispose:()=>{this._kernelDetectionTask.delete(n),o._proxy.$removeKernelDetectionTask(n)}};return this._kernelDetectionTask.set(n,i),i}registerKernelSourceActionProvider(t,e,n){let o=this._kernelSourceActionProviderHandlePool++,i=typeof n.onDidChangeNotebookKernelSourceActions=="function"?o:void 0,s=this;this._kernelSourceActionProviders.set(o,n),this._logService.trace(`NotebookKernelSourceActionProvider[${o}], CREATED by ${t.identifier.value}`),this._proxy.$addKernelSourceActionProvider(o,o,e);let a;return i!==void 0&&(a=n.onDidChangeNotebookKernelSourceActions(l=>this._proxy.$emitNotebookKernelSourceActionsChangeEvent(i))),{dispose:()=>{this._kernelSourceActionProviders.delete(o),s._proxy.$removeKernelSourceActionProvider(o,o),a?.dispose()}}}async $provideKernelSourceActions(t,e){let n=this._kernelSourceActionProviders.get(t);if(n){let o=new $;return(await n.provideNotebookKernelSourceActions(e)??[]).map(s=>b1.from(s,this._commands.converter,o))}return[]}$acceptNotebookAssociation(t,e,n){let o=this._kernelData.get(t);if(o){let i=this._extHostNotebook.getNotebookDocument(y.revive(e));n?o.associatedNotebooks.set(i.uri,!0):o.associatedNotebooks.delete(i.uri),this._logService.trace(`NotebookController[${t}] ASSOCIATE notebook`,i.uri.toString(),n),o.onDidChangeSelection.fire({selected:n,notebook:i.apiNotebook})}}async $executeCells(t,e,n){let o=this._kernelData.get(t);if(!o)return;let i=this._extHostNotebook.getNotebookDocument(y.revive(e)),s=[];for(let a of n){let l=i.getCell(a);l&&s.push(l.apiCell)}try{this._logService.trace(`NotebookController[${t}] EXECUTE cells`,i.uri.toString(),s.length),await o.controller.executeHandler.call(o.controller,s,i.apiNotebook,o.controller)}catch(a){this._logService.error(`NotebookController[${t}] execute cells FAILED`,a),console.error(a)}}async $cancelCells(t,e,n){let o=this._kernelData.get(t);if(!o)return;let i=this._extHostNotebook.getNotebookDocument(y.revive(e));if(o.controller.interruptHandler)await o.controller.interruptHandler.call(o.controller,i.apiNotebook);else for(let s of n){let a=i.getCell(s);a&&this._activeExecutions.get(a.uri)?.cancel()}if(o.controller.interruptHandler){let s=this._activeNotebookExecutions.get(i.uri);this._activeNotebookExecutions.delete(i.uri),n.length&&Array.isArray(s)&&s.length&&s.forEach(a=>a.dispose())}}async $provideVariables(t,e,n,o,i,s,a){let l=this._kernelData.get(t);if(!l)return;let d=this._extHostNotebook.getNotebookDocument(y.revive(n)),c=l.controller.variableProvider;if(!c)return;let u;if(o!==void 0){if(u=this.variableStore[o],!u)return}else this.variableStore={};let m=i==="named"?1:2,g=c.provideVariables(d.apiNotebook,u,m,s,a),h=0;for await(let f of g){if(a.isCancellationRequested)return;let I={id:this.id++,name:f.variable.name,value:f.variable.value,type:f.variable.type,interfaces:f.variable.interfaces,language:f.variable.language,expression:f.variable.expression,hasNamedChildren:f.hasNamedChildren,indexedChildrenCount:f.indexedChildrenCount,extensionId:l.extensionId.value};if(this.variableStore[I.id]=f.variable,this._proxy.$receiveVariable(e,I),h++>=TB)return}}$acceptKernelMessageFromRenderer(t,e,n){let o=this._kernelData.get(t);if(!o)return;let i=this._extHostNotebook.getEditorById(e);o.onDidReceiveMessage.fire(Object.freeze({editor:i.apiEditor,message:n}))}_createNotebookCellExecution(t,e){if(t.index<0)throw new Error("CANNOT execute cell that has been REMOVED from notebook");let o=this._extHostNotebook.getNotebookDocument(t.notebook.uri).getCellFromApiCell(t);if(!o)throw new Error("invalid cell");if(this._activeExecutions.has(o.uri))throw new Error(`duplicate execution for ${o.uri}`);let i=new FL(e,o,this._proxy);this._activeExecutions.set(o.uri,i);let s=i.onDidChangeState(()=>{i.state===2&&(i.dispose(),s.dispose(),this._activeExecutions.delete(o.uri))});return i.asApiObject()}_createNotebookExecution(t,e){let n=this._extHostNotebook.getNotebookDocument(t.uri),o=t.getCells().find(a=>{let l=n.getCellFromApiCell(a);return l&&this._activeExecutions.has(l.uri)});if(o)throw new Error(`duplicate cell execution for ${o.document.uri}`);if(this._activeNotebookExecutions.has(n.uri))throw new Error(`duplicate notebook execution for ${n.uri}`);let i=new HL(e,n,this._proxy),s=i.onDidChangeState(()=>{i.state===2&&(i.dispose(),s.dispose(),this._activeNotebookExecutions.delete(n.uri))});return this._activeNotebookExecutions.set(n.uri,[i,s]),i.asApiObject()}};Ef=_([C(4,oe)],Ef);var FL=class r extends O{constructor(e,n,o){super();this._cell=n;this._proxy=o;this._handle=r.HANDLE++;this._onDidChangeState=this._register(new T);this.onDidChangeState=this._onDidChangeState.event;this._state=0;this._tokenSource=this._register(new Ce);this._collector=new WL(10,i=>this.update(i)),this._executionOrder=n.internalMetadata.executionOrder,this._proxy.$createExecution(this._handle,e,this._cell.notebook.uri,this._cell.handle)}static{this.HANDLE=0}get state(){return this._state}cancel(){this._tokenSource.cancel()}async updateSoon(e){await this._collector.addItem(e)}async update(e){let n=Array.isArray(e)?e:[e];return this._proxy.$updateExecution(this._handle,new $t(n))}verifyStateForOutput(){if(this._state===0)throw new Error("Must call start before modifying cell output");if(this._state===2)throw new Error("Cannot modify cell output after calling resolve")}cellIndexToHandle(e){let n=this._cell;if(e&&(n=this._cell.notebook.getCellFromApiCell(e)),!n)throw new Error("INVALID cell");return n.handle}validateAndConvertOutputs(e){return e.map(n=>{let o=us.ensureUniqueMimeTypes(n.items,!0);return o===n.items?wa.from(n):wa.from({items:o,id:n.id,metadata:n.metadata})})}async updateOutputs(e,n,o){let i=this.cellIndexToHandle(n),s=this.validateAndConvertOutputs(Un(e));return this.updateSoon({editType:1,cellHandle:i,append:o,outputs:s})}async updateOutputItems(e,n,o){return e=us.ensureUniqueMimeTypes(Un(e),!0),this.updateSoon({editType:2,items:e.map(jc.from),outputId:n.id,append:o})}asApiObject(){let e=this;return Object.freeze({get token(){return e._tokenSource.token},get cell(){return e._cell.apiCell},get executionOrder(){return e._executionOrder},set executionOrder(o){e._executionOrder=o,e.update([{editType:3,executionOrder:e._executionOrder}])},start(o){if(e._state===2||e._state===1)throw new Error("Cannot call start again");e._state=1,e._onDidChangeState.fire(),e.update({editType:3,runStartTime:o})},end(o,i,s){if(e._state===2)throw new Error("Cannot call resolve twice");e._state=2,e._onDidChangeState.fire(),e._collector.flush();let a=rG(s);e._proxy.$completeExecution(e._handle,new $t({runEndTime:i,lastRunSuccess:o,error:a}))},clearOutput(o){return e.verifyStateForOutput(),e.updateOutputs([],o,!1)},appendOutput(o,i){return e.verifyStateForOutput(),e.updateOutputs(o,i,!0)},replaceOutput(o,i){return e.verifyStateForOutput(),e.updateOutputs(o,i,!1)},appendOutputItems(o,i){return e.verifyStateForOutput(),e.updateOutputItems(o,i,!0)},replaceOutputItems(o,i){return e.verifyStateForOutput(),e.updateOutputItems(o,i,!1)}})}};function rG(r){let t=o=>o?{startLineNumber:o.start.line,startColumn:o.start.character,endLineNumber:o.end.line,endColumn:o.end.character}:void 0,e=o=>({uri:o.uri,position:o.position,label:o.label});return r?{name:r.name,message:r.message,stack:r.stack instanceof Array?r.stack.map(o=>e(o)):r.stack,location:t(r.location),uri:r.uri}:void 0}var HL=class r extends O{constructor(e,n,o){super();this._notebook=n;this._proxy=o;this._handle=r.HANDLE++;this._onDidChangeState=this._register(new T);this.onDidChangeState=this._onDidChangeState.event;this._state=0;this._tokenSource=this._register(new Ce);this._proxy.$createNotebookExecution(this._handle,e,this._notebook.uri)}static{this.HANDLE=0}get state(){return this._state}cancel(){this._tokenSource.cancel()}asApiObject(){return Object.freeze({start:()=>{if(this._state===2||this._state===1)throw new Error("Cannot call start again");this._state=1,this._onDidChangeState.fire(),this._proxy.$beginNotebookExecution(this._handle)},end:()=>{if(this._state===2)throw new Error("Cannot call resolve twice");this._state=2,this._onDidChangeState.fire(),this._proxy.$completeNotebookExecution(this._handle)}})}},WL=class{constructor(t,e){this.delay=t;this.callback=e;this.batch=[];this.startedTimer=Date.now()}addItem(t){return this.batch.push(t),this.currentDeferred||(this.currentDeferred=new Kt,this.startedTimer=Date.now(),Lt(this.delay).then(()=>this.flush())),Date.now()-this.startedTimer>this.delay?this.flush():this.currentDeferred.p}flush(){if(this.batch.length===0||!this.currentDeferred)return Promise.resolve();let t=this.currentDeferred;this.currentDeferred=void 0;let e=this.batch;return this.batch=[],this.callback(e).finally(()=>t.complete())}};function Bw(r,t){return`${r.value}/${t}`}var $w=class{constructor(t,e){this._extHostNotebook=e;this._rendererMessageEmitters=new Map;this.proxy=t.getProxy(U.MainThreadNotebookRenderers)}$postRendererMessage(t,e,n){let o=this._extHostNotebook.getEditorById(t);this._rendererMessageEmitters.get(e)?.fire({editor:o.apiEditor,message:n})}createRendererMessaging(t,e){if(!t.contributes?.notebookRenderer?.some(o=>o.id===e))throw new Error(`Extensions may only call createRendererMessaging() for renderers they contribute (got ${e})`);return{onDidReceiveMessage:(o,i,s)=>this.getOrCreateEmitterFor(e).event(o,i,s),postMessage:(o,i)=>{wu.apiEditorsToExtHost.has(o)&&([o,i]=[i,o]);let s=i&&wu.apiEditorsToExtHost.get(i);return this.proxy.$postMessage(s?.id,e,o)}}}getOrCreateEmitterFor(t){let e=this._rendererMessageEmitters.get(t);return e||(e=new T({onDidRemoveLastListener:()=>{e?.dispose(),this._rendererMessageEmitters.delete(t)}}),this._rendererMessageEmitters.set(t,e),e)}};var zw=class{constructor(t){this.handlers=new Map;this.proxy=t.getProxy(U.MainThreadProfileContentHandlers)}registerProfileContentHandler(t,e,n){if(A(t,"profileContentHandlers"),this.handlers.has(e))throw new Error(`Handler with id '${e}' already registered`);return this.handlers.set(e,n),this.proxy.$registerProfileContentHandler(e,n.name,n.description,t.identifier.value),G(()=>{this.handlers.delete(e),this.proxy.$unregisterProfileContentHandler(e)})}async $saveProfile(t,e,n,o){let i=this.handlers.get(t);if(!i)throw new Error(`Unknown handler with id: ${t}`);return i.saveProfile(e,n,o)}async $readProfile(t,e,n){let o=this.handlers.get(t);if(!o)throw new Error(`Unknown handler with id: ${t}`);return o.readProfile(Pe(e)?e:y.revive(e),n)}};var qw=class r{constructor(t,e){this.uriTransformer=e;this.providers=new Map;this.proxy=t.getProxy(U.MainThreadQuickDiff)}static{this.handlePool=0}$provideOriginalResource(t,e,n){let o=y.revive(e),i=this.providers.get(t);return i?pn(()=>i.provideOriginalResource(o,n)).then(s=>s||null):Promise.resolve(null)}registerQuickDiffProvider(t,e,n,o,i,s){let a=r.handlePool++;this.providers.set(a,n);let l=_e.toKey(t.identifier);return this.proxy.$registerQuickDiffProvider(a,Di.from(e,this.uriTransformer),`${l}.${o}`,i,s),{dispose:()=>{this.proxy.$unregisterQuickDiffProvider(a),this.providers.delete(a)}}}};function EB(r,t,e){let n=r.getProxy(U.MainThreadQuickOpen);class o{constructor(d,c){this._sessions=new Map;this._instances=0;this._workspace=d,this._commands=c}showQuickPick(d,c,u,m=he.None){this._onDidSelectItem=void 0;let g=Promise.resolve(c),h=++this._instances,f=n.$show(h,{title:u?.title,placeHolder:u?.placeHolder,prompt:u?.prompt,matchOnDescription:u?.matchOnDescription,matchOnDetail:u?.matchOnDetail,ignoreFocusLost:u?.ignoreFocusOut,canPickMany:u?.canPickMany},m),I={},S=f.then(()=>I);return Promise.race([S,g]).then(E=>{if(E!==I)return g.then(P=>{let L=[];for(let j=0;j<P.length;j++){let F=P[j];typeof F=="string"?L.push({label:F,handle:j}):F.kind===-1?L.push({type:"separator",label:F.label}):(F.tooltip&&A(d,"quickPickItemTooltip"),L.push({label:F.label,iconPathDto:Ri.from(F.iconPath),description:F.description,detail:F.detail,picked:F.picked,alwaysShow:F.alwaysShow,tooltip:me.fromStrict(F.tooltip),resourceUri:F.resourceUri,handle:j}))}return u&&typeof u.onDidSelectItem=="function"&&(this._onDidSelectItem=j=>{u.onDidSelectItem(P[j])}),n.$setItems(h,L),f.then(j=>{if(typeof j=="number")return P[j];if(Array.isArray(j))return j.map(F=>P[F])})})}).then(void 0,E=>{if(!zt(E))return n.$setError(h,E),Promise.reject(E)})}$onItemSelected(d){this._onDidSelectItem?.(d)}showInput(d,c=he.None){return this._validateInput=d?.validateInput,n.$input(d,typeof this._validateInput=="function",c).then(void 0,u=>{if(!zt(u))return Promise.reject(u)})}async $validateInput(d){if(!this._validateInput)return;let c=await this._validateInput(d);if(!c||typeof c=="string")return c;let u;switch(c.severity){case 1:u=Xe.Info;break;case 2:u=Xe.Warning;break;case 3:u=Xe.Error;break;default:u=c.message?Xe.Error:Xe.Ignore;break}return{content:c.message,severity:u}}async showWorkspaceFolderPick(d,c=he.None){let u=await this._commands.executeCommand("_workbench.pickWorkspaceFolder",[d]);if(!u)return;let m=await this._workspace.getWorkspaceFolders2();if(m)return m.find(g=>g.uri.toString()===u.uri.toString())}createQuickPick(d){let c=new s(d,()=>this._sessions.delete(c._id));return this._sessions.set(c._id,c),c}createInputBox(d){let c=new a(d,()=>this._sessions.delete(c._id));return this._sessions.set(c._id,c),c}$onDidChangeValue(d,c){this._sessions.get(d)?._fireDidChangeValue(c)}$onDidAccept(d){this._sessions.get(d)?._fireDidAccept()}$onDidChangeActive(d,c){let u=this._sessions.get(d);u instanceof s&&u._fireDidChangeActive(c)}$onDidChangeSelection(d,c){let u=this._sessions.get(d);u instanceof s&&u._fireDidChangeSelection(c)}$onDidTriggerButton(d,c,u){this._sessions.get(d)?._fireDidTriggerButton(c,u)}$onDidTriggerItemButton(d,c,u,m){let g=this._sessions.get(d);g instanceof s&&g._fireDidTriggerItemButton(c,u,m)}$onDidHide(d){this._sessions.get(d)?._fireDidHide()}}class i{constructor(d,c){this._extension=d;this._onDidDispose=c;this._id=s._nextId++;this._visible=!1;this._expectingHide=!1;this._enabled=!0;this._busy=!1;this._ignoreFocusOut=!0;this._value="";this._valueSelection=void 0;this._buttons=[];this._handlesToButtons=new Map;this._onDidAcceptEmitter=new T;this._onDidChangeValueEmitter=new T;this._onDidTriggerButtonEmitter=new T;this._onDidHideEmitter=new T;this._pendingUpdate={id:this._id};this._disposed=!1;this._disposables=[this._onDidTriggerButtonEmitter,this._onDidHideEmitter,this._onDidAcceptEmitter,this._onDidChangeValueEmitter];this.onDidChangeValue=this._onDidChangeValueEmitter.event;this.onDidAccept=this._onDidAcceptEmitter.event;this.onDidTriggerButton=this._onDidTriggerButtonEmitter.event;this.onDidHide=this._onDidHideEmitter.event}static{this._nextId=1}get title(){return this._title}set title(d){this._title=d,this.update({title:d})}get step(){return this._steps}set step(d){this._steps=d,this.update({step:d})}get totalSteps(){return this._totalSteps}set totalSteps(d){this._totalSteps=d,this.update({totalSteps:d})}get enabled(){return this._enabled}set enabled(d){this._enabled=d,this.update({enabled:d})}get busy(){return this._busy}set busy(d){this._busy=d,this.update({busy:d})}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(d){this._ignoreFocusOut=d,this.update({ignoreFocusOut:d})}get value(){return this._value}set value(d){this._value=d,this.update({value:d})}get valueSelection(){return this._valueSelection}set valueSelection(d){this._valueSelection=d,this.update({valueSelection:d})}get placeholder(){return this._placeholder}set placeholder(d){this._placeholder=d,this.update({placeholder:d})}get buttons(){return this._buttons}set buttons(d){this._buttons=d.slice(),this._handlesToButtons.clear(),d.forEach((c,u)=>{let m=c===ps.Back?-1:u;this._handlesToButtons.set(m,c)}),this.update({buttons:d.map((c,u)=>({iconPathDto:Ri.from(c.iconPath),tooltip:c.tooltip,handle:c===ps.Back?-1:u,location:typeof c.location=="number"?c.location:void 0,toggle:typeof c.toggle=="object"&&typeof c.toggle.checked=="boolean"?{checked:c.toggle.checked}:void 0}))})}show(){this._visible=!0,this._expectingHide=!0,this.update({visible:!0})}hide(){this._visible=!1,this.update({visible:!1})}_fireDidAccept(){this._onDidAcceptEmitter.fire()}_fireDidChangeValue(d){this._value=d,this._onDidChangeValueEmitter.fire(d)}_fireDidTriggerButton(d,c){let u=this._handlesToButtons.get(d);u&&(c!==void 0&&u.toggle&&(u.toggle.checked=c),this._onDidTriggerButtonEmitter.fire(u))}_fireDidHide(){this._expectingHide&&(this._expectingHide=this._visible,this._onDidHideEmitter.fire())}dispose(){this._disposed||(this._disposed=!0,this._fireDidHide(),this._disposables=bn(this._disposables),this._updateTimeout&&(clearTimeout(this._updateTimeout),this._updateTimeout=void 0),this._onDidDispose(),n.$dispose(this._id))}update(d){if(!this._disposed){for(let c of Object.keys(d)){let u=d[c];this._pendingUpdate[c]=u===void 0?null:u}"visible"in this._pendingUpdate?(this._updateTimeout&&(clearTimeout(this._updateTimeout),this._updateTimeout=void 0),this.dispatchUpdate()):this._visible&&!this._updateTimeout&&(this._updateTimeout=setTimeout(()=>{this._updateTimeout=void 0,this.dispatchUpdate()},0))}}dispatchUpdate(){n.$createOrUpdate(this._pendingUpdate),this._pendingUpdate={id:this._id}}}class s extends i{constructor(c,u){super(c,u);this._items=[];this._handlesToItems=new Map;this._itemsToHandles=new Map;this._canSelectMany=!1;this._matchOnDescription=!0;this._matchOnDetail=!0;this._sortByLabel=!0;this._keepScrollPosition=!1;this._activeItems=[];this._onDidChangeActiveEmitter=new T;this._selectedItems=[];this._onDidChangeSelectionEmitter=new T;this._onDidTriggerItemButtonEmitter=new T;this.onDidChangeActive=this._onDidChangeActiveEmitter.event;this.onDidChangeSelection=this._onDidChangeSelectionEmitter.event;this.onDidTriggerItemButton=this._onDidTriggerItemButtonEmitter.event;this._disposables.push(this._onDidChangeActiveEmitter,this._onDidChangeSelectionEmitter,this._onDidTriggerItemButtonEmitter),this.update({type:"quickPick"})}get items(){return this._items}set items(c){this._items=c.slice(),this._handlesToItems.clear(),this._itemsToHandles.clear(),c.forEach((m,g)=>{this._handlesToItems.set(g,m),this._itemsToHandles.set(m,g)});let u=[];for(let m=0;m<c.length;m++){let g=c[m];g.kind===-1?u.push({type:"separator",label:g.label}):(g.tooltip&&A(this._extension,"quickPickItemTooltip"),u.push({handle:m,label:g.label,iconPathDto:Ri.from(g.iconPath),description:g.description,detail:g.detail,picked:g.picked,alwaysShow:g.alwaysShow,tooltip:me.fromStrict(g.tooltip),resourceUri:g.resourceUri,buttons:g.buttons?.map((h,f)=>({iconPathDto:Ri.from(h.iconPath),tooltip:h.tooltip,handle:f,toggle:typeof h.toggle=="object"&&typeof h.toggle.checked=="boolean"?{checked:h.toggle.checked}:void 0}))}))}this.update({items:u})}get canSelectMany(){return this._canSelectMany}set canSelectMany(c){this._canSelectMany=c,this.update({canSelectMany:c})}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(c){this._matchOnDescription=c,this.update({matchOnDescription:c})}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(c){this._matchOnDetail=c,this.update({matchOnDetail:c})}get sortByLabel(){return this._sortByLabel}set sortByLabel(c){this._sortByLabel=c,this.update({sortByLabel:c})}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(c){this._keepScrollPosition=c,this.update({keepScrollPosition:c})}get prompt(){return this._prompt}set prompt(c){this._prompt=c,this.update({prompt:c})}get activeItems(){return this._activeItems}set activeItems(c){this._activeItems=c.filter(u=>this._itemsToHandles.has(u)),this.update({activeItems:this._activeItems.map(u=>this._itemsToHandles.get(u))})}get selectedItems(){return this._selectedItems}set selectedItems(c){this._selectedItems=c.filter(u=>this._itemsToHandles.has(u)),this.update({selectedItems:this._selectedItems.map(u=>this._itemsToHandles.get(u))})}_fireDidChangeActive(c){let u=nt(c.map(m=>this._handlesToItems.get(m)));this._activeItems=u,this._onDidChangeActiveEmitter.fire(u)}_fireDidChangeSelection(c){let u=nt(c.map(m=>this._handlesToItems.get(m)));this._selectedItems=u,this._onDidChangeSelectionEmitter.fire(u)}_fireDidTriggerItemButton(c,u,m){let g=this._handlesToItems.get(c);if(!g||!g.buttons||!g.buttons.length)return;let h=g.buttons[u];h&&(m!==void 0&&h.toggle&&(h.toggle.checked=m),this._onDidTriggerItemButtonEmitter.fire({button:h,item:g}))}}class a extends i{constructor(c,u){super(c,u);this._password=!1;this.update({type:"inputBox"})}get password(){return this._password}set password(c){this._password=c,this.update({password:c})}get prompt(){return this._prompt}set prompt(c){this._prompt=c,this.update({prompt:c})}get validationMessage(){return this._validationMessage}set validationMessage(c){this._validationMessage=c,c?typeof c=="string"?this.update({validationMessage:c,severity:Xe.Error}):this.update({validationMessage:c.message,severity:c.severity??Xe.Error}):this.update({validationMessage:void 0,severity:Xe.Ignore})}}return new o(t,e)}function wB(r){return r instanceof y}function iG(r,t){return r.scheme===V.file&&t.scheme===V.file&&Qe?r.toString()===t.toString():r.toString().toLowerCase()===t.toString().toLowerCase()}function VL(r){if(r)return typeof r.iconPath=="string"?y.file(r.iconPath):y.isUri(r.iconPath)||Et.isThemeIcon(r.iconPath)?r.iconPath:void 0}function Us(r){if(r){if(y.isUri(r))return r;if(Et.isThemeIcon(r))return r;{let t=r;return{light:t.light,dark:t.dark}}}else return}function kB(r){let t=Us(r.authorIcon),e=Array.isArray(r.tooltip)?me.fromMany(r.tooltip):r.tooltip?me.from(r.tooltip):void 0,n=r.references?.map(o=>({...o,icon:Us(o.icon)}));return{...r,authorIcon:t,references:n,tooltip:e}}function BL(r){return r?{...r,icon:Us(r.icon)}:void 0}function $L(r,t){if(!r.iconPath&&!t.iconPath)return 0;if(r.iconPath){if(!t.iconPath)return 1}else return-1;let e=typeof r.iconPath=="string"?r.iconPath:y.isUri(r.iconPath)?r.iconPath.fsPath:r.iconPath.id,n=typeof t.iconPath=="string"?t.iconPath:y.isUri(t.iconPath)?t.iconPath.fsPath:t.iconPath.id;return wb(e,n)}function sG(r,t){let e=0;if(r.strikeThrough!==t.strikeThrough)return r.strikeThrough?1:-1;if(r.faded!==t.faded)return r.faded?1:-1;if(r.tooltip!==t.tooltip)return(r.tooltip||"").localeCompare(t.tooltip||"");if(e=$L(r,t),e!==0)return e;if(r.light&&t.light)e=$L(r.light,t.light);else{if(r.light)return 1;if(t.light)return-1}if(e!==0)return e;if(r.dark&&t.dark)e=$L(r.dark,t.dark);else{if(r.dark)return 1;if(t.dark)return-1}return e}function aG(r,t){if(r.command!==t.command)return r.command<t.command?-1:1;if(r.title!==t.title)return r.title<t.title?-1:1;if(r.tooltip!==t.tooltip){if(r.tooltip!==void 0&&t.tooltip!==void 0)return r.tooltip<t.tooltip?-1:1;if(r.tooltip!==void 0)return 1;if(t.tooltip!==void 0)return-1}if(r.arguments===t.arguments)return 0;if(r.arguments)if(t.arguments){if(r.arguments.length!==t.arguments.length)return r.arguments.length-t.arguments.length}else return 1;else return-1;for(let e=0;e<r.arguments.length;e++){let n=r.arguments[e],o=t.arguments[e];if(n!==o&&!(wB(n)&&wB(o)&&iG(n,o)))return n<o?-1:1}return 0}function PB(r,t){let e=wb(r.resourceUri.fsPath,t.resourceUri.fsPath,!0);if(e!==0)return e;if(r.command&&t.command)e=aG(r.command,t.command);else{if(r.command)return 1;if(t.command)return-1}if(e!==0)return e;if(r.decorations&&t.decorations)e=sG(r.decorations,t.decorations);else{if(r.decorations)return 1;if(t.decorations)return-1}if(e!==0)return e;if(r.multiFileDiffEditorModifiedUri&&t.multiFileDiffEditorModifiedUri)e=wb(r.multiFileDiffEditorModifiedUri.fsPath,t.multiFileDiffEditorModifiedUri.fsPath,!0);else{if(r.multiFileDiffEditorModifiedUri)return 1;if(t.multiFileDiffEditorModifiedUri)return-1}if(e!==0)return e;if(r.multiDiffEditorOriginalUri&&t.multiDiffEditorOriginalUri)e=wb(r.multiDiffEditorOriginalUri.fsPath,t.multiDiffEditorOriginalUri.fsPath,!0);else{if(r.multiDiffEditorOriginalUri)return 1;if(t.multiDiffEditorOriginalUri)return-1}return e}function lG(r,t){for(let e=0;e<r.length;e++)if(r[e]!==t[e])return!1;return!0}function dG(r,t){return r.command===t.command&&r.title===t.title&&r.tooltip===t.tooltip&&(r.arguments&&t.arguments?lG(r.arguments,t.arguments):r.arguments===t.arguments)}function cG(r,t){return Xt(r,t,dG)}var zL=class{constructor(t,e,n,o,i){this._extension=t;this._sourceControlHandle=o;this._documentUri=i;this._value="";this._onDidChange=new T;this._placeholder="";this._enabled=!0;this._visible=!0;this.#t=e,this.#e=n}#e;#t;get value(){return this._value}set value(t){t=t??"",this.#e.$setInputBoxValue(this._sourceControlHandle,t),this.updateValue(t)}get onDidChange(){return this._onDidChange.event}get placeholder(){return this._placeholder}set placeholder(t){this.#e.$setInputBoxPlaceholder(this._sourceControlHandle,t),this._placeholder=t}get validateInput(){return A(this._extension,"scmValidation"),this._validateInput}set validateInput(t){if(A(this._extension,"scmValidation"),t&&typeof t!="function")throw new Error(`[${this._extension.identifier.value}]: Invalid SCM input box validation function`);this._validateInput=t,this.#e.$setValidationProviderIsEnabled(this._sourceControlHandle,!!t)}get enabled(){return this._enabled}set enabled(t){t=!!t,this._enabled!==t&&(this._enabled=t,this.#e.$setInputBoxEnablement(this._sourceControlHandle,t))}get visible(){return this._visible}set visible(t){t=!!t,this._visible!==t&&(this._visible=t,this.#e.$setInputBoxVisibility(this._sourceControlHandle,t))}get document(){return A(this._extension,"scmTextDocument"),this.#t.getDocument(this._documentUri)}showValidationMessage(t,e){A(this._extension,"scmValidation"),this.#e.$showValidationMessage(this._sourceControlHandle,t,L1.from(e))}$onInputBoxValueChange(t){this.updateValue(t)}updateValue(t){this._value=t,this._onDidChange.fire(t)}},qL=class r{constructor(t,e,n,o,i,s,a){this._proxy=t;this._commands=e;this._sourceControlHandle=n;this._id=o;this._label=i;this.multiDiffEditorEnableViewChanges=s;this._extension=a;this._resourceHandlePool=0;this._resourceStates=[];this._resourceStatesMap=new Map;this._resourceStatesCommandsMap=new Map;this._resourceStatesDisposablesMap=new Map;this._onDidUpdateResourceStates=new T;this.onDidUpdateResourceStates=this._onDidUpdateResourceStates.event;this._disposed=!1;this._onDidDispose=new T;this.onDidDispose=this._onDidDispose.event;this._handlesSnapshot=[];this._resourceSnapshot=[];this._contextValue=void 0;this._hideWhenEmpty=void 0;this.handle=r._handlePool++}static{this._handlePool=0}get disposed(){return this._disposed}get id(){return this._id}get label(){return this._label}set label(t){this._label=t,this._proxy.$updateGroupLabel(this._sourceControlHandle,this.handle,t)}get contextValue(){return this._contextValue}set contextValue(t){this._contextValue=t,this._proxy.$updateGroup(this._sourceControlHandle,this.handle,this.features)}get hideWhenEmpty(){return this._hideWhenEmpty}set hideWhenEmpty(t){this._hideWhenEmpty=t,this._proxy.$updateGroup(this._sourceControlHandle,this.handle,this.features)}get features(){return{contextValue:this.contextValue,hideWhenEmpty:this.hideWhenEmpty}}get resourceStates(){return[...this._resourceStates]}set resourceStates(t){this._resourceStates=[...t],this._onDidUpdateResourceStates.fire()}getResourceState(t){return this._resourceStatesMap.get(t)}$executeResourceCommand(t,e){let n=this._resourceStatesCommandsMap.get(t);return n?pn(()=>this._commands.executeCommand(n.command,...n.arguments||[],e)):Promise.resolve(void 0)}_takeResourceStateSnapshot(){let t=[...this._resourceStates].sort(PB),n=Fk(this._resourceSnapshot,t,PB).map(s=>{let a=s.toInsert.map(l=>{let d=this._resourceHandlePool++;this._resourceStatesMap.set(d,l);let c=l.resourceUri,u;if(l.command)if(l.command.command==="vscode.open"||l.command.command==="vscode.diff"||l.command.command==="vscode.changes"){let J=new $;u=this._commands.converter.toInternal(l.command,J),this._resourceStatesDisposablesMap.set(d,J)}else this._resourceStatesCommandsMap.set(d,l.command);let m=Fe(this._extension,"scmMultiDiffEditor"),g=m?l.multiDiffEditorOriginalUri:void 0,h=m?l.multiFileDiffEditorModifiedUri:void 0,f=VL(l.decorations),I=l.decorations&&VL(l.decorations.light)||f,S=l.decorations&&VL(l.decorations.dark)||f,E=[I,S],P=l.decorations&&l.decorations.tooltip||"",L=l.decorations&&!!l.decorations.strikeThrough,j=l.decorations&&!!l.decorations.faded,F=l.contextValue||"";return{rawResource:[d,c,E,P,L,j,F,u,g,h],handle:d}});return{start:s.start,deleteCount:s.deleteCount,toInsert:a}}),o=n.map(({start:s,deleteCount:a,toInsert:l})=>[s,a,l.map(d=>d.rawResource)]),i=n.reverse();for(let{start:s,deleteCount:a,toInsert:l}of i){let d=l.map(u=>u.handle),c=this._handlesSnapshot.splice(s,a,...d);for(let u of c)this._resourceStatesMap.delete(u),this._resourceStatesCommandsMap.delete(u),this._resourceStatesDisposablesMap.get(u)?.dispose(),this._resourceStatesDisposablesMap.delete(u)}return this._resourceSnapshot=t,o}dispose(){this._disposed=!0,this._onDidDispose.fire(),this._onDidUpdateResourceStates.dispose(),this._onDidDispose.dispose()}},Zb=class Zb{constructor(t,e,n,o,i,s,a,l,d,c){this._extension=t;this._commands=o;this._id=i;this._label=s;this._rootUri=a;this._onDidDispose=new T;this.onDidDispose=this._onDidDispose.event;this._groups=new Map;this._contextValue=void 0;this._count=void 0;this._quickDiffProvider=void 0;this._secondaryQuickDiffProvider=void 0;this._historyProviderDisposable=new En;this._artifactProviderDisposable=new En;this._commitTemplate=void 0;this._acceptInputDisposables=new En;this._acceptInputCommand=void 0;this._actionButtonDisposables=new $;this._statusBarDisposables=new $;this._statusBarCommands=void 0;this._selected=!1;this._onDidChangeSelection=new T;this.onDidChangeSelection=this._onDidChangeSelection.event;this._artifactCommandsDisposables=new jn;this.handle=Zb._handlePool++;this.createdResourceGroups=new Map;this.updatedResourceGroups=new Set;this.#e=n;let u=y.from({scheme:V.vscodeSourceControl,path:`${i}/scm${this.handle}/input`,query:a?`rootUri=${encodeURIComponent(a.toString())}`:void 0});this._inputBox=new zL(t,e,this.#e,this.handle,u),this.#e.$registerSourceControl(this.handle,c?.handle,i,s,a,Us(l),d,u),this.onDidDisposeParent=c?c.onDidDispose:fe.None}static{this._handlePool=0}#e;get id(){return this._id}get label(){return this._label}get rootUri(){return this._rootUri}get contextValue(){return A(this._extension,"scmProviderOptions"),this._contextValue}set contextValue(t){A(this._extension,"scmProviderOptions"),this._contextValue!==t&&(this._contextValue=t,this.#e.$updateSourceControl(this.handle,{contextValue:t}))}get inputBox(){return this._inputBox}get count(){return this._count}set count(t){this._count!==t&&(this._count=t,this.#e.$updateSourceControl(this.handle,{count:t}))}get quickDiffProvider(){return this._quickDiffProvider}set quickDiffProvider(t){this._quickDiffProvider=t;let e;Fe(this._extension,"quickDiffProvider")&&(e=t?.label),this.#e.$updateSourceControl(this.handle,{hasQuickDiffProvider:!!t,quickDiffLabel:e})}get secondaryQuickDiffProvider(){return A(this._extension,"quickDiffProvider"),this._secondaryQuickDiffProvider}set secondaryQuickDiffProvider(t){A(this._extension,"quickDiffProvider"),this._secondaryQuickDiffProvider=t;let e=t?.label;this.#e.$updateSourceControl(this.handle,{hasSecondaryQuickDiffProvider:!!t,secondaryQuickDiffLabel:e})}get historyProvider(){return A(this._extension,"scmHistoryProvider"),this._historyProvider}set historyProvider(t){A(this._extension,"scmHistoryProvider"),this._historyProvider=t,this._historyProviderDisposable.value=new $,this.#e.$updateSourceControl(this.handle,{hasHistoryProvider:!!t}),t&&(this._historyProviderDisposable.value.add(t.onDidChangeCurrentHistoryItemRefs(()=>{let e=BL(t?.currentHistoryItemRef),n=BL(t?.currentHistoryItemRemoteRef),o=BL(t?.currentHistoryItemBaseRef);this.#e.$onDidChangeHistoryProviderCurrentHistoryItemRefs(this.handle,e,n,o)})),this._historyProviderDisposable.value.add(t.onDidChangeHistoryItemRefs(e=>{if(e.added.length===0&&e.modified.length===0&&e.removed.length===0)return;let n=e.added.map(s=>({...s,icon:Us(s.icon)})),o=e.modified.map(s=>({...s,icon:Us(s.icon)})),i=e.removed.map(s=>({...s,icon:Us(s.icon)}));this.#e.$onDidChangeHistoryProviderHistoryItemRefs(this.handle,{added:n,modified:o,removed:i,silent:e.silent})})))}get artifactProvider(){return A(this._extension,"scmArtifactProvider"),this._artifactProvider}set artifactProvider(t){A(this._extension,"scmArtifactProvider"),this._artifactProvider=t,this._artifactProviderDisposable.value=new $,this.#e.$updateSourceControl(this.handle,{hasArtifactProvider:!!t}),t&&this._artifactProviderDisposable.value.add(t.onDidChangeArtifacts(e=>{e.length!==0&&this.#e.$onDidChangeArtifacts(this.handle,e)}))}get commitTemplate(){return this._commitTemplate}set commitTemplate(t){t!==this._commitTemplate&&(this._commitTemplate=t,this.#e.$updateSourceControl(this.handle,{commitTemplate:t}))}get acceptInputCommand(){return this._acceptInputCommand}set acceptInputCommand(t){this._acceptInputDisposables.value=new $,this._acceptInputCommand=t;let e=this._commands.converter.toInternal(t,this._acceptInputDisposables.value);this.#e.$updateSourceControl(this.handle,{acceptInputCommand:e})}get actionButton(){return A(this._extension,"scmActionButton"),this._actionButton}set actionButton(t){if(A(this._extension,"scmActionButton"),Sp(this._actionButton,t))return;let e=this._actionButtonDisposables;this._actionButtonDisposables=new $,this._actionButton=t;let n=t!==void 0?{command:{...this._commands.converter.toInternal(t.command,this._actionButtonDisposables),shortTitle:t.command.shortTitle},secondaryCommands:t.secondaryCommands?.map(o=>o.map(i=>this._commands.converter.toInternal(i,this._actionButtonDisposables))),enabled:t.enabled}:null;this.#e.$updateSourceControl(this.handle,{actionButton:n}).finally(()=>e.dispose())}get statusBarCommands(){return this._statusBarCommands}set statusBarCommands(t){if(this._statusBarCommands&&t&&cG(this._statusBarCommands,t))return;let e=this._statusBarDisposables;this._statusBarDisposables=new $,this._statusBarCommands=t;let n=(t||[]).map(o=>this._commands.converter.toInternal(o,this._statusBarDisposables));this.#e.$updateSourceControl(this.handle,{statusBarCommands:n}).finally(()=>e.dispose())}get selected(){return this._selected}createResourceGroup(t,e,n){let o=Fe(this._extension,"scmMultiDiffEditor")&&n?.multiDiffEditorEnableViewChanges===!0,i=new qL(this.#e,this._commands,this.handle,t,e,o,this._extension),s=fe.once(i.onDidDispose)(()=>this.createdResourceGroups.delete(i));return this.createdResourceGroups.set(i,s),this.eventuallyAddResourceGroups(),i}eventuallyAddResourceGroups(){let t=[],e=[];for(let[n,o]of this.createdResourceGroups){o.dispose();let i=n.onDidUpdateResourceStates(()=>{this.updatedResourceGroups.add(n),this.eventuallyUpdateResourceStates()});fe.once(n.onDidDispose)(()=>{this.updatedResourceGroups.delete(n),i.dispose(),this._groups.delete(n.handle),this.#e.$unregisterGroup(this.handle,n.handle)}),t.push([n.handle,n.id,n.label,n.features,n.multiDiffEditorEnableViewChanges]);let s=n._takeResourceStateSnapshot();s.length>0&&e.push([n.handle,s]),this._groups.set(n.handle,n)}this.#e.$registerGroups(this.handle,t,e),this.createdResourceGroups.clear()}eventuallyUpdateResourceStates(){let t=[];this.updatedResourceGroups.forEach(e=>{let n=e._takeResourceStateSnapshot();n.length!==0&&t.push([e.handle,n])}),t.length>0&&this.#e.$spliceResourceStates(this.handle,t),this.updatedResourceGroups.clear()}getResourceGroup(t){return this._groups.get(t)}setSelectionState(t){this._selected=t,this._onDidChangeSelection.fire(t)}async provideArtifacts(t,e){let n=new $,i=(await this.artifactProvider?.provideArtifacts(t,e))?.map(s=>({...s,icon:Us(s.icon),command:s.command?this._commands.converter.toInternal(s.command,n):void 0}));return this._artifactCommandsDisposables.get(t)?.dispose(),this._artifactCommandsDisposables.set(t,n),i}dispose(){this._acceptInputDisposables.dispose(),this._actionButtonDisposables.dispose(),this._statusBarDisposables.dispose(),this._historyProviderDisposable.dispose(),this._artifactProviderDisposable.dispose(),this._artifactCommandsDisposables.dispose(),this._groups.forEach(t=>t.dispose()),this.#e.$unregisterSourceControl(this.handle),this._onDidChangeSelection.dispose(),this._onDidDispose.fire(),this._onDidDispose.dispose()}};_([Kd(100)],Zb.prototype,"eventuallyAddResourceGroups",1),_([Kd(100)],Zb.prototype,"eventuallyUpdateResourceStates",1);var KL=Zb,wf=class{constructor(t,e,n,o){this._commands=e;this._extHostDocuments=n;this.logService=o;this._sourceControls=new Map;this._sourceControlsByExtension=new no;this._onDidChangeActiveProvider=new T;this._proxy=t.getProxy(U.MainThreadSCM),this._telemetry=t.getProxy(U.MainThreadTelemetry),e.registerArgumentProcessor({processArgument:i=>{if(i&&i.$mid===3){let s=this._sourceControls.get(i.sourceControlHandle);if(!s)return i;let a=s.getResourceGroup(i.groupHandle);return a?a.getResourceState(i.handle):i}else if(i&&i.$mid===4){let s=this._sourceControls.get(i.sourceControlHandle);return s?s.getResourceGroup(i.groupHandle):i}else if(i&&i.$mid===5){let s=this._sourceControls.get(i.handle);return s||i}return i}})}get onDidChangeActiveProvider(){return this._onDidChangeActiveProvider.event}createSourceControl(t,e,n,o,i,s,a){this.logService.trace("ExtHostSCM#createSourceControl",t.identifier.value,e,n,o),this._telemetry.$publicLog2("api/scm/createSourceControl",{extensionId:t.identifier.value});let l=a?Mt.find(this._sourceControls.values(),u=>u===a):void 0,d=new KL(t,this._extHostDocuments,this._proxy,this._commands,e,n,o,i,s,l);this._sourceControls.set(d.handle,d);let c=this._sourceControlsByExtension.get(t.identifier)||[];return c.push(d),this._sourceControlsByExtension.set(t.identifier,c),d}getLastInputBox(t){this.logService.trace("ExtHostSCM#getLastInputBox",t.identifier.value);let e=this._sourceControlsByExtension.get(t.identifier),n=e&&e[e.length-1];return n&&n.inputBox}$provideOriginalResource(t,e,n){let o=y.revive(e);this.logService.trace("ExtHostSCM#$provideOriginalResource",t,o.toString());let i=this._sourceControls.get(t);return!i||!i.quickDiffProvider||!i.quickDiffProvider.provideOriginalResource?Promise.resolve(null):pn(()=>i.quickDiffProvider.provideOriginalResource(o,n)).then(s=>s||null)}$provideSecondaryOriginalResource(t,e,n){let o=y.revive(e);this.logService.trace("ExtHostSCM#$provideSecondaryOriginalResource",t,o.toString());let i=this._sourceControls.get(t);return!i||!i.secondaryQuickDiffProvider||!i.secondaryQuickDiffProvider.provideOriginalResource?Promise.resolve(null):pn(()=>i.secondaryQuickDiffProvider.provideOriginalResource(o,n)).then(s=>s||null)}$onInputBoxValueChange(t,e){this.logService.trace("ExtHostSCM#$onInputBoxValueChange",t);let n=this._sourceControls.get(t);return n&&n.inputBox.$onInputBoxValueChange(e),Promise.resolve(void 0)}$executeResourceCommand(t,e,n,o){this.logService.trace("ExtHostSCM#$executeResourceCommand",t,e,n);let i=this._sourceControls.get(t);if(!i)return Promise.resolve(void 0);let s=i.getResourceGroup(e);return s?s.$executeResourceCommand(n,o):Promise.resolve(void 0)}$validateInput(t,e,n){this.logService.trace("ExtHostSCM#$validateInput",t);let o=this._sourceControls.get(t);return!o||!o.inputBox.validateInput?Promise.resolve(void 0):pn(()=>o.inputBox.validateInput(e,n)).then(i=>{if(!i)return Promise.resolve(void 0);let s=me.fromStrict(i.message);return s?Promise.resolve([s,i.type]):Promise.resolve(void 0)})}$setSelectedSourceControl(t){return this.logService.trace("ExtHostSCM#$setSelectedSourceControl",t),this._selectedSourceControlHandle===t||(t!==void 0&&this._sourceControls.get(t)?.setSelectionState(!0),this._selectedSourceControlHandle!==void 0&&this._sourceControls.get(this._selectedSourceControlHandle)?.setSelectionState(!1),this._selectedSourceControlHandle=t),Promise.resolve(void 0)}async $resolveHistoryItem(t,e,n){try{let i=await this._sourceControls.get(t)?.historyProvider?.resolveHistoryItem(e,n);return i?kB(i):void 0}catch(o){this.logService.error("ExtHostSCM#$resolveHistoryItem",o);return}}async $resolveHistoryItemChatContext(t,e,n){try{return await this._sourceControls.get(t)?.historyProvider?.resolveHistoryItemChatContext(e,n)??void 0}catch(o){this.logService.error("ExtHostSCM#$resolveHistoryItemChatContext",o);return}}async $resolveHistoryItemChangeRangeChatContext(t,e,n,o,i){try{return await this._sourceControls.get(t)?.historyProvider?.resolveHistoryItemChangeRangeChatContext?.(e,n,o,i)??void 0}catch(s){this.logService.error("ExtHostSCM#$resolveHistoryItemChangeRangeChatContext",s);return}}async $resolveHistoryItemRefsCommonAncestor(t,e,n){try{return await this._sourceControls.get(t)?.historyProvider?.resolveHistoryItemRefsCommonAncestor(e,n)??void 0}catch(o){this.logService.error("ExtHostSCM#$resolveHistoryItemRefsCommonAncestor",o);return}}async $provideHistoryItemRefs(t,e,n){try{return(await this._sourceControls.get(t)?.historyProvider?.provideHistoryItemRefs(e,n))?.map(s=>({...s,icon:Us(s.icon)}))??void 0}catch(o){this.logService.error("ExtHostSCM#$provideHistoryItemRefs",o);return}}async $provideHistoryItems(t,e,n){try{return(await this._sourceControls.get(t)?.historyProvider?.provideHistoryItems(e,n))?.map(s=>kB(s))??void 0}catch(o){this.logService.error("ExtHostSCM#$provideHistoryItems",o);return}}async $provideHistoryItemChanges(t,e,n,o){try{return await this._sourceControls.get(t)?.historyProvider?.provideHistoryItemChanges(e,n,o)??void 0}catch(i){this.logService.error("ExtHostSCM#$provideHistoryItemChanges",i);return}}async $provideArtifactGroups(t,e){try{return(await this._sourceControls.get(t)?.artifactProvider?.provideArtifactGroups(e))?.map(i=>({...i,icon:Us(i.icon)}))}catch(n){this.logService.error("ExtHostSCM#$provideArtifactGroups",n);return}}async $provideArtifacts(t,e,n){try{return this._sourceControls.get(t)?.provideArtifacts(e,n)}catch(o){this.logService.error("ExtHostSCM#$provideArtifacts",o);return}}};wf=_([C(3,oe)],wf);var Kw=class r{constructor(t,e){this.uriTransformer=e;this.providers=new Map;this.proxy=t.getProxy(U.MainThreadShare)}static{this.handlePool=0}async $provideShare(t,e,n){return await this.providers.get(t)?.provideShare({selection:K.to(e.selection),resourceUri:y.revive(e.resourceUri)},n)??void 0}registerShareProvider(t,e){let n=r.handlePool++;return this.providers.set(n,e),this.proxy.$registerShareProvider(n,Di.from(t,this.uriTransformer),e.id,e.label,e.priority),{dispose:()=>{this.proxy.$unregisterShareProvider(n),this.providers.delete(n)}}}};var jw=class r{constructor(t){this.providers=new Map;this.sessions=new Map;this.synthesizers=new Map;this.proxy=t.getProxy(U.MainThreadSpeech)}static{this.ID_POOL=1}async $createSpeechToTextSession(t,e,n){let o=this.providers.get(t);if(!o)return;let i=new $,s=new Ce;this.sessions.set(e,s);let a=await o.provideSpeechToTextSession(s.token,n?{language:n}:void 0);a&&(i.add(a.onDidChange(l=>{s.token.isCancellationRequested||this.proxy.$emitSpeechToTextEvent(e,l)})),i.add(s.token.onCancellationRequested(()=>i.dispose())))}async $cancelSpeechToTextSession(t){this.sessions.get(t)?.dispose(!0),this.sessions.delete(t)}async $createTextToSpeechSession(t,e,n){let o=this.providers.get(t);if(!o)return;let i=new $,s=new Ce;this.sessions.set(e,s);let a=await o.provideTextToSpeechSession(s.token,n?{language:n}:void 0);a&&(this.synthesizers.set(e,a),i.add(a.onDidChange(l=>{s.token.isCancellationRequested||this.proxy.$emitTextToSpeechEvent(e,l)})),i.add(s.token.onCancellationRequested(()=>i.dispose())))}async $synthesizeSpeech(t,e){this.synthesizers.get(t)?.synthesize(e)}async $cancelTextToSpeechSession(t){this.sessions.get(t)?.dispose(!0),this.sessions.delete(t),this.synthesizers.delete(t)}async $createKeywordRecognitionSession(t,e){let n=this.providers.get(t);if(!n)return;let o=new $,i=new Ce;this.sessions.set(e,i);let s=await n.provideKeywordRecognitionSession(i.token);s&&(o.add(s.onDidChange(a=>{i.token.isCancellationRequested||this.proxy.$emitKeywordRecognitionEvent(e,a)})),o.add(i.token.onCancellationRequested(()=>o.dispose())))}async $cancelKeywordRecognitionSession(t){this.sessions.get(t)?.dispose(!0),this.sessions.delete(t)}registerProvider(t,e,n){let o=r.ID_POOL++;return this.providers.set(o,n),this.proxy.$registerProvider(o,e,{extension:t,displayName:t.value}),G(()=>{this.proxy.$unregisterProvider(o),this.providers.delete(o)})}};var jL=class{constructor(t,e,n,o){this.id=t;this._proxy=e;this._sessions=n;this._url=o.url,this._title=o.title,this._favicon=o.favicon;let i=this;this.value={get url(){return i._url},get title(){return i._title},get icon(){return i._favicon?y.parse(i._favicon):new an(de.globe.id)},startCDPSession(){return i._startCDPSession()},close(){return i._close()}}}update(t){let e=!1;return t.url!==this._url&&(this._url=t.url,e=!0),t.title!==this._title&&(this._title=t.title,e=!0),t.favicon!==this._favicon&&(this._favicon=t.favicon,e=!0),e}async _startCDPSession(){let t=Le();await this._proxy.$startCDPSession(t,this.id);let e=new GL(t,this._proxy);return this._sessions.set(t,e),e.value}async _close(){await this._proxy.$closeBrowserTab(this.id)}},GL=class{constructor(t,e){this.id=t;this._proxy=e;this._onDidReceiveMessage=new T;this._onDidClose=new T;this._closed=!1;let n=this;this.value={get onDidReceiveMessage(){return n._onDidReceiveMessage.event},get onDidClose(){return n._onDidClose.event},sendMessage(o){return n._sendMessage(o)},close(){return n._close()}}}dispose(){this._onDidReceiveMessage.dispose(),this._onDidClose.dispose()}async _sendMessage(t){if(this._closed)throw new Error("Session is closed");if(!t||typeof t!="object")throw new Error("Message must be an object");if(typeof t.id!="number")throw new Error("Message must have a numeric id");if(typeof t.method!="string")throw new Error("Message must have a method string");if(t.params!==void 0&&typeof t.params!="object")throw new Error("Message params must be an object");if(t.sessionId!==void 0&&typeof t.sessionId!="string")throw new Error("Message sessionId must be a string");await this._proxy.$sendCDPMessage(this.id,{id:t.id,method:t.method,params:t.params,sessionId:t.sessionId})}async _close(){this._closed=!0,await this._proxy.$closeCDPSession(this.id)}_acceptMessage(t){this._onDidReceiveMessage.fire(t)}_acceptClosed(){this._closed=!0,this._onDidClose.fire()}},Gw=class extends O{constructor(e){super();this._browserTabs=new Map;this._sessions=this._register(new jn);this._onDidOpenBrowserTab=this._register(new T);this.onDidOpenBrowserTab=this._onDidOpenBrowserTab.event;this._onDidCloseBrowserTab=this._register(new T);this.onDidCloseBrowserTab=this._onDidCloseBrowserTab.event;this._onDidChangeActiveBrowserTab=this._register(new T);this.onDidChangeActiveBrowserTab=this._onDidChangeActiveBrowserTab.event;this._onDidChangeBrowserTabState=this._register(new T);this.onDidChangeBrowserTabState=this._onDidChangeBrowserTabState.event;this._proxy=e.getProxy(U.MainThreadBrowsers)}get browserTabs(){return[...this._browserTabs.values()].map(e=>e.value)}get activeBrowserTab(){if(this._activeBrowserTabId)return this._browserTabs.get(this._activeBrowserTabId)?.value}async openBrowserTab(e,n){let o=Ut.from(n?.viewColumn),i=await this._proxy.$openBrowserTab(e,o,{preserveFocus:n?.preserveFocus,inactive:n?.background});return this._getOrCreateTab(i).value}_getOrCreateTab(e){let n=this._browserTabs.get(e.id);return n?n.update(e):(n=new jL(e.id,this._proxy,this._sessions,e),this._browserTabs.set(e.id,n),this._onDidOpenBrowserTab.fire(n.value)),n}$onDidOpenBrowserTab(e){this._getOrCreateTab(e)}$onDidCloseBrowserTab(e){let n=this._browserTabs.get(e);n&&(this._browserTabs.delete(e),this._activeBrowserTabId===e&&(this._activeBrowserTabId=void 0),this._onDidCloseBrowserTab.fire(n.value))}$onDidChangeActiveBrowserTab(e){this._activeBrowserTabId=e?.id,e&&this._getOrCreateTab(e),this._onDidChangeActiveBrowserTab.fire(this.activeBrowserTab)}$onDidChangeBrowserTabState(e,n){let o=this._browserTabs.get(e);o&&o.update(n)&&this._onDidChangeBrowserTabState.fire(o.value)}$onCDPSessionMessage(e,n){let o=this._sessions.get(e);o&&o._acceptMessage(n)}$onCDPSessionClosed(e){let n=this._sessions.get(e);n&&(n._acceptClosed(),this._sessions.deleteAndDispose(e))}};var QL=class r{constructor(t,e,n,o,i,s=1,a,l){this._onDispose=l;this._disposed=!1;this._text="";this._staleCommandRegistrations=new $;if(this.#e=t,this.#t=e,i&&o){this._entryId=c4(o.identifier,i);let d=n.get(this._entryId);d&&(s=d.alignLeft?1:2,a=d.priority,this._visible=!0,this.name=d.name,this.text=d.text,this.tooltip=d.tooltip,this.command=d.command,this.accessibilityInformation=d.accessibilityInformation)}else this._entryId=String(r.ID_GEN++);this._extension=o,this._id=i,this._alignment=s,this._priority=this.validatePriority(a)}static{this.ID_GEN=0}static{this.ALLOWED_BACKGROUND_COLORS=new Map([["statusBarItem.errorBackground",new da("statusBarItem.errorForeground")],["statusBarItem.warningBackground",new da("statusBarItem.warningForeground")]])}#e;#t;validatePriority(t){if(Rn(t))return t===Number.POSITIVE_INFINITY?Number.MAX_VALUE:t===Number.NEGATIVE_INFINITY?-Number.MAX_VALUE:t}get id(){return this._id??this._extension.identifier.value}get entryId(){return this._entryId}get alignment(){return this._alignment}get priority(){return this._priority}get text(){return this._text}get name(){return this._name}get tooltip(){return this._tooltip}get tooltip2(){return this._extension&&A(this._extension,"statusBarItemTooltip"),this._tooltip2}get color(){return this._color}get backgroundColor(){return this._backgroundColor}get command(){return this._command?.fromApi}get accessibilityInformation(){return this._accessibilityInformation}set text(t){this._text=t,this.update()}set name(t){this._name=t,this.update()}set tooltip(t){this._tooltip=t,this.update()}set tooltip2(t){this._extension&&A(this._extension,"statusBarItemTooltip"),this._tooltip2=t,this.update()}set color(t){this._color=t,this.update()}set backgroundColor(t){t&&!r.ALLOWED_BACKGROUND_COLORS.has(t.id)&&(t=void 0),this._backgroundColor=t,this.update()}set command(t){this._command?.fromApi!==t&&(this._latestCommandRegistration&&this._staleCommandRegistrations.add(this._latestCommandRegistration),this._latestCommandRegistration=new $,typeof t=="string"?this._command={fromApi:t,internal:this.#t.toInternal({title:"",command:t},this._latestCommandRegistration)}:t?this._command={fromApi:t,internal:this.#t.toInternal(t,this._latestCommandRegistration)}:this._command=void 0,this.update())}set accessibilityInformation(t){this._accessibilityInformation=t,this.update()}show(){this._visible=!0,this.update()}hide(){clearTimeout(this._timeoutHandle),this._visible=!1,this.#e.$disposeEntry(this._entryId)}update(){this._disposed||!this._visible||(clearTimeout(this._timeoutHandle),this._timeoutHandle=setTimeout(()=>{this._timeoutHandle=void 0;let t;this._extension?this._id?t=`${this._extension.identifier.value}.${this._id}`:t=this._extension.identifier.value:t=this._id;let e;this._name?e=this._name:e=p(3322,null,this._extension.displayName||this._extension.name);let n=this._color;this._backgroundColor&&(n=r.ALLOWED_BACKGROUND_COLORS.get(this._backgroundColor.id));let o,i;typeof this._tooltip2=="function"?(o=me.fromStrict(this._tooltip),i=!0):(o=me.fromStrict(this._tooltip2??this._tooltip),i=!1),this.#e.$setEntry(this._entryId,t,this._extension?.identifier.value,e,this._text,o,i,this._command?.internal,n,this._backgroundColor,this._alignment===1,this._priority,this._accessibilityInformation),this._staleCommandRegistrations.clear()},0))}dispose(){this.hide(),this._staleCommandRegistrations.dispose(),this._latestCommandRegistration?.dispose(),this._onDispose?.(),this._disposed=!0}},JL=class{constructor(t){this._messages=[];this._item=t.createStatusBarEntry(void 0,"status.extensionMessage",1,Number.MIN_VALUE),this._item.name=p(3323,null)}dispose(){this._messages.length=0,this._item.dispose()}setMessage(t){let e={message:t};return this._messages.unshift(e),this._update(),new be(()=>{let n=this._messages.indexOf(e);n>=0&&(this._messages.splice(n,1),this._update())})}_update(){this._messages.length>0?(this._item.text=this._messages[0].message,this._item.show()):this._item.hide()}},Qw=class{constructor(t,e){this._entries=new Map;this._existingItems=new Map;this._proxy=t.getProxy(U.MainThreadStatusBar),this._commands=e,this._statusMessage=new JL(this)}$acceptStaticEntries(t){for(let e of t)this._existingItems.set(e.entryId,e)}async $provideTooltip(t,e){let n=this._entries.get(t);if(!n)return;let o=typeof n.tooltip2=="function"?await n.tooltip2(e):n.tooltip2;return e.isCancellationRequested?void 0:me.fromStrict(o)}createStatusBarEntry(t,e,n,o){let i=new QL(this._proxy,this._commands,this._existingItems,t,e,n,o,()=>this._entries.delete(i.entryId));return this._entries.set(i.entryId,i),i}setStatusBarMessage(t,e){let n=this._statusMessage.setMessage(t),o;return typeof e=="number"?o=setTimeout(()=>n.dispose(),e):typeof e<"u"&&e.then(()=>n.dispose(),()=>n.dispose()),new be(()=>{n.dispose(),clearTimeout(o)})}};var Jw=class extends O{constructor(e,n){super();this._extHostDocumentsAndEditors=n;this._onDidChangeTextEditorSelection=this._register(new T);this._onDidChangeTextEditorOptions=this._register(new T);this._onDidChangeTextEditorVisibleRanges=this._register(new T);this._onDidChangeTextEditorViewColumn=this._register(new T);this._onDidChangeTextEditorDiffInformation=this._register(new T);this._onDidChangeActiveTextEditor=this._register(new T);this._onDidChangeVisibleTextEditors=this._register(new T);this.onDidChangeTextEditorSelection=this._onDidChangeTextEditorSelection.event;this.onDidChangeTextEditorOptions=this._onDidChangeTextEditorOptions.event;this.onDidChangeTextEditorVisibleRanges=this._onDidChangeTextEditorVisibleRanges.event;this.onDidChangeTextEditorViewColumn=this._onDidChangeTextEditorViewColumn.event;this.onDidChangeTextEditorDiffInformation=this._onDidChangeTextEditorDiffInformation.event;this.onDidChangeActiveTextEditor=this._onDidChangeActiveTextEditor.event;this.onDidChangeVisibleTextEditors=this._onDidChangeVisibleTextEditors.event;this._proxy=e.getProxy(U.MainThreadTextEditors),this._register(this._extHostDocumentsAndEditors.onDidChangeVisibleTextEditors(o=>this._onDidChangeVisibleTextEditors.fire(o))),this._register(this._extHostDocumentsAndEditors.onDidChangeActiveTextEditor(o=>this._onDidChangeActiveTextEditor.fire(o)))}getActiveTextEditor(){return this._extHostDocumentsAndEditors.activeEditor()}getVisibleTextEditors(e){let n=this._extHostDocumentsAndEditors.allEditors();return e?n:n.map(o=>o.value)}async showTextDocument(e,n,o){let i;typeof n=="number"?i={position:Ut.from(n),preserveFocus:o}:typeof n=="object"?i={position:Ut.from(n.viewColumn),preserveFocus:n.preserveFocus,selection:typeof n.selection=="object"?K.from(n.selection):void 0,pinned:typeof n.preview=="boolean"?!n.preview:void 0}:i={preserveFocus:!1};let s=await this._proxy.$tryShowTextDocument(e.uri,i),a=s&&this._extHostDocumentsAndEditors.getEditor(s);if(a)return a.value;throw s?new Error(`Could NOT open editor for "${e.uri.toString()}" because another editor opened in the meantime.`):new Error(`Could NOT open editor for "${e.uri.toString()}".`)}createTextEditorDecorationType(e,n){return new wT(this._proxy,e,n).value}$acceptEditorPropertiesChanged(e,n){let o=this._extHostDocumentsAndEditors.getEditor(e);if(!o)throw new Error("unknown text editor");if(n.options&&o._acceptOptions(n.options),n.selections){let i=n.selections.selections.map(yo.to);o._acceptSelections(i)}if(n.visibleRanges){let i=nt(n.visibleRanges.map(K.to));o._acceptVisibleRanges(i)}if(n.options&&this._onDidChangeTextEditorOptions.fire({textEditor:o.value,options:{...n.options,lineNumbers:Yc.to(n.options.lineNumbers)}}),n.selections){let i=Bc.fromValue(n.selections.source),s=n.selections.selections.map(yo.to);this._onDidChangeTextEditorSelection.fire({textEditor:o.value,selections:s,kind:i})}if(n.visibleRanges){let i=nt(n.visibleRanges.map(K.to));this._onDidChangeTextEditorVisibleRanges.fire({textEditor:o.value,visibleRanges:i})}}$acceptEditorPositionData(e){for(let n in e){let o=this._extHostDocumentsAndEditors.getEditor(n);if(!o)throw new Error("Unknown text editor");let i=Ut.to(e[n]);o.value.viewColumn!==i&&(o._acceptViewColumn(i),this._onDidChangeTextEditorViewColumn.fire({textEditor:o.value,viewColumn:i}))}}$acceptEditorDiffInformation(e,n){let o=this._extHostDocumentsAndEditors.getEditor(e);if(!o)throw new Error("unknown text editor");if(!n){o._acceptDiffInformation(void 0),this._onDidChangeTextEditorDiffInformation.fire({textEditor:o.value,diffInformation:void 0});return}let i=this,s=n.map(a=>{let l=y.revive(a.original),d=y.revive(a.modified),c=a.changes.map(u=>{let[m,g,h,f]=u,I;return m===g?I=1:h===f?I=2:I=3,{original:{startLineNumber:m,endLineNumberExclusive:g},modified:{startLineNumber:h,endLineNumberExclusive:f},kind:I}});return Object.freeze({documentVersion:a.documentVersion,original:l,modified:d,changes:c,get isStale(){return i._extHostDocumentsAndEditors.getDocument(d)?.version!==a.documentVersion}})});o._acceptDiffInformation(s),this._onDidChangeTextEditorDiffInformation.fire({textEditor:o.value,diffInformation:s})}getDiffInformation(e){return Promise.resolve(this._proxy.$getDiffInformation(e))}};var kf=class{constructor(t){this._actual=new Pc(2),this._onDidChangeActiveColorTheme=new T}get activeColorTheme(){return this._actual}$onColorThemeChange(t){let e;switch(t){case"light":e=1;break;case"hcDark":e=3;break;case"hcLight":e=4;break;default:e=2}this._actual=new Pc(e),this._onDidChangeActiveColorTheme.fire(this._actual)}get onDidChangeActiveColorTheme(){return this._onDidChangeActiveColorTheme.event}};kf=_([C(0,ie)],kf);var Ept=R("IExtHostTimeline"),Yw=class{constructor(t,e){this._providers=new Map;this._itemsBySourceAndUriMap=new Map;this._proxy=t.getProxy(U.MainThreadTimeline),e.registerArgumentProcessor({processArgument:(n,o)=>{if(n&&n.$mid===12)if(this._providers.get(n.source)&&o&&Fe(o,"timeline")){let i=n.uri===void 0?void 0:y.revive(n.uri);return this._itemsBySourceAndUriMap.get(n.source)?.get(_B(i))?.get(n.handle)}else return;return n}})}async $getTimeline(t,e,n,o){return this._providers.get(t)?.provider.provideTimeline(y.revive(e),n,o)}registerTimelineProvider(t,e,n,o){let i=new $,s=this.convertTimelineItem(e.id,o,i).bind(this),a;e.onDidChange&&(a=e.onDidChange(d=>this._proxy.$emitTimelineChangeEvent({uri:void 0,reset:!0,...d,id:e.id}),this));let l=this._itemsBySourceAndUriMap;return this.registerTimelineProviderCore({...e,scheme:t,onDidChange:void 0,async provideTimeline(d,c,u){c?.resetCache&&(i.clear(),l.get(e.id)?.clear());let m=await e.provideTimeline(d,c,u);if(m==null)return;let g=s(d,c);return{...m,source:e.id,items:m.items.map(g)}},dispose(){for(let d of l.values())d.get(e.id)?.clear();a?.dispose(),i.dispose()}},n)}convertTimelineItem(t,e,n){return(o,i)=>{let s;if(i?.cacheResults){let a=this._itemsBySourceAndUriMap.get(t);a===void 0&&(a=new Map,this._itemsBySourceAndUriMap.set(t,a));let l=_B(o);s=a.get(l),s===void 0&&(s=new Map,a.set(l,s))}return a=>{let{iconPath:l,...d}=a,c=`${t}|${a.id??a.timestamp}`;s?.set(c,a);let u,m,g;a.iconPath&&(l instanceof an?g={id:l.id,color:l.color}:y.isUri(l)?(u=l,m=l):{light:u,dark:m}=l);let h;return Gt.isMarkdownString(d.tooltip)?h=me.from(d.tooltip):Pe(d.tooltip)?h=d.tooltip:Gt.isMarkdownString(d.detail)?(console.warn("Using deprecated TimelineItem.detail, migrate to TimelineItem.tooltip"),h=me.from(d.detail)):Pe(d.detail)&&(console.warn("Using deprecated TimelineItem.detail, migrate to TimelineItem.tooltip"),h=d.detail),{...d,id:d.id??void 0,handle:c,source:t,command:a.command?e.toInternal(a.command,n):void 0,icon:u,iconDark:m,themeIcon:g,tooltip:h,accessibilityInformation:a.accessibilityInformation}}}}registerTimelineProviderCore(t,e){if(this._providers.get(t.id))throw new Error(`Timeline Provider ${t.id} already exists.`);return this._proxy.$registerTimelineProvider({id:t.id,label:t.label,scheme:t.scheme}),this._providers.set(t.id,{provider:t,extension:e}),G(()=>{for(let o of this._itemsBySourceAndUriMap.values())o.get(t.id)?.clear();this._providers.delete(t.id),this._proxy.$unregisterTimelineProvider(t.id),t.dispose()})}};function _B(r){return r?.toString()}var Fpt=p(4911,null),Hpt=du("default-view-icon",de.window,p(4908,null)),ZL;(e=>(e.ViewContainersRegistry="workbench.registry.view.containers",e.ViewsRegistry="workbench.registry.view"))(ZL||={});var YL=class extends O{constructor(){super(...arguments);this._onDidRegister=this._register(new T);this.onDidRegister=this._onDidRegister.event;this._onDidDeregister=this._register(new T);this.onDidDeregister=this._onDidDeregister.event;this.viewContainers=new Map;this.defaultViewContainers=[]}get all(){return[...this.viewContainers.values()].flat()}registerViewContainer(e,n,o){let i=this.get(e.id);if(i)return i;let s=e;return s.openCommandActionDescriptor=o?.doNotRegisterOpenCommand?void 0:s.openCommandActionDescriptor??{id:s.id},zk(this.viewContainers,n,[]).push(s),o?.isDefault&&this.defaultViewContainers.push(s),this._onDidRegister.fire({viewContainer:s,viewContainerLocation:n}),s}deregisterViewContainer(e){for(let n of this.viewContainers.keys()){let o=this.viewContainers.get(n),i=o?.indexOf(e);if(i!==-1){o?.splice(i,1),o.length===0&&this.viewContainers.delete(n),this._onDidDeregister.fire({viewContainer:e,viewContainerLocation:n});return}}}get(e){return this.all.filter(n=>n.id===e)[0]}getViewContainers(e){return[...this.viewContainers.get(e)||[]]}getViewContainerLocation(e){return[...this.viewContainers.keys()].filter(n=>this.getViewContainers(n).filter(o=>o?.id===e.id).length>0)[0]}getDefaultViewContainers(e){return this.defaultViewContainers.filter(n=>this.getViewContainerLocation(n)===e)}};gt.add(ZL.ViewContainersRegistry,new YL);function uG(r,t){let e=r.group??"9_more",n=t.group??"9_more";return e!==n?e.localeCompare(n):(r.order??5)-(t.order??5)}var XL=class extends O{constructor(){super(...arguments);this._onViewsRegistered=this._register(new T);this.onViewsRegistered=this._onViewsRegistered.event;this._onViewsDeregistered=this._register(new T);this.onViewsDeregistered=this._onViewsDeregistered.event;this._onDidChangeContainer=this._register(new T);this.onDidChangeContainer=this._onDidChangeContainer.event;this._onDidChangeViewWelcomeContent=this._register(new T);this.onDidChangeViewWelcomeContent=this._onDidChangeViewWelcomeContent.event;this._viewContainers=[];this._views=new Map;this._viewWelcomeContents=new Fu}registerViews(e,n){this.registerViews2([{views:e,viewContainer:n}])}registerViews2(e){e.forEach(({views:n,viewContainer:o})=>this.addViews(n,o)),this._onViewsRegistered.fire(e)}deregisterViews(e,n){let o=this.removeViews(e,n);o.length&&this._onViewsDeregistered.fire({views:o,viewContainer:n})}moveViews(e,n){for(let o of this._views.keys())if(o!==n){let i=this.removeViews(e,o);i.length&&(this.addViews(i,n),this._onDidChangeContainer.fire({views:i,from:o,to:n}))}}getViews(e){return this._views.get(e)||[]}getView(e){for(let n of this._viewContainers){let o=(this._views.get(n)||[]).filter(i=>i.id===e)[0];if(o)return o}return null}getViewContainer(e){for(let n of this._viewContainers)if((this._views.get(n)||[]).filter(i=>i.id===e)[0])return n;return null}registerViewWelcomeContent(e,n){return this._viewWelcomeContents.add(e,n),this._onDidChangeViewWelcomeContent.fire(e),G(()=>{this._viewWelcomeContents.delete(e,n),this._onDidChangeViewWelcomeContent.fire(e)})}registerViewWelcomeContent2(e,n){let o=new Map;for(let[i,s]of n)this._viewWelcomeContents.add(e,s),o.set(i,G(()=>{this._viewWelcomeContents.delete(e,s),this._onDidChangeViewWelcomeContent.fire(e)}));return this._onDidChangeViewWelcomeContent.fire(e),o}getViewWelcomeContent(e){let n=[];return this._viewWelcomeContents.forEach(e,o=>n.push(o)),n.sort(uG)}addViews(e,n){let o=this._views.get(n);o||(o=[],this._views.set(n,o),this._viewContainers.push(n));for(let i of e){if(this.getView(i.id)!==null)throw new Error(p(4909,null,i.id));o.push(i)}}removeViews(e,n){let o=this._views.get(n);if(!o)return[];let i=[],s=[];for(let a of o)e.includes(a)?i.push(a):s.push(a);return i.length&&(s.length?this._views.set(n,s):(this._views.delete(n),this._viewContainers.splice(this._viewContainers.indexOf(n),1))),i}};gt.add(ZL.ViewsRegistry,new XL);var Wpt=R("viewDescriptorService");var Xr=class extends Error{constructor(e){super(p(4910,null,e));this.name="NoTreeViewError"}static is(e){return!!e&&e.name==="NoTreeViewError"}};var Xw=class{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(t){if(t&&this._dragOperations.has(t)){let e=this._dragOperations.get(t);return this._dragOperations.delete(t),e}}addDragOperationTransfer(t,e){this._dragOperations.set(t,e)}};function DB(r,t){if(Pe(r))return{label:r};if(r&&typeof r=="object"&&r.label){let e;if(Array.isArray(r.highlights)&&(e=r.highlights.filter((n=>n.length===2&&typeof n[0]=="number"&&typeof n[1]=="number")),e=e.length?e:void 0),Pe(r.label))return{label:r.label,highlights:e};if(Gt.isMarkdownString(r.label))return A(t,"treeItemMarkdownLabel"),{label:me.from(r.label),highlights:e}}}var Zw=class extends O{constructor(e,n,o){super();this._proxy=e;this._commands=n;this._logService=o;this._treeViews=new Map;this._treeDragAndDropService=new Xw;function i(s){return s&&s.$treeViewId&&(s.$treeItemHandle||s.$selectedTreeItems||s.$focusedTreeItem)}n.registerArgumentProcessor({processArgument:s=>i(s)?this._convertArgument(s):Array.isArray(s)&&s.length>0?s.map(a=>i(a)?this._convertArgument(a):a):s})}registerTreeDataProvider(e,n,o){let i=this.createTreeView(e,{treeDataProvider:n},o);return{dispose:()=>i.dispose()}}createTreeView(e,n,o){if(!n||!n.treeDataProvider)throw new Error("Options with treeDataProvider is mandatory");let i=n.dragAndDropController?.dropMimeTypes??[],s=n.dragAndDropController?.dragMimeTypes??[],a=!!n.dragAndDropController?.handleDrag,l=!!n.dragAndDropController?.handleDrop,d=this._createExtHostTreeView(e,n,o),c={showCollapseAll:!!n.showCollapseAll,canSelectMany:!!n.canSelectMany,dropMimeTypes:i,dragMimeTypes:s,hasHandleDrag:a,hasHandleDrop:l,manuallyManageCheckboxes:!!n.manageCheckboxStateManually},u=this._proxy.$registerTreeViewDataProvider(e,c),m={get onDidCollapseElement(){return d.onDidCollapseElement},get onDidExpandElement(){return d.onDidExpandElement},get selection(){return d.selectedElements},get onDidChangeSelection(){return d.onDidChangeSelection},get activeItem(){return A(o,"treeViewActiveItem"),d.focusedElement},get onDidChangeActiveItem(){return A(o,"treeViewActiveItem"),d.onDidChangeActiveItem},get visible(){return d.visible},get onDidChangeVisibility(){return d.onDidChangeVisibility},get onDidChangeCheckboxState(){return d.onDidChangeCheckboxState},get message(){return d.message},set message(g){fi(g)&&A(o,"treeViewMarkdownMessage"),d.message=g},get title(){return d.title},set title(g){d.title=g},get description(){return d.description},set description(g){d.description=g},get badge(){return d.badge},set badge(g){g!==void 0&&xA.isViewBadge(g)?d.badge={value:Math.floor(Math.abs(g.value)),tooltip:g.tooltip}:g===void 0&&(d.badge=void 0)},reveal:(g,h)=>d.reveal(g,h),dispose:async()=>{await u,this._treeViews.get(e)===d&&(this._treeViews.delete(e),this._proxy.$disposeTree(e)),d.dispose()}};return this._register(m),m}async $getChildren(e,n){let o=this._treeViews.get(e);if(!o)return Promise.reject(new Xr(e));if(!n){let s=await o.getChildren();return s?[[0,...s]]:void 0}let i=[];for(let s=0;s<n.length;s++){let a=n[s],l=await o.getChildren(a);l&&i.push([s,...l])}return i}async $handleDrop(e,n,o,i,s,a,l,d){let c=this._treeViews.get(e);if(!c)return Promise.reject(new Xr(e));let u=Xc.toDataTransfer(o,async m=>(await this._proxy.$resolveDropFileData(e,n,m)).buffer);return l===e&&d&&await this._addAdditionalTransferItems(u,c,d,s,a),c.onDrop(u,i,s)}async _addAdditionalTransferItems(e,n,o,i,s){let a=this._treeDragAndDropService.removeDragOperationTransfer(s);if(a)(await a)?.forEach((l,d)=>{l&&e.set(d,l)});else if(s&&n.handleDrag){let l=n.handleDrag(o,e,i);this._treeDragAndDropService.addDragOperationTransfer(s,l),await l}return e}async $handleDrag(e,n,o,i){let s=this._treeViews.get(e);if(!s)return Promise.reject(new Xr(e));let a=await this._addAdditionalTransferItems(new $r,s,n,i,o);if(!(!a||i.isCancellationRequested))return Xc.from(a)}async $hasResolve(e){let n=this._treeViews.get(e);if(!n)throw new Xr(e);return n.hasResolve}$resolve(e,n,o){let i=this._treeViews.get(e);if(!i)throw new Xr(e);return i.resolveTreeItem(n,o)}$setExpanded(e,n,o){let i=this._treeViews.get(e);if(!i)throw new Xr(e);i.setExpanded(n,o)}$setSelectionAndFocus(e,n,o){let i=this._treeViews.get(e);if(!i)throw new Xr(e);i.setSelectionAndFocus(n,o)}$setVisible(e,n){let o=this._treeViews.get(e);if(!o){if(!n)return;throw new Xr(e)}o.setVisible(n)}$changeCheckboxState(e,n){let o=this._treeViews.get(e);if(!o)throw new Xr(e);o.setCheckboxState(n)}_createExtHostTreeView(e,n,o){let i=this._register(new eO(e,n,this._proxy,this._commands.converter,this._logService,o));return this._treeViews.set(e,i),i}_convertArgument(e){let n=this._treeViews.get(e.$treeViewId),o=e;return n&&o.$treeItemHandle?n.getExtensionElement(o.$treeItemHandle):n&&e.$focusedTreeItem?n.focusedElement:null}},eO=class r extends O{constructor(e,n,o,i,s,a){super();this._viewId=e;this._proxy=o;this._commands=i;this._logService=s;this._extension=a;this._roots=void 0;this._elements=new Map;this._nodes=new Map;this._childrenFetchTokens=new Map;this._globalFetchTokenCounter=0;this._visible=!1;this._selectedHandles=[];this._focusedHandle=void 0;this._onDidExpandElement=this._register(new T);this.onDidExpandElement=this._onDidExpandElement.event;this._onDidCollapseElement=this._register(new T);this.onDidCollapseElement=this._onDidCollapseElement.event;this._onDidChangeSelection=this._register(new T);this.onDidChangeSelection=this._onDidChangeSelection.event;this._onDidChangeActiveItem=this._register(new T);this.onDidChangeActiveItem=this._onDidChangeActiveItem.event;this._onDidChangeVisibility=this._register(new T);this.onDidChangeVisibility=this._onDidChangeVisibility.event;this._onDidChangeCheckboxState=this._register(new T);this.onDidChangeCheckboxState=this._onDidChangeCheckboxState.event;this._onDidChangeData=this._register(new T);this._refreshPromise=Promise.resolve();this._refreshQueue=Promise.resolve();this._nodesToClear=new Set;this._message="";this._title="";this._refreshCancellationSource=new Ce;if(a.contributes&&a.contributes.views)for(let u in a.contributes.views)for(let m of a.contributes.views[u])m.id===e&&(this._title=m.name);this._dataProvider=n.treeDataProvider,this._dndController=n.dragAndDropController,this._dataProvider.onDidChangeTreeData&&this._register(this._dataProvider.onDidChangeTreeData(u=>{Array.isArray(u)&&u.length===0||this._onDidChangeData.fire({message:!1,element:u})}));let l,d,c=fe.debounce(this._onDidChangeData.event,(u,m)=>(u||(u={message:!1,elements:[]}),m.element!==!1&&(l||(l=new Promise(g=>d=g),this._refreshPromise=this._refreshPromise.then(()=>l)),Array.isArray(m.element)?u.elements.push(...m.element):u.elements.push(m.element)),m.message&&(u.message=!0),u),200,!0);this._register(c(({message:u,elements:m})=>{m.length&&(m=Dr(m),this._refreshQueue=this._refreshQueue.then(()=>{let g=d;l=null;let h=Array.from(this._nodesToClear);return this._nodesToClear.clear(),this._debugLogRefresh("start",m,h),this._refresh(m).then(()=>(this._debugLogRefresh("done",m,h),this._clearNodes(h),g())).catch(f=>{let I=f instanceof Error?f.message:JSON.stringify(f);return this._debugLogRefresh("error",m,h),this._clearNodes(h),this._logService.error(`Unable to refresh tree view ${this._viewId}: ${I}`),g()})})),u&&this._proxy.$setMessage(this._viewId,me.fromStrict(this._message)??"")}))}static{this.LABEL_HANDLE_PREFIX="0"}static{this.ID_HANDLE_PREFIX="1"}static{this.ROOT_FETCH_KEY=Symbol("extHostTreeViewRoot")}get visible(){return this._visible}get selectedElements(){return this._selectedHandles.map(e=>this.getExtensionElement(e)).filter(e=>!At(e))}get focusedElement(){return this._focusedHandle?this.getExtensionElement(this._focusedHandle):void 0}_debugCollectHandles(e){let n=[];for(let i of e){if(!i){n.push("<root>");continue}let s=this._nodes.get(i);s&&n.push(s.item.handle)}let o=this._roots?.map(i=>i.item.handle)??[];return{changed:n,roots:o}}_debugLogRefresh(e,n,o){if(this._isDebugLogging())try{let i=this._debugCollectHandles(n);i.clearing=o.map(l=>l.item.handle);let s=i.changed.length,a=o.length;this._logService.debug(`[TreeView:${this._viewId}] refresh ${e} changed=${s} nodesToClear=${a} elements.size=${this._elements.size} nodes.size=${this._nodes.size} handles=${JSON.stringify(i)}`)}catch{this._logService.debug(`[TreeView:${this._viewId}] refresh ${e} (snapshot failed)`)}}_isDebugLogging(){try{let e=this._logService.getLevel();return e===2||e===1}catch{return!1}}async getChildren(e){let n=e?this.getExtensionElement(e):void 0;if(e&&!n)return this._logService.error(`No tree item with id '${e}' found.`),Promise.resolve([]);let o=this._getChildrenNodes(e);return o||(o=await this._fetchChildrenNodes(n)),o?o.map(i=>i.item):void 0}getExtensionElement(e){return this._elements.get(e)}reveal(e,n){n=n||{select:!0,focus:!1};let o=At(n.select)?!0:n.select,i=At(n.focus)?!1:n.focus,s=At(n.expand)?!1:n.expand;return typeof this._dataProvider.getParent!="function"?Promise.reject(new Error("Required registered TreeDataProvider to implement 'getParent' method to access 'reveal' method")):e?this._refreshPromise.then(()=>this._resolveUnknownParentChain(e)).then(a=>this._resolveTreeNode(e,a[a.length-1]).then(l=>this._proxy.$reveal(this._viewId,{item:l.item,parentChain:a.map(d=>d.item)},{select:o,focus:i,expand:s})),a=>this._logService.error(a)):this._proxy.$reveal(this._viewId,void 0,{select:o,focus:i,expand:s})}get message(){return this._message}set message(e){this._message=e,this._onDidChangeData.fire({message:!0,element:!1})}get title(){return this._title}set title(e){this._title=e,this._proxy.$setTitle(this._viewId,e,this._description)}get description(){return this._description}set description(e){this._description=e,this._proxy.$setTitle(this._viewId,this._title,e)}get badge(){return this._badge}set badge(e){this._badge?.value===e?.value&&this._badge?.tooltip===e?.tooltip||(this._badge=Wv.from(e),this._proxy.$setBadge(this._viewId,e))}setExpanded(e,n){let o=this.getExtensionElement(e);o&&(n?this._onDidExpandElement.fire(Object.freeze({element:o})):this._onDidCollapseElement.fire(Object.freeze({element:o})))}setSelectionAndFocus(e,n){let o=!Xt(this._selectedHandles,e);this._selectedHandles=e;let i=this._focusedHandle!==n;this._focusedHandle=n,o&&this._onDidChangeSelection.fire(Object.freeze({selection:this.selectedElements})),i&&this._onDidChangeActiveItem.fire(Object.freeze({activeItem:this.focusedElement}))}setVisible(e){e!==this._visible&&(this._visible=e,this._onDidChangeVisibility.fire(Object.freeze({visible:this._visible})))}async setCheckboxState(e){let n=(await Promise.all(e.map(async o=>{let i=this.getExtensionElement(o.treeItemHandle);return i?{extensionItem:i,treeItem:await this._dataProvider.getTreeItem(i),newState:o.newState?1:0}:Promise.resolve(void 0)}))).filter(o=>o!==void 0);n.forEach(o=>{o.treeItem.checkboxState=o.newState?1:0}),this._onDidChangeCheckboxState.fire({items:n.map(o=>[o.extensionItem,o.newState])})}async handleDrag(e,n,o){let i=[];for(let s of e){let a=this.getExtensionElement(s);a&&i.push(a)}if(!(!this._dndController?.handleDrag||i.length===0))return await this._dndController.handleDrag(i,n,o),n}get hasHandleDrag(){return!!this._dndController?.handleDrag}async onDrop(e,n,o){let i=n?this.getExtensionElement(n):void 0;if(!(!i&&n||!this._dndController?.handleDrop))return pn(()=>this._dndController?.handleDrop?this._dndController.handleDrop(i,e,o):void 0)}get hasResolve(){return!!this._dataProvider.resolveTreeItem}async resolveTreeItem(e,n){if(!this._dataProvider.resolveTreeItem)return;let o=this._elements.get(e);if(o){let i=this._nodes.get(o);if(i){let s=await this._dataProvider.resolveTreeItem(i.extensionItem,o,n)??i.extensionItem;return this._validateTreeItem(s),i.item.tooltip=this._getTooltip(s.tooltip),i.item.command=this._getCommand(i.disposableStore,s.command),i.item}}}_resolveUnknownParentChain(e){return this._resolveParent(e).then(n=>n?this._resolveUnknownParentChain(n).then(o=>this._resolveTreeNode(n,o[o.length-1]).then(i=>(o.push(i),o))):Promise.resolve([]))}_resolveParent(e){let n=this._nodes.get(e);return n?Promise.resolve(n.parent?this._elements.get(n.parent.item.handle):void 0):pn(()=>this._dataProvider.getParent(e))}async _resolveTreeNode(e,n){let o=this._nodes.get(e);if(o)return o;let i=await pn(()=>this._dataProvider.getTreeItem(e)),s=this._createHandle(e,i,n,!0);await this.getChildren(n?n.item.handle:void 0);let a=this.getExtensionElement(s);if(a){let l=this._nodes.get(a);if(l)return l}throw this._logService.error(`[TreeView:${this._viewId}] Failed to resolve tree node for element ${s}`),this._proxy.$logResolveTreeNodeFailure(this._extension.identifier.value),new Error(`Cannot resolve tree item for element ${s} from extension ${this._extension.identifier.value}`)}_getChildrenNodes(e){if(e){let n;if(typeof e=="string"){let o=this.getExtensionElement(e);n=o?this._nodes.get(o):void 0}else n=e;return n&&n.children||void 0}return this._roots}_getFetchKey(e){return e??r.ROOT_FETCH_KEY}async _fetchChildrenNodes(e){this._addChildrenToClear(e);let n=this._getFetchKey(e),o=++this._globalFetchTokenCounter;this._childrenFetchTokens.set(n,o);let i=new Ce(this._refreshCancellationSource.token);try{let s=await this._dataProvider.getChildren(e);if(this._childrenFetchTokens.get(n)!==o)return;let a=e?this._nodes.get(e):void 0;if(i.token.isCancellationRequested)return;let l=nt(s||[]),d=await Promise.all(nt(l).map(u=>this._dataProvider.getTreeItem(u)));if(this._childrenFetchTokens.get(n)!==o||i.token.isCancellationRequested)return;let c=d.map((u,m)=>u?this._createAndRegisterTreeNode(l[m],u,a):null);return this._childrenFetchTokens.get(n)!==o?void 0:nt(c)}finally{i.dispose()}}_refresh(e){if(e.some(o=>!o))return this._refreshCancellationSource.dispose(!0),this._refreshCancellationSource=new Ce,this._addChildrenToClear(),this._proxy.$refresh(this._viewId);{let o=this._getHandlesToRefresh(e);if(o.length)return this._refreshHandles(o)}return Promise.resolve(void 0)}_getHandlesToRefresh(e){let n=new Set,o=e.map(s=>this._nodes.get(s));for(let s of o)if(s&&!n.has(s.item.handle)){let a=s;for(;a&&a.parent&&o.findIndex(l=>a&&a.parent&&l&&l.item.handle===a.parent.item.handle)===-1;){let l=this._elements.get(a.parent.item.handle);a=l?this._nodes.get(l):void 0}a&&!a.parent&&n.add(s.item.handle)}let i=[];return n.forEach(s=>{let a=this._elements.get(s);if(a){let l=this._nodes.get(a);l&&(!l.parent||!n.has(l.parent.item.handle))&&i.push(s)}}),i}_refreshHandles(e){let n={};return Promise.all(e.map(o=>this._refreshNode(o).then(i=>{i&&(n[o]=i.item)}))).then(()=>Object.keys(n).length?this._proxy.$refresh(this._viewId,n):void 0)}_refreshNode(e){let n=this.getExtensionElement(e);if(n){let o=this._nodes.get(n);if(o)return this._addChildrenToClear(n),pn(()=>this._dataProvider.getTreeItem(n)).then(i=>{if(i){let s=this._createTreeNode(n,i,o.parent);return this._updateNodeCache(n,s,o,o.parent),o.dispose(),s}return null})}return Promise.resolve(null)}_createAndRegisterTreeNode(e,n,o){let i=n.id?`${r.ID_HANDLE_PREFIX}/${n.id}`:void 0;if(i){let a=this._elements.get(i);if(a){let l=this._nodes.get(a);if(a!==e&&this._nodes.delete(a),l){let d=this._createTreeNode(e,n,o);return this._updateNodeCache(e,d,l,o),l.dispose(),d}}}let s=this._createTreeNode(e,n,o);return this._addNodeToCache(e,s),this._addNodeToParentCache(s,o),s}_getTooltip(e){return Gt.isMarkdownString(e)?me.from(e):e}_getCommand(e,n){return n?{...this._commands.toInternal(n,e),originalId:n.command}:void 0}_getCheckbox(e){if(e.checkboxState===void 0)return;let n,o,i;return typeof e.checkboxState=="number"?n=e.checkboxState:(n=e.checkboxState.state,o=e.checkboxState.tooltip,i=e.checkboxState.accessibilityInformation),{isChecked:n===1,tooltip:o,accessibilityInformation:i}}_validateTreeItem(e){if(!hs.isTreeItem(e,this._extension))throw new Error(`Extension ${this._extension.identifier.value} has provided an invalid tree item.`)}_createTreeNode(e,n,o){this._validateTreeItem(n);let i=this._register(new $),s=this._createHandle(e,n,o),a=this._getLightIconPath(n);return{item:{handle:s,parentHandle:o?o.item.handle:void 0,label:DB(n.label,this._extension),description:n.description,resourceUri:n.resourceUri,tooltip:this._getTooltip(n.tooltip),command:this._getCommand(i,n.command),contextValue:n.contextValue,icon:a,iconDark:this._getDarkIconPath(n)||a,themeIcon:this._getThemeIcon(n),collapsibleState:At(n.collapsibleState)?0:n.collapsibleState,accessibilityInformation:n.accessibilityInformation,checkbox:this._getCheckbox(n)},extensionItem:n,parent:o,children:void 0,disposableStore:i,dispose(){i.dispose()}}}_getThemeIcon(e){return e.iconPath instanceof an?e.iconPath:void 0}_createHandle(e,{id:n,label:o,resourceUri:i},s,a){if(n)return`${r.ID_HANDLE_PREFIX}/${n}`;let l=DB(o,this._extension),d=s?s.item.handle:r.LABEL_HANDLE_PREFIX,c="";l&&(fi(l.label)?c=l.label.value:c=l.label);let u=c||(i?qt(i):"");u=u.indexOf("/")!==-1?u.replace("/","//"):u;let m=this._nodes.has(e)?this._nodes.get(e).item.handle:void 0,g=this._getChildrenNodes(s)||[],h,f=0;do{if(h=`${d}/${f}:${u}`,a||!this._elements.has(h)||m===h)break;f++}while(f<=g.length);return h}_getLightIconPath(e){if(e.iconPath&&!(e.iconPath instanceof an))return typeof e.iconPath=="string"||y.isUri(e.iconPath)?this._getIconPath(e.iconPath):this._getIconPath(e.iconPath.light)}_getDarkIconPath(e){if(e.iconPath&&!(e.iconPath instanceof an)&&e.iconPath.dark)return this._getIconPath(e.iconPath.dark)}_getIconPath(e){return y.isUri(e)?e:y.file(e)}_addNodeToCache(e,n){this._elements.set(n.item.handle,e),this._nodes.set(e,n)}_updateNodeCache(e,n,o,i){this._elements.delete(n.item.handle),this._nodes.delete(e),n.item.handle!==o.item.handle&&this._elements.delete(o.item.handle),this._addNodeToCache(e,n);let s=this._getChildrenNodes(i)||[],a=s.filter(l=>l.item.handle===o.item.handle)[0];a&&s.splice(s.indexOf(a),1,n)}_addNodeToParentCache(e,n){n?(n.children||(n.children=[]),n.children.push(e)):(this._roots||(this._roots=[]),this._roots.push(e))}_addChildrenToClear(e){if(e){let n=this._nodes.get(e);if(n){if(n.children)for(let o of n.children){this._nodesToClear.add(o);let i=this._elements.get(o.item.handle);i&&(this._addChildrenToClear(i),this._nodes.delete(i),this._elements.delete(o.item.handle))}n.children=void 0}}else this._addAllToClear()}_addAllToClear(){this._roots=void 0,this._nodes.forEach(e=>{this._nodesToClear.add(e)}),this._nodes.clear(),this._elements.clear(),this._childrenFetchTokens.clear()}_clearNodes(e){bn(e)}_clearAll(){this._roots=void 0,this._elements.clear(),bn(this._nodes.values()),this._nodes.clear(),bn(this._nodesToClear),this._nodesToClear.clear(),this._childrenFetchTokens.clear()}dispose(){super.dispose(),this._refreshCancellationSource.dispose(),this._clearAll()}};var ek=class r{constructor(t){this._openers=new Map;this._proxy=t.getProxy(U.MainThreadUriOpeners)}static{this.supportedSchemes=new Set([V.http,V.https])}registerExternalUriOpener(t,e,n,o){if(this._openers.has(e))throw new Error(`Opener with id '${e}' already registered`);let i=o.schemes.find(s=>!r.supportedSchemes.has(s));if(i)throw new Error(`Scheme '${i}' is not supported. Only http and https are currently supported.`);return this._openers.set(e,n),this._proxy.$registerUriOpener(e,o.schemes,t,o.label),G(()=>{this._openers.delete(e),this._proxy.$unregisterUriOpener(e)})}async $canOpenUri(t,e,n){let o=this._openers.get(t);if(!o)throw new Error(`Unknown opener with id: ${t}`);let i=y.revive(e);return o.canOpenExternalUri(i,n)}async $openUri(t,e,n){let o=this._openers.get(t);if(!o)throw new Error(`Unknown opener id: '${t}'`);return o.openExternalUri(y.revive(e.resolvedUri),{sourceUri:y.revive(e.sourceUri)},n)}};var tO=class extends O{constructor(e,n,o,i){super();this.#a=void 0;this.#d=!0;this.#r=!1;this.#u=this._register(new T);this.onDidDispose=this.#u.event;this.#p=this._register(new T);this.onDidChangeViewState=this.#p.event;this.#e=e,this.#t=n,this.#o=o,this.#n=i.viewType,this.#s=i.panelOptions,this.#a=i.viewColumn,this.#i=i.title,this.#c=i.active}#e;#t;#n;#o;#s;#i;#l;#a;#d;#c;#r;#u;#p;dispose(){this.#r||(this.#r=!0,this.#u.fire(),this.#t.$disposeWebview(this.#e),this.#o.dispose(),super.dispose())}get webview(){return this.assertNotDisposed(),this.#o}get viewType(){return this.assertNotDisposed(),this.#n}get title(){return this.assertNotDisposed(),this.#i}set title(e){this.assertNotDisposed(),this.#i!==e&&(this.#i=e,this.#t.$setTitle(this.#e,e))}get iconPath(){return this.assertNotDisposed(),this.#l}set iconPath(e){this.assertNotDisposed(),this.#l!==e&&(this.#l=e,y.isUri(e)?this.#t.$setIconPath(this.#e,{light:e,dark:e}):this.#t.$setIconPath(this.#e,e))}get options(){return this.#s}get viewColumn(){if(this.assertNotDisposed(),!(typeof this.#a=="number"&&this.#a<0))return this.#a}get active(){return this.assertNotDisposed(),this.#c}get visible(){return this.assertNotDisposed(),this.#d}_updateViewState(e){this.#r||(this.active!==e.active||this.visible!==e.visible||this.viewColumn!==e.viewColumn)&&(this.#c=e.active,this.#d=e.visible,this.#a=e.viewColumn,this.#p.fire({webviewPanel:this}))}reveal(e,n){this.assertNotDisposed(),this.#t.$reveal(this.#e,{viewColumn:typeof e>"u"?void 0:Ut.from(e),preserveFocus:!!n})}assertNotDisposed(){if(this.#r)throw new Error("Webview is disposed")}},tk=class r extends O{constructor(e,n,o){super();this.webviews=n;this.workspace=o;this._webviewPanels=new Map;this._serializers=new Map;this._proxy=e.getProxy(U.MainThreadWebviewPanels)}static newHandle(){return Le()}dispose(){super.dispose(),this._webviewPanels.forEach(e=>e.dispose()),this._webviewPanels.clear()}createWebviewPanel(e,n,o,i,s={}){let a=typeof i=="object"?i.viewColumn:i,l={viewColumn:Ut.from(a),preserveFocus:typeof i=="object"&&!!i.preserveFocus},d=La(e),c=r.newHandle();this._proxy.$createWebviewPanel(bu(e),c,n,{title:o,panelOptions:pG(s),webviewOptions:zM(e,this.workspace,s),serializeBuffersForPostMessage:d},l);let u=this.webviews.createNewWebview(c,s,e);return this.createNewWebviewPanel(c,n,o,a,s,u,!0)}$onDidChangeWebviewPanelViewStates(e){let n=Object.keys(e);n.sort((o,i)=>{let s=e[o],a=e[i];return s.active?1:a.active?-1:+s.visible-+a.visible});for(let o of n){let i=this.getWebviewPanel(o);if(!i)continue;let s=e[o];i._updateViewState({active:s.active,visible:s.visible,viewColumn:Ut.to(s.position)})}}async $onDidDisposeWebviewPanel(e){this.getWebviewPanel(e)?.dispose(),this._webviewPanels.delete(e),this.webviews.deleteWebview(e)}registerWebviewPanelSerializer(e,n,o){if(this._serializers.has(n))throw new Error(`Serializer for '${n}' already registered`);return this._serializers.set(n,{serializer:o,extension:e}),this._proxy.$registerSerializer(n,{serializeBuffersForPostMessage:La(e)}),new be(()=>{this._serializers.delete(n),this._proxy.$unregisterSerializer(n)})}async $deserializeWebviewPanel(e,n,o,i){let s=this._serializers.get(n);if(!s)throw new Error(`No serializer found for '${n}'`);let{serializer:a,extension:l}=s,d=this.webviews.createNewWebview(e,o.webviewOptions,l),c=this.createNewWebviewPanel(e,n,o.title,i,o.panelOptions,d,o.active);await a.deserializeWebviewPanel(c,o.state)}createNewWebviewPanel(e,n,o,i,s,a,l){let d=new tO(e,this._proxy,a,{viewType:n,title:o,viewColumn:i,panelOptions:s,active:l});return this._webviewPanels.set(e,d),d}getWebviewPanel(e){return this._webviewPanels.get(e)}};function pG(r){return{enableFindWidget:r.enableFindWidget,retainContextWhenHidden:r.retainContextWhenHidden}}var nO=class extends O{constructor(e,n,o,i,s,a){super();this.#s=!1;this.#c=this._register(new T);this.onDidChangeVisibility=this.#c.event;this.#r=this._register(new T);this.onDidDispose=this.#r.event;this.#n=o,this.#l=i,this.#e=e,this.#t=n,this.#o=s,this.#i=a}#e;#t;#n;#o;#s;#i;#l;#a;#d;dispose(){this.#s||(this.#s=!0,this.#r.fire(),this.#o.dispose(),super.dispose())}#c;#r;get title(){return this.assertNotDisposed(),this.#l}set title(e){this.assertNotDisposed(),this.#l!==e&&(this.#l=e,this.#t.$setWebviewViewTitle(this.#e,e))}get description(){return this.assertNotDisposed(),this.#a}set description(e){this.assertNotDisposed(),this.#a!==e&&(this.#a=e,this.#t.$setWebviewViewDescription(this.#e,e))}get visible(){return this.#i}get webview(){return this.#o}get viewType(){return this.#n}_setVisible(e){e===this.#i||this.#s||(this.#i=e,this.#c.fire())}get badge(){return this.assertNotDisposed(),this.#d}set badge(e){this.assertNotDisposed(),!(e?.value===this.#d?.value&&e?.tooltip===this.#d?.tooltip)&&(this.#d=Wv.from(e),this.#t.$setWebviewViewBadge(this.#e,e))}show(e){this.assertNotDisposed(),this.#t.$show(this.#e,!!e)}assertNotDisposed(){if(this.#s)throw new Error("Webview is disposed")}},nk=class{constructor(t,e){this._extHostWebview=e;this._viewProviders=new Map;this._webviewViews=new Map;this._proxy=t.getProxy(U.MainThreadWebviewViews)}registerWebviewViewProvider(t,e,n,o){if(this._viewProviders.has(e))throw new Error(`View provider for '${e}' already registered`);return this._viewProviders.set(e,{provider:n,extension:t}),this._proxy.$registerWebviewViewProvider(bu(t),e,{retainContextWhenHidden:o?.retainContextWhenHidden,serializeBuffersForPostMessage:La(t)}),new be(()=>{this._viewProviders.delete(e),this._proxy.$unregisterWebviewViewProvider(e)})}async $resolveWebviewView(t,e,n,o,i){let s=this._viewProviders.get(e);if(!s)throw new Error(`No view provider found for '${e}'`);let{provider:a,extension:l}=s,d=this._extHostWebview.createNewWebview(t,{},l),c=new nO(t,this._proxy,e,n,d,!0);this._webviewViews.set(t,c),await a.resolveWebviewView(c,{state:o},i)}async $onDidChangeWebviewViewVisibility(t,e){this.getWebviewView(t)._setVisible(e)}async $disposeWebviewView(t){let e=this.getWebviewView(t);this._webviewViews.delete(t),e.dispose(),this._extHostWebview.deleteWebview(t)}getWebviewView(t){let e=this._webviewViews.get(t);if(!e)throw new Error("No webview found");return e}};var Pf=class extends O{constructor(e,n){super();this._commands=n;this._handlePool=0;this._providers=new Map;this._itemPool=0;this._globalItems=new Map;this._providerItems=new Map;this._proxy=e.getProxy(U.MainThreadChatContext)}async $provideWorkspaceChatContext(e,n){this._clearProviderItems(e);let o=this._providers.get(e);if(!o||o.type!=="workspace")throw new Error("Workspace context provider not found");let i=o.provider,s=await i.provideWorkspaceChatContext?.(n)??await i.provideChatContext?.(n)??[];return this._convertItems(e,s)}async $provideExplicitChatContext(e,n){this._clearProviderItems(e);let o=this._providers.get(e);if(!o||o.type!=="explicit")throw new Error("Explicit context provider not found");let i=o.provider,s=await i.provideExplicitChatContext?.(n)??await i.provideChatContext?.(n)??[];return this._convertItems(e,s)}async $resolveExplicitChatContext(e,n,o){let i=this._providers.get(e);if(!i||i.type!=="explicit")throw new Error("Explicit context provider not found");let s=i.provider,a=this._globalItems.get(n.handle);if(!a)throw new Error("Chat context item not found");return this._doResolve((s.resolveExplicitChatContext??s.resolveChatContext)?.bind(s),n,a,o)}async $provideResourceChatContext(e,n,o){let i=this._providers.get(e);if(!i||i.type!=="resource")throw new Error("Resource context provider not found");let s=i.provider,a=await s.provideResourceChatContext?.({resource:y.revive(n.resource)},o)??await s.provideChatContext?.({resource:y.revive(n.resource)},o);if(!a)return;if(a.label===void 0&&a.resourceUri===void 0)throw new Error("ChatContextItem must have either a label or a resourceUri");let d={handle:this._addTrackedItem(e,a),icon:a.icon,label:a.label,resourceUri:a.resourceUri,modelDescription:a.modelDescription,tooltip:a.tooltip?me.from(a.tooltip):void 0,value:n.withValue?a.value:void 0,command:a.command?{id:a.command.command}:void 0};if(n.withValue&&!d.value){let c=await(s.resolveResourceChatContext??s.resolveChatContext)?.bind(s)(a,o);d.value=c?.value,d.tooltip=c?.tooltip?me.from(c.tooltip):d.tooltip}return d}async $resolveResourceChatContext(e,n,o){let i=this._providers.get(e);if(!i||i.type!=="resource")throw new Error("Resource context provider not found");let s=i.provider,a=this._globalItems.get(n.handle);if(!a)throw new Error("Chat context item not found");return this._doResolve((s.resolveResourceChatContext??s.resolveChatContext)?.bind(s),n,a,o)}async $executeChatContextItemCommand(e){let n=this._globalItems.get(e);if(!n)throw new Error("Chat context item not found");if(!n.command)throw new Error("Chat context item has no command");let o=n.command.arguments?[n,...n.command.arguments]:[n];await this._commands.executeCommand(n.command.command,...o)}registerChatWorkspaceContextProvider(e,n){let o=this._handlePool++,i=new $;return this._providers.set(o,{type:"workspace",provider:n,disposables:i}),this._listenForWorkspaceContextChanges(o,n,i),this._proxy.$registerChatWorkspaceContextProvider(o,e),{dispose:()=>{this._providers.delete(o),this._clearProviderItems(o),this._providerItems.delete(o),this._proxy.$unregisterChatContextProvider(o),i.dispose()}}}registerChatExplicitContextProvider(e,n){let o=this._handlePool++,i=new $;return this._providers.set(o,{type:"explicit",provider:n,disposables:i}),this._proxy.$registerChatExplicitContextProvider(o,e),{dispose:()=>{this._providers.delete(o),this._clearProviderItems(o),this._providerItems.delete(o),this._proxy.$unregisterChatContextProvider(o),i.dispose()}}}registerChatResourceContextProvider(e,n,o){let i=this._handlePool++,s=new $;return this._providers.set(i,{type:"resource",provider:o,disposables:s}),this._proxy.$registerChatResourceContextProvider(i,n,Di.from(e)),{dispose:()=>{this._providers.delete(i),this._clearProviderItems(i),this._providerItems.delete(i),this._proxy.$unregisterChatContextProvider(i),s.dispose()}}}registerChatContextProvider(e,n,o){let i=[];if(o.provideWorkspaceChatContext){let s={onDidChangeWorkspaceChatContext:o.onDidChangeWorkspaceChatContext,provideWorkspaceChatContext:a=>o.provideWorkspaceChatContext(a)};i.push(this.registerChatWorkspaceContextProvider(n,s))}if(o.provideChatContextExplicit){let s={provideExplicitChatContext:a=>o.provideChatContextExplicit(a),resolveExplicitChatContext:o.resolveChatContext?(a,l)=>o.resolveChatContext(a,l):a=>a};i.push(this.registerChatExplicitContextProvider(n,s))}if(o.provideChatContextForResource&&e){let s={provideResourceChatContext:(a,l)=>o.provideChatContextForResource(a,l),resolveResourceChatContext:o.resolveChatContext?(a,l)=>o.resolveChatContext(a,l):a=>a};i.push(this.registerChatResourceContextProvider(e,n,s))}return{dispose:()=>{for(let s of i)s.dispose()}}}_clearProviderItems(e){let n=this._providerItems.get(e);if(n){for(let o of n)this._globalItems.delete(o);n.clear()}}_addTrackedItem(e,n){let o=this._itemPool++;return this._globalItems.set(o,n),this._providerItems.has(e)||this._providerItems.set(e,new Set),this._providerItems.get(e).add(o),o}_convertItems(e,n){let o=[];for(let i of n){if(i.label===void 0&&i.resourceUri===void 0)throw new Error("ChatContextItem must have either a label or a resourceUri");let s=this._addTrackedItem(e,i);o.push({handle:s,icon:i.icon,label:i.label,resourceUri:i.resourceUri,modelDescription:i.modelDescription,tooltip:i.tooltip?me.from(i.tooltip):void 0,value:i.value,command:i.command?{id:i.command.command}:void 0})}return o}async _doResolve(e,n,o,i){let s=await e(o,i);return s?{handle:n.handle,icon:s.icon,label:s.label,resourceUri:s.resourceUri,modelDescription:s.modelDescription,tooltip:s.tooltip?me.from(s.tooltip):void 0,value:s.value,command:s.command?{id:s.command.command}:void 0}:n}_listenForWorkspaceContextChanges(e,n,o){if(!n.onDidChangeWorkspaceChatContext)return;let i=async()=>{let s=await n.provideWorkspaceChatContext?.(he.None)??await n.provideChatContext?.(he.None),a=this._convertItems(e,s??[]);return this._proxy.$updateWorkspaceContextItems(e,a)};o.add(n.onDidChangeWorkspaceChatContext(async()=>i())),i()}dispose(){super.dispose();for(let{disposables:e}of this._providers.values())e.dispose()}};Pf=_([C(0,ie),C(1,Dn)],Pf);var _f=class extends O{constructor(e){super();this._nextHandle=0;this._activeProgress=new Map;this._onDidAddCoreEvent=this._register(new T({onWillAddFirstListener:()=>this._proxy.$subscribeToCoreDebugEvents(),onDidRemoveLastListener:()=>this._proxy.$unsubscribeFromCoreDebugEvents()}));this.onDidAddCoreEvent=this._onDidAddCoreEvent.event;this._proxy=e.getProxy(U.MainThreadChatDebug)}_progressKey(e,n){return`${e}:${y.revive(n).toString()}`}_cleanupProgress(e){let n=this._activeProgress.get(e);n&&(n.dispose(),this._activeProgress.delete(e))}registerChatDebugLogProvider(e){if(this._provider)throw new Error("A ChatDebugLogProvider is already registered.");this._provider=e;let n=this._nextHandle++;return this._proxy.$registerChatDebugLogProvider(n),G(()=>{this._provider=void 0;for(let[o,i]of this._activeProgress)o.startsWith(`${n}:`)&&(i.dispose(),this._activeProgress.delete(o));this._proxy.$unregisterChatDebugLogProvider(n)})}async $provideChatDebugLog(e,n,o){if(!this._provider)return;let i=this._progressKey(e,n);this._cleanupProgress(i);let s=new $;this._activeProgress.set(i,s);let a=s.add(new T);s.add(a.event(l=>{let d=this._serializeEvent(l);d.sessionResource||(d.sessionResource=n),this._proxy.$acceptChatDebugEvent(e,d)})),s.add(o.onCancellationRequested(()=>{this._cleanupProgress(i)}));try{let l={report:u=>a.fire(u)},d=y.revive(n),c=await this._provider.provideChatDebugLog(d,l,o);return c?c.map(u=>this._serializeEvent(u)):void 0}catch(l){throw this._cleanupProgress(i),l}}_serializeEvent(e){let n={id:e.id,sessionResource:e.sessionResource,created:e.created.getTime(),parentEventId:e.parentEventId};switch(e._kind){case"toolCall":{let i=e;return{...n,kind:"toolCall",toolName:i.toolName,toolCallId:i.toolCallId,input:i.input,output:i.output,result:i.result===0?"success":i.result===1?"error":void 0,durationInMillis:i.durationInMillis}}case"modelTurn":{let i=e;return{...n,kind:"modelTurn",model:i.model,requestName:i.requestName,inputTokens:i.inputTokens,outputTokens:i.outputTokens,totalTokens:i.totalTokens,durationInMillis:i.durationInMillis}}case"generic":{let i=e;return{...n,kind:"generic",name:i.name,details:i.details,level:i.level,category:i.category}}case"subagentInvocation":{let i=e;return{...n,kind:"subagentInvocation",agentName:i.agentName,description:i.description,status:i.status===0?"running":i.status===1?"completed":i.status===2?"failed":void 0,durationInMillis:i.durationInMillis,toolCallCount:i.toolCallCount,modelTurnCount:i.modelTurnCount}}case"userMessage":{let i=e;return{...n,kind:"userMessage",message:i.message,sections:i.sections.map(s=>({name:s.name,content:s.content}))}}case"agentResponse":{let i=e;return{...n,kind:"agentResponse",message:i.message,sections:i.sections.map(s=>({name:s.name,content:s.content}))}}default:{let i=e,s=i.name,a=i.details;return{...n,kind:"generic",name:typeof s=="string"?s:"",details:typeof a=="string"?a:void 0,level:i.level??1,category:i.category}}}}async $resolveChatDebugLogEvent(e,n,o){if(!this._provider?.resolveChatDebugLogEvent)return;let i=await this._provider.resolveChatDebugLogEvent(n,o);if(!i)return;switch(i._kind){case"text":return{kind:"text",value:i.value};case"messageContent":{let a=i;return{kind:"message",type:a.type===0?"user":"agent",message:a.message,sections:a.sections.map(l=>({name:l.name,content:l.content}))}}case"userMessage":{let a=i;return{kind:"message",type:"user",message:a.message,sections:a.sections.map(l=>({name:l.name,content:l.content}))}}case"agentResponse":{let a=i;return{kind:"message",type:"agent",message:a.message,sections:a.sections.map(l=>({name:l.name,content:l.content}))}}case"toolCallContent":{let a=i;return{kind:"toolCall",toolName:a.toolName,result:a.result===0?"success":a.result===1?"error":void 0,durationInMillis:a.durationInMillis,input:a.input,output:a.output}}case"modelTurnContent":{let a=i;return{kind:"modelTurn",requestName:a.requestName,model:a.model,status:a.status,durationInMillis:a.durationInMillis,timeToFirstTokenInMillis:a.timeToFirstTokenInMillis,maxInputTokens:a.maxInputTokens,maxOutputTokens:a.maxOutputTokens,inputTokens:a.inputTokens,outputTokens:a.outputTokens,cachedTokens:a.cachedTokens,totalTokens:a.totalTokens,errorMessage:a.errorMessage,sections:a.sections?.map(l=>({name:l.name,content:l.content}))}}default:return}}_deserializeEvent(e){let n=new Date(e.created),o=e.sessionResource?y.revive(e.sessionResource):void 0;switch(e.kind){case"toolCall":{let i=new hm(e.toolName,n);return i.id=e.id,i.sessionResource=o,i.parentEventId=e.parentEventId,i.toolCallId=e.toolCallId,i.input=e.input,i.output=e.output,i.result=e.result==="success"?0:e.result==="error"?1:void 0,i.durationInMillis=e.durationInMillis,i}case"modelTurn":{let i=new vm(n);return i.id=e.id,i.sessionResource=o,i.parentEventId=e.parentEventId,i.model=e.model,i.inputTokens=e.inputTokens,i.outputTokens=e.outputTokens,i.totalTokens=e.totalTokens,i.durationInMillis=e.durationInMillis,i}case"generic":{let i=new bm(e.name,e.level,n);return i.id=e.id,i.sessionResource=o,i.parentEventId=e.parentEventId,i.details=e.details,i.category=e.category,i}case"subagentInvocation":{let i=new ym(e.agentName,n);return i.id=e.id,i.sessionResource=o,i.parentEventId=e.parentEventId,i.description=e.description,i.status=e.status==="running"?0:e.status==="completed"?1:e.status==="failed"?2:void 0,i.durationInMillis=e.durationInMillis,i.toolCallCount=e.toolCallCount,i.modelTurnCount=e.modelTurnCount,i}case"userMessage":{let i=new Im(e.message,n);return i.id=e.id,i.sessionResource=o,i.parentEventId=e.parentEventId,i.sections=e.sections.map(s=>new Hc(s.name,s.content)),i}case"agentResponse":{let i=new xm(e.message,n);return i.id=e.id,i.sessionResource=o,i.parentEventId=e.parentEventId,i.sections=e.sections.map(s=>new Hc(s.name,s.content)),i}default:return}}$onCoreDebugEvent(e){let n=this._deserializeEvent(e);n&&this._onDidAddCoreEvent.fire(n)}async $exportChatDebugLog(e,n,o,i,s){if(!this._provider?.provideChatDebugLogExport)return;let a=y.revive(n),d={coreEvents:o.map(u=>this._deserializeEvent(u)).filter(u=>u!==void 0),sessionTitle:i},c=await this._provider.provideChatDebugLogExport(a,d,s);if(c)return W.wrap(c)}async $importChatDebugLog(e,n,o){if(!this._provider?.resolveChatDebugLogImport)return;let i=await this._provider.resolveChatDebugLogImport(n.buffer,o);if(i)return{uri:i.uri,sessionTitle:i.sessionTitle}}dispose(){for(let e of this._activeProgress.values())e.dispose();this._activeProgress.clear(),super.dispose()}};_f=_([C(0,ie)],_f);function RB(r){let t=r.get(Ye),e=r.get(Ur),n=r.get(Ds),o=r.get(ao),i=r.get(_n),s=r.get(ld),a=r.get(vn),l=r.get(Zi),d=r.get(ie),c=r.get(eg),u=r.get(ng),m=r.get(Wo),g=r.get(oe),h=r.get(sd),f=r.get(Ai),I=r.get(iu),S=r.get(NT),E=r.get(su),P=r.get(Ig),L=r.get(Li),j=r.get(Tg),F=r.get(au),z=r.get(mg),J=r.get(gg),Y=r.get(gu),X=r.get(BT),q=r.get(zT),He=r.get(KT);d.set(ue.ExtHostFileSystemInfo,e),d.set(ue.ExtHostLogLevelServiceShape,m),d.set(ue.ExtHostWorkspace,i),d.set(ue.ExtHostConfiguration,a),d.set(ue.ExtHostExtensionService,o),d.set(ue.ExtHostStorage,c),d.set(ue.ExtHostTunnelService,h),d.set(ue.ExtHostWindow,I),d.set(ue.ExtHostPower,S),d.set(ue.ExtHostUrls,E),d.set(ue.ExtHostSecretState,P),d.set(ue.ExtHostTelemetry,s),d.set(ue.ExtHostEditorTabs,L),d.set(ue.ExtHostManagedSockets,j),d.set(ue.ExtHostProgress,F),d.set(ue.ExtHostAuthentication,z),d.set(ue.ExtHostChatProvider,J),d.set(ue.ExtHostDataChannels,X),d.set(ue.ExtHostMeteredConnection,q),d.set(ue.ExtHostGitExtension,He);let ct=d.set(ue.ExtHostDecorations,r.get(ST)),et=d.set(ue.ExtHostDocumentsAndEditors,r.get(kr)),ne=d.set(ue.ExtHostCommands,r.get(Dn)),ee=d.set(ue.ExtHostTerminalService,r.get(Io)),ae=d.set(ue.ExtHostTerminalShellIntegration,r.get($g)),re=d.set(ue.ExtHostDebugService,r.get(Ug)),ce=d.set(ue.ExtHostSearch,r.get(Wg)),ve=d.set(ue.ExtHostTask,r.get(Ag)),Me=d.set(ue.ExtHostOutputService,r.get(xT)),It=d.set(ue.ExtHostLocalization,r.get(Sg)),Ne=d.set(ue.ExtHostDocuments,new PE(d,et)),Ct=d.set(ue.ExtHostDocumentContentProviders,new wE(d,et,g)),Ot=d.set(ue.ExtHostDocumentSaveParticipant,new kE(g,Ne,d.getProxy(U.MainThreadBulkEdits))),je=d.set(ue.ExtHostNotebook,new Hw(d,ne,et,Ne,n,ce,g)),Tn=d.set(ue.ExtHostNotebookDocuments,new Vw(je)),So=d.set(ue.ExtHostNotebookEditors,new Tf(g,je)),Hi=d.set(ue.ExtHostNotebookKernels,new Ef(d,t,je,ne,g)),Ha=d.set(ue.ExtHostNotebookRenderers,new $w(d,je)),Zr=d.set(ue.ExtHostNotebookDocumentSaveParticipant,new Ww(g,je,d.getProxy(U.MainThreadBulkEdits))),ye=d.set(ue.ExtHostEditors,new Jw(d,et)),Tt=d.set(ue.ExtHostTreeViews,new Zw(d.getProxy(U.MainThreadTreeViews),ne,g)),Bf=d.set(ue.ExtHostEditorInsets,new bE(d.getProxy(U.MainThreadEditorInsets),ye,t.remote)),fr=d.set(ue.ExtHostDiagnostics,new Yr(d,g,e,et)),Oo=d.set(ue.ExtHostLanguages,new ww(d,Ne,ne.converter,l)),tt=d.set(ue.ExtHostLanguageFeatures,new ow(d,l,Ne,ne,fr,g,f,s)),kd=d.set(ue.ExtHostCodeMapper,new yE(d)),Ru=d.set(ue.ExtHostFileSystem,new AE(d,tt)),ei=d.set(ue.ExtHostFileSystemEventService,new UE(d,g,et)),Wi=d.set(ue.ExtHostQuickOpen,EB(d,i,ne)),Pd=d.set(ue.ExtHostSCM,new wf(d,ne,Ne,g)),_d=d.set(ue.ExtHostQuickDiff,new qw(d,l)),No=d.set(ue.ExtHostShare,new Kw(d,l)),Wa=d.set(ue.ExtHostComments,LV(d,ne,Ne)),ln=d.set(ue.ExtHostLabelService,new HE(d)),qn=d.set(ue.ExtHostTheming,new kf(d)),uy=d.set(ue.ExtHostTimeline,new Yw(d,ne)),Dd=d.set(ue.ExtHostWebviews,new xE(d,t.remote,i,g,f)),Hs=d.set(ue.ExtHostWebviewPanels,new tk(d,Dd,i)),Au=d.set(ue.ExtHostCustomEditors,new CE(d,Ne,u,Dd,Hs)),M=d.set(ue.ExtHostWebviewViews,new nk(d,Dd)),B=d.set(ue.ExtHostTesting,r.get(Ma)),Q=d.set(ue.ExtHostUriOpeners,new ek(d)),ke=d.set(ue.ExtHostProfileContentHandlers,new zw(d)),Ve=d.set(ue.ExtHostChatOutputRenderer,new gE(d,Dd));d.set(ue.ExtHostInteractive,new FE(d,je,et,ne,g));let dn=d.set(ue.ExtHostLanguageModelTools,new Ew(d,J)),xt=d.set(ue.ExtHostChatSessions,new Sd(ne,J,d,g)),_t=d.set(ue.ExtHostChatAgents2,new pE(d,g,ne,Ne,et,J,fr,dn)),Yt=d.set(ue.ExtHostChatContext,new Pf(d,ne)),On=d.set(ue.ExtHostChatDebug,new _f(d)),jo=d.set(ue.ExtHostAiRelatedInformation,new lE(d)),gn=d.set(ue.ExtHostAiEmbeddingVector,new DE(d)),Nn=d.set(ue.ExtHostAiSettingsSearch,new dE(d)),Zn=d.set(ue.ExtHostStatusBar,new Qw(d,ne.converter)),Go=d.set(ue.ExtHostSpeech,new jw(d)),We=d.set(ue.ExtHostEmbeddings,new _E(d)),Je=d.set(ue.ExtHostBrowsers,new Gw(d));d.set(ue.ExtHostMcp,r.get(gu));let Vt=Object.values(ue);d.assertRegistered(Vt);let te=new nf(d,et),Kn=new vE(d),Mu=new xf(d,g),Va=new EE(d),ti=new hE(d);return uE.register(ne),function(k,Ba,Mk){function le(b){return(x,D,Se)=>{let vt=b(fn=>{try{x.call(D,fn)}catch(B5){Md(new cp(k.identifier,B5,"FAILED to handle event"))}});return Se?.push(vt),vt}}let Rt=(function(){let b=!k.isUnderDevelopment;function x(){b||(g.info(`Extension '${k.identifier.value}' uses a document selector without scheme. Learn more about this: https://go.microsoft.com/fwlink/?linkid=872305`),b=!0)}return function D(Se){if(Array.isArray(Se))Se.forEach(D);else if(typeof Se=="string")x();else{let vt=Se;typeof vt.scheme>"u"&&x(),typeof vt.exclusive=="boolean"&&A(k,"documentFiltersExclusive")}return Se}})(),E5={getSession(b,x,D){return(typeof D?.forceNewSession=="object"&&D.forceNewSession.learnMore||typeof D?.createIfNone=="object"&&D.createIfNone.learnMore)&&A(k,"authLearnMore"),D?.authorizationServer&&A(k,"authIssuers"),z.getSession(k,b,x,D)},getAccounts(b){return z.getAccounts(b)},async hasSession(b,x){return A(k,"authSession"),!!await z.getSession(k,b,x,{silent:!0})},get onDidChangeSessions(){return le(z.getExtensionScopedSessionsEvent(k.identifier.value))},registerAuthenticationProvider(b,x,D,Se){return Se?.supportedAuthorizationServers&&A(k,"authIssuers"),z.registerAuthenticationProvider(b,x,D,Se)}},w5={registerCommand(b,x,D){return ne.registerCommand(!0,b,x,D,void 0,k)},registerTextEditorCommand(b,x,D){return ne.registerCommand(!0,b,(...Se)=>{let vt=ye.getActiveTextEditor();if(!vt){g.warn("Cannot execute "+b+" because there is no active text editor.");return}return vt.edit(fn=>{x.apply(D,[vt,fn,...Se])}).then(fn=>{fn||g.warn("Edits from command "+b+" were not applied.")},fn=>{g.warn("An error occurred while running command "+b,fn)})},void 0,void 0,k)},registerDiffInformationCommand:(b,x,D)=>(A(k,"diffCommand"),ne.registerCommand(!0,b,async(...Se)=>{let vt=et.activeEditor(!0);if(!vt){g.warn("Cannot execute "+b+" because there is no active text editor.");return}let fn=await ye.getDiffInformation(vt.id);x.apply(D,[fn,...Se])},void 0,void 0,k)),executeCommand(b,...x){return ne.executeCommand(b,...x)},getCommands(b=!1){return ne.getCommands(b)}},MO={get machineId(){return t.telemetryInfo.machineId},get devDeviceId(){return A(k,"devDeviceId"),t.telemetryInfo.devDeviceId??t.telemetryInfo.machineId},get isAppPortable(){return t.environment.isPortable??!1},get sessionId(){return t.telemetryInfo.sessionId},get language(){return t.environment.appLanguage},get appName(){return t.environment.appName},get appRoot(){return t.environment.appRoot?.fsPath??""},get appHost(){return t.environment.appHost},get uriScheme(){return t.environment.appUriScheme},get clipboard(){return Kn.value},get shell(){return ee.getDefaultShell(!1)},get onDidChangeShell(){return le(ee.onDidChangeShell)},get isTelemetryEnabled(){return s.getTelemetryConfiguration()},get onDidChangeTelemetryEnabled(){return le(s.onDidChangeTelemetryEnabled)},get telemetryConfiguration(){return A(k,"telemetry"),s.getTelemetryDetails()},get onDidChangeTelemetryConfiguration(){return A(k,"telemetry"),le(s.onDidChangeTelemetryConfiguration)},get isMeteredConnection(){return A(k,"envIsConnectionMetered"),q.isConnectionMetered},get onDidChangeMeteredConnection(){return A(k,"envIsConnectionMetered"),le(q.onDidChangeIsConnectionMetered)},get isNewAppInstall(){return o0(t.telemetryInfo.firstSessionDate)},createTelemetryLogger(b,x){return ob.validateSender(b),s.instantiateLogger(k,b,x)},async openExternal(b,x){return I.openUri(b,{allowTunneling:t.remote.isRemote??(t.remote.authority?await h.hasTunnelProvider():!1),allowContributedOpeners:x?.allowContributedOpeners})},async asExternalUri(b){if(b.scheme===t.environment.appUriScheme)return E.createAppUri(b);try{return await I.asExternalUri(b,{allowTunneling:!!t.remote.authority})}catch(x){if(Gy(b,V.http)||Gy(b,V.https))return b;throw x}},get remoteName(){return Dh(t.remote.authority)},get remoteAuthority(){return A(k,"resolvers"),t.remote.authority},get uiKind(){return t.uiKind},get logLevel(){return g.getLevel()},get onDidChangeLogLevel(){return le(g.onDidChangeLogLevel)},get appQuality(){return A(k,"resolvers"),t.quality},get appCommit(){return A(k,"resolvers"),t.commit},getDataChannel(b){return A(k,"dataChannels"),X.createDataChannel(k,b)},get power(){return A(k,"environmentPower"),{get onDidSuspend(){return le(S.onDidSuspend)},get onDidResume(){return le(S.onDidResume)},get onDidChangeOnBatteryPower(){return le(S.onDidChangeOnBatteryPower)},get onDidChangeThermalState(){return le(S.onDidChangeThermalState)},get onDidChangeSpeedLimit(){return le(S.onDidChangeSpeedLimit)},get onWillShutdown(){return le(S.onWillShutdown)},get onDidLockScreen(){return le(S.onDidLockScreen)},get onDidUnlockScreen(){return le(S.onDidUnlockScreen)},getSystemIdleState(b){return S.getSystemIdleState(b)},getSystemIdleTime(){return S.getSystemIdleTime()},getCurrentThermalState(){return S.getCurrentThermalState()},isOnBatteryPower(){return S.isOnBatteryPower()},async startPowerSaveBlocker(b){let x=await S.startPowerSaveBlocker(b);return{id:x.id,get isStarted(){return x.isStarted},dispose(){x.dispose()}}}}}};t.environment.extensionTestsLocationURI||Object.freeze(MO);let k5={createTestController(b,x,D){return B.createTestController(k,b,x,D)},createTestObserver(){return A(k,"testObserver"),B.createTestObserver()},runTests(b){return A(k,"testObserver"),B.runTests(b)},registerTestFollowupProvider(b){return A(k,"testObserver"),B.registerTestFollowupProvider(b)},get onDidChangeTestResults(){return A(k,"testObserver"),le(B.onResultsChanged)},get testResults(){return A(k,"testObserver"),B.results}},py=t.remote.isRemote?2:1,P5={getExtension(b,x){Fe(k,"extensionsAny")||(x=!1);let D=Ba.mine.getExtensionDescription(b);if(D)return new md(o,k.identifier,D,py,!1);if(x){let Se=Ba.all.getExtensionDescription(b);if(Se)return new md(o,k.identifier,Se,py,!0)}},get all(){let b=[];for(let x of Ba.mine.getAllExtensionDescriptions())b.push(new md(o,k.identifier,x,py,!1));return b},get allAcrossExtensionHosts(){A(k,"extensionsAny");let b=new ko(Ba.mine.getAllExtensionDescriptions().map(D=>D.identifier)),x=[];for(let D of Ba.all.getAllExtensionDescriptions()){let Se=!b.has(D.identifier);x.push(new md(o,k.identifier,D,py,Se))}return x},get onDidChange(){return Fe(k,"extensionsAny")?le(fe.any(Ba.mine.onDidChange,Ba.all.onDidChange)):le(Ba.mine.onDidChange)}},_5={createDiagnosticCollection(b){return fr.createDiagnosticCollection(k.identifier,b)},get onDidChangeDiagnostics(){return le(fr.onDidChangeDiagnostics)},getDiagnostics:b=>fr.getDiagnostics(b),getLanguages(){return Oo.getLanguages()},setTextDocumentLanguage(b,x){return Oo.changeLanguage(b.uri,x)},match(b,x){let D=h1.from(b),Se;return AM(D)&&(Se=je.notebookDocuments.find(vt=>vt.apiNotebook.getCells().find(fn=>fn.document===x))?.apiNotebook),RM(D,x.uri,x.languageId,!0,Se?.uri,Se?.notebookType)},registerCodeActionsProvider(b,x,D){return tt.registerCodeActionProvider(k,Rt(b),x,D)},registerDocumentPasteEditProvider(b,x,D){return tt.registerDocumentPasteEditProvider(k,Rt(b),x,D)},registerCodeLensProvider(b,x){return tt.registerCodeLensProvider(k,Rt(b),x)},registerDefinitionProvider(b,x){return tt.registerDefinitionProvider(k,Rt(b),x)},registerDeclarationProvider(b,x){return tt.registerDeclarationProvider(k,Rt(b),x)},registerImplementationProvider(b,x){return tt.registerImplementationProvider(k,Rt(b),x)},registerTypeDefinitionProvider(b,x){return tt.registerTypeDefinitionProvider(k,Rt(b),x)},registerHoverProvider(b,x){return tt.registerHoverProvider(k,Rt(b),x,k.identifier)},registerEvaluatableExpressionProvider(b,x){return tt.registerEvaluatableExpressionProvider(k,Rt(b),x,k.identifier)},registerInlineValuesProvider(b,x){return tt.registerInlineValuesProvider(k,Rt(b),x,k.identifier)},registerDocumentHighlightProvider(b,x){return tt.registerDocumentHighlightProvider(k,Rt(b),x)},registerMultiDocumentHighlightProvider(b,x){return tt.registerMultiDocumentHighlightProvider(k,Rt(b),x)},registerLinkedEditingRangeProvider(b,x){return tt.registerLinkedEditingRangeProvider(k,Rt(b),x)},registerReferenceProvider(b,x){return tt.registerReferenceProvider(k,Rt(b),x)},registerRenameProvider(b,x){return tt.registerRenameProvider(k,Rt(b),x)},registerNewSymbolNamesProvider(b,x){return A(k,"newSymbolNamesProvider"),tt.registerNewSymbolNamesProvider(k,Rt(b),x)},registerDocumentSymbolProvider(b,x,D){return tt.registerDocumentSymbolProvider(k,Rt(b),x,D)},registerWorkspaceSymbolProvider(b){return tt.registerWorkspaceSymbolProvider(k,b)},registerDocumentFormattingEditProvider(b,x){return tt.registerDocumentFormattingEditProvider(k,Rt(b),x)},registerDocumentRangeFormattingEditProvider(b,x){return tt.registerDocumentRangeFormattingEditProvider(k,Rt(b),x)},registerOnTypeFormattingEditProvider(b,x,D,...Se){return tt.registerOnTypeFormattingEditProvider(k,Rt(b),x,[D].concat(Se))},registerDocumentSemanticTokensProvider(b,x,D){return tt.registerDocumentSemanticTokensProvider(k,Rt(b),x,D)},registerDocumentRangeSemanticTokensProvider(b,x,D){return tt.registerDocumentRangeSemanticTokensProvider(k,Rt(b),x,D)},registerSignatureHelpProvider(b,x,D,...Se){return typeof D=="object"?tt.registerSignatureHelpProvider(k,Rt(b),x,D):tt.registerSignatureHelpProvider(k,Rt(b),x,typeof D>"u"?[]:[D,...Se])},registerCompletionItemProvider(b,x,...D){return tt.registerCompletionItemProvider(k,Rt(b),x,D)},registerInlineCompletionItemProvider(b,x,D){return x.handleDidShowCompletionItem&&A(k,"inlineCompletionsAdditions"),x.handleDidPartiallyAcceptCompletionItem&&A(k,"inlineCompletionsAdditions"),D&&A(k,"inlineCompletionsAdditions"),tt.registerInlineCompletionsProvider(k,Rt(b),x,D)},get inlineCompletionsUnificationState(){return A(k,"inlineCompletionsAdditions"),tt.inlineCompletionsUnificationState},onDidChangeCompletionsUnificationState(b,x,D){return A(k,"inlineCompletionsAdditions"),le(tt.onDidChangeInlineCompletionsUnificationState)(b,x,D)},registerDocumentLinkProvider(b,x){return tt.registerDocumentLinkProvider(k,Rt(b),x)},registerColorProvider(b,x){return tt.registerColorProvider(k,Rt(b),x)},registerFoldingRangeProvider(b,x){return tt.registerFoldingRangeProvider(k,Rt(b),x)},registerSelectionRangeProvider(b,x){return tt.registerSelectionRangeProvider(k,b,x)},registerCallHierarchyProvider(b,x){return tt.registerCallHierarchyProvider(k,b,x)},registerTypeHierarchyProvider(b,x){return tt.registerTypeHierarchyProvider(k,b,x)},setLanguageConfiguration:(b,x)=>tt.setLanguageConfiguration(k,b,x),getTokenInformationAtPosition(b,x){return A(k,"tokenInformation"),Oo.tokenAtPosition(b,x)},registerInlayHintsProvider(b,x){return tt.registerInlayHintsProvider(k,b,x)},createLanguageStatusItem(b,x){return Oo.createLanguageStatusItem(k,b,x)},registerDocumentDropEditProvider(b,x,D){return tt.registerDocumentOnDropEditProvider(k,b,x,D)}},D5={get activeTextEditor(){return ye.getActiveTextEditor()},get visibleTextEditors(){return ye.getVisibleTextEditors()},get activeTerminal(){return ee.activeTerminal},get terminals(){return ee.terminals},async showTextDocument(b,x,D){y.isUri(b)&&b.scheme===V.vscodeRemote&&!b.authority&&f.report("workspace.showTextDocument",k,"A URI of 'vscode-remote' scheme requires an authority.");let Se=await(y.isUri(b)?Promise.resolve(LO.openTextDocument(b)):Promise.resolve(b));return ye.showTextDocument(Se,x,D)},createTextEditorDecorationType(b){return ye.createTextEditorDecorationType(k,b)},onDidChangeActiveTextEditor(b,x,D){return le(ye.onDidChangeActiveTextEditor)(b,x,D)},onDidChangeVisibleTextEditors(b,x,D){return le(ye.onDidChangeVisibleTextEditors)(b,x,D)},onDidChangeTextEditorSelection(b,x,D){return le(ye.onDidChangeTextEditorSelection)(b,x,D)},onDidChangeTextEditorOptions(b,x,D){return le(ye.onDidChangeTextEditorOptions)(b,x,D)},onDidChangeTextEditorVisibleRanges(b,x,D){return le(ye.onDidChangeTextEditorVisibleRanges)(b,x,D)},onDidChangeTextEditorViewColumn(b,x,D){return le(ye.onDidChangeTextEditorViewColumn)(b,x,D)},onDidChangeTextEditorDiffInformation(b,x,D){return A(k,"textEditorDiffInformation"),le(ye.onDidChangeTextEditorDiffInformation)(b,x,D)},onDidCloseTerminal(b,x,D){return le(ee.onDidCloseTerminal)(b,x,D)},onDidOpenTerminal(b,x,D){return le(ee.onDidOpenTerminal)(b,x,D)},onDidChangeActiveTerminal(b,x,D){return le(ee.onDidChangeActiveTerminal)(b,x,D)},onDidChangeTerminalDimensions(b,x,D){return A(k,"terminalDimensions"),le(ee.onDidChangeTerminalDimensions)(b,x,D)},onDidChangeTerminalState(b,x,D){return le(ee.onDidChangeTerminalState)(b,x,D)},onDidWriteTerminalData(b,x,D){return A(k,"terminalDataWriteEvent"),le(ee.onDidWriteTerminalData)(b,x,D)},onDidExecuteTerminalCommand(b,x,D){return A(k,"terminalExecuteCommandEvent"),le(ee.onDidExecuteTerminalCommand)(b,x,D)},onDidChangeTerminalShellIntegration(b,x,D){return le(ae.onDidChangeTerminalShellIntegration)(b,x,D)},onDidStartTerminalShellExecution(b,x,D){return le(ae.onDidStartTerminalShellExecution)(b,x,D)},onDidEndTerminalShellExecution(b,x,D){return le(ae.onDidEndTerminalShellExecution)(b,x,D)},get state(){return I.getState()},onDidChangeWindowState(b,x,D){return le(I.onDidChangeWindowState)(b,x,D)},showInformationMessage(b,...x){return Mu.showMessage(k,Xe.Info,b,x[0],x.slice(1))},showWarningMessage(b,...x){return Mu.showMessage(k,Xe.Warning,b,x[0],x.slice(1))},showErrorMessage(b,...x){return Mu.showMessage(k,Xe.Error,b,x[0],x.slice(1))},showQuickPick(b,x,D){return Wi.showQuickPick(k,b,x,D)},showWorkspaceFolderPick(b){return Wi.showWorkspaceFolderPick(b)},showInputBox(b,x){return Wi.showInput(b,x)},showOpenDialog(b){return Va.showOpenDialog(b)},showSaveDialog(b){return Va.showSaveDialog(b)},createStatusBarItem(b,x,D){let Se,vt,fn;return typeof b=="string"?(Se=b,vt=x,fn=D):(vt=b,fn=x),Zn.createStatusBarEntry(k,Se,vt,fn)},setStatusBarMessage(b,x){return Zn.setStatusBarMessage(b,x)},withScmProgress(b){return f.report("window.withScmProgress",k,"Use 'withProgress' instead."),F.withProgress(k,{location:1},(x,D)=>b({report(Se){}}))},withProgress(b,x){return F.withProgress(k,b,x)},createOutputChannel(b,x){return Me.createOutputChannel(b,x,k)},createWebviewPanel(b,x,D,Se){return Hs.createWebviewPanel(k,b,x,D,Se)},createWebviewTextEditorInset(b,x,D,Se){return A(k,"editorInsets"),Bf.createWebviewEditorInset(b,x,D,Se,k)},createTerminal(b,x,D){if(typeof b=="object"){let Se=b;return!Fe(k,"terminalTitle")&&"titleTemplate"in b&&b.titleTemplate!==void 0&&(console.error(`[${k.identifier.value}] \`titleTemplate\` was provided to window.createTerminal but is ignored because the \`terminalTitle\` proposed API is not enabled.`),Se={...b,titleTemplate:void 0}),"pty"in Se?ee.createExtensionTerminal(Se):ee.createTerminalFromOptions(Se)}return ee.createTerminal(b,x,D)},registerTerminalLinkProvider(b){return ee.registerLinkProvider(b)},registerTerminalProfileProvider(b,x){return ee.registerProfileProvider(k,b,x)},registerTerminalCompletionProvider(b,...x){return A(k,"terminalCompletionProvider"),ee.registerTerminalCompletionProvider(k,b,...x)},registerTerminalQuickFixProvider(b,x){return A(k,"terminalQuickFixProvider"),ee.registerTerminalQuickFixProvider(b,k.identifier.value,x)},registerTreeDataProvider(b,x){return Tt.registerTreeDataProvider(b,x,k)},createTreeView(b,x){return Tt.createTreeView(b,x,k)},registerWebviewPanelSerializer:(b,x)=>Hs.registerWebviewPanelSerializer(k,b,x),registerCustomEditorProvider:(b,x,D={})=>Au.registerCustomEditorProvider(k,b,x,D),registerFileDecorationProvider(b){return ct.registerFileDecorationProvider(b,k)},registerUriHandler(b){return E.registerUriHandler(k,b)},createQuickPick(){return Wi.createQuickPick(k)},createInputBox(){return Wi.createInputBox(k)},get activeColorTheme(){return qn.activeColorTheme},onDidChangeActiveColorTheme(b,x,D){return le(qn.onDidChangeActiveColorTheme)(b,x,D)},registerWebviewViewProvider(b,x,D){return M.registerWebviewViewProvider(k,b,x,D?.webviewOptions)},get activeNotebookEditor(){return je.activeNotebookEditor},onDidChangeActiveNotebookEditor(b,x,D){return le(je.onDidChangeActiveNotebookEditor)(b,x,D)},get visibleNotebookEditors(){return je.visibleNotebookEditors},get onDidChangeVisibleNotebookEditors(){return le(je.onDidChangeVisibleNotebookEditors)},onDidChangeNotebookEditorSelection(b,x,D){return le(So.onDidChangeNotebookEditorSelection)(b,x,D)},onDidChangeNotebookEditorVisibleRanges(b,x,D){return le(So.onDidChangeNotebookEditorVisibleRanges)(b,x,D)},showNotebookDocument(b,x){return je.showNotebookDocument(b,x)},registerExternalUriOpener(b,x,D){return A(k,"externalUriOpener"),Q.registerExternalUriOpener(k.identifier,b,x,D)},registerProfileContentHandler(b,x){return A(k,"profileContentHandlers"),ke.registerProfileContentHandler(k,b,x)},registerQuickDiffProvider(b,x,D,Se,vt){return A(k,"quickDiffProvider"),_d.registerQuickDiffProvider(k,Rt(b),x,D,Se,vt)},get tabGroups(){return L.tabGroups},registerShareProvider(b,x){return A(k,"shareProvider"),No.registerShareProvider(Rt(b),x)},get nativeHandle(){return A(k,"nativeWindowHandle"),I.nativeHandle},createChatStatusItem:b=>(A(k,"chatStatusItem"),ti.createChatStatusItem(k,b)),get activeChatPanelSessionResource(){return A(k,"chatParticipantPrivate"),_t.activeChatPanelSessionResource},onDidChangeActiveChatPanelSessionResource:(b,x,D)=>(A(k,"chatParticipantPrivate"),le(_t.onDidChangeActiveChatPanelSessionResource)(b,x,D)),get browserTabs(){return A(k,"browser"),Je.browserTabs},onDidOpenBrowserTab(b,x,D){return A(k,"browser"),le(Je.onDidOpenBrowserTab)(b,x,D)},onDidCloseBrowserTab(b,x,D){return A(k,"browser"),le(Je.onDidCloseBrowserTab)(b,x,D)},get activeBrowserTab(){return A(k,"browser"),Je.activeBrowserTab},onDidChangeActiveBrowserTab(b,x,D){return A(k,"browser"),le(Je.onDidChangeActiveBrowserTab)(b,x,D)},onDidChangeBrowserTabState(b,x,D){return A(k,"browser"),le(Je.onDidChangeBrowserTabState)(b,x,D)},openBrowserTab(b,x){return A(k,"browser"),Je.openBrowserTab(b,x)}},LO={get rootPath(){return f.report("workspace.rootPath",k,"Please use 'workspace.workspaceFolders' instead. More details: https://aka.ms/vscode-eliminating-rootpath"),i.getPath()},set rootPath(b){throw new ni("rootPath")},getWorkspaceFolder(b){return i.getWorkspaceFolder(b)},get workspaceFolders(){return i.getWorkspaceFolders()},get name(){return i.name},set name(b){throw new ni("name")},get workspaceFile(){return i.workspaceFile},set workspaceFile(b){throw new ni("workspaceFile")},get isAgentSessionsWorkspace(){return A(k,"agentSessionsWorkspace"),!!t.environment.isSessionsWindow},updateWorkspaceFolders:(b,x,...D)=>i.updateWorkspaceFolders(k,b,x||0,...D),onDidChangeWorkspaceFolders:function(b,x,D){return le(i.onDidChangeWorkspace)(b,x,D)},asRelativePath:(b,x)=>i.getRelativePath(b,x),findFiles:(b,x,D,Se)=>i.findFiles(b,x,D,k.identifier,Se),findFiles2:(b,x,D)=>(A(k,"findFiles2"),i.findFiles2(b,x,k.identifier,D)),findTextInFiles:(b,x,D,Se)=>{A(k,"findTextInFiles");let vt,fn;return typeof x=="object"?(vt=x,fn=D):(vt={},fn=x,Se=D),i.findTextInFiles(b,vt||{},fn,k.identifier,Se)},findTextInFiles2:(b,x,D)=>(A(k,"findTextInFiles2"),A(k,"textSearchProvider2"),i.findTextInFiles2(b,x,k.identifier,D)),save:b=>i.save(b),saveAs:b=>i.saveAs(b),saveAll:b=>i.saveAll(b),applyEdit(b,x){return te.applyWorkspaceEdit(b,k,x)},createFileSystemWatcher:(b,x,D,Se)=>{let vt={ignoreCreateEvents:!!x,ignoreChangeEvents:!!D,ignoreDeleteEvents:!!Se};return ei.createFileSystemWatcher(i,Mk,e,k,b,vt)},get textDocuments(){return Ne.getAllDocumentData().map(b=>b.document)},set textDocuments(b){throw new ni("textDocuments")},openTextDocument(b,x){let D;if(x=x??b,typeof b=="string")D=Promise.resolve(y.file(b));else if(y.isUri(b))D=Promise.resolve(b);else if(!x||typeof x=="object")D=Ne.createDocumentData(x);else throw new Error("illegal argument - uriOrFileNameOrOptions");return D.then(Se=>(g.trace(`openTextDocument from ${k.identifier}`),Se.scheme===V.vscodeRemote&&!Se.authority&&f.report("workspace.openTextDocument",k,"A URI of 'vscode-remote' scheme requires an authority."),Ne.ensureDocumentData(Se,x).then(vt=>vt.document)))},onDidOpenTextDocument:(b,x,D)=>le(Ne.onDidAddDocument)(b,x,D),onDidCloseTextDocument:(b,x,D)=>le(Ne.onDidRemoveDocument)(b,x,D),onDidChangeTextDocument:(b,x,D)=>Fe(k,"textDocumentChangeReason")?le(Ne.onDidChangeDocumentWithReason)(b,x,D):le(Ne.onDidChangeDocument)(b,x,D),onDidSaveTextDocument:(b,x,D)=>le(Ne.onDidSaveDocument)(b,x,D),onWillSaveTextDocument:(b,x,D)=>le(Ot.getOnWillSaveTextDocumentEvent(k))(b,x,D),get notebookDocuments(){return je.notebookDocuments.map(b=>b.apiNotebook)},async openNotebookDocument(b,x){let D;if(y.isUri(b))D=b,await je.openNotebookDocument(b);else if(typeof b=="string")D=y.revive(await je.createNotebookDocument({viewType:b,content:x}));else throw new Error("Invalid arguments");return je.getNotebookDocument(D).apiNotebook},onDidSaveNotebookDocument(b,x,D){return le(Tn.onDidSaveNotebookDocument)(b,x,D)},onDidChangeNotebookDocument(b,x,D){return le(Tn.onDidChangeNotebookDocument)(b,x,D)},onWillSaveNotebookDocument(b,x,D){return le(Zr.getOnWillSaveNotebookDocumentEvent(k))(b,x,D)},get onDidOpenNotebookDocument(){return le(je.onDidOpenNotebookDocument)},get onDidCloseNotebookDocument(){return le(je.onDidCloseNotebookDocument)},registerNotebookSerializer(b,x,D,Se){return je.registerNotebookSerializer(k,b,x,D,Fe(k,"notebookLiveShare")?Se:void 0)},onDidChangeConfiguration:(b,x,D)=>le(Mk.onDidChangeConfiguration)(b,x,D),getConfiguration(b,x){return x=arguments.length===1?void 0:x,Mk.getConfiguration(b,x,k)},registerTextDocumentContentProvider(b,x){return Ct.registerTextDocumentContentProvider(b,x)},registerTaskProvider:(b,x)=>(f.report("window.registerTaskProvider",k,"Use the corresponding function on the 'tasks' namespace instead"),ve.registerTaskProvider(k,b,x)),registerFileSystemProvider(b,x,D){return zu(Ru.registerFileSystemProvider(k,b,x,D),n.addFileSystemProvider(b,x,D))},get fs(){return n.value},registerFileSearchProvider:(b,x)=>(A(k,"fileSearchProvider"),ce.registerFileSearchProviderOld(b,x)),registerTextSearchProvider:(b,x)=>(A(k,"textSearchProvider"),ce.registerTextSearchProviderOld(b,x)),registerAITextSearchProvider:(b,x)=>(A(k,"aiTextSearchProvider"),A(k,"textSearchProvider2"),ce.registerAITextSearchProvider(b,x)),registerFileSearchProvider2:(b,x)=>(A(k,"fileSearchProvider2"),ce.registerFileSearchProvider(b,x)),registerTextSearchProvider2:(b,x)=>(A(k,"textSearchProvider2"),ce.registerTextSearchProvider(b,x)),registerRemoteAuthorityResolver:(b,x)=>(A(k,"resolvers"),o.registerRemoteAuthorityResolver(b,x)),registerResourceLabelFormatter:b=>(A(k,"resolvers"),ln.$registerResourceLabelFormatter(b)),getRemoteExecServer:b=>(A(k,"resolvers"),o.getRemoteExecServer(b)),onDidCreateFiles:(b,x,D)=>le(ei.onDidCreateFile)(b,x,D),onDidDeleteFiles:(b,x,D)=>le(ei.onDidDeleteFile)(b,x,D),onDidRenameFiles:(b,x,D)=>le(ei.onDidRenameFile)(b,x,D),onWillCreateFiles:(b,x,D)=>le(ei.getOnWillCreateFileEvent(k))(b,x,D),onWillDeleteFiles:(b,x,D)=>le(ei.getOnWillDeleteFileEvent(k))(b,x,D),onWillRenameFiles:(b,x,D)=>le(ei.getOnWillRenameFileEvent(k))(b,x,D),openTunnel:b=>(A(k,"tunnels"),h.openTunnel(k,b).then(x=>{if(!x)throw new Error("cannot open tunnel");return x})),get tunnels(){return A(k,"tunnels"),h.getTunnels()},onDidChangeTunnels:(b,x,D)=>(A(k,"tunnels"),le(h.onDidChangeTunnels)(b,x,D)),registerPortAttributesProvider:(b,x)=>(A(k,"portsAttributes"),h.registerPortsAttributesProvider(b,x)),registerTunnelProvider:(b,x)=>(A(k,"tunnelFactory"),h.registerTunnelProvider(b,x)),registerTimelineProvider:(b,x)=>(A(k,"timeline"),uy.registerTimelineProvider(b,x,k.identifier,ne.converter)),get isTrusted(){return i.trusted},requestResourceTrust:b=>(A(k,"workspaceTrust"),i.requestResourceTrust(b)),requestWorkspaceTrust:b=>(A(k,"workspaceTrust"),i.requestWorkspaceTrust(b)),isResourceTrusted:b=>(A(k,"workspaceTrust"),i.isResourceTrusted(b)),onDidChangeWorkspaceTrustedFolders:(b,x,D)=>(A(k,"workspaceTrust"),le(i.onDidChangeWorkspaceTrustedFolders)(b,x,D)),onDidGrantWorkspaceTrust:(b,x,D)=>le(i.onDidGrantWorkspaceTrust)(b,x,D),registerEditSessionIdentityProvider:(b,x)=>(A(k,"editSessionIdentityProvider"),i.registerEditSessionIdentityProvider(b,x)),onWillCreateEditSessionIdentity:(b,x,D)=>(A(k,"editSessionIdentityProvider"),le(i.getOnWillCreateEditSessionIdentityEvent(k))(b,x,D)),registerCanonicalUriProvider:(b,x)=>(A(k,"canonicalUriProvider"),i.registerCanonicalUriProvider(b,x)),getCanonicalUri:(b,x,D)=>(A(k,"canonicalUriProvider"),i.provideCanonicalUri(b,x,D)),decode(b,x){return i.decode(b,x)},encode(b,x){return i.encode(b,x)}},R5={get inputBox(){return f.report("scm.inputBox",k,"Use 'SourceControl.inputBox' instead"),Pd.getLastInputBox(k)},createSourceControl(b,x,D,Se,vt,fn){return(Se||vt||fn)&&A(k,"scmProviderOptions"),Pd.createSourceControl(k,b,x,D,Se,vt,fn)}},A5={createCommentController(b,x){return Wa.createCommentController(k,b,x)}},M5={get activeDebugSession(){return re.activeDebugSession},get activeDebugConsole(){return re.activeDebugConsole},get breakpoints(){return re.breakpoints},get activeStackItem(){return re.activeStackItem},registerDebugVisualizationProvider(b,x){return A(k,"debugVisualization"),re.registerDebugVisualizationProvider(k,b,x)},registerDebugVisualizationTreeProvider(b,x){return A(k,"debugVisualization"),re.registerDebugVisualizationTree(k,b,x)},onDidStartDebugSession(b,x,D){return le(re.onDidStartDebugSession)(b,x,D)},onDidTerminateDebugSession(b,x,D){return le(re.onDidTerminateDebugSession)(b,x,D)},onDidChangeActiveDebugSession(b,x,D){return le(re.onDidChangeActiveDebugSession)(b,x,D)},onDidReceiveDebugSessionCustomEvent(b,x,D){return le(re.onDidReceiveDebugSessionCustomEvent)(b,x,D)},onDidChangeBreakpoints(b,x,D){return le(re.onDidChangeBreakpoints)(b,x,D)},onDidChangeActiveStackItem(b,x,D){return le(re.onDidChangeActiveStackItem)(b,x,D)},registerDebugConfigurationProvider(b,x,D){return re.registerDebugConfigurationProvider(b,x,D||1)},registerDebugAdapterDescriptorFactory(b,x){return re.registerDebugAdapterDescriptorFactory(k,b,x)},registerDebugAdapterTrackerFactory(b,x){return re.registerDebugAdapterTrackerFactory(b,x)},startDebugging(b,x,D){return!D||typeof D=="object"&&"configuration"in D?re.startDebugging(b,x,{parentSession:D}):re.startDebugging(b,x,D||{})},stopDebugging(b){return re.stopDebugging(b)},addBreakpoints(b){return re.addBreakpoints(b)},removeBreakpoints(b){return re.removeBreakpoints(b)},asDebugSourceUri(b,x){return re.asDebugSourceUri(b,x)}},L5={registerTaskProvider:(b,x)=>ve.registerTaskProvider(k,b,x),fetchTasks:b=>ve.fetchTasks(b),executeTask:b=>ve.executeTask(k,b),get taskExecutions(){return ve.taskExecutions},onDidStartTask:(b,x,D)=>{let Se=vt=>{Fe(k,"taskExecutionTerminal")||vt?.execution?.terminal!==void 0&&(vt.execution.terminal=void 0);let fn={...vt,execution:vt.execution};return b.call(x,fn)};return le(ve.onDidStartTask)(Se,x,D)},onDidEndTask:(b,x,D)=>le(ve.onDidEndTask)(b,x,D),onDidStartTaskProcess:(b,x,D)=>le(ve.onDidStartTaskProcess)(b,x,D),onDidEndTaskProcess:(b,x,D)=>le(ve.onDidEndTaskProcess)(b,x,D),onDidStartTaskProblemMatchers:(b,x,D)=>(A(k,"taskProblemMatcherStatus"),le(ve.onDidStartTaskProblemMatchers)(b,x,D)),onDidEndTaskProblemMatchers:(b,x,D)=>(A(k,"taskProblemMatcherStatus"),le(ve.onDidEndTaskProblemMatchers)(b,x,D))},O5={createNotebookController(b,x,D,Se,vt){return Hi.createNotebookController(k,b,x,D,Se,Fe(k,"notebookMessaging")?vt:void 0)},registerNotebookCellStatusBarItemProvider:(b,x)=>je.registerNotebookCellStatusBarItemProvider(k,b,x),createRendererMessaging(b){return Ha.createRendererMessaging(k,b)},createNotebookControllerDetectionTask(b){return A(k,"notebookKernelSource"),Hi.createNotebookControllerDetectionTask(k,b)},registerKernelSourceActionProvider(b,x){return A(k,"notebookKernelSource"),Hi.registerKernelSourceActionProvider(k,b,x)}},N5={t(...b){if(typeof b[0]=="string"){let x=b.shift(),D=!b||typeof b[0]!="object"?b:b[0];return It.getMessage(k.identifier.value,{message:x,args:D})}return It.getMessage(k.identifier.value,b[0])},get bundle(){return It.getBundle(k.identifier.value)},get uri(){return It.getBundleUri(k.identifier.value)}},U5={transferActiveChat(b){return A(k,"interactive"),_t.transferActiveChat(b)}},F5={getRelatedInformation(b,x){return A(k,"aiRelatedInformation"),jo.getRelatedInformation(k,b,x)},registerRelatedInformationProvider(b,x){return A(k,"aiRelatedInformation"),jo.registerRelatedInformationProvider(k,b,x)},registerEmbeddingVectorProvider(b,x){return A(k,"aiRelatedInformation"),gn.registerEmbeddingVectorProvider(k,b,x)},registerSettingsSearchProvider(b){return A(k,"aiSettingsSearch"),Nn.registerSettingsSearchProvider(k,b)}},H5={registerMappedEditsProvider(b,x){return A(k,"mappedEditsProvider"),{dispose(){}}},registerMappedEditsProvider2(b){return A(k,"mappedEditsProvider"),kd.registerMappedEditsProvider(k,b)},createChatParticipant(b,x){return _t.createChatAgent(k,b,x)},createDynamicChatParticipant(b,x,D){return A(k,"chatParticipantPrivate"),_t.createDynamicChatAgent(k,b,x,D)},registerChatParticipantDetectionProvider(b){return A(k,"chatParticipantPrivate"),_t.registerChatParticipantDetectionProvider(k,b)},onDidDisposeChatSession:(b,x,D)=>(A(k,"chatParticipantPrivate"),le(_t.onDidDisposeChatSession)(b,x,D)),registerChatSessionItemProvider:(b,x)=>(A(k,"chatSessionsProvider"),f.report("chat.registerChatSessionItemProvider",k,"Please migrate to the new chat session controller API",{usageId:b}),xt.registerChatSessionItemProvider(k,b,x)),createChatSessionItemController:(b,x)=>(A(k,"chatSessionsProvider"),xt.createChatSessionItemController(k,b,x)),registerChatSessionContentProvider(b,x,D,Se){return A(k,"chatSessionsProvider"),xt.registerChatSessionContentProvider(k,b,D,x,Se)},registerChatOutputRenderer:(b,x)=>(A(k,"chatOutputRenderer"),Ve.registerChatOutputRenderer(k,b,x)),registerChatWorkspaceContextProvider(b,x){return A(k,"chatContextProvider"),Yt.registerChatWorkspaceContextProvider(`${k.id}-${b}`,x)},registerChatExplicitContextProvider(b,x){return A(k,"chatContextProvider"),Yt.registerChatExplicitContextProvider(`${k.id}-${b}`,x)},registerChatResourceContextProvider(b,x,D){return A(k,"chatContextProvider"),Yt.registerChatResourceContextProvider(Rt(b),`${k.id}-${x}`,D)},registerChatContextProvider(b,x,D){return A(k,"chatContextProvider"),Yt.registerChatContextProvider(b?Rt(b):void 0,`${k.id}-${x}`,D)},registerCustomAgentProvider(b){return A(k,"chatPromptFiles"),_t.registerPromptFileProvider(k,"agent",b)},registerInstructionsProvider(b){return A(k,"chatPromptFiles"),_t.registerPromptFileProvider(k,"instructions",b)},registerPromptFileProvider(b){return A(k,"chatPromptFiles"),_t.registerPromptFileProvider(k,"prompt",b)},registerSkillProvider(b){return A(k,"chatPromptFiles"),_t.registerPromptFileProvider(k,"skill",b)},registerChatDebugLogProvider(b){return A(k,"chatDebug"),On.registerChatDebugLogProvider(b)},onDidReceiveChatDebugEvent:(b,x,D)=>(A(k,"chatDebug"),On.onDidAddCoreEvent(b,x,D)),get customAgents(){return A(k,"chatPromptFiles"),_t.customAgents},onDidChangeCustomAgents:(b,x,D)=>(A(k,"chatPromptFiles"),_t.onDidChangeCustomAgents(b,x,D)),get instructions(){return A(k,"chatPromptFiles"),_t.instructions},onDidChangeInstructions:(b,x,D)=>(A(k,"chatPromptFiles"),_t.onDidChangeInstructions(b,x,D)),get skills(){return A(k,"chatPromptFiles"),_t.skills},onDidChangeSkills:(b,x,D)=>(A(k,"chatPromptFiles"),_t.onDidChangeSkills(b,x,D))},W5={selectChatModels:b=>J.selectLanguageModels(k,b??{}),onDidChangeChatModels:(b,x,D)=>J.onDidChangeProviders(b,x,D),registerLanguageModelChatProvider:(b,x)=>J.registerLanguageModelChatProvider(k,b,x),get isModelProxyAvailable(){return A(k,"languageModelProxy"),J.isModelProxyAvailable},onDidChangeModelProxyAvailability:(b,x,D)=>(A(k,"languageModelProxy"),J.onDidChangeModelProxyAvailability(b,x,D)),getModelProxy:()=>(A(k,"languageModelProxy"),J.getModelProxy(k)),registerLanguageModelProxyProvider:b=>(A(k,"chatParticipantPrivate"),J.registerLanguageModelProxyProvider(k,b)),get embeddingModels(){return A(k,"embeddings"),We.embeddingsModels},onDidChangeEmbeddingModels:(b,x,D)=>(A(k,"embeddings"),We.onDidChange(b,x,D)),registerEmbeddingsProvider(b,x){return A(k,"embeddings"),We.registerEmbeddingsProvider(k,b,x)},async computeEmbeddings(b,x,D){return A(k,"embeddings"),We.computeEmbeddings(b,x,D)},registerTool(b,x){return dn.registerTool(k,b,x)},registerToolDefinition(b,x){return dn.registerToolDefinition(k,b,x)},invokeTool(b,x,D){return typeof b!="string"&&A(k,"chatParticipantAdditions"),dn.invokeTool(k,b,x,D)},get tools(){return dn.getTools(k)},fileIsIgnored(b,x){return J.fileIsIgnored(k,b,x)},registerIgnoredFileProvider(b){return J.registerIgnoredFileProvider(k,b)},registerMcpServerDefinitionProvider(b,x){return Y.registerMcpConfigurationProvider(k,b,x)},onDidChangeMcpServerDefinitions:(...b)=>(A(k,"mcpServerDefinitions"),le(Y.onDidChangeMcpServerDefinitions)(...b)),get mcpServerDefinitions(){return A(k,"mcpServerDefinitions"),Y.mcpServerDefinitions},startMcpGateway(){return A(k,"mcpServerDefinitions"),Y.startMcpGateway()},onDidChangeChatRequestTools(...b){return A(k,"chatParticipantAdditions"),le(_t.onDidChangeChatRequestTools)(...b)}},V5={registerSpeechProvider(b,x){return A(k,"speech"),Go.registerProvider(k.identifier,b,x)}};return{version:t.version,ai:F5,authentication:E5,commands:w5,comments:A5,chat:H5,debug:M5,env:MO,extensions:P5,interactive:U5,l10n:N5,languages:_5,lm:W5,notebooks:O5,scm:R5,speech:V5,tasks:L5,tests:k5,window:D5,workspace:LO,Breakpoint:ca,TerminalOutputAnchor:lA,ChatResultFeedbackKind:fC,ChatVariableLevel:OA,ChatCompletionItem:pS,ChatReferenceDiagnostic:Yl,CallHierarchyIncomingCall:Yp,CallHierarchyItem:Hl,CallHierarchyOutgoingCall:Xp,CancellationError:Be,CancellationTokenSource:Ce,CandidatePortSource:dD,CodeAction:ms,CodeActionKind:yt,CodeActionTriggerKind:wS,CodeLens:wl,Color:xi,ColorInformation:Rl,ColorPresentation:Al,ColorThemeKind:sC,CommentMode:TA,CommentState:EA,CommentThreadCollapsibleState:XS,CommentThreadState:ZS,CommentThreadApplicability:eC,CommentThreadFocus:tC,CompletionItem:_l,CompletionItemKind:yv,CompletionItemTag:_S,CompletionList:Ii,CompletionTriggerKind:PS,ConfigurationTarget:KS,CustomExecution:Ac,DebugAdapterExecutable:Ei,DebugAdapterInlineImplementation:ua,DebugAdapterNamedPipeServer:bs,DebugAdapterServer:wi,DebugConfigurationProviderTriggerKind:NR,DebugConsoleMode:nC,DebugVisualization:iS,DecorationRangeBehavior:WS,Diagnostic:sa,DiagnosticRelatedInformation:ds,DiagnosticSeverity:xc,DiagnosticTag:fv,Disposable:be,DocumentHighlight:Tl,DocumentHighlightKind:ES,MultiDocumentHighlight:El,DocumentLink:Dl,DocumentSymbol:Tr,EndOfLine:Tc,EnvironmentVariableMutatorType:TS,EvaluatableExpression:Ml,InlineValueText:Ll,InlineValueVariableLookup:Ol,InlineValueEvaluatableExpression:Nl,InlineCompletionTriggerKind:jS,InlineCompletionsDisposeReasonKind:GS,EventEmitter:T,ExtensionKind:iC,ExtensionMode:uC,ExternalUriOpenerPriority:DA,FileChangeType:JS,FileDecoration:Lc,FileDecoration2:Lc,FileSystemError:ft,FileType:oc,FilePermission:rc,FoldingRange:Qp,FoldingRangeKind:YS,FunctionBreakpoint:Ti,InlineCompletionItem:qp,InlineCompletionList:Kp,Hover:Ec,VerboseHover:Cl,HoverVerbosityAction:dA,IndentAction:MM,Location:Qt,MarkdownString:Gt,OverviewRulerLane:WD,ParameterInformation:Bp,PortAutoForwardAction:AA,Position:Ee,ProcessExecution:fs,ProgressLocation:Iv,QuickInputButtonLocation:wA,QuickInputButtons:ps,Range:ge,RelativePattern:vs,Selection:$n,SelectionRange:gs,SemanticTokens:ki,SemanticTokensBuilder:rS,SemanticTokensEdit:tm,SemanticTokensEdits:Vl,SemanticTokensLegend:Mc,ShellExecution:Si,ShellQuoting:yA,SignatureHelp:zp,SignatureHelpTriggerKind:cA,SignatureInformation:$p,SnippetString:zn,SourceBreakpoint:Ci,StandardTokenType:xv,StatusBarAlignment:LS,SymbolInformation:Cr,SymbolKind:Vp,SymbolTag:vv,Task:Mn,TaskEventKind:vA,TaskGroup:Pn,TaskPanelKind:bA,TaskRevealKind:hA,TaskRunOn:IA,TaskScope:$S,TerminalLink:Gx,TerminalQuickFixTerminalCommand:Jx,TerminalQuickFixOpener:Qx,TerminalLocation:gA,TerminalProfile:Yx,TerminalExitReason:pA,TerminalShellExecutionCommandLineConfidence:BS,TerminalCompletionItem:Xx,TerminalCompletionItemKind:fA,TerminalCompletionList:Zx,TerminalShellType:mA,TextDocumentSaveReason:NS,TextEdit:An,SnippetTextEdit:aa,TextEditorCursorStyle:aD,TextEditorChangeKind:FS,TextEditorLineNumbersStyle:OS,TextEditorRevealType:US,TextEditorSelectionChangeKind:Bc,SyntaxTokenType:$c,TextDocumentChangeReason:HS,ThemeColor:da,ThemeIcon:an,TreeItem:hs,TreeItemCheckboxState:qS,TreeItemCollapsibleState:zS,TypeHierarchyItem:Bl,UIKind:uT,Uri:y,ViewColumn:MS,WorkspaceEdit:pr,DocumentPasteTriggerKind:SA,DocumentDropEdit:jp,DocumentDropOrPasteEditKind:zr,DocumentPasteEdit:nS,InlayHint:Pl,InlayHintLabelPart:kl,InlayHintKind:uA,RemoteAuthorityResolverError:Is,ResolvedAuthority:jx,ManagedResolvedAuthority:Fl,SourceControlInputBoxValidationType:VS,ExtensionRuntime:pC,TimelineItem:Jp,NotebookRange:Yn,NotebookCellKind:hv,NotebookCellExecutionState:kA,NotebookCellData:cs,NotebookData:Sc,NotebookRendererScript:nm,NotebookCellStatusBarAlignment:aC,NotebookEditorRevealType:lC,NotebookCellOutput:us,NotebookCellOutputItem:Cc,CellErrorStackFrame:sS,NotebookCellStatusBarItem:aS,NotebookControllerAffinity:PA,NotebookControllerAffinity2:dC,NotebookEdit:Ro,NotebookKernelSourceAction:lS,NotebookVariablesRequestKind:cC,PortAttributes:cS,LinkedEditingRanges:dS,TestResultState:_A,TestRunRequest:Ul,TestMessage:ys,TestMessageStackFrame:uS,TestTag:pa,TestRunProfileKind:mC,TextSearchCompleteMessageType:zv,DataTransfer:$r,DataTransferItem:wc,TestCoverageCount:Rc,FileCoverage:ma,StatementCoverage:rm,BranchCoverage:im,DeclarationCoverage:sm,WorkspaceTrustState:RA,LanguageStatusSeverity:kS,QuickPickItemKind:oC,InputBoxValidationSeverity:rC,TabInputText:$l,TabInputTextDiff:ga,TabInputTextMerge:am,TabInputCustom:zl,TabInputNotebook:ql,TabInputNotebookDiff:Kl,TabInputWebview:lm,TabInputTerminal:dm,TabInputInteractiveWindow:cm,TabInputChat:um,TabInputTextMultiDiff:pm,TelemetryTrustedValue:Il,LogLevel:Js,EditSessionIdentityMatch:LM,InteractiveSessionVoteDirection:MA,ChatCopyKind:LA,ChatSessionChangedFile:yS,ChatSessionChangedFile2:IS,ChatEditingSessionActionOutcome:gC,InteractiveEditorResponseFeedbackKind:UA,DebugStackFrame:Zp,DebugThread:em,RelatedInformationType:zA,SpeechToTextStatus:KA,TextToSpeechStatus:jA,PartialAcceptTriggerKind:DS,InlineCompletionEndOfLifeReasonKind:RS,InlineCompletionDisplayLocationKind:AS,KeywordRecognitionStatus:GA,ChatImageMimeType:$A,ChatResponseMarkdownPart:fa,ChatResponseFileTreePart:va,ChatResponseAnchorPart:Ss,ChatResponseProgressPart:Uc,ChatResponseProgressPart2:jl,ChatResponseThinkingProgressPart:Pi,ChatResponseHookPart:ba,ChatResponseReferencePart:qr,ChatResponseReferencePart2:qr,ChatResponseCodeCitationPart:xa,ChatResponseCodeblockUriPart:Ia,ChatResponseWarningPart:Cs,ChatResponseTextEditPart:Es,ChatResponseNotebookEditPart:Ca,ChatResponseWorkspaceEditPart:Jl,ChatResponseMarkdownWithVulnerabilitiesPart:xs,ChatResponseCommandButtonPart:ya,ChatResponseConfirmationPart:ha,ChatQuestion:gm,ChatQuestionType:hC,ChatResponseQuestionCarouselPart:Ts,ChatResponseMovePart:Sa,ChatResponseExtensionsPart:Gl,ChatResponseExternalEditPart:Nc,ChatResponsePullRequestPart:Ql,ChatResponseMultiDiffPart:Oc,ChatResponseReferencePartStatusKind:WA,ChatResponseClearToPreviousToolInvocationReason:VA,ChatRequestTurn:Ta,ChatRequestTurn2:Ta,ChatResponseTurn:fm,ChatResponseTurn2:gS,ChatSubagentToolInvocationData:mm,ChatToolInvocationPart:Fc,ChatLocation:yC,ChatSessionStatus:FA,ChatDebugLogLevel:HA,ChatDebugToolCallResult:IC,ChatDebugToolCallEvent:hm,ChatDebugModelTurnEvent:vm,ChatDebugGenericEvent:bm,ChatDebugSubagentInvocationEvent:ym,ChatDebugUserMessageEvent:Im,ChatDebugAgentResponseEvent:xm,ChatDebugMessageSection:Hc,ChatDebugEventTextContent:fS,ChatDebugMessageContentType:xC,ChatDebugEventMessageContent:hS,ChatDebugEventToolCallContent:vS,ChatDebugEventModelTurnContent:bS,ChatRequestEditorData:Sm,ChatRequestNotebookData:Cm,ChatReferenceBinaryData:Tm,ChatRequestEditedFileEventKind:NA,LanguageModelChatMessageRole:Cv,LanguageModelChatMessage:Em,LanguageModelChatMessage2:wm,LanguageModelToolResultPart:ws,LanguageModelToolResultPart2:ws,LanguageModelTextPart:Jt,LanguageModelTextPart2:Jt,LanguageModelPartAudience:SC,ToolResultAudience:SC,LanguageModelToolCallPart:Kr,LanguageModelThinkingPart:_i,LanguageModelError:mr,LanguageModelToolResult:Xl,LanguageModelToolResult2:xS,LanguageModelDataPart:Ln,LanguageModelDataPart2:Ln,LanguageModelToolExtensionSource:km,LanguageModelToolMCPSource:Pm,ExtendedLanguageModelToolResult:SS,LanguageModelChatToolMode:CC,LanguageModelPromptTsxPart:jr,NewSymbolName:oS,NewSymbolNameTag:CA,NewSymbolNameTriggerKind:QS,ExcludeSettingOptions:GC,TextSearchContext2:Ps,TextSearchMatch2:Mo,AISearchKeyword:Zc,TextSearchCompleteMessageTypeNew:zv,ChatErrorLevel:BA,McpHttpServerDefinition:Vc,McpHttpServerDefinition2:Vc,McpStdioServerDefinition:Wc,McpStdioServerDefinition2:Wc,McpToolAvailability:TC,McpToolInvocationContentData:mS,SettingsSearchResultKind:qA,ChatTodoStatus:vC,ChatDebugSubagentStatus:bC}}}var ku=class{constructor(t,e,n,o,i,s,a){this._apiFactory=t;this._extensionRegistry=e;this._instaService=n;this._extHostConfiguration=o;this._extHostExtensionService=i;this._initData=s;this._logService=a;this._factories=new Map,this._alternatives=[]}async install(){this._installInterceptor(),Ft("code/extHost/willWaitForConfig");let t=await this._extHostConfiguration.getConfigProvider();Ft("code/extHost/didWaitForConfig");let e=await this._extHostExtensionService.getExtensionPathIndex();this.register(new oO(this._apiFactory,e,this._extensionRegistry,t,this._logService)),this.register(this._instaService.createInstance(Ed)),this._initData.remote.isRemote&&this.register(this._instaService.createInstance(ey,e,this._initData.environment.appUriScheme))}register(t){if("nodeModuleName"in t)if(Array.isArray(t.nodeModuleName))for(let e of t.nodeModuleName)this._factories.set(e,t);else this._factories.set(t.nodeModuleName,t);typeof t.alternativeModuleName=="function"&&this._alternatives.push(e=>t.alternativeModuleName(e))}};ku=_([C(2,Fo),C(3,vn),C(4,ao),C(5,Ye),C(6,oe)],ku);var Ed=class{static{this.aliased=new Map([["vscode-ripgrep","@vscode/ripgrep"],["vscode-windows-registry","@vscode/windows-registry"]])}constructor(t){if(t.environment.appRoot&&Ed.aliased.size){let e=tr(this.forceForwardSlashes(t.environment.appRoot.fsPath)),n="[a-z0-9_.-]",o=`@${n}+\\/${n}+|${n}+`,i="node_modules|node_modules\\.asar(?:\\.unpacked)?";this.re=new RegExp(`^(${e}/${i}\\/)(${o})(.*)$`,"i")}}alternativeModuleName(t){if(!this.re)return;let e=this.re.exec(this.forceForwardSlashes(t));if(!e)return;let[,n,o,i]=e,s=Ed.aliased.get(o);if(s!==void 0)return console.warn(`${o} as been renamed to ${s}, please update your imports`),n+s+i}forceForwardSlashes(t){return t.replace(/\\/g,"/")}};Ed=_([C(0,Ye)],Ed);var oO=class{constructor(t,e,n,o,i){this._apiFactory=t;this._extensionPaths=e;this._extensionRegistry=n;this._configProvider=o;this._logService=i;this.nodeModuleName="vscode";this._extApiImpl=new no}load(t,e){let n=this._extensionPaths.findSubstr(e);if(n){let o=this._extApiImpl.get(n.identifier);return o||(o=this._apiFactory(n,this._extensionRegistry,this._configProvider),this._extApiImpl.set(n.identifier,o)),o}if(!this._defaultApiImpl){let o="";this._extensionPaths.forEach((i,s)=>o+=`	${s} -> ${i.identifier.value}
`),this._logService.warn(`Could not identify extension for 'vscode' require call from ${e}. These are the extension path mappings: 
${o}`),this._defaultApiImpl=this._apiFactory(hH,this._extensionRegistry,this._configProvider)}return this._defaultApiImpl}},ey=class{constructor(t,e,n){this._extensionPaths=t;this._appUriScheme=e;this.nodeModuleName=["open","opn"];this._mainThreadTelemetry=n.getProxy(U.MainThreadTelemetry);let o=n.getProxy(U.MainThreadWindow);this._impl=(i,s)=>{let a=y.parse(i);return s?this.callOriginal(i,s):a.scheme==="http"||a.scheme==="https"?o.$openUri(a,i,{allowTunneling:!0}):a.scheme==="mailto"||a.scheme===this._appUriScheme?o.$openUri(a,i,{}):this.callOriginal(i,s)}}load(t,e,n){let o=this._extensionPaths.findSubstr(e);return o&&(this._extensionId=o.identifier.value,this.sendShimmingTelemetry()),this._original=n(t),this._impl}callOriginal(t,e){return this.sendNoForwardTelemetry(),this._original(t,e)}sendShimmingTelemetry(){this._extensionId&&this._mainThreadTelemetry.$publicLog2("shimming.open",{extension:this._extensionId})}sendNoForwardTelemetry(){this._extensionId&&this._mainThreadTelemetry.$publicLog2("shimming.open.call.noForward",{extension:this._extensionId})}};ey=_([C(2,ie)],ey);import{LogLevel as _u,createHttpPatch as VB,createProxyResolver as LG,createTlsPatch as OG,createNetPatch as NG,loadSystemCertificates as BB}from"@vscode/proxy-agent";import{createRequire as UG}from"node:module";import{parse as HB}from"url";import{spawn as EG}from"child_process";import{userInfo as xG}from"os";import*as rO from"os";var AB=/^\d+$/,mG=/^Microsoft.PowerShell_.*/,gG=/^Microsoft.PowerShellPreview_.*/;var ty;switch(process.arch){case"ia32":ty=1;break;case"arm":case"arm64":ty=2;break;default:ty=0;break}var Df;process.env.PROCESSOR_ARCHITEW6432?Df=process.env.PROCESSOR_ARCHITEW6432==="ARM64"?2:0:process.env.PROCESSOR_ARCHITECTURE==="ARM64"?Df=2:process.env.PROCESSOR_ARCHITECTURE==="X86"?Df=1:Df=0;var Pu=class{constructor(t,e,n){this.exePath=t;this.displayName=e;this.knownToExist=n}async exists(){return this.knownToExist===void 0&&(this.knownToExist=await To.existsFile(this.exePath)),this.knownToExist}};function fG({useAlternateBitness:r=!1}={}){return r?ty===0?process.env["ProgramFiles(x86)"]||null:Df===0&&process.env.ProgramW6432||null:process.env.ProgramFiles||null}async function ok({useAlternateBitness:r=!1,findPreview:t=!1}={}){let e=fG({useAlternateBitness:r});if(!e)return null;let n=Oe(e,"PowerShell");if(!await To.existsDirectory(n))return null;let o=-1,i=null;for(let l of await rt.readdir(n)){let d=-1;if(t){let u=l.indexOf("-");if(u<0)continue;let m=l.substring(0,u);if(!AB.test(m)||l.substring(u+1)!=="preview")continue;d=parseInt(m,10)}else{if(!AB.test(l))continue;d=parseInt(l,10)}if(d<=o)continue;let c=Oe(n,l,"pwsh.exe");await To.existsFile(c)&&(i=c,o=d)}if(!i)return null;let s=e.includes("x86")?" (x86)":"",a=t?" Preview":"";return new Pu(i,`PowerShell${a}${s}`,!0)}async function MB({findPreview:r}={}){if(!process.env.LOCALAPPDATA)return null;let t=Oe(process.env.LOCALAPPDATA,"Microsoft","WindowsApps");if(!await To.existsDirectory(t))return null;let{pwshMsixDirRegex:e,pwshMsixName:n}=r?{pwshMsixDirRegex:gG,pwshMsixName:"PowerShell Preview (Store)"}:{pwshMsixDirRegex:mG,pwshMsixName:"PowerShell (Store)"};for(let o of await rt.readdir(t))if(e.test(o)){let i=Oe(t,o,"pwsh.exe");return new Pu(i,n)}return null}function hG(){let r=Oe(rO.homedir(),".dotnet","tools","pwsh.exe");return new Pu(r,".NET Core PowerShell Global Tool")}function vG(){let r=Oe(rO.homedir(),"scoop","apps"),t=Oe(r,"pwsh","current","pwsh.exe");return new Pu(t,"PowerShell (Scoop)")}function bG(){let r=Oe(process.env.windir,ty===1&&Df!==1?"SysNative":"System32","WindowsPowerShell","v1.0","powershell.exe");return new Pu(r,"Windows PowerShell",!0)}async function*yG(){let r=await ok();r&&(yield r),r=await ok({useAlternateBitness:!0}),r&&(yield r),r=await MB(),r&&(yield r),r=hG(),r&&(yield r),r=await ok({findPreview:!0}),r&&(yield r),r=await MB({findPreview:!0}),r&&(yield r),r=await ok({useAlternateBitness:!0,findPreview:!0}),r&&(yield r),r=await vG(),r&&(yield r),r=bG(),r&&(yield r)}async function*IG(){for await(let r of yG())await r.exists()&&(yield r)}async function LB(){for await(let r of IG())return r;return null}async function OB(r,t){return r===1?Ie?CG():jT(t):SG(r,t)}var iO=null;function SG(r,t){if(Qe&&r===2||ut&&r===3)return"/bin/bash";if(!iO){let e;if(Ie)e="/bin/bash";else{if(e=t.SHELL,!e)try{e=xG().shell}catch{}e||(e="sh"),e==="/bin/false"&&(e="/bin/bash")}iO=e}return iO}var sO=null;async function CG(){return sO||(sO=(await LB()).exePath),sO}import Ght from"assert";import Wht from"minimist";var $ht={o:p(1928,null),e:p(1912,null),t:p(1943,null),m:p(1923,null)};var TG={chat:{type:"subcommand",description:"Pass in a prompt to run in a chat session in the current working directory.",options:{_:{type:"string[]",description:p(1932,null)},mode:{type:"string",cat:"o",alias:"m",args:"mode",description:p(1900,null)},"add-file":{type:"string[]",cat:"o",alias:"a",args:"path",description:p(1896,null)},maximize:{type:"boolean",cat:"o",description:p(1899,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:p(1935,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:p(1926,null)},profile:{type:"string",cat:"o",args:"profileName",description:p(1931,null)},help:{type:"boolean",alias:"h",description:p(1914,null)}}},"serve-web":{type:"subcommand",description:"Run a server that displays the editor UI in browsers.",options:{"cli-data-dir":{type:"string",args:"dir",description:p(1901,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"}}},tunnel:{type:"subcommand",description:"Make the current machine accessible from vscode.dev or other machines through a secure tunnel.",options:{"cli-data-dir":{type:"string",args:"dir",description:p(1901,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"},user:{type:"subcommand",options:{login:{type:"subcommand",options:{provider:{type:"string"},"access-token":{type:"string"}}}}}}},diff:{type:"boolean",cat:"o",alias:"d",args:["file","file"],description:p(1904,null)},merge:{type:"boolean",cat:"o",alias:"m",args:["path1","path2","base","result"],description:p(1924,null)},add:{type:"boolean",cat:"o",alias:"a",args:"folder",description:p(1895,null)},remove:{type:"boolean",cat:"o",args:"folder",description:p(1933,null)},goto:{type:"boolean",cat:"o",alias:"g",args:"file:line[:character]",description:p(1913,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:p(1925,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:p(1934,null)},sessions:{type:"boolean",cat:"o",description:p(1936,null)},wait:{type:"boolean",cat:"o",alias:"w",description:p(1953,null)},waitMarkerFilePath:{type:"string"},locale:{type:"string",cat:"o",args:"locale",description:p(1920,null)},"user-data-dir":{type:"string",cat:"o",args:"dir",description:p(1950,null)},profile:{type:"string",cat:"o",args:"profileName",description:p(1931,null)},help:{type:"boolean",cat:"o",alias:"h",description:p(1914,null)},"extensions-dir":{type:"string",deprecates:["extensionHomePath"],cat:"e",args:"dir",description:p(1911,null)},"extensions-download-dir":{type:"string"},"builtin-extensions-dir":{type:"string"},"list-extensions":{type:"boolean",cat:"e",description:p(1919,null)},"show-versions":{type:"boolean",cat:"e",description:p(1937,null)},category:{type:"string",allowEmptyValue:!0,cat:"e",description:p(1898,null),args:"category"},"install-extension":{type:"string[]",cat:"e",args:"ext-id | path",description:p(1918,null)},"pre-release":{type:"boolean",cat:"e",description:p(1917,null)},"uninstall-extension":{type:"string[]",cat:"e",args:"ext-id",description:p(1945,null)},"update-extensions":{type:"boolean",cat:"e",description:p(1948,null)},"enable-proposed-api":{type:"string[]",allowEmptyValue:!0,cat:"e",args:"ext-id",description:p(1910,null)},"add-mcp":{type:"string[]",cat:"m",args:"json",description:p(1897,null)},version:{type:"boolean",cat:"t",alias:"v",description:p(1952,null)},verbose:{type:"boolean",cat:"t",global:!0,description:p(1951,null)},log:{type:"string[]",cat:"t",args:"level",global:!0,description:p(1922,null)},status:{type:"boolean",alias:"s",cat:"t",description:p(1938,null)},"prof-startup":{type:"boolean",cat:"t",description:p(1930,null)},"prof-append-timers":{type:"string"},"prof-duration-markers":{type:"string[]"},"prof-duration-markers-file":{type:"string"},"no-cached-data":{type:"boolean"},"prof-startup-prefix":{type:"string"},"prof-v8-extensions":{type:"boolean"},"disable-extensions":{type:"boolean",deprecates:["disableExtensions"],cat:"t",description:p(1907,null)},"disable-extension":{type:"string[]",cat:"t",args:"ext-id",description:p(1906,null)},sync:{type:"string",cat:"t",description:p(1944,null),args:["on | off"]},"inspect-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugPluginHost"],args:"port",cat:"t",description:p(1916,null)},"inspect-brk-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugBrkPluginHost"],args:"port",cat:"t",description:p(1915,null)},"disable-lcd-text":{type:"boolean",cat:"t",description:p(1909,null)},"disable-gpu":{type:"boolean",cat:"t",description:p(1908,null)},"disable-chromium-sandbox":{type:"boolean",cat:"t",description:p(1905,null)},sandbox:{type:"boolean"},"locate-shell-integration-path":{type:"string",cat:"t",args:["shell"],description:p(1921,null)},telemetry:{type:"boolean",cat:"t",description:p(1941,null)},remote:{type:"string",allowEmptyValue:!0},"folder-uri":{type:"string[]",cat:"o",args:"uri"},"file-uri":{type:"string[]",cat:"o",args:"uri"},"locate-extension":{type:"string[]"},extensionDevelopmentPath:{type:"string[]"},extensionDevelopmentKind:{type:"string[]"},extensionTestsPath:{type:"string"},extensionEnvironment:{type:"string"},debugId:{type:"string"},debugRenderer:{type:"boolean"},"inspect-ptyhost":{type:"string",allowEmptyValue:!0},"inspect-brk-ptyhost":{type:"string",allowEmptyValue:!0},"inspect-search":{type:"string",deprecates:["debugSearch"],allowEmptyValue:!0},"inspect-brk-search":{type:"string",deprecates:["debugBrkSearch"],allowEmptyValue:!0},"inspect-sharedprocess":{type:"string",allowEmptyValue:!0},"inspect-brk-sharedprocess":{type:"string",allowEmptyValue:!0},"export-default-configuration":{type:"string"},"export-policy-data":{type:"string",allowEmptyValue:!0},"install-source":{type:"string"},"enable-smoke-test-driver":{type:"boolean"},"skip-sessions-welcome":{type:"boolean"},logExtensionHostCommunication:{type:"boolean"},"skip-release-notes":{type:"boolean"},"skip-welcome":{type:"boolean"},"disable-telemetry":{type:"boolean"},"disable-updates":{type:"boolean"},transient:{type:"boolean",cat:"t",description:p(1942,null)},"use-inmemory-secretstorage":{type:"boolean",deprecates:["disable-keytar"]},"password-store":{type:"string"},"disable-workspace-trust":{type:"boolean"},"disable-crash-reporter":{type:"boolean"},"crash-reporter-directory":{type:"string"},"crash-reporter-id":{type:"string"},"skip-add-to-recently-opened":{type:"boolean"},"open-url":{type:"boolean"},"file-write":{type:"boolean"},"file-chmod":{type:"boolean"},"install-builtin-extension":{type:"string[]"},force:{type:"boolean"},"do-not-sync":{type:"boolean"},"do-not-include-pack-dependencies":{type:"boolean"},trace:{type:"boolean"},"trace-memory-infra":{type:"boolean"},"trace-category-filter":{type:"string"},"trace-options":{type:"string"},"preserve-env":{type:"boolean"},"force-user-env":{type:"boolean"},"force-disable-user-env":{type:"boolean"},"open-devtools":{type:"boolean"},"disable-gpu-sandbox":{type:"boolean"},logsPath:{type:"string"},"__enable-file-policy":{type:"boolean"},editSessionId:{type:"string"},continueOn:{type:"string"},"enable-coi":{type:"boolean"},"unresponsive-sample-interval":{type:"string"},"unresponsive-sample-period":{type:"string"},"enable-rdp-display-tracking":{type:"boolean"},"disable-layout-restore":{type:"boolean"},"disable-experiments":{type:"boolean"},"no-proxy-server":{type:"boolean"},"no-sandbox":{type:"boolean",alias:"sandbox"},"proxy-server":{type:"string"},"proxy-bypass-list":{type:"string"},"proxy-pac-url":{type:"string"},"js-flags":{type:"string"},inspect:{type:"string",allowEmptyValue:!0},"inspect-brk":{type:"string",allowEmptyValue:!0},nolazy:{type:"boolean"},"force-device-scale-factor":{type:"string"},"force-renderer-accessibility":{type:"boolean"},"ignore-certificate-errors":{type:"boolean"},"allow-insecure-localhost":{type:"boolean"},"log-net-log":{type:"string"},vmodule:{type:"string"},_urls:{type:"string[]"},"disable-dev-shm-usage":{type:"boolean"},"profile-temp":{type:"boolean"},"ozone-platform":{type:"string"},"enable-tracing":{type:"string"},"trace-startup-format":{type:"string"},"trace-startup-file":{type:"string"},"trace-startup-duration":{type:"string"},"xdg-portal-required-version":{type:"string"},_:{type:"string[]"}};function aO(r){return r.VSCODE_CLI==="1"}var lO;async function NB(r,t,e,n){return e["force-disable-user-env"]?(t.trace("resolveShellEnv(): skipped (--force-disable-user-env)"),{}):Ie?(t.trace("resolveShellEnv(): skipped (Windows)"),{}):aO(n)&&!e["force-user-env"]?(t.trace("resolveShellEnv(): skipped (VSCODE_CLI is set)"),{}):(aO(n)?t.trace("resolveShellEnv(): running (--force-user-env)"):t.trace("resolveShellEnv(): running (macOS/Linux)"),lO||(lO=Or.withAsyncBody(async(o,i)=>{let s=new Ce,a=1e4,l=r.getValue("application.shellEnvironmentResolutionTimeout");typeof l=="number"&&(a=gF(l,1,120)*1e3);let d=setTimeout(()=>{s.dispose(!0),i(new Error(p(2299,null)))},a);try{o(await wG(t,s.token))}catch(c){!zt(c)&&!s.token.isCancellationRequested?i(new Error(p(2297,null,fo(c)))):o({})}finally{clearTimeout(d),s.dispose()}})),lO)}async function wG(r,t){let e=process.env.ELECTRON_RUN_AS_NODE;r.trace("getUnixShellEnvironment#runAsNode",e);let n=process.env.ELECTRON_NO_ATTACH_CONSOLE;r.trace("getUnixShellEnvironment#noAttach",n);let o=Le().replace(/-/g,"").substr(0,12),i=new RegExp(o+"({.*})"+o),s={...process.env,ELECTRON_RUN_AS_NODE:"1",ELECTRON_NO_ATTACH_CONSOLE:"1",VSCODE_RESOLVING_ENVIRONMENT:"1"};r.trace("getUnixShellEnvironment#env",s);let a=await OB(Yo,s);return r.trace("getUnixShellEnvironment#shell",a),new Promise((l,d)=>{if(t.isCancellationRequested)return d(new Be);let c=at(a),u,m,g="";/^(?:pwsh|powershell)(?:-preview)?$/.test(c)?(u=`& '${process.execPath}' ${g} -p '''${o}'' + JSON.stringify(process.env) + ''${o}'''`,m=["-Login","-Command"]):c==="nu"?(u=`^'${process.execPath}' ${g} -p '"${o}" + JSON.stringify(process.env) + "${o}"'`,m=["-i","-l","-c"]):c==="xonsh"?(u=`import os, json; print("${o}", json.dumps(dict(os.environ)), "${o}")`,m=["-i","-l","-c"]):(u=`'${process.execPath}' ${g} -p '"${o}" + JSON.stringify(process.env) + "${o}"'`,c==="tcsh"||c==="csh"?m=["-ic"]:m=["-i","-l","-c"]),r.trace("getUnixShellEnvironment#spawn",JSON.stringify(m),u);let h=EG(a,[...m,u],{detached:!0,stdio:["ignore","pipe","pipe"],env:s});t.onCancellationRequested(()=>(h.kill(),d(new Be))),h.on("error",S=>{r.error("getUnixShellEnvironment#errorChildProcess",fo(S)),d(S)});let f=[];h.stdout.on("data",S=>f.push(S));let I=[];h.stderr.on("data",S=>I.push(S)),h.on("close",(S,E)=>{let P=Buffer.concat(f).toString("utf8");r.trace("getUnixShellEnvironment#raw",P);let L=Buffer.concat(I).toString("utf8");if(L.trim()&&r.trace("getUnixShellEnvironment#stderr",L),S||E)return d(new Error(p(2298,null,S,E)));let j=i.exec(P),F=j?j[1]:"{}";try{let z=JSON.parse(F);e?z.ELECTRON_RUN_AS_NODE=e:delete z.ELECTRON_RUN_AS_NODE,n?z.ELECTRON_NO_ATTACH_CONSOLE=n:delete z.ELECTRON_NO_ATTACH_CONSOLE,delete z.VSCODE_RESOLVING_ENVIRONMENT,delete z.XDG_RUNTIME_DIR,r.trace("getUnixShellEnvironment#result",z),l(z)}catch(z){r.error("getUnixShellEnvironment#errorCaught",fo(z)),d(z)}})})}import{parse as UB}from"url";function kG(r,t){return r.protocol==="http:"?t.HTTP_PROXY||t.http_proxy||null:r.protocol==="https:"&&(t.HTTPS_PROXY||t.https_proxy||t.HTTP_PROXY||t.http_proxy)||null}async function FB(r,t,e={}){let n=UB(r),o=e.proxyUrl||kG(n,t);if(!o)return null;let i=UB(o);if(!/^https?:$/.test(i.protocol||""))return null;let s={host:i.hostname||"",port:(i.port?+i.port:0)||(i.protocol==="https"?443:80),auth:i.auth,rejectUnauthorized:hy(e.strictSSL)?e.strictSSL:!0};if(n.protocol==="http:"){let{default:a}=await import("http-proxy-agent");return new a.HttpProxyAgent(o,s)}else{let{default:a}=await import("https-proxy-agent");return new a.HttpsProxyAgent(o,s)}}import{createGunzip as PG}from"zlib";var _G=new Set(["EAI_AGAIN","ECONNREFUSED","EHOSTDOWN","EHOSTUNREACH","ENETDOWN","ENETUNREACH","EPROTO"]),DG=/^(GET|HEAD|OPTIONS)$/i;function RG(r){if(r instanceof Error){let t=r.code;return!!t&&_G.has(t)}return!1}var rk=class extends gx{constructor(e,n,o,i){super(i);this.machine=e;this.configurationService=n;this.environmentService=o;this.configure(),this._register(n.onDidChangeConfiguration(s=>{s.affectsConfiguration("http")&&this.configure()}))}configure(){this.proxyUrl=this.getConfigValue("http.proxy"),this.strictSSL=!!this.getConfigValue("http.proxyStrictSSL"),this.authorization=this.getConfigValue("http.proxyAuthorization")}async request(e,n){let{proxyUrl:o,strictSSL:i}=this,s;try{s=await NB(this.configurationService,this.logService,this.environmentService.args,process.env)}catch(d){this.shellEnvErrorLogged||(this.shellEnvErrorLogged=!0,this.logService.error("resolving shell environment failed",Bi(d)))}let a={...process.env,...s},l=e.agent?e.agent:await FB(e.url||"",a,{proxyUrl:o,strictSSL:i});return e.agent=l,e.strictSSL=i,this.authorization&&(e.headers={...e.headers||{},"Proxy-Authorization":this.authorization}),this.logAndRequest(e,()=>WB(e,n))}async resolveProxy(e){}async lookupAuthorization(e){}async lookupKerberosAuthorization(e){try{let n=this.getConfigValue("http.proxyKerberosServicePrincipal");return"Negotiate "+await dO(e,n,this.logService,"RequestService#lookupKerberosAuthorization")}catch(n){this.logService.debug("RequestService#lookupKerberosAuthorization Kerberos authentication failed",n);return}}async loadCertificates(){return(await import("@vscode/proxy-agent")).loadSystemCertificates({loadSystemCertificatesFromNode:()=>this.getConfigValue("http.systemCertificatesNode",Pp),log:this.logService})}getConfigValue(e,n){if(this.machine==="remote")return this.configurationService.getValue(e);let o=this.configurationService.inspect(e);return o.userLocalValue??o.defaultValue??n}};rk=_([C(1,sn),C(2,sH),C(3,oe)],rk);async function dO(r,t,e,n){let o=await import("kerberos"),i=o.default||o,s=new URL(r),a=t||(process.platform==="win32"?`HTTP/${s.hostname}`:`HTTP@${s.hostname}`);return e.debug(`${n} Kerberos authentication lookup`,`proxyURL:${s}`,`spn:${a}`),(await i.initializeClient(a)).step("")}async function AG(r){return(HB(r.url).protocol==="https:"?await import("https"):await import("http")).request}async function WB(r,t){let n,o=DG.test(r.type||"GET");for(let i=1;i<=3;i++)try{return await MG(r,t)}catch(s){if(n=s,s instanceof Be||!o||!RG(s)||i===3)throw s;await Lt(100*i,t)}throw n}async function MG(r,t){return Or.withAsyncBody(async(e,n)=>{let o=HB(r.url),i=r.getRawRequest?r.getRawRequest(r):await AG(r),s={hostname:o.hostname,port:o.port?parseInt(o.port):o.protocol==="https:"?443:80,protocol:o.protocol,path:o.path,method:r.type||"GET",headers:r.headers,agent:r.agent,rejectUnauthorized:hy(r.strictSSL)?r.strictSSL:!0};r.user&&r.password&&(s.auth=r.user+":"+r.password),r.disableCache&&(s.cache="no-store");let a=i(s,d=>{let c=Rn(r.followRedirects)?r.followRedirects:3;if(d.statusCode&&d.statusCode>=300&&d.statusCode<400&&c>0&&d.headers.location)WB({...r,url:d.headers.location,followRedirects:c-1},t).then(e,n);else{let u=d;!r.isChromiumNetwork&&d.headers["content-encoding"]==="gzip"&&(u=d.pipe(PG())),e({res:d,stream:bU(u)})}});if(a.on("error",n),r.timeout)if(r.isChromiumNetwork){let d=setTimeout(()=>{a.abort(),n(new Error(`Request timeout after ${r.timeout}ms`))},r.timeout);a.on("response",()=>clearTimeout(d)),a.on("error",()=>clearTimeout(d)),a.on("abort",()=>clearTimeout(d))}else a.setTimeout(r.timeout);r.isChromiumNetwork&&a.removeHeader("Content-Length"),r.data&&typeof r.data=="string"&&a.write(r.data),a.end();let l=t.onCancellationRequested(()=>{l.dispose(),a.abort(),n(new Be)});a.on("response",()=>l.dispose()),a.on("error",()=>l.dispose())})}import*as Ua from"@vscode/proxy-agent";var Af=UG(import.meta.url),$B=Af("http"),sk=Af("https"),zB=Af("tls"),qB=Af("net"),YB=!1,KB=!1;function XB(r,t,e,n,o,i,s){let a=i.remote.isRemote,l=i.environment.useHostProxy??!a,d=l,c=l,u=()=>!a||t.getConfiguration("http").get("useLocalProxyConfiguration",l),g={resolveProxy:zG(r,o),lookupProxyAuthorization:QG.bind(void 0,r,n,o,t,{},{},i.remote.isRemote,d),getProxyURL:()=>_r(t,a,"http.proxy"),getProxySupport:()=>_r(t,a,"http.proxySupport")||"off",getNoProxyConfig:()=>_r(t,a,"http.noProxy")||[],isAdditionalFetchSupportEnabled:()=>_r(t,a,"http.fetchAdditionalSupport",!0),isWebSocketPatchEnabled:()=>_r(t,a,"http.webSocketAdditionalSupport",!0),addCertificatesV1:()=>KG(t,a),addCertificatesV2:()=>jG(t,a),loadSystemCertificatesFromNode:()=>_r(t,a,"http.systemCertificatesNode",Pp),log:n,getLogLevel:()=>{let E=n.getLevel();switch(E){case 1:return _u.Trace;case 2:return _u.Debug;case 3:return _u.Info;case 4:return _u.Warning;case 5:return _u.Error;case 0:return _u.Off;default:return P(E)}function P(L){return n.error("Unknown log level",L),_u.Debug}},proxyResolveTelemetry:()=>{},isUseHostProxyEnabled:u,getNetworkInterfaceCheckInterval:()=>_r(t,a,"http.experimental.networkInterfaceCheckInterval",300)*1e3,loadAdditionalCertificates:async()=>{let E=_r(t,a,"http.systemCertificatesNode",Pp),P=[];if(a&&P.push(BB({loadSystemCertificatesFromNode:()=>E,log:n})),c)if(!a&&E)P.push(BB({loadSystemCertificatesFromNode:()=>E,log:n}));else{n.trace("ProxyResolver#loadAdditionalCertificates: Loading certificates from main process");let j=r.loadCertificates();j.then(F=>n.trace("ProxyResolver#loadAdditionalCertificates: Loaded certificates from main process",F.length)),P.push(j)}i.environment.extensionTestsLocationURI&&sk.globalAgent.testCertificates?.length&&(n.trace("ProxyResolver#loadAdditionalCertificates: Loading test certificates"),P.push(Promise.resolve(sk.globalAgent.testCertificates)));let L=(await Promise.all(P)).flat();return o.$publicLog2("additionalCertificates",{count:L.length,isRemote:a,loadLocalCertificates:c,useNodeSystemCerts:E}),L},env:process.env},{resolveProxyWithRequest:h,resolveProxyURL:f}=LG(g),I=Ua.default||Ua;I.resolveProxyURL=f,HG(g,t,o,i,f,s),WG(g,f);let S=qG(g,h);return GG(e,S)}var FG=["content-length","host","trailer","te","upgrade","cookie2","keep-alive","transfer-encoding","set-cookie"];function HG(r,t,e,n,o,i){if(!globalThis.__vscodeOriginalFetch){let s=globalThis.fetch;globalThis.__vscodeOriginalFetch=s;let a=Ua.createFetchPatch(r,s,o);globalThis.__vscodePatchedFetch=a;let l=!1;n.remote.isRemote||(l=t.getConfiguration("http").get("electronFetch",KB),i.add(t.onDidChangeConfiguration(d=>{d.affectsConfiguration("http.electronFetch")&&(l=t.getConfiguration("http").get("electronFetch",KB))}))),globalThis.fetch=async function(c,u){function m(j){return u&&j in u?u[j]:typeof c=="object"&&"cache"in c?c[j]:void 0}let g=typeof c=="string"?c:"cache"in c?c.url:c.toString(),h=g.startsWith("data:");h&&Rf(e,"data");let f=g.startsWith("blob:");f&&Rf(e,"blob");let I=m("redirect")==="manual";I&&Rf(e,"manualRedirect");let S=m("integrity");if(S&&Rf(e,"integrity"),!l||h||f||I||S){let j=await a(c,u);return jB(e,j,g),j}if(u?.headers){let j=new Headers(u.headers);for(let F of FG)j.delete(F);u={...u,headers:j}}let E=c instanceof URL?c.toString():c,L=await Af("electron").net.fetch(E,u);return jB(e,L,g),L}}}function WG(r,t){if(!globalThis.__vscodeOriginalWebSocket){let e=globalThis.WebSocket;globalThis.__vscodeOriginalWebSocket=e,globalThis.WebSocket=Ua.createWebSocketPatch(r,e,t)}}function jB(r,t,e){let n=t.url;Object.defineProperty(t,"url",{get(){return Rf(r,"url"),n||e}});let o=t.type;Object.defineProperty(t,"type",{get(){return Rf(r,"typeProperty"),o!=="default"?o:"basic"}})}var GB={url:0,typeProperty:0,data:0,blob:0,integrity:0,manualRedirect:0},ik,VG=!1;function Rf(r,t){VG&&!GB[t]++&&(ik&&clearTimeout(ik),ik=setTimeout(()=>{r.$publicLog2("fetchFeatureUse",GB)},1e4),ik.unref?.())}var Xn={count:0,totalDuration:0,minDuration:Number.MAX_SAFE_INTEGER,maxDuration:0,lastSentTime:0},BG=3600*1e3;function $G(r){if(Xn.count>0){let t=Xn.totalDuration/Xn.count;r.$publicLog2("proxyResolveStats",{count:Xn.count,totalDuration:Xn.totalDuration,minDuration:Xn.minDuration,maxDuration:Xn.maxDuration,avgDuration:t}),Xn.count=0,Xn.totalDuration=0,Xn.minDuration=Number.MAX_SAFE_INTEGER,Xn.maxDuration=0}Xn.lastSentTime=Date.now()}function zG(r,t){return async e=>{let n=performance.now();try{return await r.resolveProxy(e)}finally{let o=performance.now()-n;Xn.count++,Xn.totalDuration+=o,Xn.minDuration=Math.min(Xn.minDuration,o),Xn.maxDuration=Math.max(Xn.maxDuration,o),Date.now()-Xn.lastSentTime>=BG&&$G(t)}}}function qG(r,t){function e(n,o){let i=n.default||n;return i.__vscodeOriginal=Object.assign({},i),Object.assign(i,o)}return{http:e($B,VB(r,$B,t)),https:e(sk,VB(r,sk,t)),net:e(qB,NG(r,qB)),tls:e(zB,OG(r,zB))}}function KG(r,t){return!_r(r,t,"http.experimental.systemCertificatesV2",YB)&&!!_r(r,t,"http.systemCertificates")}function jG(r,t){return!!_r(r,t,"http.experimental.systemCertificatesV2",YB)&&!!_r(r,t,"http.systemCertificates")}var QB=new Map;function GG(r,t){return r.getExtensionPathIndex().then(e=>{let n=Af("module"),o=n._load;n._load=function(s,a,l){if(s==="net")return t.net;if(s==="tls")return t.tls;if(s!=="http"&&s!=="https"&&s!=="undici")return o.apply(this,arguments);let d=e.findSubstr(y.file(a.filename)),c=QB.get(d);if(c||QB.set(d,c={}),!c[s])if(s==="undici"){let u=o.apply(this,arguments);Ua.patchUndici(u),c[s]=u}else{let u=t[s];c[s]={...u}}return c[s]}})}async function QG(r,t,e,n,o,i,s,a,l,d,c){l=l.replace(/\/+$/,"");let u=o[l];d&&(o[l]=d),t.trace("ProxyResolver#lookupProxyAuthorization callback",`proxyURL:${l}`,`proxyAuthenticate:${d}`,`proxyAuthenticateCache:${u}`);let m=d||u,g=Array.isArray(m)?m:typeof m=="string"?[m]:[];if(YG(e,g,s),g.some(f=>/^(Negotiate|Kerberos)( |$)/i.test(f))&&!c.kerberosRequested){c.kerberosRequested=!0;try{let f=_r(n,s,"http.proxyKerberosServicePrincipal");return"Negotiate "+await dO(l,f,t,"ProxyResolver#lookupProxyAuthorization")}catch(f){t.debug("ProxyResolver#lookupProxyAuthorization Kerberos authentication failed",f)}if(s&&a){t.debug("ProxyResolver#lookupProxyAuthorization Kerberos authentication lookup on host",`proxyURL:${l}`);let f=await r.lookupKerberosAuthorization(l);if(f)return"Negotiate "+f}}let h=g.find(f=>/^Basic( |$)/i.test(f));if(h)try{let f=i[l];if(f)if(c.basicAuthCacheUsed)t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication deleting cached credentials",`proxyURL:${l}`),delete i[l];else return t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication using cached credentials",`proxyURL:${l}`),c.basicAuthCacheUsed=!0,f;c.basicAuthAttempt=(c.basicAuthAttempt||0)+1;let I=/ realm="([^"]+)"/i.exec(h)?.[1];t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication lookup",`proxyURL:${l}`,`realm:${I}`);let S=new URL(l),E={scheme:"basic",host:S.hostname,port:Number(S.port),realm:I||"",isProxy:!0,attempt:c.basicAuthAttempt},P=await r.lookupAuthorization(E);if(P){t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication received credentials",`proxyURL:${l}`,`realm:${I}`);let L="Basic "+Buffer.from(`${P.username}:${P.password}`).toString("base64");return i[l]=L,L}else t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication received no credentials",`proxyURL:${l}`,`realm:${I}`)}catch(f){t.error("ProxyResolver#lookupProxyAuthorization Basic authentication failed",f)}}var JB=!1,JG=!1;function YG(r,t,e){!JG||JB||!t.length||(JB=!0,r.$publicLog2("proxyAuthenticationRequest",{authenticationType:t.map(n=>n.split(" ")[0]).join(","),extensionHostType:e?"remote":"local"}))}function _r(r,t,e,n){if(t)return r.getConfiguration().get(e)??n;let o=r.getConfiguration().inspect(e);return o?.globalLocalValue??o?.defaultValue??n}import{tmpdir as XG}from"os";var Mf=class extends O{constructor(t,e){super();let n=t.getProxy(U.MainThreadDownloadService);e.registerCommand(!1,"_workbench.downloadResource",async o=>{let i=y.file(Oe(XG(),Le()));return await n.$download(o,i),i})}};Mf=_([C(0,ie),C(1,Dn)],Mf);import*as ak from"fs";var cO=class{constructor(t,e,n){this._commands=t;this.logService=e;this._ipcHandlePath=n;this._server=void 0;this._disposed=!1;this.setup()}get ipcHandlePath(){return this._ipcHandlePath}async setup(){try{let t=await import("http");if(this._disposed)return;this._server=t.createServer((e,n)=>this.onRequest(e,n));try{this._server.listen(this.ipcHandlePath),this._server.on("error",e=>this.logService.error(e))}catch{this.logService.error("Could not start open from terminal server.")}}catch(t){this.logService.error("Error setting up CLI server",t)}}onRequest(t,e){let n=(i,s)=>{e.writeHead(i,{"content-type":"application/json"}),e.end(JSON.stringify(s||null),a=>a&&this.logService.error(a))},o=[];t.setEncoding("utf8"),t.on("data",i=>o.push(i)),t.on("end",async()=>{try{let i=JSON.parse(o.join("")),s;switch(i.type){case"open":s=await this.open(i);break;case"openExternal":s=await this.openExternal(i);break;case"status":s=await this.getStatus(i);break;case"extensionManagement":s=await this.manageExtensions(i);break;default:n(404,`Unknown message type: ${i.type}`);break}n(200,s)}catch(i){let s=i instanceof Error?i.message:JSON.stringify(i);n(500,s),this.logService.error("Error while processing pipe request",i)}})}async open(t){let{fileURIs:e,folderURIs:n,forceNewWindow:o,diffMode:i,mergeMode:s,addMode:a,removeMode:l,forceReuseWindow:d,gotoLineMode:c,waitMarkerFilePath:u,remoteAuthority:m}=t,g=[];if(Array.isArray(n))for(let S of n)try{g.push({folderUri:y.parse(S)})}catch{}if(Array.isArray(e))for(let S of e)try{TF(S)?g.push({workspaceUri:y.parse(S)}):g.push({fileUri:y.parse(S)})}catch{}let h=u?y.file(u):void 0,I={forceNewWindow:o,diffMode:i,mergeMode:s,addMode:a,removeMode:l,gotoLineMode:c,forceReuseWindow:d,preferNewWindow:!d&&!h&&!a&&!l,waitMarkerFileURI:h,remoteAuthority:m};this._commands.executeCommand("_remoteCLI.windowOpen",g,I)}async openExternal(t){for(let e of t.uris)y.parse(e).scheme!=="file"&&await this._commands.executeCommand("_remoteCLI.openExternal",e)}async manageExtensions(t){let e=o=>o?.map(i=>/\.vsix$/i.test(i)?y.parse(i):i),n={list:t.list,install:e(t.install),uninstall:e(t.uninstall),force:t.force};return await this._commands.executeCommand("_remoteCLI.manageExtensions",n)}async getStatus(t){return await this._commands.executeCommand("_remoteCLI.getSystemStatus")}dispose(){this._disposed=!0,this._server?.close(),this._ipcHandlePath&&process.platform!=="win32"&&ak.existsSync(this._ipcHandlePath)&&ak.unlinkSync(this._ipcHandlePath)}},Lf=class extends cO{constructor(t,e){super(t,e,VU())}};Lf=_([C(0,Dn),C(1,oe)],Lf);var Of=class{constructor(t,e){this._mainThreadConsole=t.getProxy(U.MainThreadConsole),this._includeStack=e.consoleForward.includeStack,this._logNative=e.consoleForward.logNative,this._wrapConsoleMethod("info","log"),this._wrapConsoleMethod("log","log"),this._wrapConsoleMethod("warn","warn"),this._wrapConsoleMethod("debug","debug"),this._wrapConsoleMethod("error","error")}_wrapConsoleMethod(t,e){let n=this,o=console[t];Object.defineProperty(console,t,{set:()=>{},get:()=>(...i)=>{n._handleConsoleCall(t,e,o,i)}})}_handleConsoleCall(t,e,n,o){this._mainThreadConsole.$logExtensionHostMessage({type:"__$console",severity:e,arguments:eQ(o,this._includeStack)}),this._logNative&&this._nativeConsoleLogMessage(t,n,o)}};Of=_([C(0,ie),C(1,Ye)],Of);var ZG=1e5;function eQ(r,t){let e=[];if(r.length)for(let n=0;n<r.length;n++){let o=r[n];if(typeof o>"u")o="undefined";else if(o instanceof Error){let i=o;i.stack?o=i.stack:o=i.toString()}e.push(o)}if(t){let n=new Error().stack;n&&e.push({__$stack:n.split(`
`).slice(3).join(`
`)})}try{let n=r_(e);return n.length>ZG?"Output omitted for a large object that exceeds the limits":n}catch(n){return`Output omitted for an object that cannot be inspected ('${n.toString()}')`}}var tQ=1024*1024,Nf=class extends Of{constructor(e,n){super(e,n);this._isMakingConsoleCall=!1;this._wrapStream("stderr","error"),this._wrapStream("stdout","log")}_nativeConsoleLogMessage(e,n,o){let i=e==="error"||e==="warn"?process.stderr:process.stdout;this._isMakingConsoleCall=!0,i.write(`
START_NATIVE_LOG
`),n.apply(console,o),i.write(`
END_NATIVE_LOG
`),this._isMakingConsoleCall=!1}_wrapStream(e,n){let o=process[e],i=o.write,s="";Object.defineProperty(o,"write",{set:()=>{},get:()=>(a,l,d)=>{if(!this._isMakingConsoleCall){s+=a.toString(l);let c=s.length>tQ?s.length:s.lastIndexOf(`
`);c!==-1&&(console[n](s.slice(0,c)),s=s.slice(c+1))}i.call(o,a,l,d)}})}};Nf=_([C(0,ie),C(1,Ye)],Nf);import{constants as pO,promises as Du}from"fs";async function ZB(r,t,e,n,o,i){let s;try{await nQ(r,t,e,n,o,i)}catch(a){s=a}finally{s&&o.errorTransformer&&(s=o.errorTransformer(s)),typeof s<"u"&&e.error(s),e.end()}}async function nQ(r,t,e,n,o,i){uO(i);let s=await r.open(t,{create:!1});try{uO(i);let a=0,l=0,d=o&&typeof o.length=="number"?o.length:void 0,c=W.alloc(Math.min(o.bufferSize,typeof d=="number"?d:o.bufferSize)),u=o&&typeof o.position=="number"?o.position:0,m=0;do l=await r.read(s,u,c.buffer,m,c.byteLength-m),u+=l,m+=l,a+=l,typeof d=="number"&&(d-=l),m===c.byteLength&&(await e.write(n(c)),c=W.alloc(Math.min(o.bufferSize,typeof d=="number"?d:o.bufferSize)),m=0);while(l>0&&(typeof d!="number"||d>0)&&uO(i)&&oQ(a,o));if(m>0){let g=m;typeof d=="number"&&(g=Math.min(m,d)),e.write(n(c.slice(0,g)))}}catch(a){throw hF(a)}finally{await r.close(s)}}function uO(r){if(r.isCancellationRequested)throw Ws();return!0}function oQ(r,t){if(typeof t?.limits?.size=="number"&&r>t.limits.size)throw gi(p(2106,null),"EntryTooLarge");return!0}var lk=class extends O{constructor(e,n){super();this.logService=e;this.options=n;this._onDidChangeFile=this._register(new T);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidWatchError=this._register(new T);this.onDidWatchError=this._onDidWatchError.event;this.universalWatchRequests=[];this.universalWatchRequestDelayer=this._register(new di(this.getRefreshWatchersDelay(this.universalWatchRequests.length)));this.nonRecursiveWatchRequests=[];this.nonRecursiveWatchRequestDelayer=this._register(new di(this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)))}watch(e,n){return n.recursive||this.options?.watcher?.forceUniversal?this.watchUniversal(e,n):this.watchNonRecursive(e,n)}getRefreshWatchersDelay(e){return e>200?500:0}watchUniversal(e,n){let o=this.toWatchRequest(e,n),i=Hk(this.universalWatchRequests,o);return this.refreshUniversalWatchers(),G(()=>{i(),this.refreshUniversalWatchers()})}toWatchRequest(e,n){let o={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:n.recursive,filter:n.filter,correlationId:n.correlationId};if(FV(o)){let i=this.options?.watcher?.recursive?.usePolling;i===!0?o.pollingInterval=this.options?.watcher?.recursive?.pollingInterval??5e3:Array.isArray(i)&&i.includes(o.path)&&(o.pollingInterval=this.options?.watcher?.recursive?.pollingInterval??5e3)}return o}refreshUniversalWatchers(){this.universalWatchRequestDelayer.trigger(()=>this.doRefreshUniversalWatchers(),this.getRefreshWatchersDelay(this.universalWatchRequests.length)).catch(e=>$e(e))}doRefreshUniversalWatchers(){return this.universalWatcher||(this.universalWatcher=this._register(this.createUniversalWatcher(e=>this._onDidChangeFile.fire(ZM(e)),e=>this.onWatcherLogMessage(e),this.logService.getLevel()===1)),this._register(this.logService.onDidChangeLogLevel(()=>{this.universalWatcher?.setVerboseLogging(this.logService.getLevel()===1)}))),this.universalWatcher.watch(this.universalWatchRequests)}watchNonRecursive(e,n){let o={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:!1,filter:n.filter,correlationId:n.correlationId},i=Hk(this.nonRecursiveWatchRequests,o);return this.refreshNonRecursiveWatchers(),G(()=>{i(),this.refreshNonRecursiveWatchers()})}refreshNonRecursiveWatchers(){this.nonRecursiveWatchRequestDelayer.trigger(()=>this.doRefreshNonRecursiveWatchers(),this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)).catch(e=>$e(e))}doRefreshNonRecursiveWatchers(){return this.nonRecursiveWatcher||(this.nonRecursiveWatcher=this._register(this.createNonRecursiveWatcher(e=>this._onDidChangeFile.fire(ZM(e)),e=>this.onWatcherLogMessage(e),this.logService.getLevel()===1)),this._register(this.logService.onDidChangeLogLevel(()=>{this.nonRecursiveWatcher?.setVerboseLogging(this.logService.getLevel()===1)}))),this.nonRecursiveWatcher.watch(this.nonRecursiveWatchRequests)}onWatcherLogMessage(e){e.type==="error"&&this._onDidWatchError.fire(e.message),this.logWatcherMessage(e)}logWatcherMessage(e){this.logService[e.type](e.message)}toFilePath(e){return mo(e.fsPath)}toWatchPath(e){let n=this.toFilePath(e);return jN(n)}};import{fork as sQ}from"child_process";function e5(r){let t=r;return t&&typeof t.type=="string"&&typeof t.severity=="string"}function rQ(r){let t=[],e;try{let n=JSON.parse(r.arguments),o=n[n.length-1];o&&o.__$stack&&(n.pop(),e=o.__$stack),t.push(...n)}catch{t.push("Unable to log remote console arguments",r.arguments)}return{args:t,stack:e}}function iQ(r){if(!r)return r;let t=r.indexOf(`
`);return t===-1?r:r.substring(0,t)}function t5(r,t){let{args:e,stack:n}=rQ(r),o=typeof e[0]=="string"&&e.length===1,i=iQ(n);i&&(i=`(${i.trim()})`);let s=[];if(typeof e[0]=="string"?i&&o?s=[`%c[${t}] %c${e[0]} %c${i}`,Uf("blue"),Uf(""),Uf("grey")]:s=[`%c[${t}] %c${e[0]}`,Uf("blue"),Uf(""),...e.slice(1)]:s=[`%c[${t}]%`,Uf("blue"),...e],i&&!o&&s.push(i),typeof console[r.severity]!="function")throw new Error("Unknown console method");console[r.severity].apply(console,s)}function Uf(r){return`color: ${r}`}var dk=class{constructor(t,e){this.modulePath=t;this.options=e;this.activeRequests=new Set;this.channels=new Map;this._onDidProcessExit=new T;this.onDidProcessExit=this._onDidProcessExit.event;let n=e.timeout||6e4;this.disposeDelayer=new ih(n),this.child=null,this._client=null}getChannel(t){let e=this;return{call(n,o,i){return e.requestPromise(t,n,o,i)},listen(n,o){return e.requestEvent(t,n,o)}}}requestPromise(t,e,n,o=he.None){if(!this.disposeDelayer)return Promise.reject(new Error("disposed"));if(o.isCancellationRequested)return Promise.reject(Ws());this.disposeDelayer.cancel();let i=this.getCachedChannel(t),s=rr(d=>i.call(e,n,d)),a=o.onCancellationRequested(()=>s.cancel()),l=G(()=>s.cancel());return this.activeRequests.add(l),s.finally(()=>{a.dispose(),this.activeRequests.delete(l),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}),s}requestEvent(t,e,n){if(!this.disposeDelayer)return fe.None;this.disposeDelayer.cancel();let o,i=new T({onWillAddFirstListener:()=>{o=this.getCachedChannel(t).listen(e,n)(i.fire,i),this.activeRequests.add(o)},onDidRemoveLastListener:()=>{this.activeRequests.delete(o),o.dispose(),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}});return i.event}get client(){if(!this._client){let t=this.options.args||[],e=Object.create(null);e.env={...it(process.env),VSCODE_PARENT_PID:String(process.pid)},this.options.env&&(e.env={...e.env,...this.options.env}),this.options.freshExecArgv&&(e.execArgv=[]),typeof this.options.debug=="number"&&(e.execArgv=["--nolazy","--inspect="+this.options.debug]),typeof this.options.debugBrk=="number"&&(e.execArgv=["--nolazy","--inspect-brk="+this.options.debugBrk]),e.execArgv===void 0&&(e.execArgv=process.execArgv.filter(u=>!/^--inspect(-brk)?=/.test(u)).filter(u=>!u.startsWith("--vscode-"))),JW(e.env),this.child=sQ(this.modulePath,t,e);let n=new T,i=fe.fromNodeEventEmitter(this.child,"message",u=>u)(u=>{if(e5(u)){t5(u,`IPC Library: ${this.options.serverName}`);return}n.fire(W.wrap(Buffer.from(u,"base64")))}),s=this.options.useQueue?XW(this.child):this.child,a=u=>this.child?.connected&&s.send(u.buffer.toString("base64")),l=n.event,d={send:a,onMessage:l};this._client=new fh(d);let c=()=>this.disposeClient();process.once("exit",c),this.child.on("error",u=>console.warn('IPC "'+this.options.serverName+'" errored with '+u)),this.child.on("exit",(u,m)=>{process.removeListener("exit",c),i.dispose(),this.activeRequests.forEach(g=>bn(g)),this.activeRequests.clear(),u!==0&&m!=="SIGTERM"&&console.warn('IPC "'+this.options.serverName+'" crashed with exit code '+u+" and signal "+m),this.disposeDelayer?.cancel(),this.disposeClient(),this._onDidProcessExit.fire({code:u,signal:m})})}return this._client}getCachedChannel(t){let e=this.channels.get(t);return e||(e=this.client.getChannel(t),this.channels.set(t,e)),e}disposeClient(){this._client&&(this.child&&(this.child.kill(),this.child=null),this._client=null,this.channels.clear())}dispose(){this._onDidProcessExit.dispose(),this.disposeDelayer?.cancel(),this.disposeDelayer=void 0,this.disposeClient(),this.activeRequests.clear()}};var ck=class extends OE{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){let e=t.add(new dk(nl.asFileUri("bootstrap-fork").fsPath,{serverName:"File Watcher",args:["--type=fileWatcher"],env:{VSCODE_ESM_ENTRYPOINT:"vs/platform/files/node/watcher/watcherMain",VSCODE_PIPE_LOGGING:"true",VSCODE_VERBOSE_LOGGING:"true"}}));return t.add(e.onDidProcessExit(({code:n,signal:o})=>this.onError(`terminated by itself with code ${n}, signal: ${o} (ETERM)`))),GP.toService(UU(e.getChannel("watcher")))}};import{watchFile as aQ,unwatchFile as lQ}from"fs";var uk=class extends O{constructor(){super();this._onDidChangeFile=this._register(new T);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidLogMessage=this._register(new T);this.onDidLogMessage=this._onDidLogMessage.event;this._onDidWatchFail=this._register(new T);this.onDidWatchFail=this._onDidWatchFail.event;this.correlatedWatchRequests=new Map;this.nonCorrelatedWatchRequests=new Map;this.suspendedWatchRequests=this._register(new jn);this.suspendedWatchRequestsWithPolling=new Set;this.updateWatchersDelayer=this._register(new di(this.getUpdateWatchersDelay()));this.suspendedWatchRequestPollingInterval=5007;this.joinWatch=new Kt;this.verboseLogging=!1;this._register(this.onDidWatchFail(e=>this.suspendWatchRequest({id:this.computeId(e),correlationId:this.isCorrelated(e)?e.correlationId:void 0,path:e.path})))}isCorrelated(e){return NE(e)}computeId(e){return this.isCorrelated(e)?e.correlationId:oo(e)}async watch(e){this.joinWatch.isSettled||this.joinWatch.complete(),this.joinWatch=new Kt;try{this.correlatedWatchRequests.clear(),this.nonCorrelatedWatchRequests.clear();for(let n of e)this.isCorrelated(n)?this.correlatedWatchRequests.set(n.correlationId,n):this.nonCorrelatedWatchRequests.set(this.computeId(n),n);for(let[n]of this.suspendedWatchRequests)!this.nonCorrelatedWatchRequests.has(n)&&!this.correlatedWatchRequests.has(n)&&(this.suspendedWatchRequests.deleteAndDispose(n),this.suspendedWatchRequestsWithPolling.delete(n));return await this.updateWatchers(!1)}finally{this.joinWatch.complete()}}updateWatchers(e){let n=[];for(let[o,i]of[...this.nonCorrelatedWatchRequests,...this.correlatedWatchRequests])this.suspendedWatchRequests.has(o)||n.push(i);return this.updateWatchersDelayer.trigger(()=>this.doWatch(n),e?this.getUpdateWatchersDelay():0).catch(o=>$e(o))}getUpdateWatchersDelay(){return 800}isSuspended(e){let n=this.computeId(e);return this.suspendedWatchRequestsWithPolling.has(n)?"polling":this.suspendedWatchRequests.has(n)}async suspendWatchRequest(e){if(this.suspendedWatchRequests.has(e.id))return;let n=new $;this.suspendedWatchRequests.set(e.id,n),await this.joinWatch.p,!n.isDisposed&&(this.monitorSuspendedWatchRequest(e,n),this.updateWatchers(!0))}resumeWatchRequest(e){this.suspendedWatchRequests.deleteAndDispose(e.id),this.suspendedWatchRequestsWithPolling.delete(e.id),this.updateWatchers(!1)}monitorSuspendedWatchRequest(e,n){this.doMonitorWithExistingWatcher(e,n)?(this.trace(`reusing an existing recursive watcher to monitor ${e.path}`),this.suspendedWatchRequestsWithPolling.delete(e.id)):(this.doMonitorWithNodeJS(e,n),this.suspendedWatchRequestsWithPolling.add(e.id))}doMonitorWithExistingWatcher(e,n){let o=this.recursiveWatcher?.subscribe(e.path,(i,s)=>{n.isDisposed||(i?this.monitorSuspendedWatchRequest(e,n):s?.type===1&&this.onMonitoredPathAdded(e))});return o?(n.add(o),!0):!1}doMonitorWithNodeJS(e,n){let o=!1,i=(s,a)=>{if(n.isDisposed)return;let l=this.isPathNotFound(s),d=this.isPathNotFound(a),c=o;o=l,!l&&(d||c)&&this.onMonitoredPathAdded(e)};this.trace(`starting fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{aQ(e.path,{persistent:!1,interval:this.suspendedWatchRequestPollingInterval},i)}catch(s){this.warn(`fs.watchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}n.add(G(()=>{this.trace(`stopping fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{lQ(e.path,i)}catch(s){this.warn(`fs.unwatchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}}))}onMonitoredPathAdded(e){this.trace(`detected ${e.path} exists again, resuming watcher (correlationId: ${e.correlationId})`);let n={resource:y.file(e.path),type:1,cId:e.correlationId};this._onDidChangeFile.fire([n]),this.traceEvent(n,e),this.resumeWatchRequest(e)}isPathNotFound(e){return e.ctimeMs===0&&e.ino===0}async stop(){this.suspendedWatchRequests.clearAndDisposeAll(),this.suspendedWatchRequestsWithPolling.clear()}traceEvent(e,n){if(this.verboseLogging){let o=` >> normalized ${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`;this.traceWithCorrelation(o,n)}}traceWithCorrelation(e,n){this.verboseLogging&&this.trace(`${e}${typeof n.correlationId=="number"?` <${n.correlationId}> `:""}`)}requestToString(e){return`${e.path} (excludes: ${e.excludes.length>0?e.excludes:"<none>"}, includes: ${e.includes&&e.includes.length>0?JSON.stringify(e.includes):"<all>"}, filter: ${VV(e.filter)}, correlationId: ${typeof e.correlationId=="number"?e.correlationId:"<none>"})`}async setVerboseLogging(e){this.verboseLogging=e}};import{watch as dQ,promises as cQ}from"fs";var pk=class r extends O{constructor(e,n,o,i,s,a){super();this.request=e;this.recursiveWatcher=n;this.onDidFilesChange=o;this.onDidWatchFail=i;this.onLogMessage=s;this.verboseLogging=a;this.throttledFileChangesEmitter=this._register(new Zu({maxWorkChunkSize:100,throttleDelay:200,maxBufferedWork:1e4},e=>this.onDidFilesChange(e)));this.fileChangesAggregator=this._register(new Xy(e=>this.handleFileChanges(e),r.FILE_CHANGES_HANDLER_DELAY));this.cts=new Ce;this.realPath=new pt(async()=>{let e=this.request.path;try{e=await rt.realpath(this.request.path),this.request.path!==e&&this.trace(`correcting a path to watch that seems to be a symbolic link (original: ${this.request.path}, real: ${e})`)}catch{}return e});this._isReusingRecursiveWatcher=!1;this.didFail=!1;let l=!Qe;this.excludes=tL(this.request.path,this.request.excludes,l),this.includes=this.request.includes?tL(this.request.path,this.request.includes,l):void 0,this.filter=NE(this.request)?this.request.filter:void 0,this.ready=this.watch()}static{this.FILE_DELETE_HANDLER_DELAY=100}static{this.FILE_CHANGES_HANDLER_DELAY=75}get isReusingRecursiveWatcher(){return this._isReusingRecursiveWatcher}get failed(){return this.didFail}async watch(){try{let e=await cQ.stat(this.request.path);if(this.cts.token.isCancellationRequested)return;this._register(await this.doWatch(e.isDirectory()))}catch(e){e.code!=="ENOENT"?this.error(e):this.trace(`ignoring a path for watching who's stat info failed to resolve: ${this.request.path} (error: ${e})`),this.notifyWatchFailed()}}notifyWatchFailed(){this.didFail=!0,this.onDidWatchFail?.()}async doWatch(e){let n=new $;return this.doWatchWithExistingWatcher(e,n)?(this.trace(`reusing an existing recursive watcher for ${this.request.path}`),this._isReusingRecursiveWatcher=!0):(this._isReusingRecursiveWatcher=!1,await this.doWatchWithNodeJS(e,n)),n}doWatchWithExistingWatcher(e,n){if(e)return!1;let o=y.file(this.request.path),i=this.recursiveWatcher?.subscribe(this.request.path,async(s,a)=>{n.isDisposed||(s?await aN(this.doWatch(e),n):a&&(typeof a.cId=="number"||typeof this.request.correlationId=="number")&&this.onFileChange({resource:o,type:a.type,cId:this.request.correlationId},!0))});return i?(n.add(i),!0):!1}async doWatchWithNodeJS(e,n){let o=await this.realPath.value;if(this.cts.token.isCancellationRequested)return;if(ut&&vr(o,"/Volumes/",!0)){this.error(`Refusing to watch ${o} for changes using fs.watch() for possibly being a network share where watching is unreliable and unstable.`);return}let i=new Ce(this.cts.token);n.add(G(()=>i.dispose(!0)));let s=new $;n.add(s);try{let a=y.file(this.request.path),l=at(o),d=dQ(o);s.add(G(()=>{d.removeAllListeners(),d.close()})),this.trace(`Started watching: '${o}'`);let c=new Set;if(e)try{for(let m of await rt.readdir(o))c.add(m)}catch(m){this.error(m)}if(i.token.isCancellationRequested)return;let u=new Map;s.add(G(()=>{for(let[,m]of u)m.dispose();u.clear()})),d.on("error",(m,g)=>{i.token.isCancellationRequested||(this.error(`Failed to watch ${o} for changes using fs.watch() (${m}, ${g})`),this.notifyWatchFailed())}),d.on("change",(m,g)=>{if(i.token.isCancellationRequested)return;this.verboseLogging&&this.traceWithCorrelation(`[raw] ["${m}"] ${g}`);let h="";if(g&&(h=g.toString(),ut&&(h=qd(h))),!(!h||m!=="change"&&m!=="rename"))if(e)if(m==="rename"){u.get(h)?.dispose();let f=setTimeout(async()=>{if(u.delete(h),Qu(h,l,!Qe)&&!await rt.exists(o)){this.onWatchedPathDeleted(a);return}if(i.token.isCancellationRequested)return;let I=await this.existsChildStrictCase(Oe(o,h));if(i.token.isCancellationRequested)return;let S;I?c.has(h)?S=0:(S=1,c.add(h)):(c.delete(h),S=2),this.onFileChange({resource:St(a,h),type:S,cId:this.request.correlationId})},r.FILE_DELETE_HANDLER_DELAY);u.set(h,G(()=>clearTimeout(f)))}else{let f;c.has(h)?f=0:(f=1,c.add(h)),this.onFileChange({resource:St(a,h),type:f,cId:this.request.correlationId})}else if(m==="rename"||!Qu(h,l,!Qe)){let f=setTimeout(async()=>{let I=await rt.exists(o);i.token.isCancellationRequested||(I?(this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0),s.add(await this.doWatch(!1))):this.onWatchedPathDeleted(a))},r.FILE_DELETE_HANDLER_DELAY);s.clear(),s.add(G(()=>clearTimeout(f)))}else this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0)})}catch(a){if(i.token.isCancellationRequested)return;this.error(`Failed to watch ${o} for changes using fs.watch() (${a.toString()})`),this.notifyWatchFailed()}}onWatchedPathDeleted(e){this.warn("Watcher shutdown because watched path got deleted"),this.onFileChange({resource:e,type:2,cId:this.request.correlationId},!0),this.fileChangesAggregator.flush(),this.notifyWatchFailed()}onFileChange(e,n=!1){this.cts.token.isCancellationRequested||(this.verboseLogging&&this.traceWithCorrelation(`${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`),!n&&this.excludes.some(o=>o(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (excluded) ${e.resource.fsPath}`):!n&&this.includes&&this.includes.length>0&&!this.includes.some(o=>o(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (not included) ${e.resource.fsPath}`):this.fileChangesAggregator.work(e))}handleFileChanges(e){let n=HV(e),o=[];for(let s of n){if(WV(s,this.filter)){this.verboseLogging&&this.traceWithCorrelation(` >> ignored (filtered) ${s.resource.fsPath}`);continue}o.push(s)}if(o.length===0)return;if(this.verboseLogging)for(let s of o)this.traceWithCorrelation(` >> normalized ${s.type===1?"[ADDED]":s.type===2?"[DELETED]":"[CHANGED]"} ${s.resource.fsPath}`);this.throttledFileChangesEmitter.work(o)?this.throttledFileChangesEmitter.pending>0&&this.trace(`started throttling events due to large amount of file change events at once (pending: ${this.throttledFileChangesEmitter.pending}, most recent change: ${o[0].resource.fsPath}). Use 'files.watcherExclude' setting to exclude folders with lots of changing files (e.g. compilation output).`):this.warn(`started ignoring events due to too many file change events at once (incoming: ${o.length}, most recent change: ${o[0].resource.fsPath}). Use 'files.watcherExclude' setting to exclude folders with lots of changing files (e.g. compilation output).`)}async existsChildStrictCase(e){if(Qe)return rt.exists(e);try{let n=at(e);return(await rt.readdir(on(e))).some(i=>i===n)}catch(n){return this.trace(n),!1}}setVerboseLogging(e){this.verboseLogging=e}error(e){this.cts.token.isCancellationRequested||this.onLogMessage?.({type:"error",message:`[File Watcher (node.js)] ${e}`})}warn(e){this.cts.token.isCancellationRequested||this.onLogMessage?.({type:"warn",message:`[File Watcher (node.js)] ${e}`})}trace(e){!this.cts.token.isCancellationRequested&&this.verboseLogging&&this.onLogMessage?.({type:"trace",message:`[File Watcher (node.js)] ${e}`})}traceWithCorrelation(e){!this.cts.token.isCancellationRequested&&this.verboseLogging&&this.trace(`${e}${typeof this.request.correlationId=="number"?` <${this.request.correlationId}> `:""}`)}dispose(){this.cts.dispose(!0),super.dispose()}};var mk=class extends uk{constructor(e){super();this.recursiveWatcher=e;this.onDidError=fe.None;this._watchers=new Map;this.worker=this._register(new En)}get watchers(){return this._watchers.values()}async doWatch(e){e=this.removeDuplicateRequests(e);let n=[],o=new Set(Array.from(this.watchers));for(let i of e){let s=this._watchers.get(this.requestToWatcherKey(i));s&&BR(s.request.excludes,i.excludes)&&BR(s.request.includes,i.includes)?o.delete(s):n.push(i)}n.length&&this.trace(`Request to start watching: ${n.map(i=>this.requestToString(i)).join(",")}`),o.size&&this.trace(`Request to stop watching: ${Array.from(o).map(i=>this.requestToString(i.request)).join(",")}`),this.worker.clear();for(let i of o)this.stopWatching(i);this.createWatchWorker().work(n)}createWatchWorker(){return this.worker.value=new Zu({maxWorkChunkSize:100,throttleDelay:100,maxBufferedWork:Number.MAX_VALUE},e=>{for(let n of e)this.startWatching(n)}),this.worker.value}requestToWatcherKey(e){return typeof e.correlationId=="number"?e.correlationId:this.pathToWatcherKey(e.path)}pathToWatcherKey(e){return Qe?e:e.toLowerCase()}startWatching(e){let n=new pk(e,this.recursiveWatcher,i=>this._onDidChangeFile.fire(i),()=>this._onDidWatchFail.fire(e),i=>this._onDidLogMessage.fire(i),this.verboseLogging),o={request:e,instance:n};this._watchers.set(this.requestToWatcherKey(e),o)}async stop(){await super.stop();for(let e of this.watchers)this.stopWatching(e)}stopWatching(e){this.trace("stopping file watcher",e),this._watchers.delete(this.requestToWatcherKey(e.request)),e.instance.dispose()}removeDuplicateRequests(e){let n=new Map;for(let o of e){let i=n.get(o.correlationId);i||(i=new Map,n.set(o.correlationId,i));let s=this.pathToWatcherKey(o.path);i.has(s)&&this.trace(`ignoring a request for watching who's path is already watched: ${this.requestToString(o)}`),i.set(s,o)}return Array.from(n.values()).flatMap(o=>Array.from(o.values()))}async setVerboseLogging(e){super.setVerboseLogging(e);for(let n of this.watchers)n.instance.setVerboseLogging(e)}trace(e,n){this.verboseLogging&&this._onDidLogMessage.fire({type:"trace",message:this.toMessage(e,n)})}warn(e){this._onDidLogMessage.fire({type:"warn",message:this.toMessage(e)})}toMessage(e,n){return n?`[File Watcher (node.js)] ${e} (${this.requestToString(n.request)})`:`[File Watcher (node.js)] ${e}`}};var gk=class extends LE{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){return t.add(new mk(void 0))}};var fk=class r extends lk{constructor(){super(...arguments);this.onDidChangeCapabilities=fe.None;this.resourceLocks=new Ge(e=>$d.getComparisonKey(e));this.mapHandleToPos=new Map;this.mapHandleToLock=new Map;this.writeHandles=new Map}static{this.TRACE_LOG_RESOURCE_LOCKS=!1}get capabilities(){return this._capabilities||(this._capabilities=1040414,Qe&&(this._capabilities|=1024)),this._capabilities}async stat(e){try{let{stat:n,symbolicLink:o}=await To.stat(this.toFilePath(e)),i;return(n.mode&128)===0&&(i=2),(n.mode&pO.S_IXUSR||n.mode&pO.S_IXGRP||n.mode&pO.S_IXOTH)&&(i=(i??0)|4),{type:this.toType(n,o),ctime:n.birthtime.getTime(),mtime:n.mtime.getTime(),size:n.size,permissions:i}}catch(n){throw this.toFileSystemProviderError(n)}}async statIgnoreError(e){try{return await this.stat(e)}catch{return}}async realpath(e){let n=this.toFilePath(e);return rt.realpath(n)}async readdir(e){try{let n=await rt.readdir(this.toFilePath(e),{withFileTypes:!0}),o=[];return await Promise.all(n.map(async i=>{try{let s;i.isSymbolicLink()?s=(await this.stat(St(e,i.name))).type:s=this.toType(i),o.push([i.name,s])}catch(s){this.logService.trace(s)}})),o}catch(n){throw this.toFileSystemProviderError(n)}}toType(e,n){let o;return n?.dangling?o=0:e.isFile()?o=1:e.isDirectory()?o=2:o=0,n&&(o|=64),o}async createResourceLock(e){let n=this.toFilePath(e);this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - request to acquire resource lock (${n})`);let o;for(;o=this.resourceLocks.get(e);)this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - waiting for resource lock to be released (${n})`),await o.wait();let i=new hn;return this.resourceLocks.set(e,i),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - new resource lock created (${n})`),G(()=>{this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock dispose() (${n})`),this.resourceLocks.get(e)===i&&(this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock removed from resource-lock map (${n})`),this.resourceLocks.delete(e)),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock barrier open() (${n})`),i.open()})}async readFile(e,n){let o;try{n?.atomic&&(this.traceLock(`[Disk FileSystemProvider]: atomic read operation started (${this.toFilePath(e)})`),o=await this.createResourceLock(e));let i=this.toFilePath(e);return await Du.readFile(i)}catch(i){throw this.toFileSystemProviderError(i)}finally{o?.dispose()}}traceLock(e){r.TRACE_LOG_RESOURCE_LOCKS&&this.logService.trace(e)}readFileStream(e,n,o){let i=zd(s=>W.concat(s.map(a=>W.wrap(a))).buffer);return ZB(this,e,i,s=>s.buffer,{...n,bufferSize:256*1024},o),i}async writeFile(e,n,o){return o?.atomic!==!1&&o?.atomic?.postfix&&await this.canWriteFileAtomic(e)?this.doWriteFileAtomic(e,St(li(e),`${qt(e)}${o.atomic.postfix}`),n,o):this.doWriteFile(e,n,o)}async canWriteFileAtomic(e){try{let n=this.toFilePath(e),{symbolicLink:o}=await To.stat(n);if(o)return!1}catch{}return!0}async doWriteFileAtomic(e,n,o,i){let s=new $;try{s.add(await this.createResourceLock(e)),s.add(await this.createResourceLock(n)),await this.doWriteFile(n,o,{...i,create:!0,overwrite:!0},!0);try{await this.rename(n,e,{overwrite:!0})}catch(a){try{await this.delete(n,{recursive:!1,useTrash:!1,atomic:!1})}catch{}throw a}}finally{s.dispose()}}async doWriteFile(e,n,o,i){let s;try{let a=this.toFilePath(e);if(!o.create||!o.overwrite){if(await rt.exists(a)){if(!o.overwrite)throw gi(p(2111,null),"EntryExists")}else if(!o.create)throw gi(p(2114,null),"EntryNotFound")}s=await this.open(e,{create:!0,append:o.append,unlock:o.unlock},i),await this.write(s,0,n,0,n.byteLength)}catch(a){throw await this.toFileSystemProviderWriteError(e,a)}finally{typeof s=="number"&&await this.close(s)}}static{this.canFlush=!0}static configureFlushOnWrite(e){r.canFlush=e}async open(e,n,o){let i=this.toFilePath(e),s;nc(n)&&!o&&(s=await this.createResourceLock(e));let a;try{if(nc(n)&&n.unlock)try{let{stat:l}=await To.stat(i);l.mode&128||await Du.chmod(i,l.mode|128)}catch(l){l.code!=="ENOENT"&&this.logService.trace(l)}if(Ie&&nc(n)&&!n.append)try{a=await rt.open(i,"r+"),await rt.ftruncate(a,0)}catch(l){if(l.code!=="ENOENT"&&this.logService.trace(l),typeof a=="number"){try{await rt.close(a)}catch(d){this.logService.trace(d)}a=void 0}}typeof a!="number"&&(a=await rt.open(i,nc(n)?n.append?"a":"w":"r"))}catch(l){throw s?.dispose(),nc(n)?await this.toFileSystemProviderWriteError(e,l):this.toFileSystemProviderError(l)}if(this.mapHandleToPos.set(a,0),nc(n)&&this.writeHandles.set(a,e),s){let l=this.mapHandleToLock.get(a);this.traceLock(`[Disk FileSystemProvider]: open() - storing lock for handle ${a} (${i})`),this.mapHandleToLock.set(a,s),l&&(this.traceLock(`[Disk FileSystemProvider]: open() - disposing a previous lock that was still stored on same handle ${a} (${i})`),l.dispose())}return a}async close(e){let n=this.mapHandleToLock.get(e);try{if(this.mapHandleToPos.delete(e),this.writeHandles.delete(e)&&r.canFlush)try{await rt.fdatasync(e)}catch(o){r.configureFlushOnWrite(!1),this.logService.error(o)}return await rt.close(e)}catch(o){throw this.toFileSystemProviderError(o)}finally{n&&(this.mapHandleToLock.get(e)===n&&(this.traceLock(`[Disk FileSystemProvider]: close() - resource lock removed from handle-lock map ${e}`),this.mapHandleToLock.delete(e)),this.traceLock(`[Disk FileSystemProvider]: close() - disposing lock for handle ${e}`),n.dispose())}}async read(e,n,o,i,s){let a=this.normalizePos(e,n),l=null;try{l=(await rt.read(e,o,i,s,a)).bytesRead}catch(d){throw this.toFileSystemProviderError(d)}finally{this.updatePos(e,a,l)}return l}normalizePos(e,n){return n===this.mapHandleToPos.get(e)?null:n}updatePos(e,n,o){let i=this.mapHandleToPos.get(e);typeof i=="number"&&(typeof n=="number"||(typeof o=="number"?this.mapHandleToPos.set(e,i+o):this.mapHandleToPos.delete(e)))}async write(e,n,o,i,s){return lU(()=>this.doWrite(e,n,o,i,s),100,3)}async doWrite(e,n,o,i,s){let a=this.normalizePos(e,n),l=null;try{l=(await rt.write(e,o,i,s,a)).bytesWritten}catch(d){throw await this.toFileSystemProviderWriteError(this.writeHandles.get(e),d)}finally{this.updatePos(e,a,l)}return l}async mkdir(e){try{await Du.mkdir(this.toFilePath(e))}catch(n){throw this.toFileSystemProviderError(n)}}async delete(e,n){try{let o=this.toFilePath(e);if(n.recursive){let i;n?.atomic!==!1&&n.atomic.postfix&&(i=Oe(on(o),`${at(o)}${n.atomic.postfix}`)),await rt.rm(o,1,i)}else try{await Du.unlink(o)}catch(i){if(i.code==="EPERM"||i.code==="EISDIR"){let s=!1;try{let{stat:a,symbolicLink:l}=await To.stat(o);s=a.isDirectory()&&!l}catch{}if(s)await Du.rmdir(o);else throw i}else throw i}}catch(o){throw this.toFileSystemProviderError(o)}}async rename(e,n,o){let i=this.toFilePath(e),s=this.toFilePath(n);if(i!==s)try{await this.validateMoveCopy(e,n,"move",o.overwrite),await rt.rename(i,s)}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(p(2115,null,at(i),at(on(s)),a.toString()))),this.toFileSystemProviderError(a)}}async copy(e,n,o){let i=this.toFilePath(e),s=this.toFilePath(n);if(i!==s)try{await this.validateMoveCopy(e,n,"copy",o.overwrite),await rt.copy(i,s,{preserveSymlinks:!0})}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(p(2109,null,at(i),at(on(s)),a.toString()))),this.toFileSystemProviderError(a)}}async validateMoveCopy(e,n,o,i){let s=this.toFilePath(e),a=this.toFilePath(n),l=!1;if(this.capabilities&1024||(l=Qu(s,a,!0)),l){if(o==="copy")throw gi(p(2110,null),"EntryExists");if(o==="move")return}let c=await this.statIgnoreError(e);if(!c)throw gi(p(2113,null),"EntryNotFound");let u=await this.statIgnoreError(n);if(u){if(!i)throw gi(p(2112,null),"EntryExists");(c.type&1)!==0&&(u.type&1)!==0||await this.delete(n,{recursive:!0,useTrash:!1,atomic:!1})}}async cloneFile(e,n){return this.doCloneFile(e,n,!1)}async doCloneFile(e,n,o){let i=this.toFilePath(e),s=this.toFilePath(n),a=!!(this.capabilities&1024);if(Qu(i,s,!a))return;let l=new $;try{l.add(await this.createResourceLock(e)),l.add(await this.createResourceLock(n)),o&&await Du.mkdir(on(s),{recursive:!0}),await Du.copyFile(i,s)}catch(d){if(d.code==="ENOENT"&&!o)return this.doCloneFile(e,n,!0);throw this.toFileSystemProviderError(d)}finally{l.dispose()}}createUniversalWatcher(e,n,o){return new ck(i=>e(i),i=>n(i),o)}createNonRecursiveWatcher(e,n,o){return new gk(i=>e(i),i=>n(i),o)}toFileSystemProviderError(e){if(e instanceof pl)return e;let n=e,o;switch(e.code){case"ENOENT":o="EntryNotFound";break;case"EISDIR":o="EntryIsADirectory";break;case"ENOTDIR":o="EntryNotADirectory";break;case"EEXIST":o="EntryExists";break;case"EPERM":case"EACCES":o="NoPermissions";break;case"ERR_UNC_HOST_NOT_ALLOWED":n=`${e.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`,o="Unknown";break;default:o="Unknown"}return gi(n,o)}async toFileSystemProviderWriteError(e,n){let o=this.toFileSystemProviderError(n);if(e&&o.code==="NoPermissions")try{let{stat:i}=await To.stat(this.toFilePath(e));i.mode&128||(o=gi(n,"EntryWriteLocked"))}catch(i){this.logService.trace(i)}return o}};var Ff=class{constructor(t,e){t.addFileSystemProvider(V.file,new mO(e),{isCaseSensitive:Qe})}};Ff=_([C(0,Ds),C(1,oe)],Ff);var mO=class{constructor(t){this.impl=new fk(t)}async stat(t){let e=await this.impl.stat(t);return{type:e.type,ctime:e.ctime,mtime:e.mtime,size:e.size,permissions:e.permissions===1?1:void 0}}readDirectory(t){return this.impl.readdir(t)}createDirectory(t){return this.impl.mkdir(t)}readFile(t){return this.impl.readFile(t)}writeFile(t,e,n){return this.impl.writeFile(t,e,{...n,unlock:!1,atomic:!1})}delete(t,e){return this.impl.delete(t,{...e,useTrash:!1,atomic:!1})}rename(t,e,n){return this.impl.rename(t,e,n)}copy(t,e,n){return this.impl.copy(t,e,n)}get onDidChangeFile(){throw new Error("Method not implemented.")}watch(t,e){throw new Error("Method not implemented.")}};import n5 from"node:module";var o5=n5.createRequire(import.meta.url),gO=class extends ku{_installInterceptor(){let t=this,e=o5("module"),n=e._load;e._load=function(l,d,c){return l=s(l),t._factories.has(l)?t._factories.get(l).load(l,y.file($P(d.filename)),u=>n.apply(this,[u,d,c])):n.apply(this,arguments)};let o=e._resolveLookupPaths;e._resolveLookupPaths=(a,l)=>o.call(this,s(a),l);let i=e._resolveFilename;e._resolveFilename=function(l,d,c,u){return l==="vsda"&&Array.isArray(u?.paths)&&u.paths.length===0&&(u.paths=e._nodeModulePaths(import.meta.dirname)),i.call(this,l,d,c,u)};let s=a=>{for(let l of t._alternatives){let d=l(a);if(d){a=d;break}}return a}}},fO=class r extends ku{constructor(){super(...arguments);this._store=new $}static _createDataUri(e){return`data:text/javascript;base64,${Buffer.from(e).toString("base64")}`}static{this._loaderScript=`
	let lookup;
	export const initialize = async (context) => {
		let requestIds = 0;
		const { port } = context;
		const pendingRequests = new Map();
		port.onmessage = (event) => {
			const { id, url } = event.data;
			pendingRequests.get(id)?.(url);
		};
		lookup = url => {
			// debugger;
			const myId = requestIds++;
			return new Promise((resolve) => {
				pendingRequests.set(myId, resolve);
				port.postMessage({ id: myId, url, });
			});
		};
	};
	export const resolve = async (specifier, context, nextResolve) => {
		if (specifier !== 'vscode' || !context.parentURL) {
			return nextResolve(specifier, context);
		}
		const otherUrl = await lookup(context.parentURL);
		return {
			url: otherUrl,
			shortCircuit: true,
		};
	};`}static{this._vscodeImportFnName="_VSCODE_IMPORT_VSCODE_API"}dispose(){this._store.dispose()}_installInterceptor(){let e=new fy,n=new Map;Object.defineProperty(globalThis,r._vscodeImportFnName,{enumerable:!1,configurable:!1,writable:!1,value:l=>e.getKey(l)});let{port1:o,port2:i}=new MessageChannel,s,a=o;a.onmessage=l=>{s||(s=this._factories.get("vscode"),Bu(s));let{id:d,url:c}=l.data,u=y.parse(c),m=s.load("_not_used",u,()=>{throw new Error("CANNOT LOAD MODULE from here.")}),g=e.get(m);g||(g=Le(),e.set(m,g));let h=n.get(g);if(!h){let f=`const _vscodeInstance = globalThis.${r._vscodeImportFnName}('${g}');

${Object.keys(m).map((I=>`export const ${I} = _vscodeInstance['${I}'];`)).join(`
`)}`;h=r._createDataUri(f),n.set(g,h)}o.postMessage({id:d,url:h})},n5.register(r._createDataUri(r._loaderScript),{parentURL:import.meta.url,data:{port:i},transferList:[i]}),this._store.add(G(()=>{o.close(),i.close()}))}},hk=class extends pd{constructor(){super(...arguments);this.extensionRuntime=1}async _beforeAlmostReadyToRunExtensions(){this._instaService.createInstance(Nf);let e=this._instaService.invokeFunction(RB);if(this._instaService.createInstance(Mf),this._initData.remote.isRemote&&this._initData.remote.authority){let o=this._instaService.createInstance(Lf);process.env.VSCODE_IPC_HOOK_CLI=o.ipcHandlePath}this._instaService.createInstance(Ff),await this._instaService.createInstance(gO,e,{mine:this._myRegistry,all:this._globalRegistry}).install(),await this._store.add(this._instaService.createInstance(fO,e,{mine:this._myRegistry,all:this._globalRegistry})).install(),Ft("code/extHost/didInitAPI");let n=await this._extHostConfiguration.getConfigProvider();await XB(this._extHostWorkspace,n,this,this._logService,this._mainThreadTelemetryProxy,this._initData,this._store),Ft("code/extHost/didInitProxyResolver")}_getEntryPoint(e){return e.main}async _doLoadModule(e,n,o,i){if(n.scheme!==V.file)throw new Error(`Cannot load URI: '${n}', must be of file-scheme`);let s=null;o.codeLoadingStart(),this._logService.trace(`ExtensionService#loadModule [${i}] -> ${n.toString(!0)}`),this._logService.flush();let a=e?.identifier.value;e&&await this._extHostLocalizationService.initializeLocalizedMessages(e);try{a&&Ft(`code/extHost/willLoadExtensionCode/${a}`),i==="esm"?s=await import(n.toString(!0)):s=o5(n.fsPath)}finally{a&&Ft(`code/extHost/didLoadExtensionCode/${a}`),o.codeLoadingStop()}return s}async _loadCommonJSModule(e,n,o){return this._doLoadModule(e,n,o,"cjs")}async _loadESMModule(e,n,o){return this._doLoadModule(e,n,o,"esm")}async $setRemoteEnvironment(e){if(this._initData.remote.isRemote)for(let n in e){let o=e[n];o===null?delete process.env[n]:process.env[n]=o}}};import*as Hf from"fs";import{exec as v5}from"child_process";var uQ=(r,t,e)=>{let n=new Uint8Array(16);for(let s=0;s<16;s++)n[s]=Math.round(Math.random()*256);let o=ir(W.wrap(n));return[`GET ws://localhost${r}?${t}&skipWebSocketFrames=true HTTP/1.1`,"Connection: Upgrade","Upgrade: websocket",`Sec-WebSocket-Key: ${o}`].join(`\r
`)+`\r
\r
`},r5=W.fromString(`\r
\r
`);async function i5(r,t,e,n,o){r.write(W.fromString(uQ(t,e,n)));let i=new $;try{return await new Promise((s,a)=>{let l;i.add(r.onData(d=>{l?l=W.concat([l,d],l.byteLength+d.byteLength):l=d;let c=l.indexOf(r5);if(c===-1)return;s(r),r.pauseData();let u=l.slice(c+r5.byteLength);u.byteLength&&o.onData.fire(u)})),i.add(r.onClose(d=>a(d??new Error("socket closed")))),i.add(r.onEnd(()=>a(new Error("socket ended"))))})}catch(s){throw r.dispose(),s}finally{i.dispose()}}var vk=class extends O{constructor(e,n){super();this.debugLabel=e;this.pausableDataEmitter=this._register(new ji);this.onData=(...e)=>(this.pausableDataEmitter.isPaused&&queueMicrotask(()=>this.pausableDataEmitter.resume()),this.pausableDataEmitter.event(...e));this.didDisposeEmitter=this._register(new T);this.onDidDispose=this.didDisposeEmitter.event;this.ended=!1;this._register(n.onData),this._register(n.onData.event(o=>this.pausableDataEmitter.fire(o))),this.onClose=this._register(n.onClose).event,this.onEnd=this._register(n.onEnd).event}pauseData(){this.pausableDataEmitter.pause()}drain(){return Promise.resolve()}end(){this.ended=!0,this.closeRemote()}traceSocketEvent(e,n){vh.traceSocketEvent(this,this.debugLabel,e,n)}dispose(){this.ended||this.closeRemote(),this.didDisposeEmitter.fire(),super.dispose()}};var pQ="signService",wd=R(pQ);import*as m5 from"net";import*as g5 from"os";import*as hO from"net";var vO={1:!0,7:!0,9:!0,11:!0,13:!0,15:!0,17:!0,19:!0,20:!0,21:!0,22:!0,23:!0,25:!0,37:!0,42:!0,43:!0,53:!0,69:!0,77:!0,79:!0,87:!0,95:!0,101:!0,102:!0,103:!0,104:!0,109:!0,110:!0,111:!0,113:!0,115:!0,117:!0,119:!0,123:!0,135:!0,137:!0,139:!0,143:!0,161:!0,179:!0,389:!0,427:!0,465:!0,512:!0,513:!0,514:!0,515:!0,526:!0,530:!0,531:!0,532:!0,540:!0,548:!0,554:!0,556:!0,563:!0,587:!0,601:!0,636:!0,989:!0,990:!0,993:!0,995:!0,1719:!0,1720:!0,1723:!0,2049:!0,3659:!0,4045:!0,5060:!0,5061:!0,6e3:!0,6566:!0,6665:!0,6666:!0,6667:!0,6668:!0,6669:!0,6697:!0,10080:!0};function s5(r,t,e,n="127.0.0.1"){let o=!1,i,s=1,a=hO.createServer({pauseOnConnect:!0});function l(d,c){o||(o=!0,a.removeAllListeners(),a.close(),i&&clearTimeout(i),c(d))}return new Promise(d=>{i=setTimeout(()=>{l(0,d)},e),a.on("listening",()=>{l(r,d)}),a.on("error",c=>{c&&(c.code==="EADDRINUSE"||c.code==="EACCES")&&s<t?(r++,s++,a.listen(r,n)):l(0,d)}),a.on("close",()=>{l(0,d)}),a.listen(r,n)})}var gQ=30*1e3;function yO(r){switch(r){case 1:return"Management";case 2:return"ExtensionHost";case 3:return"Tunnel"}}function l5(r){let t=new Ce;return setTimeout(()=>t.cancel(),r),t.token}function fQ(r,t){if(r.isCancellationRequested||t.isCancellationRequested)return he.Cancelled;let e=new Ce;return r.onCancellationRequested(()=>e.cancel()),t.onCancellationRequested(()=>e.cancel()),e.token}var oy=class{get didTimeout(){return this._state==="timedout"}constructor(t){this._state="pending",this._disposables=new $,{promise:this.promise,resolve:this._resolvePromise,reject:this._rejectPromise}=lh(),t.isCancellationRequested?this._timeout():this._disposables.add(t.onCancellationRequested(()=>this._timeout()))}registerDisposable(t){this._state==="pending"?this._disposables.add(t):t.dispose()}_timeout(){this._state==="pending"&&(this._disposables.dispose(),this._state="timedout",this._rejectPromise(this._createTimeoutError()))}_createTimeoutError(){let t=new Error("Time limit reached");return t.code="ETIMEDOUT",t.syscall="connect",t}resolve(t){this._state==="pending"&&(this._disposables.dispose(),this._state="resolved",this._resolvePromise(t))}reject(t){this._state==="pending"&&(this._disposables.dispose(),this._state="rejected",this._rejectPromise(t))}};function hQ(r,t){let e=new oy(t);return e.registerDisposable(r.onControlMessage(n=>{let o=JSON.parse(n.toString()),i=xQ(o);i?e.reject(i):e.resolve(o)})),e.promise}function vQ(r,t,e,n,o,i,s,a){let l=new oy(a),d=Zt.create(!1);return r.info(`Creating a socket (${s})...`),Ft(`code/willCreateSocket/${i}`),t.connect(e,n,o,s).then(c=>{l.didTimeout?(Ft(`code/didCreateSocketError/${i}`),r.info(`Creating a socket (${s}) finished after ${d.elapsed()} ms, but this is too late and has timed out already.`),c?.dispose()):(Ft(`code/didCreateSocketOK/${i}`),r.info(`Creating a socket (${s}) was successful after ${d.elapsed()} ms.`),l.resolve(c))},c=>{Ft(`code/didCreateSocketError/${i}`),r.info(`Creating a socket (${s}) returned an error after ${d.elapsed()} ms.`),r.error(c),l.reject(c)}),l.promise}function bO(r,t){let e=new oy(t);return r.then(n=>{e.didTimeout||e.resolve(n)},n=>{e.didTimeout||e.reject(n)}),e.promise}async function bQ(r,t,e,n){let o=p5(r,t);r.logService.trace(`${o} 1/6. invoking socketFactory.connect().`);let i;try{i=await vQ(r.logService,r.remoteSocketFactoryService,r.connectTo,CP.getServerRootPath(),`reconnectionToken=${r.reconnectionToken}&reconnection=${r.reconnectionProtocol?"true":"false"}`,yO(t),`renderer-${yO(t)}-${r.reconnectionToken}`,n)}catch(c){throw r.logService.error(`${o} socketFactory.connect() failed or timed out. Error:`),r.logService.error(c),c}r.logService.trace(`${o} 2/6. socketFactory.connect() was successful.`);let s,a;r.reconnectionProtocol?(r.reconnectionProtocol.beginAcceptReconnection(i,null),s=r.reconnectionProtocol,a=!1):(s=new Gd({socket:i}),a=!0),r.logService.trace(`${o} 3/6. sending AuthRequest control message.`);let l=await bO(r.signService.createNewMessage(Le()),n),d={type:"auth",auth:r.connectionToken||"00000000000000000000",data:l.data};s.sendControl(W.fromString(JSON.stringify(d)));try{let c=await hQ(s,fQ(n,l5(1e4)));if(c.type!=="sign"||typeof c.data!="string"){let h=new Error("Unexpected handshake message");throw h.code="VSCODE_CONNECTION_ERROR",h}if(r.logService.trace(`${o} 4/6. received SignRequest control message.`),!await bO(r.signService.validate(l,c.signedData),n)){let h=new Error("Refused to connect to unsupported server");throw h.code="VSCODE_CONNECTION_ERROR",h}let m=await bO(r.signService.sign(c.data),n),g={type:"connectionType",commit:r.commit,signedData:m,desiredConnectionType:t};return e&&(g.args=e),r.logService.trace(`${o} 5/6. sending ConnectionTypeRequest control message.`),s.sendControl(W.fromString(JSON.stringify(g))),{protocol:s,ownsProtocol:a}}catch(c){throw c&&c.code==="ETIMEDOUT"&&(r.logService.error(`${o} the handshake timed out. Error:`),r.logService.error(c)),c&&c.code==="VSCODE_CONNECTION_ERROR"&&(r.logService.error(`${o} received error control message when negotiating connection. Error:`),r.logService.error(c)),a&&u5(s),c}}async function yQ(r,t,e){let n=Date.now(),o=p5(r,3),{protocol:i}=await bQ(r,3,t,e);return r.logService.trace(`${o} 6/6. handshake finished, connection is up and running after ${EQ(n)}!`),i}async function d5(r,t,e){let{connectTo:n,connectionToken:o}=await r.addressProvider.getAddress();return{commit:r.commit,quality:r.quality,connectTo:n,connectionToken:o,reconnectionToken:t,reconnectionProtocol:e,remoteSocketFactoryService:r.remoteSocketFactoryService,signService:r.signService,logService:r.logService}}async function c5(r,t,e){let n=await d5(r,Le(),null);return await yQ(n,{host:t,port:e},he.None)}function IQ(r){return rr(t=>new Promise((e,n)=>{let o=setTimeout(e,r*1e3);t.onCancellationRequested(()=>{clearTimeout(o),e()})}))}var IO=class{constructor(t,e){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.type=0}},xO=class{constructor(t,e,n,o){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.durationSeconds=n;this.cancellableTimer=o;this.type=1}skipWait(){this.cancellableTimer.cancel()}},SO=class{constructor(t,e,n){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.attempt=n;this.type=2}},bk=class{constructor(t,e,n){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.attempt=n;this.type=4}},CO=class{constructor(t,e,n,o){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.attempt=n;this.handled=o;this.type=3}},a5=class r extends O{constructor(e,n,o,i,s){super();this._connectionType=e;this._options=n;this.reconnectionToken=o;this.protocol=i;this._reconnectionFailureIsFatal=s;this._onDidStateChange=this._register(new T);this.onDidStateChange=this._onDidStateChange.event;this._permanentFailure=!1;this._isReconnecting=!1;this._isDisposed=!1;this._reconnectionGraceTime=108e5;this._onDidStateChange.fire(new bk(this.reconnectionToken,0,0)),this._register(i.onSocketClose(a=>{let l=ny(this._connectionType,this.reconnectionToken,!0);a?a.type===0?(this._options.logService.info(`${l} received socket close event (hadError: ${a.hadError}).`),a.error&&this._options.logService.error(a.error)):(this._options.logService.info(`${l} received socket close event (wasClean: ${a.wasClean}, code: ${a.code}, reason: ${a.reason}).`),a.event&&this._options.logService.error(a.event)):this._options.logService.info(`${l} received socket close event.`),this._beginReconnecting()})),this._register(i.onSocketTimeout(a=>{let l=ny(this._connectionType,this.reconnectionToken,!0);this._options.logService.info(`${l} received socket timeout event (unacknowledgedMsgCount: ${a.unacknowledgedMsgCount}, timeSinceOldestUnacknowledgedMsg: ${a.timeSinceOldestUnacknowledgedMsg}, timeSinceLastReceivedSomeData: ${a.timeSinceLastReceivedSomeData}).`),this._beginReconnecting()})),r._instances.push(this),this._register(G(()=>{let a=r._instances.indexOf(this);a>=0&&r._instances.splice(a,1)})),this._isPermanentFailure&&this._gotoPermanentFailure(r._permanentFailureMillisSinceLastIncomingData,r._permanentFailureAttempt,r._permanentFailureHandled)}static triggerPermanentFailure(e,n,o){this._permanentFailure=!0,this._permanentFailureMillisSinceLastIncomingData=e,this._permanentFailureAttempt=n,this._permanentFailureHandled=o,this._instances.forEach(i=>i._gotoPermanentFailure(this._permanentFailureMillisSinceLastIncomingData,this._permanentFailureAttempt,this._permanentFailureHandled))}static debugTriggerReconnection(){this._instances.forEach(e=>e._beginReconnecting())}static debugPauseSocketWriting(){this._instances.forEach(e=>e._pauseSocketWriting())}static{this._permanentFailure=!1}static{this._permanentFailureMillisSinceLastIncomingData=0}static{this._permanentFailureAttempt=0}static{this._permanentFailureHandled=!1}static{this._instances=[]}get _isPermanentFailure(){return this._permanentFailure||r._permanentFailure}updateGraceTime(e){let n=SQ(e,108e5),o=ny(this._connectionType,this.reconnectionToken,!1);this._options.logService.trace(`${o} Applying reconnection grace time: ${n}ms (${Math.floor(n/1e3)}s)`),this._reconnectionGraceTime=n}dispose(){super.dispose(),this._isDisposed=!0}async _beginReconnecting(){if(!this._isReconnecting)try{this._isReconnecting=!0,await this._runReconnectingLoop()}finally{this._isReconnecting=!1}}async _runReconnectingLoop(){if(this._isPermanentFailure||this._isDisposed)return;let e=ny(this._connectionType,this.reconnectionToken,!0);this._options.logService.info(`${e} starting reconnecting loop. You can get more information with the trace log level.`),this._onDidStateChange.fire(new IO(this.reconnectionToken,this.protocol.getMillisSinceLastIncomingData()));let n=[0,5,5,10,10,10,10,10,30],o=this._reconnectionGraceTime;if(this._options.logService.info(`${e} starting reconnection with grace time: ${o}ms (${Math.floor(o/1e3)}s)`),o<=0){this._options.logService.error(`${e} reconnection grace time is set to 0ms, will not attempt to reconnect.`),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),0,!1);return}let i=Date.now(),s=-1;do{s++;let a=s<n.length?n[s]:n[n.length-1];try{if(a>0){let d=IQ(a);this._onDidStateChange.fire(new xO(this.reconnectionToken,this.protocol.getMillisSinceLastIncomingData(),a,d)),this._options.logService.info(`${e} waiting for ${a} seconds before reconnecting...`);try{await d}catch{}}if(this._isPermanentFailure){this._options.logService.error(`${e} permanent failure occurred while running the reconnecting loop.`);break}this._onDidStateChange.fire(new SO(this.reconnectionToken,this.protocol.getMillisSinceLastIncomingData(),s+1)),this._options.logService.info(`${e} resolving connection...`);let l=await d5(this._options,this.reconnectionToken,this.protocol);this._options.logService.info(`${e} connecting to ${l.connectTo}...`),await this._reconnect(l,l5(gQ)),this._options.logService.info(`${e} reconnected!`),this._onDidStateChange.fire(new bk(this.reconnectionToken,this.protocol.getMillisSinceLastIncomingData(),s+1));break}catch(l){if(l.code==="VSCODE_CONNECTION_ERROR"){this._options.logService.error(`${e} A permanent error occurred in the reconnecting loop! Will give up now! Error:`),this._options.logService.error(l),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),s+1,!1);break}if(Date.now()-i>=o){let d=Math.round(o/1e3);this._options.logService.error(`${e} An error occurred while reconnecting, but it will be treated as a permanent error because the reconnection grace time (${d}s) has expired! Will give up now! Error:`),this._options.logService.error(l),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),s+1,!1);break}if(Wp.isTemporarilyNotAvailable(l)){this._options.logService.info(`${e} A temporarily not available error occurred while trying to reconnect, will try again...`),this._options.logService.trace(l);continue}if((l.code==="ETIMEDOUT"||l.code==="ENETUNREACH"||l.code==="ECONNREFUSED"||l.code==="ECONNRESET")&&l.syscall==="connect"){this._options.logService.info(`${e} A network error occurred while trying to reconnect, will try again...`),this._options.logService.trace(l);continue}if(zt(l)){this._options.logService.info(`${e} A promise cancelation error occurred while trying to reconnect, will try again...`),this._options.logService.trace(l);continue}if(l instanceof Wp){this._options.logService.error(`${e} A RemoteAuthorityResolverError occurred while trying to reconnect. Will give up now! Error:`),this._options.logService.error(l),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),s+1,Wp.isHandled(l));break}this._options.logService.error(`${e} An unknown error occurred while trying to reconnect, since this is an unknown case, it will be treated as a permanent error! Will give up now! Error:`),this._options.logService.error(l),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),s+1,!1);break}}while(!this._isPermanentFailure&&!this._isDisposed)}_onReconnectionPermanentFailure(e,n,o){this._reconnectionFailureIsFatal?r.triggerPermanentFailure(e,n,o):this._gotoPermanentFailure(e,n,o)}_gotoPermanentFailure(e,n,o){this._onDidStateChange.fire(new CO(this.reconnectionToken,e,n,o)),u5(this.protocol)}_pauseSocketWriting(){this.protocol.pauseSocketWriting()}};function u5(r){try{r.acceptDisconnect();let t=r.getSocket();r.dispose(),t.dispose()}catch(t){$e(t)}}function xQ(r){if(r&&r.type==="error"){let t=new Error(`Connection error: ${r.reason}`);return t.code="VSCODE_CONNECTION_ERROR",t}return null}function SQ(r,t){return typeof r!="number"||!isFinite(r)||r<0?t:r>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:Math.floor(r)}function CQ(r,t){for(;r.length<t;)r+=" ";return r}function TQ(r,t){return`[remote-connection][${CQ(yO(r),13)}][${t.substr(0,5)}\u2026]`}function ny(r,t,e){return`${TQ(r,t)}[${e?"reconnect":"initial"}]`}function p5(r,t){return`${ny(t,r.reconnectionToken,!!r.reconnectionProtocol)}[${r.connectTo}]`}function EQ(r){return`${Date.now()-r} ms`}var yk=R("remoteSocketFactoryService");async function wQ(r,t,e,n,o){let i;for(let s=3;s&&(i?.dispose(),i=await new sy(r,t,e,n,o).waitForReady(),!(o&&vO[o]||!vO[i.tunnelLocalPort]));s--);return i}var sy=class extends O{constructor(e,n,o,i,s){super();this.defaultTunnelHost=n;this.suggestedLocalPort=s;this.privacy="private";this._socketsDispose=new Map;this._options=e,this._server=m5.createServer(),this._barrier=new hn,this._listeningListener=()=>this._barrier.open(),this._server.on("listening",this._listeningListener),this._connectionListener=a=>this._onConnection(a),this._server.on("connection",this._connectionListener),this._errorListener=()=>{},this._server.on("error",this._errorListener),this.tunnelRemotePort=i,this.tunnelRemoteHost=o}async dispose(){super.dispose(),this._server.removeListener("listening",this._listeningListener),this._server.removeListener("connection",this._connectionListener),this._server.removeListener("error",this._errorListener),this._server.close(),Array.from(this._socketsDispose.values()).forEach(n=>{n()})}async waitForReady(){let e=this.suggestedLocalPort??this.tunnelRemotePort,n=Jr(this.defaultTunnelHost)?"0.0.0.0":"127.0.0.1",o=await s5(e,2,1e3,n),i=null;return this._server.listen(o,this.defaultTunnelHost),await this._barrier.wait(),i=this._server.address(),i||(o=0,this._server.listen(o,this.defaultTunnelHost),await this._barrier.wait(),i=this._server.address()),this.tunnelLocalPort=i.port,this.localAddress=`${this.tunnelRemoteHost==="127.0.0.1"?"127.0.0.1":"localhost"}:${i.port}`,this}async _onConnection(e){e.pause();let n=Rs(this.tunnelRemoteHost)||Jr(this.tunnelRemoteHost)?"localhost":this.tunnelRemoteHost,o=await c5(this._options,n,this.tunnelRemotePort),i=o.getSocket(),s=o.readEntireBuffer();o.dispose(),s.byteLength>0&&e.write(s.buffer),e.on("end",()=>{e.localAddress&&this._socketsDispose.delete(e.localAddress),i.end()}),e.on("close",()=>i.end()),e.on("error",()=>{e.localAddress&&this._socketsDispose.delete(e.localAddress),i instanceof Ks?i.socket.destroy():i.end()}),i instanceof Ks?this._mirrorNodeSocket(e,i):this._mirrorGenericSocket(e,i),e.localAddress&&this._socketsDispose.set(e.localAddress,()=>{e.end(),i.end()})}_mirrorGenericSocket(e,n){n.onClose(()=>e.destroy()),n.onEnd(()=>e.end()),n.onData(o=>e.write(o.buffer)),e.on("data",o=>n.write(W.wrap(o))),e.resume()}_mirrorNodeSocket(e,n){let o=n.socket;o.on("end",()=>e.end()),o.on("close",()=>e.end()),o.on("error",()=>{e.destroy()}),o.pipe(e),e.pipe(o)}},ry=class extends og{constructor(e,n,o,i,s){super(n,s);this.remoteSocketFactoryService=e;this.signService=o;this.productService=i}isPortPrivileged(e){return Y4(e,this.defaultTunnelHost,Yo,g5.release())}retainOrCreateTunnel(e,n,o,i,s,a,l,d){let c=this.getTunnelFromMap(n,o);if(c)return++c.refcount,c.value;if(J4(e))return this.createWithProvider(e,n,o,s,a,l,d);{this.logService.trace(`ForwardedPorts: (TunnelService) Creating tunnel without provider ${n}:${o} on local port ${s}.`);let u={commit:this.productService.commit,quality:this.productService.quality,addressProvider:e,remoteSocketFactoryService:this.remoteSocketFactoryService,signService:this.signService,logService:this.logService,ipcLogger:null},m=wQ(u,i,n,o,s);return this.logService.trace("ForwardedPorts: (TunnelService) Tunnel created without provider."),this.addTunnelToMap(n,o,m),m}}};ry=_([C(0,yk),C(1,oe),C(2,wd),C(3,is),C(4,sn)],ry);var iy=class extends ry{constructor(t,e,n,o,i){super(t,e,n,o,i)}};iy=_([C(0,yk),C(1,oe),C(2,wd),C(3,is),C(4,sn)],iy);var Ik=class extends O{constructor(e,n,o,i,s){super();this.remoteSocketFactoryService=e;this.logService=n;this.productService=o;this.signService=i;this.configurationService=s;this._tunnelServices=new Map}async openTunnel(e,n,o,i,s,a,l,d,c){if(this.logService.trace(`ForwardedPorts: (SharedTunnelService) openTunnel request for ${o}:${i} on local port ${a}.`),!this._tunnelServices.has(e)){let u=new iy(this.remoteSocketFactoryService,this.logService,this.signService,this.productService,this.configurationService);this._register(u),this._tunnelServices.set(e,u),u.onTunnelClosed(async()=>{(await u.tunnels).length===0&&(u.dispose(),this._tunnelServices.delete(e))})}return this._tunnelServices.get(e).openTunnel(n,o,i,s,a,l,d,c)}};Ik=_([C(0,yk),C(1,oe),C(2,is),C(3,wd),C(4,sn)],Ik);var kQ=10*1e3,xk="remote.tunnels.toRestore",TO="remote.tunnels.toRestoreExpiration",PQ=1e3*60*60*24*14,f5="onTunnel",dCt=new w("forwardedPortsViewEnabled",!1,p(17496,null)),_Q=new w("forwardedPortsViewOnlyEnabled",!1,p(17496,null));function wO(r){let t=r.match(/^([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*:)?([0-9]+)$/);if(t)return{host:t[1]?.substring(0,t[1].length-1)||"localhost",port:Number(t[2])}}var EO={source:0,description:p(17498,null)},cCt={source:1,description:p(17497,null)};function h5(r,t,e){let n=r.get(gr(t,e));if(n)return n;if(Rs(t))for(let o of rg){let i=gr(o,e);if(r.has(i))return r.get(i)}else if(Jr(t))for(let o of nb){let i=gr(o,e);if(r.has(i))return r.get(i)}}function Ko(r,t,e){let n=h5(r,t,e);if(n)return n;let o=Jr(t)?"localhost":Rs(t)?"0.0.0.0":void 0;if(o)return h5(r,o,e)}function gr(r,t){return r+":"+t}function DQ(r){return r&&"host"in r&&typeof r.host=="string"&&"port"in r&&typeof r.port=="number"&&(!("detail"in r)||typeof r.detail=="string")&&(!("pid"in r)||typeof r.pid=="string")}var Sk=class r extends O{constructor(e){super();this.configurationService=e;this.portsAttributes=[];this._onDidChangeAttributes=this._register(new T);this.onDidChangeAttributes=this._onDidChangeAttributes.event;this._register(e.onDidChangeConfiguration(n=>{(n.affectsConfiguration(r.SETTING)||n.affectsConfiguration(r.DEFAULTS))&&this.updateAttributes()})),this.updateAttributes()}static{this.SETTING="remote.portsAttributes"}static{this.DEFAULTS="remote.otherPortsAttributes"}static{this.RANGE=/^(\d+)\-(\d+)$/}static{this.HOST_AND_PORT=/^([a-z0-9\-]+):(\d{1,5})$/}updateAttributes(){this.portsAttributes=this.readSetting(),this._onDidChangeAttributes.fire()}getAttributes(e,n,o){let i=this.findNextIndex(e,n,o,this.portsAttributes,0),s={label:void 0,onAutoForward:void 0,elevateIfNeeded:void 0,requireLocalPort:void 0,protocol:void 0};for(;i>=0;){let a=this.portsAttributes[i];a.key===e?(s.onAutoForward=a.onAutoForward??s.onAutoForward,s.elevateIfNeeded=a.elevateIfNeeded!==void 0?a.elevateIfNeeded:s.elevateIfNeeded,s.label=a.label??s.label,s.requireLocalPort=a.requireLocalPort,s.protocol=a.protocol):(s.onAutoForward=s.onAutoForward??a.onAutoForward,s.elevateIfNeeded=s.elevateIfNeeded!==void 0?s.elevateIfNeeded:a.elevateIfNeeded,s.label=s.label??a.label,s.requireLocalPort=s.requireLocalPort!==void 0?s.requireLocalPort:void 0,s.protocol=s.protocol??a.protocol),i=this.findNextIndex(e,n,o,this.portsAttributes,i+1)}return s.onAutoForward!==void 0||s.elevateIfNeeded!==void 0||s.label!==void 0||s.requireLocalPort!==void 0||s.protocol!==void 0?s:this.getOtherAttributes()}hasStartEnd(e){return e.start!==void 0&&e.end!==void 0}hasHostAndPort(e){return e.host!==void 0&&e.port!==void 0&&Pe(e.host)&&Rn(e.port)}findNextIndex(e,n,o,i,s){if(s>=i.length)return-1;let a=!Rs(n)&&!Jr(n),d=i.slice(s).findIndex(c=>Rn(c.key)?a?!1:c.key===e:this.hasStartEnd(c.key)?a?!1:e>=c.key.start&&e<=c.key.end:this.hasHostAndPort(c.key)?e===c.key.port&&n===c.key.host:o?c.key.test(o):!1);return d>=0?d+s:-1}readSetting(){let e=this.configurationService.getValue(r.SETTING);if(!e||!ot(e))return[];let n=[];for(let i in e){if(i===void 0)continue;let s=e[i],a;if(Number(i))a=Number(i);else if(Pe(i))if(r.RANGE.test(i)){let l=i.match(r.RANGE);a={start:Number(l[1]),end:Number(l[2])}}else if(r.HOST_AND_PORT.test(i)){let l=i.match(r.HOST_AND_PORT);a={host:l[1],port:Number(l[2])}}else{let l;try{l=RegExp(i)}catch{}l&&(a=l)}a&&n.push({key:a,elevateIfNeeded:s.elevateIfNeeded,onAutoForward:s.onAutoForward,label:s.label,requireLocalPort:s.requireLocalPort,protocol:s.protocol})}let o=this.configurationService.getValue(r.DEFAULTS);return o&&(this.defaultPortAttributes={elevateIfNeeded:o.elevateIfNeeded,label:o.label,onAutoForward:o.onAutoForward,requireLocalPort:o.requireLocalPort,protocol:o.protocol}),this.sortAttributes(n)}sortAttributes(e){function n(o,i){return Rn(o.key)?o.key:i.hasStartEnd(o.key)?o.key.start:i.hasHostAndPort(o.key)?o.key.port:Number.MAX_VALUE}return e.sort((o,i)=>n(o,this)-n(i,this))}getOtherAttributes(){return this.defaultPortAttributes}static providedActionToAction(e){switch(e){case 1:return"notify";case 2:return"openBrowser";case 6:return"openBrowserOnce";case 3:return"openPreview";case 4:return"silent";case 5:return"ignore";default:return}}async addAttributes(e,n,o){let s=this.configurationService.inspect(r.SETTING).userRemoteValue,a;!s||!ot(s)?a={}:a=it(s),a[`${e}`]||(a[`${e}`]={});for(let l in n)a[`${e}`][l]=n[l];return this.configurationService.updateValue(r.SETTING,a,o)}},ay=class extends O{constructor(e,n,o,i,s,a,l,d,c,u){super();this.tunnelService=e;this.storageService=n;this.configurationService=o;this.environmentService=i;this.remoteAuthorityResolverService=s;this.workspaceContextService=a;this.logService=l;this.dialogService=d;this.extensionService=c;this.contextKeyService=u;this.inProgress=new Map;this._onForwardPort=this._register(new T);this.onForwardPort=this._onForwardPort.event;this._onClosePort=this._register(new T);this.onClosePort=this._onClosePort.event;this._onPortName=this._register(new T);this.onPortName=this._onPortName.event;this._onCandidatesChanged=this._register(new T);this.onCandidatesChanged=this._onCandidatesChanged.event;this._onEnvironmentTunnelsSet=this._register(new T);this.onEnvironmentTunnelsSet=this._onEnvironmentTunnelsSet.event;this._environmentTunnelsSet=!1;this.restoreListener=void 0;this.restoreComplete=!1;this.onRestoreComplete=this._register(new T);this.unrestoredExtensionTunnels=new Map;this.sessionCachedProperties=new Map;this.portAttributesProviders=[];this.hasCheckedExtensionsOnTunnelOpened=!1;this.mismatchCooldown=new Date;this.configPortsAttributes=new Sk(o),this.tunnelRestoreValue=this.getTunnelRestoreValue(),this._register(this.configPortsAttributes.onDidChangeAttributes(this.updateAttributes,this)),this.forwarded=new Map,this.remoteTunnels=new Map,this.tunnelService.tunnels.then(async m=>{let g=await this.getAttributes(m.map(h=>({port:h.tunnelRemotePort,host:h.tunnelRemoteHost})));for(let h of m)if(h.localAddress){let f=gr(h.tunnelRemoteHost,h.tunnelRemotePort),I=Ko(this._candidates??new Map,h.tunnelRemoteHost,h.tunnelRemotePort);this.forwarded.set(f,{remotePort:h.tunnelRemotePort,remoteHost:h.tunnelRemoteHost,localAddress:h.localAddress,protocol:g?.get(h.tunnelRemotePort)?.protocol??"http",localUri:await this.makeLocalUri(h.localAddress,g?.get(h.tunnelRemotePort)),localPort:h.tunnelLocalPort,name:g?.get(h.tunnelRemotePort)?.label,runningProcess:I?.detail,hasRunningProcess:!!I,pid:I?.pid,privacy:h.privacy,source:EO}),this.remoteTunnels.set(f,h)}}),this.detected=new Map,this._register(this.tunnelService.onTunnelOpened(async m=>{let g=gr(m.tunnelRemoteHost,m.tunnelRemotePort);if(!Ko(this.forwarded,m.tunnelRemoteHost,m.tunnelRemotePort)&&!Ko(this.detected,m.tunnelRemoteHost,m.tunnelRemotePort)&&!Ko(this.inProgress,m.tunnelRemoteHost,m.tunnelRemotePort)&&m.localAddress){let h=Ko(this._candidates??new Map,m.tunnelRemoteHost,m.tunnelRemotePort),f=(await this.getAttributes([{port:m.tunnelRemotePort,host:m.tunnelRemoteHost}]))?.get(m.tunnelRemotePort);this.forwarded.set(g,{remoteHost:m.tunnelRemoteHost,remotePort:m.tunnelRemotePort,localAddress:m.localAddress,protocol:f?.protocol??"http",localUri:await this.makeLocalUri(m.localAddress,f),localPort:m.tunnelLocalPort,name:f?.label,closeable:!0,runningProcess:h?.detail,hasRunningProcess:!!h,pid:h?.pid,privacy:m.privacy,source:EO})}await this.storeForwarded(),this.checkExtensionActivationEvents(!0),this.remoteTunnels.set(g,m),this._onForwardPort.fire(this.forwarded.get(g))})),this._register(this.tunnelService.onTunnelClosed(m=>this.onTunnelClosed(m,"Other"))),this.checkExtensionActivationEvents(!1)}extensionHasActivationEvent(){return this.extensionService.extensions.find(e=>e.activationEvents?.includes(f5))?(this.contextKeyService.createKey(_Q.key,!0),!0):!1}checkExtensionActivationEvents(e){if(this.hasCheckedExtensionsOnTunnelOpened||(e&&(this.hasCheckedExtensionsOnTunnelOpened=!0),this.environmentService.remoteAuthority!==void 0&&!e)||this.extensionHasActivationEvent())return;let o=this._register(this.extensionService.onDidRegisterExtensions(()=>{this.extensionHasActivationEvent()&&o.dispose()}))}async onTunnelClosed(e,n){let o=gr(e.host,e.port);this.forwarded.delete(o)&&(await this.storeForwarded(),this._onClosePort.fire(e))}makeLocalUri(e,n){if(e.startsWith("http"))return y.parse(e);let o=n?.protocol??"http";return y.parse(`${o}://${e}`)}async addStorageKeyPostfix(e){let n=this.workspaceContextService.getWorkspace(),o=n.configuration?oo(n.configuration.path):n.folders.length>0?oo(n.folders[0].uri.path):void 0;if(o===void 0){this.logService.debug("Could not get workspace hash for forwarded ports storage key.");return}return`${e}.${this.environmentService.remoteAuthority}.${o}`}async getTunnelRestoreStorageKey(){return this.addStorageKeyPostfix(xk)}async getRestoreExpirationStorageKey(){return this.addStorageKeyPostfix(TO)}async getTunnelRestoreValue(){let e=this.storageService.get(xk,1);if(e)return this.storageService.remove(xk,1),await this.storeForwarded(),e;let n=await this.getTunnelRestoreStorageKey();if(n)return this.storageService.get(n,0)}async restoreForwarded(){if(this.cleanupExpiredTunnelsForRestore(),this.configurationService.getValue("remote.restoreForwardedPorts")){let e=await this.tunnelRestoreValue;if(e&&e!==this.knownPortsRestoreValue){let n=JSON.parse(e)??[];this.logService.trace(`ForwardedPorts: (TunnelModel) restoring ports ${n.map(o=>o.remotePort).join(", ")}`);for(let o of n){let i=Ko(this.detected,o.remoteHost,o.remotePort);o.source.source!==2&&!i||o.source.source===2&&i?await this.doForward({remote:{host:o.remoteHost,port:o.remotePort},local:o.localPort,name:o.name,elevateIfNeeded:!0,source:o.source}):o.source.source===2&&!i&&this.unrestoredExtensionTunnels.set(gr(o.remoteHost,o.remotePort),o)}}}if(this.restoreComplete=!0,this.onRestoreComplete.fire(),!this.restoreListener){let e=await this.getTunnelRestoreStorageKey();this.restoreListener=this._register(new $),this.restoreListener.add(this.storageService.onDidChangeValue(0,void 0,this.restoreListener)(async n=>{n.key===e&&(this.tunnelRestoreValue=Promise.resolve(this.storageService.get(e,0)),await this.restoreForwarded())}))}}cleanupExpiredTunnelsForRestore(){let e=this.storageService.keys(0,0).filter(n=>n.startsWith(TO));for(let n of e){let o=this.storageService.getNumber(n,0);if(o&&o<Date.now()){this.tunnelRestoreValue=Promise.resolve(void 0);let i=n.replace(TO,xk);this.storageService.remove(n,0),this.storageService.remove(i,0)}}}async storeForwarded(){if(this.configurationService.getValue("remote.restoreForwardedPorts")){let e=Array.from(this.forwarded.values()),n=e.map(a=>({remoteHost:a.remoteHost,remotePort:a.remotePort,localPort:a.localPort,name:a.name,localAddress:a.localAddress,localUri:a.localUri,protocol:a.protocol,source:a.source})),o;e.length>0&&(o=JSON.stringify(n));let i=await this.getTunnelRestoreStorageKey(),s=await this.getRestoreExpirationStorageKey();!o&&i&&s?(this.storageService.remove(i,0),this.storageService.remove(s,0)):o!==this.knownPortsRestoreValue&&i&&s&&(this.storageService.store(i,o,0,0),this.storageService.store(s,Date.now()+PQ,0,0)),this.knownPortsRestoreValue=o}}async showPortMismatchModalIfNeeded(e,n,o){if(!e.tunnelLocalPort||!o?.requireLocalPort||e.tunnelLocalPort===n)return;let i=new Date;if(this.mismatchCooldown.getTime()+kQ>i.getTime())return;this.mismatchCooldown=i;let s=p(17495,null,n,e.tunnelRemotePort,e.tunnelLocalPort);return this.dialogService.info(s)}async forward(e,n){return!this.restoreComplete&&this.environmentService.remoteAuthority&&await fe.toPromise(this.onRestoreComplete.event),this.doForward(e,n)}async doForward(e,n){await this.extensionService.activateByEvent(f5);let o=Ko(this.forwarded,e.remote.host,e.remote.port);n=n??(n!==null?(await this.getAttributes([e.remote]))?.get(e.remote.port):void 0);let i=e.local!==void 0?e.local:e.remote.port,s;if(o)return this.mergeAttributesIntoExistingTunnel(o,e,n);{let a=this.environmentService.remoteAuthority,l=a?{getAddress:async()=>(await this.remoteAuthorityResolverService.resolveAuthority(a)).authority}:void 0,d=gr(e.remote.host,e.remote.port);this.inProgress.set(d,!0),e=this.mergeCachedAndUnrestoredProperties(d,e);let c=await this.tunnelService.openTunnel(l,e.remote.host,e.remote.port,void 0,i,e.elevateIfNeeded?e.elevateIfNeeded:n?.elevateIfNeeded,e.privacy,n?.protocol);if(typeof c=="string")s=c;else if(c&&c.localAddress){let u=Ko(this._candidates??new Map,e.remote.host,e.remote.port),m=c.protocol?c.protocol==="https"?"https":"http":n?.protocol??"http",g={remoteHost:c.tunnelRemoteHost,remotePort:c.tunnelRemotePort,localPort:c.tunnelLocalPort,name:n?.label??e.name,closeable:!0,localAddress:c.localAddress,protocol:m,localUri:await this.makeLocalUri(c.localAddress,n),runningProcess:u?.detail,hasRunningProcess:!!u,pid:u?.pid,source:e.source??EO,privacy:c.privacy};return this.forwarded.set(d,g),this.remoteTunnels.set(d,c),this.inProgress.delete(d),await this.storeForwarded(),await this.showPortMismatchModalIfNeeded(c,i,n),this._onForwardPort.fire(g),c}this.inProgress.delete(d)}return s}mergeCachedAndUnrestoredProperties(e,n){let o=this.unrestoredExtensionTunnels.has(e)?this.unrestoredExtensionTunnels:this.sessionCachedProperties.has(e)?this.sessionCachedProperties:void 0;if(o){let i=o.get(e);o.delete(e),i&&(n.name=i.name??n.name,n.local=("local"in i?i.local:"localPort"in i?i.localPort:void 0)??n.local,n.privacy=n.privacy)}return n}async mergeAttributesIntoExistingTunnel(e,n,o){let i=o?.label??n.name,s;(u=>(u[u.None=0]="None",u[u.Fire=1]="Fire",u[u.Reopen=2]="Reopen"))(s||={});let a=0;switch(i!==e.name&&(e.name=i,a=1),(o?.protocol||e.protocol!=="http")&&o?.protocol!==e.protocol&&(n.source=e.source,a=2),n.privacy&&e.privacy!==n.privacy&&(a=2),a){case 1:{this._onForwardPort.fire();break}case 2:await this.close(e.remoteHost,e.remotePort,"User"),await this.doForward(n,o)}return Ko(this.remoteTunnels,n.remote.host,n.remote.port)}async name(e,n,o){let i=Ko(this.forwarded,e,n),s=gr(e,n);if(i){i.name=o,await this.storeForwarded(),this._onPortName.fire({host:e,port:n});return}else this.detected.has(s)&&(this.detected.get(s).name=o,this._onPortName.fire({host:e,port:n}))}async close(e,n,o){let i=gr(e,n),s=this.forwarded.get(i);return o==="AutoForwardEnd"&&s&&s.source.source===1&&this.sessionCachedProperties.set(i,{local:s.localPort,name:s.name,privacy:s.privacy}),await this.tunnelService.closeTunnel(e,n),this.onTunnelClosed({host:e,port:n},o)}address(e,n){let o=gr(e,n);return(this.forwarded.get(o)||this.detected.get(o))?.localAddress}get environmentTunnelsSet(){return this._environmentTunnelsSet}addEnvironmentTunnels(e){if(e)for(let n of e){let o=Ko(this._candidates??new Map,n.remoteAddress.host,n.remoteAddress.port),i=typeof n.localAddress=="string"?n.localAddress:gr(n.localAddress.host,n.localAddress.port);this.detected.set(gr(n.remoteAddress.host,n.remoteAddress.port),{remoteHost:n.remoteAddress.host,remotePort:n.remoteAddress.port,localAddress:i,protocol:"http",localUri:this.makeLocalUri(i),closeable:!1,runningProcess:o?.detail,hasRunningProcess:!!o,pid:o?.pid,privacy:"constantPrivate",source:{source:2,description:p(17499,null)}}),this.tunnelService.setEnvironmentTunnel(n.remoteAddress.host,n.remoteAddress.port,i,"constantPrivate","http")}this._environmentTunnelsSet=!0,this._onEnvironmentTunnelsSet.fire(),this._onForwardPort.fire()}setCandidateFilter(e){this._candidateFilter=e}async setCandidates(e){let n=e;this._candidateFilter&&(n=await this._candidateFilter(e));let o=this.updateInResponseToCandidates(n);this.logService.trace(`ForwardedPorts: (TunnelModel) removed candidates ${Array.from(o.values()).map(i=>i.port).join(", ")}`),this._onCandidatesChanged.fire(o)}updateInResponseToCandidates(e){let n=this._candidates??new Map,o=new Map;return this._candidates=o,e.forEach(i=>{let s=gr(i.host,i.port);o.set(s,{host:i.host,port:i.port,detail:i.detail,pid:i.pid}),n.delete(s);let a=Ko(this.forwarded,i.host,i.port);a&&(a.runningProcess=i.detail,a.hasRunningProcess=!0,a.pid=i.pid)}),n.forEach((i,s)=>{let a=wO(s);if(!a)return;let l=Ko(this.forwarded,a.host,a.port);l&&(l.runningProcess=void 0,l.hasRunningProcess=!1,l.pid=void 0);let d=Ko(this.detected,a.host,a.port);d&&(d.runningProcess=void 0,d.hasRunningProcess=!1,d.pid=void 0)}),n}get candidates(){return this._candidates?Array.from(this._candidates.values()):[]}get candidatesOrUndefined(){return this._candidates?this.candidates:void 0}async updateAttributes(){let e=Array.from(this.forwarded.values()),n=await this.getAttributes(e.map(o=>({port:o.remotePort,host:o.remoteHost})),!1);if(n)for(let o of e){let i=n.get(o.remotePort);(i?.protocol||o.protocol!=="http")&&i?.protocol!==o.protocol&&await this.doForward({remote:{host:o.remoteHost,port:o.remotePort},local:o.localPort,name:o.name,source:o.source},i),i&&i.label&&i.label!==o.name&&await this.name(o.remoteHost,o.remotePort,i.label)}}async getAttributes(e,n=!0){let o=new Map,i=new Map;e.forEach(c=>{let u=Ko(this._candidates??new Map,rg[0],c.port)??c;if(u){o.set(c.port,u);let m=DQ(u)?u.pid:void 0;i.has(m)||i.set(m,[]),i.get(m)?.push(c.port)}});let s=new Map;if(e.forEach(c=>{let u=this.configPortsAttributes.getAttributes(c.port,c.host,o.get(c.port)?.detail);u&&s.set(c.port,u)}),this.portAttributesProviders.length===0||!n)return s.size>0?s:void 0;let a=await Promise.all(this.portAttributesProviders.flatMap(c=>Array.from(i.entries()).map(u=>{let m=u[1],g=o.get(m[0]);return c.providePortAttributes(m,g?.pid,g?.detail,he.None)}))),l=new Map;if(a.forEach(c=>c.forEach(u=>{u&&l.set(u.port,u)})),!s&&!l)return;let d=new Map;return e.forEach(c=>{let u=s.get(c.port),m=l.get(c.port);d.set(c.port,{elevateIfNeeded:u?.elevateIfNeeded,label:u?.label,onAutoForward:u?.onAutoForward??Sk.providedActionToAction(m?.autoForwardAction),requireLocalPort:u?.requireLocalPort,protocol:u?.protocol})}),d}addAttributesProvider(e){this.portAttributesProviders.push(e)}};_([Kd(1e3)],ay.prototype,"storeForwarded",1),ay=_([C(0,Q4),C(1,bi),C(2,sn),C(3,Op),C(4,a4),C(5,es),C(6,oe),C(7,_x),C(8,Tx),C(9,wo)],ay);function RQ(r){let t=r.trim().split(`
`),e=[];return t.forEach(o=>{let i=/\/proc\/(\d+)\/fd\/\d+ -> socket:\[(\d+)\]/.exec(o);i&&i.length>=3&&e.push({pid:parseInt(i[1],10),socket:parseInt(i[2],10)})}),e.reduce((o,i)=>(o[i.socket]=i,o),{})}function AQ(...r){let t=[].concat(...r.map(LQ));return[...new Map(t.filter(e=>e.st==="0A").map(e=>{let n=e.local_address.split(":");return{socket:parseInt(e.inode,10),ip:MQ(n[0]),port:parseInt(n[1],16)}}).map(e=>[e.ip+":"+e.port,e])).values()]}function MQ(r){let t="";if(r.length===8)for(let e=r.length-2;e>=0;e-=2)t+=parseInt(r.substr(e,2),16),e!==0&&(t+=".");else for(let e=0;e<r.length;e+=8){let n=r.substring(e,e+8),o="";for(let i=8;i>=2;i-=2)o+=n.substring(i-2,i),(i===6||i===2)&&(o=parseInt(o,16).toString(16),t+=`${o}`,o="",e+i!==r.length-6&&(t+=":"))}return t}function LQ(r){let t=r.trim().split(`
`),e=t.shift().trim().split(/\s+/).filter(o=>o!=="rx_queue"&&o!=="tm->when");return t.map(o=>o.trim().split(/\s+/).reduce((i,s,a)=>(i[e[a]||a]=s,i),{}))}function OQ(r){return r.length>500?!1:!!r.match(/.*\.vscode-server-[a-zA-Z]+\/bin.*/)||r.indexOf("out/server-main.js")!==-1||r.indexOf("_productName=VSCode")!==-1}function NQ(r){let t=r.trim().split(`
`),e=[];return t.forEach(n=>{let o=/^\d+\s+\D+\s+root\s+(\d+)\s+(\d+).+\d+\:\d+\:\d+\s+(.+)$/.exec(n);o&&o.length>=4&&e.push({pid:parseInt(o[1],10),ppid:parseInt(o[2]),cmd:o[3]})}),e}async function UQ(r,t,e){let n=e.reduce((i,s)=>(i[s.pid]=s,i),{}),o=[];return r.forEach(({socket:i,ip:s,port:a})=>{let l=t[i]?t[i].pid:void 0,d=l?n[l]?.cmd:void 0;l&&d&&!OQ(d)&&o.push({host:s,port:a,detail:d,pid:l})}),o}function FQ(r,t,e){let n=new Map,o=NQ(t);for(let i of r){let s=e.get(i.port);if(s){n.set(i.port,s);continue}let a=o.find(l=>l.cmd.includes(`${i.port}`));if(a){let l=a,d;do d=o.find(c=>c.ppid===l.pid),d&&(l=d);while(d);n.set(i.port,{host:i.ip,port:i.port,pid:l.pid,detail:l.cmd,ppid:l.ppid})}else n.set(i.port,{host:i.ip,port:i.port,ppid:Number.MAX_VALUE})}return n}var Wf=class extends id{constructor(e,n,o,i,s){super(e,n,o);this.initData=n;this.signService=i;this.configurationService=s;this._initialCandidates=void 0;this._foundRootPorts=new Map;this._candidateFindingEnabled=!1;Qe&&n.remote.isRemote&&n.remote.authority&&(this._proxy.$setRemoteTunnelService(process.pid),this.setInitialCandidates())}async $registerCandidateFinder(e){if(e&&this._candidateFindingEnabled)return;this._candidateFindingEnabled=e;let n;this._initialCandidates&&(n=this._initialCandidates,await this._proxy.$onFoundNewCandidates(this._initialCandidates));let o=new AI,i=0;for(;this._candidateFindingEnabled;){let s=new Date().getTime(),a=(await this.findCandidatePorts()).filter(c=>Rs(c.host)||Jr(c.host));this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) found candidate ports ${a.map(c=>c.port).join(", ")}`);let l=new Date().getTime()-s;this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) candidate port scan took ${l} ms.`),i++>3&&o.update(l),(!n||JSON.stringify(n)!==JSON.stringify(a))&&(n=a,await this._proxy.$onFoundNewCandidates(n));let d=this.calculateDelay(o.value);this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) next candidate port scan in ${d} ms.`),await new Promise(c=>setTimeout(()=>c(),d))}}calculateDelay(e){return Math.max(e*20,2e3)}async setInitialCandidates(){this._initialCandidates=await this.findCandidatePorts(),this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) Initial candidates found: ${this._initialCandidates.map(e=>e.port).join(", ")}`)}async findCandidatePorts(){let e="",n="";try{e=await Hf.promises.readFile("/proc/net/tcp","utf8"),n=await Hf.promises.readFile("/proc/net/tcp6","utf8")}catch{}let o=AQ(e,n),i=await new Promise(g=>{v5("ls -l /proc/[0-9]*/fd/[0-9]* | grep socket:",(h,f,I)=>{g(f)})}),s=RQ(i),a=await rt.readdir("/proc"),l=[];for(let g of a)try{let h=Number(g),f=St(y.file("/proc"),g);if((await Hf.promises.stat(f.fsPath)).isDirectory()&&!isNaN(h)){let S=await Hf.promises.readlink(St(f,"cwd").fsPath),E=await Hf.promises.readFile(St(f,"cmdline").fsPath,"utf8");l.push({pid:h,cwd:S,cmd:E})}}catch{}let d=[],c=o.filter((g=>{let h=s[g.socket];return h||d.push(g),h})),u=UQ(c,s,l),m;if(this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) number of possible root ports ${d.length}`),d.length>0){let g=await new Promise(h=>{v5("ps -F -A -l | grep root",(f,I,S)=>{h(I)})});this._foundRootPorts=FQ(d,g,this._foundRootPorts),m=Array.from(this._foundRootPorts.values()),this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) heuristic ports ${m.map(h=>h.port).join(", ")}`)}return u.then(g=>m?g.concat(m):g)}async defaultTunnelHost(){let e=(await this.configurationService.getConfigProvider()).getConfiguration("remote").get("localPortHost");return!e||e==="localhost"?"127.0.0.1":"0.0.0.0"}makeManagedTunnelFactory(e){return async n=>{let o=new sy({commit:this.initData.commit,quality:this.initData.quality,logService:this.logService,ipcLogger:null,remoteSocketFactoryService:{_serviceBrand:void 0,async connect(s,a,l,d){let c=await e.makeConnection();return kO.connect(c,a,l,d)},register(){throw new Error("not implemented")}},addressProvider:{getAddress(){return Promise.resolve({connectTo:new Hp(0),connectionToken:e.connectionToken})}},signService:this.signService},await this.defaultTunnelHost(),n.remoteAddress.host||"localhost",n.remoteAddress.port,n.localAddressPort);await o.waitForReady();let i=new T;return{localAddress:wO(o.localAddress)??o.localAddress,remoteAddress:{port:o.tunnelRemotePort,host:o.tunnelRemoteHost},onDidDispose:i.event,dispose:()=>{o.dispose(),i.fire(),i.dispose()}}}}};Wf=_([C(0,ie),C(1,Ye),C(2,oe),C(3,wd),C(4,vn)],Wf);var kO=class r extends vk{constructor(e,n,o){super(n,o);this.passing=e}static connect(e,n,o,i){let s=new $,a={onClose:s.add(new T),onData:s.add(new T),onEnd:s.add(new T)};s.add(e.onDidReceiveMessage(d=>a.onData.fire(W.wrap(d)))),s.add(e.onDidEnd(()=>a.onEnd.fire())),s.add(e.onDidClose(d=>a.onClose.fire({type:0,error:d,hadError:!!d})));let l=new r(e,i,a);return l._register(s),i5(l,n,o,i,a)}write(e){this.passing.send(e.buffer)}closeRemote(){this.passing.end()}async drain(){await this.passing.drain?.()}};import*as Fa from"fs";var Ck=class extends tg{constructor(){super(...arguments);this._workspaceStorageLock=null}async _getWorkspaceStorageURI(e){let n=await super._getWorkspaceStorageURI(e);if(n.scheme!==V.file)return n;if(this._environment.skipWorkspaceStorageLock)return this._logService.info(`Skipping acquiring lock for ${n.fsPath}.`),n;let o=n.fsPath,i=0;do{let s;i===0?s=o:s=/[/\\]$/.test(o)?`${o.substr(0,o.length-1)}-${i}`:`${o}-${i}`,await HQ(s);let a=Oe(s,"vscode.lock"),l=await y5(this._logService,a,!1);if(l)return this._workspaceStorageLock=l,process.on("exit",()=>{l.dispose()}),y.file(s);i++}while(i<10);return n}onWillDeactivateAll(){this._workspaceStorageLock?.setWillRelease(6e3)}};async function HQ(r){try{await Fa.promises.stat(r);return}catch{}try{await Fa.promises.mkdir(r,{recursive:!0})}catch{}}var WQ=1e3,b5=600*1e3,_O=class extends O{constructor(e,n){super();this.logService=e;this.filename=n;this._timer=this._register(new Xu),this._timer.cancelAndSet(async()=>{let o=await DO(e,n);(!o||o.pid!==process.pid)&&(e.info(`Lock '${n}': The lock was lost unexpectedly.`),this._timer.cancel());try{await Fa.promises.utimes(n,new Date,new Date)}catch(i){e.error(i),e.info(`Lock '${n}': Could not update mtime.`)}},WQ)}dispose(){super.dispose();try{Fa.unlinkSync(this.filename)}catch{}}async setWillRelease(e){this.logService.info(`Lock '${this.filename}': Marking the lockfile as scheduled to be released in ${e} ms.`);try{let n={pid:process.pid,willReleaseAt:Date.now()+e};await rt.writeFile(this.filename,JSON.stringify(n),{flag:"w"})}catch(n){this.logService.error(n)}}};async function y5(r,t,e){try{let o={pid:process.pid,willReleaseAt:0};await rt.writeFile(t,JSON.stringify(o),{flag:"wx"})}catch(o){r.error(o)}let n=await DO(r,t);return!n||n.pid!==process.pid?e?(r.info(`Lock '${t}': Could not acquire lock, giving up.`),null):(r.info(`Lock '${t}': Could not acquire lock, checking if the file is stale.`),BQ(r,t)):(r.info(`Lock '${t}': Lock acquired.`),new _O(r,t))}async function DO(r,t){let e;try{e=await Fa.promises.readFile(t)}catch(n){return r.error(n),null}try{return JSON.parse(String(e))}catch(n){return r.error(n),null}}async function PO(r,t){let e;try{e=await Fa.promises.stat(t)}catch(n){return r.error(n),0}return e.mtime.getTime()}function VQ(r){try{return process.kill(r,0),!0}catch{return!1}}async function BQ(r,t){let e=await DO(r,t);if(!e)return r.info(`Lock '${t}': Could not read pid of lock holder.`),ly(r,t);if(e.willReleaseAt){let a=e.willReleaseAt-Date.now();if(a<5e3){for(a>0?r.info(`Lock '${t}': The lockfile is scheduled to be released in ${a} ms.`):r.info(`Lock '${t}': The lockfile is scheduled to have been released.`);a>0;){if(await Lt(Math.min(100,a)),await PO(r,t)===0)return ly(r,t);a=e.willReleaseAt-Date.now()}return ly(r,t)}}if(!VQ(e.pid))return r.info(`Lock '${t}': The pid ${e.pid} appears to be gone.`),ly(r,t);let n=await PO(r,t),o=Date.now()-n;if(o<=b5)return r.info(`Lock '${t}': The lock does not look stale, elapsed: ${o} ms, giving up.`),null;r.info(`Lock '${t}': The lock looks stale, waiting for 2s.`),await Lt(2e3);let i=await PO(r,t),s=Date.now()-i;return s<=b5?(r.info(`Lock '${t}': The lock does not look stale, elapsed: ${s} ms, giving up.`),null):(r.info(`Lock '${t}': The lock looks stale even after waiting for 2s.`),ly(r,t))}async function ly(r,t){r.info(`Lock '${t}': Deleting a stale lock.`);try{await Fa.promises.unlink(t)}catch{}return y5(r,t,!0)}async function $Q(r,t,e,n,o){try{let i=await import("@vscode/spdlog");i.setFlushOn(0);let s=await i.createAsyncRotatingLogger(r,t,e,n);return o?s.clearFormatters():s.setPattern("%Y-%m-%d %H:%M:%S.%e [%l] %v"),s}catch(i){console.error(i)}return null}function I5(r,t,e){switch(t){case 1:r.trace(e);break;case 2:r.debug(e);break;case 3:r.info(e);break;case 4:r.warn(e);break;case 5:r.error(e);break;case 0:break;default:throw new Error(`Invalid log level ${t}`)}}function x5(r,t){switch(t){case 1:r.setLevel(0);break;case 2:r.setLevel(1);break;case 3:r.setLevel(2);break;case 4:r.setLevel(3);break;case 5:r.setLevel(4);break;case 0:r.setLevel(6);break;default:throw new Error(`Invalid log level ${t}`)}}var Tk=class extends cl{constructor(e,n,o,i,s){super();this.buffer=[];this.setLevel(s),this._loggerCreationPromise=this._createSpdLogLogger(e,n,o,i),this._register(this.onDidChangeLogLevel(a=>{this._logger&&x5(this._logger,a)}))}async _createSpdLogLogger(e,n,o,i){let s=o?6:1,a=30/s*ec.MB,l=await $Q(e,n,a,s,i);if(l){this._logger=l,x5(this._logger,this.getLevel());for(let{level:d,message:c}of this.buffer)I5(this._logger,d,c);this.buffer=[]}}log(e,n){this._logger?I5(this._logger,e,n):this.getLevel()<=e&&this.buffer.push({level:e,message:n})}flush(){this._logger?this.flushLogger():this._loggerCreationPromise.then(()=>this.flushLogger())}dispose(){this._logger?this.disposeLogger():this._loggerCreationPromise.then(()=>this.disposeLogger()),super.dispose()}flushLogger(){this._logger&&this._logger.flush()}disposeLogger(){this._logger&&(this._logger.drop(),this._logger=void 0)}};var Ek=class extends vd{doCreateLogger(t,e,n){return t.scheme===V.file?new Tk(n?.name||Le(),t.fsPath,!n?.donotRotate,!!n?.donotUseFormatters,e):super.doCreateLogger(t,e,n)}registerLogger(t){super.registerLogger(t),this._proxy.$registerLogger(t)}deregisterLogger(t){super.deregisterLogger(t),this._proxy.$deregisterLogger(t)}};import{homedir as zQ}from"os";var wk=class extends fd{homeDir(){return zQ()}};var kk=class extends O{constructor(t,e=[]){super(),this.logger=new CI([t,...e]),this._register(t.onDidChangeLogLevel(n=>this.setLevel(n)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(t){this.logger.setLevel(t)}getLevel(){return this.logger.getLevel()}trace(t,...e){this.logger.trace(t,...e)}debug(t,...e){this.logger.debug(t,...e)}info(t,...e){this.logger.info(t,...e)}warn(t,...e){this.logger.warn(t,...e)}error(t,...e){this.logger.error(t,...e)}flush(){this.logger.flush()}};var Vf=class extends kk{constructor(t,e,n){let o=n.remote.isRemote?"remoteexthost":t?"workerexthost":"exthost",i=n.remote.isRemote?p(3318,null):t?p(3319,null):p(3317,null);super(e.createLogger(o,{name:i}))}};Vf=_([C(1,Wo),C(2,Ye)],Vf);import{spawn as KQ}from"child_process";import{readFile as jQ}from"fs/promises";import{homedir as GQ}from"os";function S5(r){let t=new Map,n=r.replace(/\r\n?/g,`
`).split(`
`);for(let s of n){if(s=s.trim(),!s||s.startsWith("#"))continue;let[a,l]=o(s);a&&t.set(a,l)}return t;function o(s){s.startsWith("export ")&&(s=s.substring(7).trim());let a=i(s,u=>u==="="||u===":");if(a===-1)return[null,null];let l=s.substring(0,a).trim(),d=s.substring(a+1).trim(),c=i(d,u=>u==="#");if(c!==-1&&(d=d.substring(0,c).trim()),d.length>=2){let u=d[0],m=d[d.length-1];(u==='"'&&m==='"'||u==="'"&&m==="'"||u==="`"&&m==="`")&&(d=d.substring(1,d.length-1),u==='"'&&(d=d.replace(/\\n/g,`
`).replace(/\\r/g,"\r")))}return[l,d]}function i(s,a){let l=!1,d="";for(let c=0;c<s.length;c++){let u=s[c];if(l)u===d&&s[c-1]!=="\\"&&(l=!1);else if(u==='"'||u==="'"||u==="`")l=!0,d=u;else if(a(u))return c}return-1}}import{Transform as qQ}from"stream";var dy=class extends qQ{constructor(t){if(super(),typeof t=="number")this.splitter=t,this.spitterLen=1;else{let e=Buffer.isBuffer(t)?t:Buffer.from(t);this.splitter=e.length===1?e[0]:e,this.spitterLen=e.length}}_transform(t,e,n){this.buffer?this.buffer=Buffer.concat([this.buffer,t]):this.buffer=t;let o=0;for(;o<this.buffer.length;){let i=typeof this.splitter=="number"?this.buffer.indexOf(this.splitter,o):OP(this.buffer,this.splitter,o);if(i===-1)break;this.push(this.buffer.slice(o,i+this.spitterLen)),o=i+this.spitterLen}this.buffer=o===this.buffer.length?void 0:this.buffer.slice(o),n()}_flush(t){this.buffer&&this.push(this.buffer),t()}};var Pk=class r{constructor(t,e=r.GRACE_TIME_MS){this._child=t;this._graceTimeMs=e;this._procState=0}static{this.GRACE_TIME_MS=1e4}get stopped(){return this._procState!==0}stop(){if(this._procState===0){let t=this._graceTimeMs;try{this._child.stdin.end()}catch{t=1}this._procState=1,this._nextTimeout=new sh(()=>this.killPolite(),t)}else this._nextTimeout?.dispose(),this.killForceful()}async killPolite(){this._procState=2,this._nextTimeout=new sh(()=>this.killForceful(),this._graceTimeMs),this._child.pid?Ie||await Ib(this._child.pid,!1).catch(()=>{this._child.kill("SIGTERM")}):this._child.kill("SIGTERM")}async killForceful(){this._procState=3,this._child.pid?await Ib(this._child.pid,!0).catch(()=>{this._child.kill("SIGKILL")}):this._child.kill()}write(t){this.stopped||this._child.stdin.write(t+`
`)}dispose(){this._nextTimeout?.dispose()}};var _k=class extends bd{constructor(){super(...arguments);this.nodeServers=this._register(new jn)}_startMcp(e,n,o,i){n.type===1?this.startNodeMpc(e,n,o):n.type===2?this._sseEventSources.set(e,new RO(e,n,this._proxy,this._logService,i)):super._startMcp(e,n,o,i)}$stopMcp(e){let n=this.nodeServers.get(e);n?n.stop():super.$stopMcp(e)}$sendMessage(e,n){let o=this.nodeServers.get(e);o?o.write(n):super.$sendMessage(e,n)}async startNodeMpc(e,n,o){let i=d=>this._proxy.$onDidChangeState(e,{state:ho.Kind.Error,code:d.hasOwnProperty("code")?String(d.code):void 0,message:typeof d=="string"?d:d.message}),s={...process.env};if(n.envFile)try{for(let[d,c]of S5(await jQ(n.envFile,"utf-8")))s[d]=c}catch(d){i(`Failed to read envFile '${n.envFile}': ${d.message}`);return}for(let[d,c]of Object.entries(n.env)){if(d.toUpperCase()==="PATH"&&c!==null){s[d]=s[d]?`${s[d]}${Gu}${String(c)}`:String(c);continue}s[d]=c===null?void 0:String(c)}let a;try{let d=GQ(),c=n.cwd?cc(n.cwd,d):o?.fsPath||d;In(c)||(c=o?Oe(o.fsPath,c):Oe(d,c));let{executable:u,args:m,shell:g}=await JQ(cc(n.command,d),n.args.map(h=>cc(h,d)),c,s);this._proxy.$onDidPublishLog(e,2,`Server command line: ${u} ${m.join(" ")}`),a=KQ(u,m,{stdio:"pipe",cwd:c,env:s,shell:g})}catch(d){i(d);return}let l=new Pk(a);this._proxy.$onDidChangeState(e,{state:ho.Kind.Starting}),a.stdout.pipe(new dy(`
`)).on("data",d=>this._proxy.$onDidReceiveMessage(e,d.toString())),a.stdin.on("error",i),a.stdout.on("error",i),a.stderr.pipe(new dy(`
`)).on("data",d=>this._proxy.$onDidPublishLog(e,4,`[server stderr] ${d.toString().trimEnd()}`)),a.on("spawn",()=>this._proxy.$onDidChangeState(e,{state:ho.Kind.Running})),a.on("error",d=>{i(d)}),a.on("exit",d=>{this.nodeServers.deleteAndDispose(e),d===0||l.stopped?this._proxy.$onDidChangeState(e,{state:ho.Kind.Stopped}):this._proxy.$onDidChangeState(e,{state:ho.Kind.Error,message:`Process exited with code ${d}`})}),this.nodeServers.set(e,l)}},RO=class extends bb{constructor(){super(...arguments);this._undici=new pt(()=>import("undici"))}async _fetchInternal(e,n){let{fetch:o,Agent:i}=await this._undici.value,s={...n},a=e,l=y.parse(e);if(l.scheme==="unix"||l.scheme==="pipe")s.dispatcher=new i({socketPath:l.path}),a=l.with({scheme:"http",authority:"localhost",path:l.fragment}).toString(!0);else return super._fetchInternal(e,n);let d=await o(a,s);return{status:d.status,statusText:d.statusText,headers:d.headers,body:d.body,url:d.url,json:()=>d.json(),text:()=>d.text()}}},QQ=/\.(bat|cmd)$/i,JQ=async(r,t,e,n)=>{if(process.platform!=="win32")return{executable:r,args:t,shell:!1};let o=await fu(r,e,void 0,n);if(o&&QQ.test(o)){let i=s=>s.includes(" ")?`"${s}"`:s;return{executable:i(o),args:t.map(i),shell:!0}}return{executable:r,args:t,shell:!1}};import{URL as ZQ}from"url";import{randomBytes as YQ}from"crypto";import{URL as XQ}from"url";var Dk=class{constructor(t,e,n){this._logger=t;this._appUri=e;this._appName=n;this._state=YQ(16).toString("base64");let o=new Kt;this._resultPromise=o.p,this._server=(async()=>(await import("http")).createServer((s,a)=>{let l=new XQ(s.url,`http://${s.headers.host}`);switch(l.pathname){case"/":{let d=l.searchParams.get("code")??void 0,c=l.searchParams.get("state")??void 0,u=l.searchParams.get("error")??void 0;if(u){a.writeHead(302,{location:`/done?error=${l.searchParams.get("error_description")||u}`}),a.end(),o.error(new Error(u));break}if(!d||!c){a.writeHead(400),a.end();break}if(this.state!==c){a.writeHead(302,{location:`/done?error=${encodeURIComponent("State does not match.")}`}),a.end(),o.error(new Error("State does not match."));break}o.complete({code:d,state:c}),a.writeHead(302,{location:"/done"}),a.end();break}case"/done":this._sendPage(a);break;default:a.writeHead(404),a.end();break}}))()}get state(){return this._state}get redirectUri(){if(this._port===void 0)throw new Error("Server is not started yet");return`http://127.0.0.1:${this._port}/`}_sendPage(t){let e=this.getHtml();t.writeHead(200,{"Content-Type":"text/html","Content-Length":Buffer.byteLength(e,"utf8")}),t.end(e)}async start(){let t=await this._server,e=new Kt;if(t.listening)throw new Error("Server is already started");let n=setTimeout(()=>{e.error(new Error("Timeout waiting for port"))},5e3);return t.on("listening",()=>{let o=t.address();if(typeof o=="string")this._port=parseInt(o);else if(o instanceof Object)this._port=o.port;else throw new Error("Unable to determine port");clearTimeout(n),e.complete()}),t.on("error",o=>{if("code"in o&&o.code==="EADDRINUSE"){this._logger.error("Address in use, retrying with a different port..."),t.listen(0,"127.0.0.1");return}clearTimeout(n),e.error(new Error(`Error listening to server: ${o}`))}),t.on("close",()=>{e.error(new Error("Closed"))}),t.listen(d0,"127.0.0.1"),e.p}async stop(){let t=new Kt,e=await this._server;return e.listening?(e.close(n=>{n?t.error(n):t.complete()}),setTimeout(()=>{t.isResolved||t.error(new Error("Timeout waiting for server to close"))},5e3),t.p):(t.complete(),t.p)}waitForOAuthResponse(){return this._resultPromise}getHtml(){let t="url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQABAMAAACNMzawAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJ1BMVEUAAAD///9Qm8+ozed8tNsWer+Lvd9trNfF3u9Ck8slgsMzi8eZxeM/Qa6mAAAAAXRSTlMAQObYZgAAAAFiS0dEAf8CLd4AAAAHdElNRQfiCwYULRt0g+ZLAAAJRUlEQVR42u3SUY0CQRREUSy0hSZtBA+wfOwv4wAPYwAJSMAfAthkB6YD79HnKqikzmYjSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk6cmKhg4AAASAABAAAkAACAABIAAEgAAQAAJAAAgAAaBvBVAjtV2wfFe1ogcA+0gdFgBoe60IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAjAP/1MkWoAvBvAsUTqBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAgAASAABIAAEAACQAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKA7gDlbFwC6AijZagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQDM2boA0BXAqAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIATARAAAkAAvF7N1hWArgBKthoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfBrAlK0bAF0BjBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4EQABIAAEwOtN2boB0BVAyVYDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgE8DqNm6AtAVwKgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAEwEQAAJAAPzd7xypMwDvBnAskToBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAIAAkAACAABIAAEgAAQAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBKBGarsAwK5qRQ8ANGYAACAABIAAEAACQAAIAAEgAASAABAAAkDfCUCSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJC3uDtO80OSql+i8AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTExLTA2VDIwOjQ1OjI3KzAwOjAwEjLurQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMS0wNlQyMDo0NToyNyswMDowMGNvVhEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAAElFTkSuQmCC')";return this._appName==="Visual Studio Code"?t="url('data:image/svg+xml;base64, ')":this._appName==="Visual Studio Code - Insiders"&&(t="url('data:image/svg+xml;base64, ')"),`<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="utf-8" />
	<title>GitHub Authentication - Sign In</title>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<style>
		html {
			height: 100%;
		}

		body {
			box-sizing: border-box;
			min-height: 100%;
			margin: 0;
			padding: 15px 30px;
			display: flex;
			flex-direction: column;
			color: white;
			font-family: "Segoe UI","Helvetica Neue","Helvetica",Arial,sans-serif;
			background-color: #2C2C32;
		}

		.branding {
			background-image: ${t};
			background-size: 24px;
			background-repeat: no-repeat;
			background-position: left center;
			padding-left: 36px;
			font-size: 20px;
			letter-spacing: -0.04rem;
			font-weight: 400;
			color: white;
			text-decoration: none;
		}

		.message-container {
			flex-grow: 1;
			display: flex;
			align-items: center;
			justify-content: center;
			margin: 0 30px;
		}

		.message {
			font-weight: 300;
			font-size: 1.4rem;
		}

		body.error .message {
			display: none;
		}

		body.error .error-message {
			display: block;
		}

		.error-message {
			display: none;
			font-weight: 300;
			font-size: 1.3rem;
		}

		.error-text {
			color: red;
			font-size: 1rem;
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI Light"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.woff2") format("woff2"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.svg#web") format("svg");
			font-weight: 200
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI Semilight"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.woff2") format("woff2"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.svg#web") format("svg");
			font-weight: 300
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.woff2") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.svg#web") format("svg");
			font-weight: 400
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI Semibold"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.woff2") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.svg#web") format("svg");
			font-weight: 600
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI Bold"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.woff2") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.svg#web") format("svg");
			font-weight: 700
		}
	</style>
</head>

<body>
	<a class="branding" href="https://code.visualstudio.com/">
		${this._appName}
	</a>
	<div class="message-container">
		<div class="message">
			Sign-in successful! Returning to ${this._appName}...
			<br><br>
			If you're not redirected automatically, <a href="${this._appUri.toString(!0)}" style="color: #85CEFF;">click here</a> or close this page.
		</div>
		<div class="error-message">
			An error occurred while signing in:
			<div class="error-text"></div>
		</div>
	</div>
	<script>
		const search = window.location.search;
		const error = (/[?&^]error=([^&]+)/.exec(search) || [])[1];
		if (error) {
			document.querySelector('.error-text')
				.textContent = decodeURIComponent(error);
			document.querySelector('body')
				.classList.add('error');
		} else {
			// Redirect to the app URI after a 1-second delay to allow page to load
			setTimeout(function() {
				window.location.href = '${this._appUri.toString(!0)}';
			}, 1000);
		}
	</script>
</body>
</html>`}};var AO=class extends lu{constructor(t,e,n,o,i,s,a,l,d,c,u,m,g){super(t,e,n,o,i,s,a,l,d,c,u,m,g),!n.remote.isRemote&&l.authorization_endpoint&&this._createFlows.unshift({label:p(3343,null),handler:(h,f,I)=>this._createWithLoopbackServer(h,f,I)}),l.device_authorization_endpoint&&this._createFlows.push({label:p(3342,null),handler:(h,f,I)=>this._createWithDeviceCode(h,f,I)})}async _createWithLoopbackServer(t,e,n){if(!this._serverMetadata.authorization_endpoint)throw new Error("Authorization Endpoint required");if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let o=this.generateRandomString(64),i=await this.generateCodeChallenge(o),s=this.generateRandomString(32),a=y.parse(`${this._initData.environment.appUriScheme}://dynamicauthprovider/${this.authorizationServer.authority}/redirect?nonce=${s}`),l;try{l=await this._extHostUrls.createAppUri(a)}catch(g){throw new Error(`Failed to create external URI: ${g}`)}let d=new ZQ(this._serverMetadata.authorization_endpoint);d.searchParams.append("client_id",this._clientId),d.searchParams.append("response_type","code"),d.searchParams.append("code_challenge",i),d.searchParams.append("code_challenge_method","S256");let c=t.join(" ");c&&d.searchParams.append("scope",c),this._resourceMetadata?.resource&&d.searchParams.append("resource",this._resourceMetadata.resource);let u=new Dk(this._logger,l,this._initData.environment.appName);try{await u.start()}catch(g){throw new Error(`Failed to start loopback server: ${g}`)}d.searchParams.set("redirect_uri",u.redirectUri),d.searchParams.set("state",u.state);let m=u.waitForOAuthResponse();this._proxy.$waitForUriHandler(l);try{if(this._logger.info(`Opening authorization URL for scopes: ${c}`),this._logger.trace(`Authorization URL: ${d.toString()}`),!await this._extHostWindow.openUri(d.toString(),{}))throw new Be;e.report({message:p(3341,null)});let h;try{h=(await rl(m,n)).code}catch(I){throw zt(I)?(this._logger.info("Authorization code request was cancelled by the user."),I):(this._logger.error(`Failed to receive authorization code: ${I}`),new Error(`Failed to receive authorization code: ${I}`))}return this._logger.info(`Authorization code received for scopes: ${c}`),await this.exchangeCodeForToken(h,o,u.redirectUri)}finally{setTimeout(()=>{u.stop()},5e3)}}async _createWithDeviceCode(t,e,n){if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");if(!this._serverMetadata.device_authorization_endpoint)throw new Error("Device authorization endpoint not available in server metadata");let o=this._serverMetadata.device_authorization_endpoint,i=t.join(" ");this._logger.info(`Starting device code flow for scopes: ${i}`);let s=new URLSearchParams;s.append("client_id",this._clientId),i&&s.append("scope",i),this._resourceMetadata?.resource&&s.append("resource",this._resourceMetadata.resource);let a;try{a=await fetch(o,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:s.toString()})}catch(m){throw this._logger.error(`Failed to request device code: ${m}`),new Error(`Failed to request device code: ${m}`)}if(!a.ok){let m=await a.text();throw new Error(`Device code request failed: ${a.status} ${a.statusText} - ${m}`)}let l=await a.json();if(!aW(l))throw this._logger.error("Invalid device code response received from server"),new Error("Invalid device code response received from server");if(this._logger.info(`Device code received: ${l.user_code}`),!await this._proxy.$showDeviceCodeModal(l.user_code,l.verification_uri))throw new Be;e.report({message:p(3344,null,l.verification_uri,l.user_code)});let c=(l.interval||5)*1e3,u=Date.now()+l.expires_in*1e3;for(;Date.now()<u;){if(n.isCancellationRequested)throw new Be;if(await new Promise(g=>setTimeout(g,c)),n.isCancellationRequested)throw new Be;let m=new URLSearchParams;m.append("grant_type","urn:ietf:params:oauth:grant-type:device_code"),m.append("device_code",l.device_code),m.append("client_id",this._clientId),this._resourceMetadata?.resource&&m.append("resource",this._resourceMetadata.resource);try{let g=await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:m.toString()});if(g.ok){let h=await g.json();if(!ib(h))throw this._logger.error("Invalid token response received from server"),new Error("Invalid token response received from server");return this._logger.info(`Device code flow completed successfully for scopes: ${i}`),h}else{let h;try{h=await g.json()}catch(f){throw this._logger.error(`Failed to parse error response: ${f}`),new Error(`Token request failed with status ${g.status}: ${g.statusText}`)}if(h.error==="authorization_pending")continue;if(h.error==="slow_down"){await new Promise(f=>setTimeout(f,c));continue}else throw h.error==="expired_token"?new Error("Device code expired. Please try again."):h.error==="access_denied"?new Be:h.error==="invalid_client"?(this._logger.warn(`Client ID (${this._clientId}) was invalid, generated a new one.`),await this._generateNewClientId(),new Error("Client ID was invalid, generated a new one. Please try again.")):new Error(`Token request failed: ${h.error_description||h.error||"Unknown error"}`)}}catch(g){throw zt(g)?g:new Error(`Error polling for token: ${g}`)}}throw new Error("Device code flow timed out. Please try again.")}},Rk=class extends pg{constructor(e,n,o,i,s,a,l){super(e,n,o,i,s,a,l);this._dynamicAuthProviderCtor=AO}};qe(ao,hk,0);qe(Wo,Ek,1);qe(oe,new Vo(Vf,[!1],!0));qe(wd,Qg,1);qe(ng,Ck,0);qe(ld,new Vo(lg,[!1],!0));qe(mg,Rk,0);qe(Ug,Jg,0);qe(Wg,tf,0);qe(Ag,jg,0);qe(Io,Kg,0);qe(sd,Wf,0);qe(Pr,wk,0);qe(gu,_k,0);import{createRequire as tJ}from"node:module";var T5=tJ(import.meta.url);if(process.env.VSCODE_DEV){let r=process.listeners("warning");process.removeAllListeners("warning"),process.on("warning",t=>{if(t.code==="ExperimentalWarning"||t.name==="ExperimentalWarning"||t.name==="DeprecationWarning"){console.debug(t);return}r[0](t)})}(function(){for(let t=0;t<process.execArgv.length;t++)process.execArgv[t]==="--inspect-port=0"&&(process.execArgv.splice(t,1),t--)})();var cy=eJ(process.argv.slice(2),{boolean:["transformURIs","skipWorkspaceStorageLock","supportGlobalNavigator"],string:["useHostProxy"]});(function(){let r=T5("module"),t=r._load;r._load=function(e){if(e==="natives")throw new Error('Either the extension or an NPM dependency is using the [unsupported "natives" node module](https://go.microsoft.com/fwlink/?linkid=871887).');return t.apply(this,arguments)}})();var Ak=process.exit.bind(process),nJ=process.on.bind(process);function oJ(r){process.exit=function(t){if(r)Ak(t);else{let e=new Error("An extension called process.exit() and this was prevented.");console.warn(e.stack)}},process.crash=function(){let t=new Error("An extension called process.crash() and this was prevented.");console.warn(t.stack)},process.env.ELECTRON_RUN_AS_NODE="1",process.on=function(t,e){if(t==="uncaughtException"){let n=e;e=function(...o){try{return n.apply(void 0,o)}catch{}}}nJ(t,e)}}cy.supportGlobalNavigator||Object.defineProperty(globalThis,"navigator",{get:()=>{Md(new Rd("navigator is now a global in nodejs, please see https://aka.ms/vscode-extensions/navigator for additional info on this error."))}});var Fs=function(r){Ak()};function rJ(r,t){let e=process.env[r];if(typeof e!="string"||e.trim().length===0)return console.log(`[reconnection-grace-time] Extension host: env var ${r} not set, using default: ${t}ms (${Math.floor(t/1e3)}s)`),t;let n=Number(e);if(!isFinite(n)||n<0)return console.log(`[reconnection-grace-time] Extension host: env var ${r} invalid value '${e}', using default: ${t}ms (${Math.floor(t/1e3)}s)`),t;let o=Math.floor(n),i=o>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:o;return console.log(`[reconnection-grace-time] Extension host: read ${r}=${e}ms (${Math.floor(i/1e3)}s)`),i}function iJ(){let r=EW(process.env);if(r.type===3)return new Promise((t,e)=>{let n=o=>{let i=o[0],s=new Yi;i.on("message",a=>s.fire(W.wrap(a.data))),i.on("close",()=>{Fs("renderer closed the MessagePort")}),i.start(),t({onMessage:s.event,send:a=>i.postMessage(a.buffer)})};process.parentPort.on("message",o=>n(o.ports))});if(r.type===2)return new Promise((t,e)=>{let n=null,o=setTimeout(()=>{Fs("VSCODE_EXTHOST_IPC_SOCKET timeout")},6e4),i=rJ("VSCODE_RECONNECTION_GRACE_TIME",108e5),s=i>0?Math.min(3e5,i):0,a=new ah(()=>Fs("renderer disconnected for too long (1)"),i),l=new ah(()=>Fs("renderer disconnected for too long (2)"),s);process.on("message",(c,u)=>{if(c&&c.type==="VSCODE_EXTHOST_IPC_SOCKET"){u.setNoDelay(!0);let m=W.wrap(Buffer.from(c.initialDataChunk,"base64")),g;if(c.skipWebSocketFrames)g=new Ks(u,"extHost-socket");else{let h=W.wrap(Buffer.from(c.inflateBytes,"base64"));g=new dI(new Ks(u,"extHost-socket"),c.permessageDeflate,h,!1)}n?(a.cancel(),l.cancel(),n.beginAcceptReconnection(g,m),n.endAcceptReconnection(),n.sendResume()):(clearTimeout(o),n=new Gd({socket:g,initialChunk:m}),n.sendResume(),fe.once(n.onDidDispose)(()=>Fs("renderer disconnected")),t(n),n.onSocketClose(()=>{a.schedule()}))}if(c&&c.type==="VSCODE_EXTHOST_IPC_REDUCE_GRACE_TIME"){if(l.isScheduled())return;a.isScheduled()&&l.schedule()}});let d={type:"VSCODE_EXTHOST_IPC_READY"};process.send?.(d)});{let t=r.pipeName;return new Promise((e,n)=>{let o=C5.createConnection(t,()=>{o.removeListener("error",n);let i=new Gd({socket:new Ks(o,"extHost-renderer")});i.sendResume(),e(i)});o.once("error",n),o.on("close",()=>{Fs("renderer closed the socket")})})}}async function sJ(){let r=await iJ();return new class{constructor(){this._onMessage=new Yi;this.onMessage=this._onMessage.event;this._terminating=!1,this._protocolListener=r.onMessage(t=>{nW(t,2)?(this._terminating=!0,this._protocolListener.dispose(),Fs("received terminate message from renderer")):this._onMessage.fire(t)})}send(t){this._terminating||r.send(t)}async drain(){if(r.drain)return r.drain()}}}function aJ(r){return new Promise(t=>{let e=r.onMessage(n=>{e.dispose();let o=JSON.parse(n.toString()),i=o.commit,s=Ho.commit;if(i&&s&&i!==s&&Ak(55),o.parentPid){let a=0;setInterval(function(){try{process.kill(o.parentPid,0),a=0}catch(d){d&&d.code==="EPERM"?(a++,a>=3&&Fs(`parent process ${o.parentPid} does not exist anymore (3 x EPERM): ${d.message} (code: ${d.code}) (errno: ${d.errno})`)):Fs(`parent process ${o.parentPid} does not exist anymore: ${d.message} (code: ${d.code}) (errno: ${d.errno})`)}},1e3);let l;try{l=T5("@vscode/native-watchdog"),l.start(o.parentPid)}catch(d){$e(d)}}r.send(n0(0)),t({protocol:r,initData:o})});r.send(n0(1))})}async function lJ(){let r=[];process.on("unhandledRejection",(a,l)=>{r.push(l),setTimeout(()=>{let d=r.indexOf(l);d>=0&&l.catch(c=>{r.splice(d,1),zt(c)||(console.warn(`rejected promise not handled within 1 second: ${c}`),c&&c.stack&&console.warn(`stack trace: ${c.stack}`),a&&$e(a))})},1e3)}),process.on("rejectionHandled",a=>{let l=r.indexOf(a);l>=0&&r.splice(l,1)}),process.on("uncaughtException",function(a){WO(a)||$e(a)}),Ft("code/extHost/willConnectToRenderer");let t=await sJ();Ft("code/extHost/didConnectToRenderer");let e=await aJ(t);Ft("code/extHost/didWaitForInitData");let{initData:n}=e;oJ(!!n.environment.extensionTestsLocationURI),n.environment.useHostProxy=cy.useHostProxy!==void 0?cy.useHostProxy!=="false":void 0,n.environment.skipWorkspaceStorageLock=se(cy.skipWorkspaceStorageLock,!1);let o=new class{constructor(){this.pid=process.pid}exit(l){Ak(l)}fsExists(l){return rt.exists(l)}fsRealpath(l){return rt.realpath(l)}},i=null;n.remote.authority&&cy.transformURIs&&(i=TW(n.remote.authority));let s=new yT(e.protocol,n,o,i);Fs=a=>s.terminate(a)}lJ().catch(r=>console.log(r));
