UNPKG

@webwriter/code

Version:

Write and run code as a code cell. Supports several languages (HTML, JavaScript/TypeScript, Python, Java, WebAssembly).

1,468 lines (1,459 loc) 10.3 MB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __knownSymbol = (name2, symbol) => (symbol = Symbol[name2]) ? symbol : Symbol.for("Symbol." + name2); var __typeError = (msg2) => { throw TypeError(msg2); }; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __require = /* @__PURE__ */ ((x3) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x3, { get: (a5, b4) => (typeof require !== "undefined" ? require : a5)[b4] }) : x3)(function(x3) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x3 + '" is not supported'); }); var __glob = (map) => (path) => { var fn = map[path]; if (fn) return fn(); throw new Error("Module not found in bundle: " + path); }; var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __commonJS = (cb, mod) => function __require2() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name2 in all) __defProp(target, name2, { get: all[name2], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __decoratorStart = (base2) => [, , , __create(base2?.[__knownSymbol("metadata")] ?? null)]; var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"]; var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn; var __decoratorContext = (kind, name2, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name: name2, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) }); var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]); var __runInitializers = (array, flags, self2, value) => { for (var i9 = 0, fns = array[flags >> 1], n11 = fns && fns.length; i9 < n11; i9++) flags & 1 ? fns[i9].call(self2) : value = fns[i9].call(self2, value); return value; }; var __decorateElement = (array, flags, name2, decorators, target, extra) => { var fn, it, done, ctx, access, k3 = flags & 7, s6 = !!(flags & 8), p4 = !!(flags & 16); var j3 = k3 > 3 ? array.length + 1 : k3 ? s6 ? 1 : 2 : 0, key = __decoratorStrings[k3 + 5]; var initializers = k3 > 3 && (array[j3 - 1] = []), extraInitializers = array[j3] || (array[j3] = []); var desc = k3 && (!p4 && !s6 && (target = target.prototype), k3 < 5 && (k3 > 3 || !p4) && __getOwnPropDesc(k3 < 4 ? target : { get [name2]() { return __privateGet(this, extra); }, set [name2](x3) { return __privateSet(this, extra, x3); } }, name2)); k3 ? p4 && k3 < 4 && __name(extra, (k3 > 2 ? "set " : k3 > 1 ? "get " : "") + name2) : __name(target, name2); for (var i9 = decorators.length - 1; i9 >= 0; i9--) { ctx = __decoratorContext(k3, name2, done = {}, array[3], extraInitializers); if (k3) { ctx.static = s6, ctx.private = p4, access = ctx.access = { has: p4 ? (x3) => __privateIn(target, x3) : (x3) => name2 in x3 }; if (k3 ^ 3) access.get = p4 ? (x3) => (k3 ^ 1 ? __privateGet : __privateMethod)(x3, target, k3 ^ 4 ? extra : desc.get) : (x3) => x3[name2]; if (k3 > 2) access.set = p4 ? (x3, y4) => __privateSet(x3, target, y4, k3 ^ 4 ? extra : desc.set) : (x3, y4) => x3[name2] = y4; } it = (0, decorators[i9])(k3 ? k3 < 4 ? p4 ? extra : desc[key] : k3 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1; if (k3 ^ 4 || it === void 0) __expectFn(it) && (k3 > 4 ? initializers.unshift(it) : k3 ? p4 ? extra = it : desc[key] = it : target = it); else if (typeof it !== "object" || it === null) __typeError("Object expected"); else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn); } return k3 || __decoratorMetadata(array, target), desc && __defProp(target, name2, desc), p4 ? k3 ^ 4 ? extra : desc : target; }; var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); var __accessCheck = (obj, member, msg2) => member.has(obj) || __typeError("Cannot " + msg2); var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj); var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value); var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value); var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method); // (disabled):fs var require_fs = __commonJS({ "(disabled):fs"() { } }); // (disabled):path var require_path = __commonJS({ "(disabled):path"() { } }); // (disabled):os var require_os = __commonJS({ "(disabled):os"() { } }); // (disabled):crypto var require_crypto = __commonJS({ "(disabled):crypto"() { } }); // (disabled):buffer var require_buffer = __commonJS({ "(disabled):buffer"() { } }); // (disabled):node_modules/source-map-support/source-map-support.js var require_source_map_support = __commonJS({ "(disabled):node_modules/source-map-support/source-map-support.js"() { } }); // (disabled):inspector var require_inspector = __commonJS({ "(disabled):inspector"() { } }); // node_modules/typescript/lib/typescript.js var require_typescript = __commonJS({ "node_modules/typescript/lib/typescript.js"(exports, module) { "use strict"; var __spreadArray = exports && exports.__spreadArray || function(to, from, pack) { if (pack || arguments.length === 2) for (var i9 = 0, l6 = from.length, ar; i9 < l6; i9++) { if (ar || !(i9 in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i9); ar[i9] = from[i9]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __assign = exports && exports.__assign || function() { __assign = Object.assign || function(t9) { for (var s6, i9 = 1, n11 = arguments.length; i9 < n11; i9++) { s6 = arguments[i9]; for (var p4 in s6) if (Object.prototype.hasOwnProperty.call(s6, p4)) t9[p4] = s6[p4]; } return t9; }; return __assign.apply(this, arguments); }; var __makeTemplateObject = exports && exports.__makeTemplateObject || function(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; var __generator = exports && exports.__generator || function(thisArg, body) { var _3 = { label: 0, sent: function() { if (t9[0] & 1) throw t9[1]; return t9[1]; }, trys: [], ops: [] }, f6, y4, t9, g3; return g3 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g3[Symbol.iterator] = function() { return this; }), g3; function verb(n11) { return function(v3) { return step([n11, v3]); }; } function step(op) { if (f6) throw new TypeError("Generator is already executing."); while (g3 && (g3 = 0, op[0] && (_3 = 0)), _3) try { if (f6 = 1, y4 && (t9 = op[0] & 2 ? y4["return"] : op[0] ? y4["throw"] || ((t9 = y4["return"]) && t9.call(y4), 0) : y4.next) && !(t9 = t9.call(y4, op[1])).done) return t9; if (y4 = 0, t9) op = [op[0] & 2, t9.value]; switch (op[0]) { case 0: case 1: t9 = op; break; case 4: _3.label++; return { value: op[1], done: false }; case 5: _3.label++; y4 = op[1]; op = [0]; continue; case 7: op = _3.ops.pop(); _3.trys.pop(); continue; default: if (!(t9 = _3.trys, t9 = t9.length > 0 && t9[t9.length - 1]) && (op[0] === 6 || op[0] === 2)) { _3 = 0; continue; } if (op[0] === 3 && (!t9 || op[1] > t9[0] && op[1] < t9[3])) { _3.label = op[1]; break; } if (op[0] === 6 && _3.label < t9[1]) { _3.label = t9[1]; t9 = op; break; } if (t9 && _3.label < t9[2]) { _3.label = t9[2]; _3.ops.push(op); break; } if (t9[2]) _3.ops.pop(); _3.trys.pop(); continue; } op = body.call(thisArg, _3); } catch (e13) { op = [6, e13]; y4 = 0; } finally { f6 = t9 = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __rest = exports && exports.__rest || function(s6, e13) { var t9 = {}; for (var p4 in s6) if (Object.prototype.hasOwnProperty.call(s6, p4) && e13.indexOf(p4) < 0) t9[p4] = s6[p4]; if (s6 != null && typeof Object.getOwnPropertySymbols === "function") for (var i9 = 0, p4 = Object.getOwnPropertySymbols(s6); i9 < p4.length; i9++) { if (e13.indexOf(p4[i9]) < 0 && Object.prototype.propertyIsEnumerable.call(s6, p4[i9])) t9[p4[i9]] = s6[p4[i9]]; } return t9; }; var __extends = exports && exports.__extends || /* @__PURE__ */ (function() { var extendStatics = function(d4, b4) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d5, b5) { d5.__proto__ = b5; } || function(d5, b5) { for (var p4 in b5) if (Object.prototype.hasOwnProperty.call(b5, p4)) d5[p4] = b5[p4]; }; return extendStatics(d4, b4); }; return function(d4, b4) { if (typeof b4 !== "function" && b4 !== null) throw new TypeError("Class extends value " + String(b4) + " is not a constructor or null"); extendStatics(d4, b4); function __() { this.constructor = d4; } d4.prototype = b4 === null ? Object.create(b4) : (__.prototype = b4.prototype, new __()); }; })(); var ts; (function(ts2) { ts2.versionMajorMinor = "4.9"; ts2.version = "".concat(ts2.versionMajorMinor, ".5"); var Comparison; (function(Comparison2) { Comparison2[Comparison2["LessThan"] = -1] = "LessThan"; Comparison2[Comparison2["EqualTo"] = 0] = "EqualTo"; Comparison2[Comparison2["GreaterThan"] = 1] = "GreaterThan"; })(Comparison = ts2.Comparison || (ts2.Comparison = {})); var NativeCollections; (function(NativeCollections2) { var globals = typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : void 0; function tryGetNativeMap() { var gMap = globals === null || globals === void 0 ? void 0 : globals.Map; var constructor = typeof gMap !== "undefined" && "entries" in gMap.prototype && new gMap([[0, 0]]).size === 1 ? gMap : void 0; if (!constructor) { throw new Error("No compatible Map implementation found."); } return constructor; } NativeCollections2.tryGetNativeMap = tryGetNativeMap; function tryGetNativeSet() { var gSet = globals === null || globals === void 0 ? void 0 : globals.Set; var constructor = typeof gSet !== "undefined" && "entries" in gSet.prototype && new gSet([0]).size === 1 ? gSet : void 0; if (!constructor) { throw new Error("No compatible Set implementation found."); } return constructor; } NativeCollections2.tryGetNativeSet = tryGetNativeSet; })(NativeCollections || (NativeCollections = {})); ts2.Map = NativeCollections.tryGetNativeMap(); ts2.Set = NativeCollections.tryGetNativeSet(); })(ts || (ts = {})); var ts; (function(ts2) { function getIterator(iterable) { if (iterable) { if (isArray(iterable)) return arrayIterator(iterable); if (iterable instanceof ts2.Map) return iterable.entries(); if (iterable instanceof ts2.Set) return iterable.values(); throw new Error("Iteration not supported."); } } ts2.getIterator = getIterator; ts2.emptyArray = []; ts2.emptyMap = new ts2.Map(); ts2.emptySet = new ts2.Set(); function length(array) { return array ? array.length : 0; } ts2.length = length; function forEach(array, callback) { if (array) { for (var i9 = 0; i9 < array.length; i9++) { var result = callback(array[i9], i9); if (result) { return result; } } } return void 0; } ts2.forEach = forEach; function forEachRight(array, callback) { if (array) { for (var i9 = array.length - 1; i9 >= 0; i9--) { var result = callback(array[i9], i9); if (result) { return result; } } } return void 0; } ts2.forEachRight = forEachRight; function firstDefined(array, callback) { if (array === void 0) { return void 0; } for (var i9 = 0; i9 < array.length; i9++) { var result = callback(array[i9], i9); if (result !== void 0) { return result; } } return void 0; } ts2.firstDefined = firstDefined; function firstDefinedIterator(iter, callback) { while (true) { var iterResult = iter.next(); if (iterResult.done) { return void 0; } var result = callback(iterResult.value); if (result !== void 0) { return result; } } } ts2.firstDefinedIterator = firstDefinedIterator; function reduceLeftIterator(iterator, f6, initial) { var result = initial; if (iterator) { for (var step = iterator.next(), pos = 0; !step.done; step = iterator.next(), pos++) { result = f6(result, step.value, pos); } } return result; } ts2.reduceLeftIterator = reduceLeftIterator; function zipWith(arrayA, arrayB, callback) { var result = []; ts2.Debug.assertEqual(arrayA.length, arrayB.length); for (var i9 = 0; i9 < arrayA.length; i9++) { result.push(callback(arrayA[i9], arrayB[i9], i9)); } return result; } ts2.zipWith = zipWith; function zipToIterator(arrayA, arrayB) { ts2.Debug.assertEqual(arrayA.length, arrayB.length); var i9 = 0; return { next: function() { if (i9 === arrayA.length) { return { value: void 0, done: true }; } i9++; return { value: [arrayA[i9 - 1], arrayB[i9 - 1]], done: false }; } }; } ts2.zipToIterator = zipToIterator; function zipToMap(keys2, values) { ts2.Debug.assert(keys2.length === values.length); var map2 = new ts2.Map(); for (var i9 = 0; i9 < keys2.length; ++i9) { map2.set(keys2[i9], values[i9]); } return map2; } ts2.zipToMap = zipToMap; function intersperse(input, element) { if (input.length <= 1) { return input; } var result = []; for (var i9 = 0, n11 = input.length; i9 < n11; i9++) { if (i9) result.push(element); result.push(input[i9]); } return result; } ts2.intersperse = intersperse; function every(array, callback) { if (array) { for (var i9 = 0; i9 < array.length; i9++) { if (!callback(array[i9], i9)) { return false; } } } return true; } ts2.every = every; function find2(array, predicate, startIndex) { if (array === void 0) return void 0; for (var i9 = startIndex !== null && startIndex !== void 0 ? startIndex : 0; i9 < array.length; i9++) { var value = array[i9]; if (predicate(value, i9)) { return value; } } return void 0; } ts2.find = find2; function findLast(array, predicate, startIndex) { if (array === void 0) return void 0; for (var i9 = startIndex !== null && startIndex !== void 0 ? startIndex : array.length - 1; i9 >= 0; i9--) { var value = array[i9]; if (predicate(value, i9)) { return value; } } return void 0; } ts2.findLast = findLast; function findIndex(array, predicate, startIndex) { if (array === void 0) return -1; for (var i9 = startIndex !== null && startIndex !== void 0 ? startIndex : 0; i9 < array.length; i9++) { if (predicate(array[i9], i9)) { return i9; } } return -1; } ts2.findIndex = findIndex; function findLastIndex(array, predicate, startIndex) { if (array === void 0) return -1; for (var i9 = startIndex !== null && startIndex !== void 0 ? startIndex : array.length - 1; i9 >= 0; i9--) { if (predicate(array[i9], i9)) { return i9; } } return -1; } ts2.findLastIndex = findLastIndex; function findMap(array, callback) { for (var i9 = 0; i9 < array.length; i9++) { var result = callback(array[i9], i9); if (result) { return result; } } return ts2.Debug.fail(); } ts2.findMap = findMap; function contains2(array, value, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = equateValues; } if (array) { for (var _i = 0, array_1 = array; _i < array_1.length; _i++) { var v3 = array_1[_i]; if (equalityComparer(v3, value)) { return true; } } } return false; } ts2.contains = contains2; function arraysEqual(a5, b4, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = equateValues; } return a5.length === b4.length && a5.every(function(x3, i9) { return equalityComparer(x3, b4[i9]); }); } ts2.arraysEqual = arraysEqual; function indexOfAnyCharCode(text, charCodes, start) { for (var i9 = start || 0; i9 < text.length; i9++) { if (contains2(charCodes, text.charCodeAt(i9))) { return i9; } } return -1; } ts2.indexOfAnyCharCode = indexOfAnyCharCode; function countWhere(array, predicate) { var count = 0; if (array) { for (var i9 = 0; i9 < array.length; i9++) { var v3 = array[i9]; if (predicate(v3, i9)) { count++; } } } return count; } ts2.countWhere = countWhere; function filter(array, f6) { if (array) { var len = array.length; var i9 = 0; while (i9 < len && f6(array[i9])) i9++; if (i9 < len) { var result = array.slice(0, i9); i9++; while (i9 < len) { var item = array[i9]; if (f6(item)) { result.push(item); } i9++; } return result; } } return array; } ts2.filter = filter; function filterMutate(array, f6) { var outIndex = 0; for (var i9 = 0; i9 < array.length; i9++) { if (f6(array[i9], i9, array)) { array[outIndex] = array[i9]; outIndex++; } } array.length = outIndex; } ts2.filterMutate = filterMutate; function clear(array) { array.length = 0; } ts2.clear = clear; function map(array, f6) { var result; if (array) { result = []; for (var i9 = 0; i9 < array.length; i9++) { result.push(f6(array[i9], i9)); } } return result; } ts2.map = map; function mapIterator(iter, mapFn) { return { next: function() { var iterRes = iter.next(); return iterRes.done ? iterRes : { value: mapFn(iterRes.value), done: false }; } }; } ts2.mapIterator = mapIterator; function sameMap(array, f6) { if (array) { for (var i9 = 0; i9 < array.length; i9++) { var item = array[i9]; var mapped = f6(item, i9); if (item !== mapped) { var result = array.slice(0, i9); result.push(mapped); for (i9++; i9 < array.length; i9++) { result.push(f6(array[i9], i9)); } return result; } } } return array; } ts2.sameMap = sameMap; function flatten2(array) { var result = []; for (var _i = 0, array_2 = array; _i < array_2.length; _i++) { var v3 = array_2[_i]; if (v3) { if (isArray(v3)) { addRange2(result, v3); } else { result.push(v3); } } } return result; } ts2.flatten = flatten2; function flatMap(array, mapfn) { var result; if (array) { for (var i9 = 0; i9 < array.length; i9++) { var v3 = mapfn(array[i9], i9); if (v3) { if (isArray(v3)) { result = addRange2(result, v3); } else { result = append(result, v3); } } } } return result || ts2.emptyArray; } ts2.flatMap = flatMap; function flatMapToMutable(array, mapfn) { var result = []; if (array) { for (var i9 = 0; i9 < array.length; i9++) { var v3 = mapfn(array[i9], i9); if (v3) { if (isArray(v3)) { addRange2(result, v3); } else { result.push(v3); } } } } return result; } ts2.flatMapToMutable = flatMapToMutable; function flatMapIterator(iter, mapfn) { var first2 = iter.next(); if (first2.done) { return ts2.emptyIterator; } var currentIter = getIterator2(first2.value); return { next: function() { while (true) { var currentRes = currentIter.next(); if (!currentRes.done) { return currentRes; } var iterRes = iter.next(); if (iterRes.done) { return iterRes; } currentIter = getIterator2(iterRes.value); } } }; function getIterator2(x3) { var res = mapfn(x3); return res === void 0 ? ts2.emptyIterator : isArray(res) ? arrayIterator(res) : res; } } ts2.flatMapIterator = flatMapIterator; function sameFlatMap(array, mapfn) { var result; if (array) { for (var i9 = 0; i9 < array.length; i9++) { var item = array[i9]; var mapped = mapfn(item, i9); if (result || item !== mapped || isArray(mapped)) { if (!result) { result = array.slice(0, i9); } if (isArray(mapped)) { addRange2(result, mapped); } else { result.push(mapped); } } } } return result || array; } ts2.sameFlatMap = sameFlatMap; function mapAllOrFail(array, mapFn) { var result = []; for (var i9 = 0; i9 < array.length; i9++) { var mapped = mapFn(array[i9], i9); if (mapped === void 0) { return void 0; } result.push(mapped); } return result; } ts2.mapAllOrFail = mapAllOrFail; function mapDefined(array, mapFn) { var result = []; if (array) { for (var i9 = 0; i9 < array.length; i9++) { var mapped = mapFn(array[i9], i9); if (mapped !== void 0) { result.push(mapped); } } } return result; } ts2.mapDefined = mapDefined; function mapDefinedIterator(iter, mapFn) { return { next: function() { while (true) { var res = iter.next(); if (res.done) { return res; } var value = mapFn(res.value); if (value !== void 0) { return { value, done: false }; } } } }; } ts2.mapDefinedIterator = mapDefinedIterator; function mapDefinedEntries(map2, f6) { if (!map2) { return void 0; } var result = new ts2.Map(); map2.forEach(function(value, key) { var entry = f6(key, value); if (entry !== void 0) { var newKey = entry[0], newValue = entry[1]; if (newKey !== void 0 && newValue !== void 0) { result.set(newKey, newValue); } } }); return result; } ts2.mapDefinedEntries = mapDefinedEntries; function mapDefinedValues(set, f6) { if (set) { var result_1 = new ts2.Set(); set.forEach(function(value) { var newValue = f6(value); if (newValue !== void 0) { result_1.add(newValue); } }); return result_1; } } ts2.mapDefinedValues = mapDefinedValues; function getOrUpdate(map2, key, callback) { if (map2.has(key)) { return map2.get(key); } var value = callback(); map2.set(key, value); return value; } ts2.getOrUpdate = getOrUpdate; function tryAddToSet(set, value) { if (!set.has(value)) { set.add(value); return true; } return false; } ts2.tryAddToSet = tryAddToSet; ts2.emptyIterator = { next: function() { return { value: void 0, done: true }; } }; function singleIterator(value) { var done = false; return { next: function() { var wasDone = done; done = true; return wasDone ? { value: void 0, done: true } : { value, done: false }; } }; } ts2.singleIterator = singleIterator; function spanMap(array, keyfn, mapfn) { var result; if (array) { result = []; var len = array.length; var previousKey = void 0; var key = void 0; var start = 0; var pos = 0; while (start < len) { while (pos < len) { var value = array[pos]; key = keyfn(value, pos); if (pos === 0) { previousKey = key; } else if (key !== previousKey) { break; } pos++; } if (start < pos) { var v3 = mapfn(array.slice(start, pos), previousKey, start, pos); if (v3) { result.push(v3); } start = pos; } previousKey = key; pos++; } } return result; } ts2.spanMap = spanMap; function mapEntries(map2, f6) { if (!map2) { return void 0; } var result = new ts2.Map(); map2.forEach(function(value, key) { var _a5 = f6(key, value), newKey = _a5[0], newValue = _a5[1]; result.set(newKey, newValue); }); return result; } ts2.mapEntries = mapEntries; function some(array, predicate) { if (array) { if (predicate) { for (var _i = 0, array_3 = array; _i < array_3.length; _i++) { var v3 = array_3[_i]; if (predicate(v3)) { return true; } } } else { return array.length > 0; } } return false; } ts2.some = some; function getRangesWhere(arr, pred, cb) { var start; for (var i9 = 0; i9 < arr.length; i9++) { if (pred(arr[i9])) { start = start === void 0 ? i9 : start; } else { if (start !== void 0) { cb(start, i9); start = void 0; } } } if (start !== void 0) cb(start, arr.length); } ts2.getRangesWhere = getRangesWhere; function concatenate(array1, array2) { if (!some(array2)) return array1; if (!some(array1)) return array2; return __spreadArray(__spreadArray([], array1, true), array2, true); } ts2.concatenate = concatenate; function selectIndex(_3, i9) { return i9; } function indicesOf(array) { return array.map(selectIndex); } ts2.indicesOf = indicesOf; function deduplicateRelational(array, equalityComparer, comparer) { var indices = indicesOf(array); stableSortIndices(array, indices, comparer); var last2 = array[indices[0]]; var deduplicated = [indices[0]]; for (var i9 = 1; i9 < indices.length; i9++) { var index = indices[i9]; var item = array[index]; if (!equalityComparer(last2, item)) { deduplicated.push(index); last2 = item; } } deduplicated.sort(); return deduplicated.map(function(i10) { return array[i10]; }); } function deduplicateEquality(array, equalityComparer) { var result = []; for (var _i = 0, array_4 = array; _i < array_4.length; _i++) { var item = array_4[_i]; pushIfUnique(result, item, equalityComparer); } return result; } function deduplicate(array, equalityComparer, comparer) { return array.length === 0 ? [] : array.length === 1 ? array.slice() : comparer ? deduplicateRelational(array, equalityComparer, comparer) : deduplicateEquality(array, equalityComparer); } ts2.deduplicate = deduplicate; function deduplicateSorted(array, comparer) { if (array.length === 0) return ts2.emptyArray; var last2 = array[0]; var deduplicated = [last2]; for (var i9 = 1; i9 < array.length; i9++) { var next = array[i9]; switch (comparer(next, last2)) { // equality comparison case true: // relational comparison // falls through case 0: continue; case -1: return ts2.Debug.fail("Array is unsorted."); } deduplicated.push(last2 = next); } return deduplicated; } function createSortedArray() { return []; } ts2.createSortedArray = createSortedArray; function insertSorted(array, insert2, compare2, allowDuplicates) { if (array.length === 0) { array.push(insert2); return true; } var insertIndex = binarySearch(array, insert2, identity, compare2); if (insertIndex < 0) { array.splice(~insertIndex, 0, insert2); return true; } if (allowDuplicates) { array.splice(insertIndex, 0, insert2); return true; } return false; } ts2.insertSorted = insertSorted; function sortAndDeduplicate(array, comparer, equalityComparer) { return deduplicateSorted(sort(array, comparer), equalityComparer || comparer || compareStringsCaseSensitive); } ts2.sortAndDeduplicate = sortAndDeduplicate; function arrayIsSorted(array, comparer) { if (array.length < 2) return true; var prevElement = array[0]; for (var _i = 0, _a5 = array.slice(1); _i < _a5.length; _i++) { var element = _a5[_i]; if (comparer(prevElement, element) === 1) { return false; } prevElement = element; } return true; } ts2.arrayIsSorted = arrayIsSorted; function arrayIsEqualTo(array1, array2, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = equateValues; } if (!array1 || !array2) { return array1 === array2; } if (array1.length !== array2.length) { return false; } for (var i9 = 0; i9 < array1.length; i9++) { if (!equalityComparer(array1[i9], array2[i9], i9)) { return false; } } return true; } ts2.arrayIsEqualTo = arrayIsEqualTo; function compact(array) { var result; if (array) { for (var i9 = 0; i9 < array.length; i9++) { var v3 = array[i9]; if (result || !v3) { if (!result) { result = array.slice(0, i9); } if (v3) { result.push(v3); } } } } return result || array; } ts2.compact = compact; function relativeComplement(arrayA, arrayB, comparer) { if (!arrayB || !arrayA || arrayB.length === 0 || arrayA.length === 0) return arrayB; var result = []; loopB: for (var offsetA = 0, offsetB = 0; offsetB < arrayB.length; offsetB++) { if (offsetB > 0) { ts2.Debug.assertGreaterThanOrEqual( comparer(arrayB[offsetB], arrayB[offsetB - 1]), 0 /* Comparison.EqualTo */ ); } loopA: for (var startA = offsetA; offsetA < arrayA.length; offsetA++) { if (offsetA > startA) { ts2.Debug.assertGreaterThanOrEqual( comparer(arrayA[offsetA], arrayA[offsetA - 1]), 0 /* Comparison.EqualTo */ ); } switch (comparer(arrayB[offsetB], arrayA[offsetA])) { case -1: result.push(arrayB[offsetB]); continue loopB; case 0: continue loopB; case 1: continue loopA; } } } return result; } ts2.relativeComplement = relativeComplement; function sum(array, prop) { var result = 0; for (var _i = 0, array_5 = array; _i < array_5.length; _i++) { var v3 = array_5[_i]; result += v3[prop]; } return result; } ts2.sum = sum; function append(to, value) { if (value === void 0) return to; if (to === void 0) return [value]; to.push(value); return to; } ts2.append = append; function combine(xs, ys) { if (xs === void 0) return ys; if (ys === void 0) return xs; if (isArray(xs)) return isArray(ys) ? concatenate(xs, ys) : append(xs, ys); if (isArray(ys)) return append(ys, xs); return [xs, ys]; } ts2.combine = combine; function toOffset(array, offset3) { return offset3 < 0 ? array.length + offset3 : offset3; } function addRange2(to, from, start, end) { if (from === void 0 || from.length === 0) return to; if (to === void 0) return from.slice(start, end); start = start === void 0 ? 0 : toOffset(from, start); end = end === void 0 ? from.length : toOffset(from, end); for (var i9 = start; i9 < end && i9 < from.length; i9++) { if (from[i9] !== void 0) { to.push(from[i9]); } } return to; } ts2.addRange = addRange2; function pushIfUnique(array, toAdd, equalityComparer) { if (contains2(array, toAdd, equalityComparer)) { return false; } else { array.push(toAdd); return true; } } ts2.pushIfUnique = pushIfUnique; function appendIfUnique(array, toAdd, equalityComparer) { if (array) { pushIfUnique(array, toAdd, equalityComparer); return array; } else { return [toAdd]; } } ts2.appendIfUnique = appendIfUnique; function stableSortIndices(array, indices, comparer) { indices.sort(function(x3, y4) { return comparer(array[x3], array[y4]) || compareValues(x3, y4); }); } function sort(array, comparer) { return array.length === 0 ? array : array.slice().sort(comparer); } ts2.sort = sort; function arrayIterator(array) { var i9 = 0; return { next: function() { if (i9 === array.length) { return { value: void 0, done: true }; } else { i9++; return { value: array[i9 - 1], done: false }; } } }; } ts2.arrayIterator = arrayIterator; function arrayReverseIterator(array) { var i9 = array.length; return { next: function() { if (i9 === 0) { return { value: void 0, done: true }; } else { i9--; return { value: array[i9], done: false }; } } }; } ts2.arrayReverseIterator = arrayReverseIterator; function stableSort(array, comparer) { var indices = indicesOf(array); stableSortIndices(array, indices, comparer); return indices.map(function(i9) { return array[i9]; }); } ts2.stableSort = stableSort; function rangeEquals(array1, array2, pos, end) { while (pos < end) { if (array1[pos] !== array2[pos]) { return false; } pos++; } return true; } ts2.rangeEquals = rangeEquals; function elementAt(array, offset3) { if (array) { offset3 = toOffset(array, offset3); if (offset3 < array.length) { return array[offset3]; } } return void 0; } ts2.elementAt = elementAt; function firstOrUndefined(array) { return array === void 0 || array.length === 0 ? void 0 : array[0]; } ts2.firstOrUndefined = firstOrUndefined; function first(array) { ts2.Debug.assert(array.length !== 0); return array[0]; } ts2.first = first; function lastOrUndefined(array) { return array === void 0 || array.length === 0 ? void 0 : array[array.length - 1]; } ts2.lastOrUndefined = lastOrUndefined; function last(array) { ts2.Debug.assert(array.length !== 0); return array[array.length - 1]; } ts2.last = last; function singleOrUndefined(array) { return array && array.length === 1 ? array[0] : void 0; } ts2.singleOrUndefined = singleOrUndefined; function single(array) { return ts2.Debug.checkDefined(singleOrUndefined(array)); } ts2.single = single; function singleOrMany(array) { return array && array.length === 1 ? array[0] : array; } ts2.singleOrMany = singleOrMany; function replaceElement(array, index, value) { var result = array.slice(0); result[index] = value; return result; } ts2.replaceElement = replaceElement; function binarySearch(array, value, keySelector, keyComparer, offset3) { return binarySearchKey(array, keySelector(value), keySelector, keyComparer, offset3); } ts2.binarySearch = binarySearch; function binarySearchKey(array, key, keySelector, keyComparer, offset3) { if (!some(array)) { return -1; } var low = offset3 || 0; var high = array.length - 1; while (low <= high) { var middle = low + (high - low >> 1); var midKey = keySelector(array[middle], middle); switch (keyComparer(midKey, key)) { case -1: low = middle + 1; break; case 0: return middle; case 1: high = middle - 1; break; } } return ~low; } ts2.binarySearchKey = binarySearchKey; function reduceLeft(array, f6, initial, start, count) { if (array && array.length > 0) { var size3 = array.length; if (size3 > 0) { var pos = start === void 0 || start < 0 ? 0 : start; var end = count === void 0 || pos + count > size3 - 1 ? size3 - 1 : pos + count; var result = void 0; if (arguments.length <= 2) { result = array[pos]; pos++; } else { result = initial; } while (pos <= end) { result = f6(result, array[pos], pos); pos++; } return result; } } return initial; } ts2.reduceLeft = reduceLeft; var hasOwnProperty = Object.prototype.hasOwnProperty; function hasProperty(map2, key) { return hasOwnProperty.call(map2, key); } ts2.hasProperty = hasProperty; function getProperty(map2, key) { return hasOwnProperty.call(map2, key) ? map2[key] : void 0; } ts2.getProperty = getProperty; function getOwnKeys(map2) { var keys2 = []; for (var key in map2) { if (hasOwnProperty.call(map2, key)) { keys2.push(key); } } return keys2; } ts2.getOwnKeys = getOwnKeys; function getAllKeys(obj) { var result = []; do { var names2 = Object.getOwnPropertyNames(obj); for (var _i = 0, names_1 = names2; _i < names_1.length; _i++) { var name2 = names_1[_i]; pushIfUnique(result, name2); } } while (obj = Object.getPrototypeOf(obj)); return result; } ts2.getAllKeys = getAllKeys; function getOwnValues(collection) { var values = []; for (var key in collection) { if (hasOwnProperty.call(collection, key)) { values.push(collection[key]); } } return values; } ts2.getOwnValues = getOwnValues; var _entries = Object.entries || (function(obj) { var keys2 = getOwnKeys(obj); var result = Array(keys2.length); for (var i9 = 0; i9 < keys2.length; i9++) { result[i9] = [keys2[i9], obj[keys2[i9]]]; } return result; }); function getEntries(obj) { return obj ? _entries(obj) : []; } ts2.getEntries = getEntries; function arrayOf(count, f6) { var result = new Array(count); for (var i9 = 0; i9 < count; i9++) { result[i9] = f6(i9); } return result; } ts2.arrayOf = arrayOf; function arrayFrom(iterator, map2) { var result = []; for (var iterResult = iterator.next(); !iterResult.done; iterResult = iterator.next()) { result.push(map2 ? map2(iterResult.value) : iterResult.value); } return result; } ts2.arrayFrom = arrayFrom; function assign(t9) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } for (var _a5 = 0, args_1 = args; _a5 < args_1.length; _a5++) { var arg = args_1[_a5]; if (arg === void 0) continue; for (var p4 in arg) { if (hasProperty(arg, p4)) { t9[p4] = arg[p4]; } } } return t9; } ts2.assign = assign; function equalOwnProperties(left, right, equalityComparer) { if (equalityComparer === void 0) { equalityComparer = equateValues; } if (left === right) return true; if (!left || !right) return false; for (var key in left) { if (hasOwnProperty.call(left, key)) { if (!hasOwnProperty.call(right, key)) return false; if (!equalityComparer(left[key], right[key])) return false; } } for (var key in right) { if (hasOwnProperty.call(right, key)) { if (!hasOwnProperty.call(left, key)) return false; } } return true; } ts2.equalOwnProperties = equalOwnProperties; function arrayToMap(array, makeKey, makeValue) { if (makeValue === void 0) { makeValue = identity; } var result = new ts2.Map(); for (var _i = 0, array_6 = array; _i < array_6.length; _i++) { var value = array_6[_i]; var key = makeKey(value); if (key !== void 0) result.set(key, makeValue(value)); } return result; } ts2.arrayToMap = arrayToMap; function arrayToNumericMap(array, makeKey, makeValue) { if (makeValue === void 0) { makeValue = identity; } var result = []; for (var _i = 0, array_7 = array; _i < array_7.length; _i++) { var value = array_7[_i]; result[makeKey(value)] = makeValue(value); } return result; } ts2.arrayToNumericMap = arrayToNumericMap; function arrayToMultiMap(values, makeKey, makeValue) { if (makeValue === void 0) { makeValue = identity; } var result = createMultiMap(); for (var _i = 0, values_1 = values; _i < values_1.length; _i++) { var value = values_1[_i]; result.add(makeKey(value), makeValue(value)); } return result; } ts2.arrayToMultiMap = arrayToMultiMap; function group(values, getGroupId, resultSelector) { if (resultSelector === void 0) { resultSelector = identity; } return arrayFrom(arrayToMultiMap(values, getGroupId).values(), resultSelector); } ts2.group = group; function clone(object) { var result = {}; for (var id4 in object) { if (hasOwnProperty.call(object, id4)) { result[id4] = object[id4]; } } return result; } ts2.clone = clone; function extend(first2, second) { var result = {}; for (var id4 in second) { if (hasOwnProperty.call(second, id4)) { result[id4] = second[id4]; } } for (var id4 in first2) { if (hasOwnProperty.call(first2, id4)) { result[id4] = first2[id4]; } } return result; } ts2.extend = extend; function copyProperties(first2, second) { for (var id4 in second) { if (hasOwnProperty.call(second, id4)) { first2[id4] = second[id4]; }