@webwriter/chemlab
Version:
WIP - Prepare virtual laboratory environments for various topics in chemistry. Includes the building of molecules as well as applications for electrochemistry and acid/base theory.
1,271 lines (1,254 loc) • 6.93 MB
JavaScript
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 = (msg) => {
throw TypeError(msg);
};
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__ */ ((x4) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x4, {
get: (a7, b5) => (typeof require !== "undefined" ? require : a7)[b5]
}) : x4)(function(x4) {
if (typeof require !== "undefined") return require.apply(this, arguments);
throw Error('Dynamic require of "' + x4 + '" is not supported');
});
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 = (to2, from2, except, desc) => {
if (from2 && typeof from2 === "object" || typeof from2 === "function") {
for (let key of __getOwnPropNames(from2))
if (!__hasOwnProp.call(to2, key) && key !== except)
__defProp(to2, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });
}
return to2;
};
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 = (base) => [, , , __create(base?.[__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 i11 = 0, fns = array[flags >> 1], n12 = fns && fns.length; i11 < n12; i11++) flags & 1 ? fns[i11].call(self2) : value = fns[i11].call(self2, value);
return value;
};
var __decorateElement = (array, flags, name2, decorators, target, extra) => {
var fn, it, done, ctx, access, k4 = flags & 7, s6 = !!(flags & 8), p5 = !!(flags & 16);
var j4 = k4 > 3 ? array.length + 1 : k4 ? s6 ? 1 : 2 : 0, key = __decoratorStrings[k4 + 5];
var initializers = k4 > 3 && (array[j4 - 1] = []), extraInitializers = array[j4] || (array[j4] = []);
var desc = k4 && (!p5 && !s6 && (target = target.prototype), k4 < 5 && (k4 > 3 || !p5) && __getOwnPropDesc(k4 < 4 ? target : { get [name2]() {
return __privateGet(this, extra);
}, set [name2](x4) {
return __privateSet(this, extra, x4);
} }, name2));
k4 ? p5 && k4 < 4 && __name(extra, (k4 > 2 ? "set " : k4 > 1 ? "get " : "") + name2) : __name(target, name2);
for (var i11 = decorators.length - 1; i11 >= 0; i11--) {
ctx = __decoratorContext(k4, name2, done = {}, array[3], extraInitializers);
if (k4) {
ctx.static = s6, ctx.private = p5, access = ctx.access = { has: p5 ? (x4) => __privateIn(target, x4) : (x4) => name2 in x4 };
if (k4 ^ 3) access.get = p5 ? (x4) => (k4 ^ 1 ? __privateGet : __privateMethod)(x4, target, k4 ^ 4 ? extra : desc.get) : (x4) => x4[name2];
if (k4 > 2) access.set = p5 ? (x4, y5) => __privateSet(x4, target, y5, k4 ^ 4 ? extra : desc.set) : (x4, y5) => x4[name2] = y5;
}
it = (0, decorators[i11])(k4 ? k4 < 4 ? p5 ? extra : desc[key] : k4 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
if (k4 ^ 4 || it === void 0) __expectFn(it) && (k4 > 4 ? initializers.unshift(it) : k4 ? p5 ? 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 k4 || __decoratorMetadata(array, target), desc && __defProp(target, name2, desc), p5 ? k4 ^ 4 ? extra : desc : target;
};
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
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);
// node_modules/eventemitter3/index.js
var require_eventemitter3 = __commonJS({
"node_modules/eventemitter3/index.js"(exports, module) {
"use strict";
var has = Object.prototype.hasOwnProperty;
var prefix = "~";
function Events() {
}
if (Object.create) {
Events.prototype = /* @__PURE__ */ Object.create(null);
if (!new Events().__proto__) prefix = false;
}
function EE(fn, context2, once) {
this.fn = fn;
this.context = context2;
this.once = once || false;
}
function addListener2(emitter, event, fn, context2, once) {
if (typeof fn !== "function") {
throw new TypeError("The listener must be a function");
}
var listener = new EE(fn, context2 || emitter, once), evt = prefix ? prefix + event : event;
if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
else emitter._events[evt] = [emitter._events[evt], listener];
return emitter;
}
function clearEvent(emitter, evt) {
if (--emitter._eventsCount === 0) emitter._events = new Events();
else delete emitter._events[evt];
}
function EventEmitter() {
this._events = new Events();
this._eventsCount = 0;
}
EventEmitter.prototype.eventNames = function eventNames() {
var names2 = [], events, name2;
if (this._eventsCount === 0) return names2;
for (name2 in events = this._events) {
if (has.call(events, name2)) names2.push(prefix ? name2.slice(1) : name2);
}
if (Object.getOwnPropertySymbols) {
return names2.concat(Object.getOwnPropertySymbols(events));
}
return names2;
};
EventEmitter.prototype.listeners = function listeners(event) {
var evt = prefix ? prefix + event : event, handlers = this._events[evt];
if (!handlers) return [];
if (handlers.fn) return [handlers.fn];
for (var i11 = 0, l8 = handlers.length, ee = new Array(l8); i11 < l8; i11++) {
ee[i11] = handlers[i11].fn;
}
return ee;
};
EventEmitter.prototype.listenerCount = function listenerCount(event) {
var evt = prefix ? prefix + event : event, listeners = this._events[evt];
if (!listeners) return 0;
if (listeners.fn) return 1;
return listeners.length;
};
EventEmitter.prototype.emit = function emit(event, a1, a22, a32, a42, a52) {
var evt = prefix ? prefix + event : event;
if (!this._events[evt]) return false;
var listeners = this._events[evt], len = arguments.length, args, i11;
if (listeners.fn) {
if (listeners.once) this.removeListener(event, listeners.fn, void 0, true);
switch (len) {
case 1:
return listeners.fn.call(listeners.context), true;
case 2:
return listeners.fn.call(listeners.context, a1), true;
case 3:
return listeners.fn.call(listeners.context, a1, a22), true;
case 4:
return listeners.fn.call(listeners.context, a1, a22, a32), true;
case 5:
return listeners.fn.call(listeners.context, a1, a22, a32, a42), true;
case 6:
return listeners.fn.call(listeners.context, a1, a22, a32, a42, a52), true;
}
for (i11 = 1, args = new Array(len - 1); i11 < len; i11++) {
args[i11 - 1] = arguments[i11];
}
listeners.fn.apply(listeners.context, args);
} else {
var length = listeners.length, j4;
for (i11 = 0; i11 < length; i11++) {
if (listeners[i11].once) this.removeListener(event, listeners[i11].fn, void 0, true);
switch (len) {
case 1:
listeners[i11].fn.call(listeners[i11].context);
break;
case 2:
listeners[i11].fn.call(listeners[i11].context, a1);
break;
case 3:
listeners[i11].fn.call(listeners[i11].context, a1, a22);
break;
case 4:
listeners[i11].fn.call(listeners[i11].context, a1, a22, a32);
break;
default:
if (!args) for (j4 = 1, args = new Array(len - 1); j4 < len; j4++) {
args[j4 - 1] = arguments[j4];
}
listeners[i11].fn.apply(listeners[i11].context, args);
}
}
}
return true;
};
EventEmitter.prototype.on = function on(event, fn, context2) {
return addListener2(this, event, fn, context2, false);
};
EventEmitter.prototype.once = function once(event, fn, context2) {
return addListener2(this, event, fn, context2, true);
};
EventEmitter.prototype.removeListener = function removeListener2(event, fn, context2, once) {
var evt = prefix ? prefix + event : event;
if (!this._events[evt]) return this;
if (!fn) {
clearEvent(this, evt);
return this;
}
var listeners = this._events[evt];
if (listeners.fn) {
if (listeners.fn === fn && (!once || listeners.once) && (!context2 || listeners.context === context2)) {
clearEvent(this, evt);
}
} else {
for (var i11 = 0, events = [], length = listeners.length; i11 < length; i11++) {
if (listeners[i11].fn !== fn || once && !listeners[i11].once || context2 && listeners[i11].context !== context2) {
events.push(listeners[i11]);
}
}
if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
else clearEvent(this, evt);
}
return this;
};
EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
var evt;
if (event) {
evt = prefix ? prefix + event : event;
if (this._events[evt]) clearEvent(this, evt);
} else {
this._events = new Events();
this._eventsCount = 0;
}
return this;
};
EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
EventEmitter.prototype.addListener = EventEmitter.prototype.on;
EventEmitter.prefixed = prefix;
EventEmitter.EventEmitter = EventEmitter;
if ("undefined" !== typeof module) {
module.exports = EventEmitter;
}
}
});
// node_modules/earcut/src/earcut.js
var require_earcut = __commonJS({
"node_modules/earcut/src/earcut.js"(exports, module) {
"use strict";
module.exports = earcut;
module.exports.default = earcut;
function earcut(data2, holeIndices, dim) {
dim = dim || 2;
var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data2.length, outerNode = linkedList(data2, 0, outerLen, dim, true), triangles = [];
if (!outerNode || outerNode.next === outerNode.prev) return triangles;
var minX, minY, maxX, maxY, x4, y5, invSize;
if (hasHoles) outerNode = eliminateHoles(data2, holeIndices, outerNode, dim);
if (data2.length > 80 * dim) {
minX = maxX = data2[0];
minY = maxY = data2[1];
for (var i11 = dim; i11 < outerLen; i11 += dim) {
x4 = data2[i11];
y5 = data2[i11 + 1];
if (x4 < minX) minX = x4;
if (y5 < minY) minY = y5;
if (x4 > maxX) maxX = x4;
if (y5 > maxY) maxY = y5;
}
invSize = Math.max(maxX - minX, maxY - minY);
invSize = invSize !== 0 ? 32767 / invSize : 0;
}
earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);
return triangles;
}
function linkedList(data2, start, end, dim, clockwise) {
var i11, last;
if (clockwise === signedArea(data2, start, end, dim) > 0) {
for (i11 = start; i11 < end; i11 += dim) last = insertNode(i11, data2[i11], data2[i11 + 1], last);
} else {
for (i11 = end - dim; i11 >= start; i11 -= dim) last = insertNode(i11, data2[i11], data2[i11 + 1], last);
}
if (last && equals(last, last.next)) {
removeNode(last);
last = last.next;
}
return last;
}
function filterPoints(start, end) {
if (!start) return start;
if (!end) end = start;
var p5 = start, again;
do {
again = false;
if (!p5.steiner && (equals(p5, p5.next) || area(p5.prev, p5, p5.next) === 0)) {
removeNode(p5);
p5 = end = p5.prev;
if (p5 === p5.next) break;
again = true;
} else {
p5 = p5.next;
}
} while (again || p5 !== end);
return end;
}
function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {
if (!ear) return;
if (!pass && invSize) indexCurve(ear, minX, minY, invSize);
var stop = ear, prev, next;
while (ear.prev !== ear.next) {
prev = ear.prev;
next = ear.next;
if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {
triangles.push(prev.i / dim | 0);
triangles.push(ear.i / dim | 0);
triangles.push(next.i / dim | 0);
removeNode(ear);
ear = next.next;
stop = next.next;
continue;
}
ear = next;
if (ear === stop) {
if (!pass) {
earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);
} else if (pass === 1) {
ear = cureLocalIntersections(filterPoints(ear), triangles, dim);
earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);
} else if (pass === 2) {
splitEarcut(ear, triangles, dim, minX, minY, invSize);
}
break;
}
}
}
function isEar(ear) {
var a7 = ear.prev, b5 = ear, c8 = ear.next;
if (area(a7, b5, c8) >= 0) return false;
var ax = a7.x, bx = b5.x, cx = c8.x, ay = a7.y, by = b5.y, cy = c8.y;
var x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;
var p5 = c8.next;
while (p5 !== a7) {
if (p5.x >= x0 && p5.x <= x1 && p5.y >= y0 && p5.y <= y1 && pointInTriangle(ax, ay, bx, by, cx, cy, p5.x, p5.y) && area(p5.prev, p5, p5.next) >= 0) return false;
p5 = p5.next;
}
return true;
}
function isEarHashed(ear, minX, minY, invSize) {
var a7 = ear.prev, b5 = ear, c8 = ear.next;
if (area(a7, b5, c8) >= 0) return false;
var ax = a7.x, bx = b5.x, cx = c8.x, ay = a7.y, by = b5.y, cy = c8.y;
var x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;
var minZ = zOrder(x0, y0, minX, minY, invSize), maxZ = zOrder(x1, y1, minX, minY, invSize);
var p5 = ear.prevZ, n12 = ear.nextZ;
while (p5 && p5.z >= minZ && n12 && n12.z <= maxZ) {
if (p5.x >= x0 && p5.x <= x1 && p5.y >= y0 && p5.y <= y1 && p5 !== a7 && p5 !== c8 && pointInTriangle(ax, ay, bx, by, cx, cy, p5.x, p5.y) && area(p5.prev, p5, p5.next) >= 0) return false;
p5 = p5.prevZ;
if (n12.x >= x0 && n12.x <= x1 && n12.y >= y0 && n12.y <= y1 && n12 !== a7 && n12 !== c8 && pointInTriangle(ax, ay, bx, by, cx, cy, n12.x, n12.y) && area(n12.prev, n12, n12.next) >= 0) return false;
n12 = n12.nextZ;
}
while (p5 && p5.z >= minZ) {
if (p5.x >= x0 && p5.x <= x1 && p5.y >= y0 && p5.y <= y1 && p5 !== a7 && p5 !== c8 && pointInTriangle(ax, ay, bx, by, cx, cy, p5.x, p5.y) && area(p5.prev, p5, p5.next) >= 0) return false;
p5 = p5.prevZ;
}
while (n12 && n12.z <= maxZ) {
if (n12.x >= x0 && n12.x <= x1 && n12.y >= y0 && n12.y <= y1 && n12 !== a7 && n12 !== c8 && pointInTriangle(ax, ay, bx, by, cx, cy, n12.x, n12.y) && area(n12.prev, n12, n12.next) >= 0) return false;
n12 = n12.nextZ;
}
return true;
}
function cureLocalIntersections(start, triangles, dim) {
var p5 = start;
do {
var a7 = p5.prev, b5 = p5.next.next;
if (!equals(a7, b5) && intersects(a7, p5, p5.next, b5) && locallyInside(a7, b5) && locallyInside(b5, a7)) {
triangles.push(a7.i / dim | 0);
triangles.push(p5.i / dim | 0);
triangles.push(b5.i / dim | 0);
removeNode(p5);
removeNode(p5.next);
p5 = start = b5;
}
p5 = p5.next;
} while (p5 !== start);
return filterPoints(p5);
}
function splitEarcut(start, triangles, dim, minX, minY, invSize) {
var a7 = start;
do {
var b5 = a7.next.next;
while (b5 !== a7.prev) {
if (a7.i !== b5.i && isValidDiagonal(a7, b5)) {
var c8 = splitPolygon(a7, b5);
a7 = filterPoints(a7, a7.next);
c8 = filterPoints(c8, c8.next);
earcutLinked(a7, triangles, dim, minX, minY, invSize, 0);
earcutLinked(c8, triangles, dim, minX, minY, invSize, 0);
return;
}
b5 = b5.next;
}
a7 = a7.next;
} while (a7 !== start);
}
function eliminateHoles(data2, holeIndices, outerNode, dim) {
var queue = [], i11, len, start, end, list;
for (i11 = 0, len = holeIndices.length; i11 < len; i11++) {
start = holeIndices[i11] * dim;
end = i11 < len - 1 ? holeIndices[i11 + 1] * dim : data2.length;
list = linkedList(data2, start, end, dim, false);
if (list === list.next) list.steiner = true;
queue.push(getLeftmost(list));
}
queue.sort(compareX);
for (i11 = 0; i11 < queue.length; i11++) {
outerNode = eliminateHole(queue[i11], outerNode);
}
return outerNode;
}
function compareX(a7, b5) {
return a7.x - b5.x;
}
function eliminateHole(hole, outerNode) {
var bridge = findHoleBridge(hole, outerNode);
if (!bridge) {
return outerNode;
}
var bridgeReverse = splitPolygon(bridge, hole);
filterPoints(bridgeReverse, bridgeReverse.next);
return filterPoints(bridge, bridge.next);
}
function findHoleBridge(hole, outerNode) {
var p5 = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m5;
do {
if (hy <= p5.y && hy >= p5.next.y && p5.next.y !== p5.y) {
var x4 = p5.x + (hy - p5.y) * (p5.next.x - p5.x) / (p5.next.y - p5.y);
if (x4 <= hx && x4 > qx) {
qx = x4;
m5 = p5.x < p5.next.x ? p5 : p5.next;
if (x4 === hx) return m5;
}
}
p5 = p5.next;
} while (p5 !== outerNode);
if (!m5) return null;
var stop = m5, mx = m5.x, my = m5.y, tanMin = Infinity, tan;
p5 = m5;
do {
if (hx >= p5.x && p5.x >= mx && hx !== p5.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p5.x, p5.y)) {
tan = Math.abs(hy - p5.y) / (hx - p5.x);
if (locallyInside(p5, hole) && (tan < tanMin || tan === tanMin && (p5.x > m5.x || p5.x === m5.x && sectorContainsSector(m5, p5)))) {
m5 = p5;
tanMin = tan;
}
}
p5 = p5.next;
} while (p5 !== stop);
return m5;
}
function sectorContainsSector(m5, p5) {
return area(m5.prev, m5, p5.prev) < 0 && area(p5.next, m5, m5.next) < 0;
}
function indexCurve(start, minX, minY, invSize) {
var p5 = start;
do {
if (p5.z === 0) p5.z = zOrder(p5.x, p5.y, minX, minY, invSize);
p5.prevZ = p5.prev;
p5.nextZ = p5.next;
p5 = p5.next;
} while (p5 !== start);
p5.prevZ.nextZ = null;
p5.prevZ = null;
sortLinked(p5);
}
function sortLinked(list) {
var i11, p5, q2, e15, tail, numMerges, pSize, qSize, inSize = 1;
do {
p5 = list;
list = null;
tail = null;
numMerges = 0;
while (p5) {
numMerges++;
q2 = p5;
pSize = 0;
for (i11 = 0; i11 < inSize; i11++) {
pSize++;
q2 = q2.nextZ;
if (!q2) break;
}
qSize = inSize;
while (pSize > 0 || qSize > 0 && q2) {
if (pSize !== 0 && (qSize === 0 || !q2 || p5.z <= q2.z)) {
e15 = p5;
p5 = p5.nextZ;
pSize--;
} else {
e15 = q2;
q2 = q2.nextZ;
qSize--;
}
if (tail) tail.nextZ = e15;
else list = e15;
e15.prevZ = tail;
tail = e15;
}
p5 = q2;
}
tail.nextZ = null;
inSize *= 2;
} while (numMerges > 1);
return list;
}
function zOrder(x4, y5, minX, minY, invSize) {
x4 = (x4 - minX) * invSize | 0;
y5 = (y5 - minY) * invSize | 0;
x4 = (x4 | x4 << 8) & 16711935;
x4 = (x4 | x4 << 4) & 252645135;
x4 = (x4 | x4 << 2) & 858993459;
x4 = (x4 | x4 << 1) & 1431655765;
y5 = (y5 | y5 << 8) & 16711935;
y5 = (y5 | y5 << 4) & 252645135;
y5 = (y5 | y5 << 2) & 858993459;
y5 = (y5 | y5 << 1) & 1431655765;
return x4 | y5 << 1;
}
function getLeftmost(start) {
var p5 = start, leftmost = start;
do {
if (p5.x < leftmost.x || p5.x === leftmost.x && p5.y < leftmost.y) leftmost = p5;
p5 = p5.next;
} while (p5 !== start);
return leftmost;
}
function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
return (cx - px) * (ay - py) >= (ax - px) * (cy - py) && (ax - px) * (by - py) >= (bx - px) * (ay - py) && (bx - px) * (cy - py) >= (cx - px) * (by - py);
}
function isValidDiagonal(a7, b5) {
return a7.next.i !== b5.i && a7.prev.i !== b5.i && !intersectsPolygon(a7, b5) && // dones't intersect other edges
(locallyInside(a7, b5) && locallyInside(b5, a7) && middleInside(a7, b5) && // locally visible
(area(a7.prev, a7, b5.prev) || area(a7, b5.prev, b5)) || // does not create opposite-facing sectors
equals(a7, b5) && area(a7.prev, a7, a7.next) > 0 && area(b5.prev, b5, b5.next) > 0);
}
function area(p5, q2, r12) {
return (q2.y - p5.y) * (r12.x - q2.x) - (q2.x - p5.x) * (r12.y - q2.y);
}
function equals(p1, p22) {
return p1.x === p22.x && p1.y === p22.y;
}
function intersects(p1, q1, p22, q2) {
var o1 = sign5(area(p1, q1, p22));
var o23 = sign5(area(p1, q1, q2));
var o33 = sign5(area(p22, q2, p1));
var o42 = sign5(area(p22, q2, q1));
if (o1 !== o23 && o33 !== o42) return true;
if (o1 === 0 && onSegment(p1, p22, q1)) return true;
if (o23 === 0 && onSegment(p1, q2, q1)) return true;
if (o33 === 0 && onSegment(p22, p1, q2)) return true;
if (o42 === 0 && onSegment(p22, q1, q2)) return true;
return false;
}
function onSegment(p5, q2, r12) {
return q2.x <= Math.max(p5.x, r12.x) && q2.x >= Math.min(p5.x, r12.x) && q2.y <= Math.max(p5.y, r12.y) && q2.y >= Math.min(p5.y, r12.y);
}
function sign5(num2) {
return num2 > 0 ? 1 : num2 < 0 ? -1 : 0;
}
function intersectsPolygon(a7, b5) {
var p5 = a7;
do {
if (p5.i !== a7.i && p5.next.i !== a7.i && p5.i !== b5.i && p5.next.i !== b5.i && intersects(p5, p5.next, a7, b5)) return true;
p5 = p5.next;
} while (p5 !== a7);
return false;
}
function locallyInside(a7, b5) {
return area(a7.prev, a7, a7.next) < 0 ? area(a7, b5, a7.next) >= 0 && area(a7, a7.prev, b5) >= 0 : area(a7, b5, a7.prev) < 0 || area(a7, a7.next, b5) < 0;
}
function middleInside(a7, b5) {
var p5 = a7, inside = false, px = (a7.x + b5.x) / 2, py = (a7.y + b5.y) / 2;
do {
if (p5.y > py !== p5.next.y > py && p5.next.y !== p5.y && px < (p5.next.x - p5.x) * (py - p5.y) / (p5.next.y - p5.y) + p5.x)
inside = !inside;
p5 = p5.next;
} while (p5 !== a7);
return inside;
}
function splitPolygon(a7, b5) {
var a22 = new Node2(a7.i, a7.x, a7.y), b22 = new Node2(b5.i, b5.x, b5.y), an = a7.next, bp = b5.prev;
a7.next = b5;
b5.prev = a7;
a22.next = an;
an.prev = a22;
b22.next = a22;
a22.prev = b22;
bp.next = b22;
b22.prev = bp;
return b22;
}
function insertNode(i11, x4, y5, last) {
var p5 = new Node2(i11, x4, y5);
if (!last) {
p5.prev = p5;
p5.next = p5;
} else {
p5.next = last.next;
p5.prev = last;
last.next.prev = p5;
last.next = p5;
}
return p5;
}
function removeNode(p5) {
p5.next.prev = p5.prev;
p5.prev.next = p5.next;
if (p5.prevZ) p5.prevZ.nextZ = p5.nextZ;
if (p5.nextZ) p5.nextZ.prevZ = p5.prevZ;
}
function Node2(i11, x4, y5) {
this.i = i11;
this.x = x4;
this.y = y5;
this.prev = null;
this.next = null;
this.z = 0;
this.prevZ = null;
this.nextZ = null;
this.steiner = false;
}
earcut.deviation = function(data2, holeIndices, dim, triangles) {
var hasHoles = holeIndices && holeIndices.length;
var outerLen = hasHoles ? holeIndices[0] * dim : data2.length;
var polygonArea = Math.abs(signedArea(data2, 0, outerLen, dim));
if (hasHoles) {
for (var i11 = 0, len = holeIndices.length; i11 < len; i11++) {
var start = holeIndices[i11] * dim;
var end = i11 < len - 1 ? holeIndices[i11 + 1] * dim : data2.length;
polygonArea -= Math.abs(signedArea(data2, start, end, dim));
}
}
var trianglesArea = 0;
for (i11 = 0; i11 < triangles.length; i11 += 3) {
var a7 = triangles[i11] * dim;
var b5 = triangles[i11 + 1] * dim;
var c8 = triangles[i11 + 2] * dim;
trianglesArea += Math.abs(
(data2[a7] - data2[c8]) * (data2[b5 + 1] - data2[a7 + 1]) - (data2[a7] - data2[b5]) * (data2[c8 + 1] - data2[a7 + 1])
);
}
return polygonArea === 0 && trianglesArea === 0 ? 0 : Math.abs((trianglesArea - polygonArea) / polygonArea);
};
function signedArea(data2, start, end, dim) {
var sum = 0;
for (var i11 = start, j4 = end - dim; i11 < end; i11 += dim) {
sum += (data2[j4] - data2[i11]) * (data2[i11 + 1] + data2[j4 + 1]);
j4 = i11;
}
return sum;
}
earcut.flatten = function(data2) {
var dim = data2[0][0].length, result = { vertices: [], holes: [], dimensions: dim }, holeIndex = 0;
for (var i11 = 0; i11 < data2.length; i11++) {
for (var j4 = 0; j4 < data2[i11].length; j4++) {
for (var d5 = 0; d5 < dim; d5++) result.vertices.push(data2[i11][j4][d5]);
}
if (i11 > 0) {
holeIndex += data2[i11 - 1].length;
result.holes.push(holeIndex);
}
}
return result;
};
}
});
// node_modules/punycode/punycode.js
var require_punycode = __commonJS({
"node_modules/punycode/punycode.js"(exports, module) {
(function(root) {
var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
var freeModule = typeof module == "object" && module && !module.nodeType && module;
var freeGlobal = typeof global == "object" && global;
if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {
root = freeGlobal;
}
var punycode, maxInt = 2147483647, base = 36, tMin = 1, tMax = 26, skew = 38, damp = 700, initialBias = 72, initialN = 128, delimiter = "-", regexPunycode = /^xn--/, regexNonASCII = /[^\x20-\x7E]/, regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, errors = {
"overflow": "Overflow: input needs wider integers to process",
"not-basic": "Illegal input >= 0x80 (not a basic code point)",
"invalid-input": "Invalid input"
}, baseMinusTMin = base - tMin, floor6 = Math.floor, stringFromCharCode = String.fromCharCode, key;
function error(type) {
throw new RangeError(errors[type]);
}
function map6(array, fn) {
var length = array.length;
var result = [];
while (length--) {
result[length] = fn(array[length]);
}
return result;
}
function mapDomain(string, fn) {
var parts = string.split("@");
var result = "";
if (parts.length > 1) {
result = parts[0] + "@";
string = parts[1];
}
string = string.replace(regexSeparators, ".");
var labels = string.split(".");
var encoded = map6(labels, fn).join(".");
return result + encoded;
}
function ucs2decode(string) {
var output = [], counter = 0, length = string.length, value, extra;
while (counter < length) {
value = string.charCodeAt(counter++);
if (value >= 55296 && value <= 56319 && counter < length) {
extra = string.charCodeAt(counter++);
if ((extra & 64512) == 56320) {
output.push(((value & 1023) << 10) + (extra & 1023) + 65536);
} else {
output.push(value);
counter--;
}
} else {
output.push(value);
}
}
return output;
}
function ucs2encode(array) {
return map6(array, function(value) {
var output = "";
if (value > 65535) {
value -= 65536;
output += stringFromCharCode(value >>> 10 & 1023 | 55296);
value = 56320 | value & 1023;
}
output += stringFromCharCode(value);
return output;
}).join("");
}
function basicToDigit(codePoint) {
if (codePoint - 48 < 10) {
return codePoint - 22;
}
if (codePoint - 65 < 26) {
return codePoint - 65;
}
if (codePoint - 97 < 26) {
return codePoint - 97;
}
return base;
}
function digitToBasic(digit, flag) {
return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
}
function adapt(delta, numPoints, firstTime) {
var k4 = 0;
delta = firstTime ? floor6(delta / damp) : delta >> 1;
delta += floor6(delta / numPoints);
for (; delta > baseMinusTMin * tMax >> 1; k4 += base) {
delta = floor6(delta / baseMinusTMin);
}
return floor6(k4 + (baseMinusTMin + 1) * delta / (delta + skew));
}
function decode(input) {
var output = [], inputLength = input.length, out, i11 = 0, n12 = initialN, bias = initialBias, basic, j4, index2, oldi, w4, k4, digit, t10, baseMinusT;
basic = input.lastIndexOf(delimiter);
if (basic < 0) {
basic = 0;
}
for (j4 = 0; j4 < basic; ++j4) {
if (input.charCodeAt(j4) >= 128) {
error("not-basic");
}
output.push(input.charCodeAt(j4));
}
for (index2 = basic > 0 ? basic + 1 : 0; index2 < inputLength; ) {
for (oldi = i11, w4 = 1, k4 = base; ; k4 += base) {
if (index2 >= inputLength) {
error("invalid-input");
}
digit = basicToDigit(input.charCodeAt(index2++));
if (digit >= base || digit > floor6((maxInt - i11) / w4)) {
error("overflow");
}
i11 += digit * w4;
t10 = k4 <= bias ? tMin : k4 >= bias + tMax ? tMax : k4 - bias;
if (digit < t10) {
break;
}
baseMinusT = base - t10;
if (w4 > floor6(maxInt / baseMinusT)) {
error("overflow");
}
w4 *= baseMinusT;
}
out = output.length + 1;
bias = adapt(i11 - oldi, out, oldi == 0);
if (floor6(i11 / out) > maxInt - n12) {
error("overflow");
}
n12 += floor6(i11 / out);
i11 %= out;
output.splice(i11++, 0, n12);
}
return ucs2encode(output);
}
function encode(input) {
var n12, delta, handledCPCount, basicLength, bias, j4, m5, q2, k4, t10, currentValue, output = [], inputLength, handledCPCountPlusOne, baseMinusT, qMinusT;
input = ucs2decode(input);
inputLength = input.length;
n12 = initialN;
delta = 0;
bias = initialBias;
for (j4 = 0; j4 < inputLength; ++j4) {
currentValue = input[j4];
if (currentValue < 128) {
output.push(stringFromCharCode(currentValue));
}
}
handledCPCount = basicLength = output.length;
if (basicLength) {
output.push(delimiter);
}
while (handledCPCount < inputLength) {
for (m5 = maxInt, j4 = 0; j4 < inputLength; ++j4) {
currentValue = input[j4];
if (currentValue >= n12 && currentValue < m5) {
m5 = currentValue;
}
}
handledCPCountPlusOne = handledCPCount + 1;
if (m5 - n12 > floor6((maxInt - delta) / handledCPCountPlusOne)) {
error("overflow");
}
delta += (m5 - n12) * handledCPCountPlusOne;
n12 = m5;
for (j4 = 0; j4 < inputLength; ++j4) {
currentValue = input[j4];
if (currentValue < n12 && ++delta > maxInt) {
error("overflow");
}
if (currentValue == n12) {
for (q2 = delta, k4 = base; ; k4 += base) {
t10 = k4 <= bias ? tMin : k4 >= bias + tMax ? tMax : k4 - bias;
if (q2 < t10) {
break;
}
qMinusT = q2 - t10;
baseMinusT = base - t10;
output.push(
stringFromCharCode(digitToBasic(t10 + qMinusT % baseMinusT, 0))
);
q2 = floor6(qMinusT / baseMinusT);
}
output.push(stringFromCharCode(digitToBasic(q2, 0)));
bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
delta = 0;
++handledCPCount;
}
}
++delta;
++n12;
}
return output.join("");
}
function toUnicode(input) {
return mapDomain(input, function(string) {
return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;
});
}
function toASCII(input) {
return mapDomain(input, function(string) {
return regexNonASCII.test(string) ? "xn--" + encode(string) : string;
});
}
punycode = {
/**
* A string representing the current Punycode.js version number.
* @memberOf punycode
* @type String
*/
"version": "1.4.1",
/**
* An object of methods to convert from JavaScript's internal character
* representation (UCS-2) to Unicode code points, and back.
* @see <https://mathiasbynens.be/notes/javascript-encoding>
* @memberOf punycode
* @type Object
*/
"ucs2": {
"decode": ucs2decode,
"encode": ucs2encode
},
"decode": decode,
"encode": encode,
"toASCII": toASCII,
"toUnicode": toUnicode
};
if (typeof define == "function" && typeof define.amd == "object" && define.amd) {
define("punycode", function() {
return punycode;
});
} else if (freeExports && freeModule) {
if (module.exports == freeExports) {
freeModule.exports = punycode;
} else {
for (key in punycode) {
punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
}
}
} else {
root.punycode = punycode;
}
})(exports);
}
});
// node_modules/es-errors/index.js
var require_es_errors = __commonJS({
"node_modules/es-errors/index.js"(exports, module) {
"use strict";
module.exports = Error;
}
});
// node_modules/es-errors/eval.js
var require_eval = __commonJS({
"node_modules/es-errors/eval.js"(exports, module) {
"use strict";
module.exports = EvalError;
}
});
// node_modules/es-errors/range.js
var require_range = __commonJS({
"node_modules/es-errors/range.js"(exports, module) {
"use strict";
module.exports = RangeError;
}
});
// node_modules/es-errors/ref.js
var require_ref = __commonJS({
"node_modules/es-errors/ref.js"(exports, module) {
"use strict";
module.exports = ReferenceError;
}
});
// node_modules/es-errors/syntax.js
var require_syntax = __commonJS({
"node_modules/es-errors/syntax.js"(exports, module) {
"use strict";
module.exports = SyntaxError;
}
});
// node_modules/es-errors/type.js
var require_type = __commonJS({
"node_modules/es-errors/type.js"(exports, module) {
"use strict";
module.exports = TypeError;
}
});
// node_modules/es-errors/uri.js
var require_uri = __commonJS({
"node_modules/es-errors/uri.js"(exports, module) {
"use strict";
module.exports = URIError;
}
});
// node_modules/has-symbols/shams.js
var require_shams = __commonJS({
"node_modules/has-symbols/shams.js"(exports, module) {
"use strict";
module.exports = function hasSymbols() {
if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
return false;
}
if (typeof Symbol.iterator === "symbol") {
return true;
}
var obj = {};
var sym = Symbol("test");
var symObj = Object(sym);
if (typeof sym === "string") {
return false;
}
if (Object.prototype.toString.call(sym) !== "[object Symbol]") {
return false;
}
if (Object.prototype.toString.call(symObj) !== "[object Symbol]") {
return false;
}
var symVal = 42;
obj[sym] = symVal;
for (sym in obj) {
return false;
}
if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) {
return false;
}
if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) {
return false;
}
var syms = Object.getOwnPropertySymbols(obj);
if (syms.length !== 1 || syms[0] !== sym) {
return false;
}
if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {
return false;
}
if (typeof Object.getOwnPropertyDescriptor === "function") {
var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
if (descriptor.value !== symVal || descriptor.enumerable !== true) {
return false;
}
}
return true;
};
}
});
// node_modules/has-symbols/index.js
var require_has_symbols = __commonJS({
"node_modules/has-symbols/index.js"(exports, module) {
"use strict";
var origSymbol = typeof Symbol !== "undefined" && Symbol;
var hasSymbolSham = require_shams();
module.exports = function hasNativeSymbols() {
if (typeof origSymbol !== "function") {
return false;
}
if (typeof Symbol !== "function") {
return false;
}
if (typeof origSymbol("foo") !== "symbol") {
return false;
}
if (typeof Symbol("bar") !== "symbol") {
return false;
}
return hasSymbolSham();
};
}
});
// node_modules/has-proto/index.js
var require_has_proto = __commonJS({
"node_modules/has-proto/index.js"(exports, module) {
"use strict";
var test = {
__proto__: null,
foo: {}
};
var $Object = Object;
module.exports = function hasProto() {
return { __proto__: test }.foo === test.foo && !(test instanceof $Object);
};
}
});
// node_modules/function-bind/implementation.js
var require_implementation = __commonJS({
"node_modules/function-bind/implementation.js"(exports, module) {
"use strict";
var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
var toStr = Object.prototype.toString;
var max6 = Math.max;
var funcType = "[object Function]";
var concatty = function concatty2(a7, b5) {
var arr = [];
for (var i11 = 0; i11 < a7.length; i11 += 1) {
arr[i11] = a7[i11];
}
for (var j4 = 0; j4 < b5.length; j4 += 1) {
arr[j4 + a7.length] = b5[j4];
}
return arr;
};
var slicy = function slicy2(arrLike, offset3) {
var arr = [];
for (var i11 = offset3 || 0, j4 = 0; i11 < arrLike.length; i11 += 1, j4 += 1) {
arr[j4] = arrLike[i11];
}
return arr;
};
var joiny = function(arr, joiner) {
var str = "";
for (var i11 = 0; i11 < arr.length; i11 += 1) {
str += arr[i11];
if (i11 + 1 < arr.length) {
str += joiner;
}
}
return str;
};
module.exports = function bind(that) {
var target = this;
if (typeof target !== "function" || toStr.apply(target) !== funcType) {
throw new TypeError(ERROR_MESSAGE + target);
}
var args = slicy(arguments, 1);
var bound;
var binder = function() {
if (this instanceof bound) {
var result = target.apply(
this,
concatty(args, arguments)
);
if (Object(result) === result) {
return result;
}
return this;
}
return target.apply(
that,
concatty(args, arguments)
);
};
var boundLength = max6(0, target.length - args.length);
var boundArgs = [];
for (var i11 = 0; i11 < boundLength; i11++) {
boundArgs[i11] = "$" + i11;
}
bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
if (target.prototype) {
var Empty = function Empty2() {
};
Empty.prototype = target.prototype;
bound.prototype = new Empty();
Empty.prototype = null;
}
return bound;
};
}
});
// node_modules/function-bind/index.js
var require_function_bind = __commonJS({
"node_modules/function-bind/index.js"(exports, module) {
"use strict";
var implementation = require_implementation();
module.exports = Function.prototype.bind || implementation;
}
});
// node_modules/hasown/index.js
var require_hasown = __commonJS({
"node_modules/hasown/index.js"(exports, module) {
"use strict";
var call = Function.prototype.call;
var $hasOwn = Object.prototype.hasOwnProperty;
var bind = require_function_bind();
module.exports = bind.call(call, $hasOwn);
}
});
// node_modules/get-intrinsic/index.js
var require_get_intrinsic = __commonJS({
"node_modules/get-intrinsic/index.js"(exports, module) {
"use strict";
var undefined2;
var $Error = require_es_errors();
var $EvalError = require_eval();
var $RangeError = require_range();
var $ReferenceError = require_ref();
var $SyntaxError = require_syntax();
var $TypeError = require_type();
var $URIError = require_uri();
var $Function = Function;
var getEvalledConstructor = function(expressionSyntax) {
try {
return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
} catch (e15) {
}
};
var $gOPD = Object.getOwnPropertyDescriptor;
if ($gOPD) {
try {
$gOPD({}, "");
} catch (e15) {
$gOPD = null;
}
}
var throwTypeError = function() {
throw new $TypeError();
};
var ThrowTypeError = $gOPD ? function() {
try {
arguments.callee;
return throwTypeError;
} catch (calleeThrows) {
try {
return $gOPD(arguments, "callee").get;
} catch (gOPDthrows) {
return throwTypeError;
}
}
}() : throwTypeError;
var hasSymbols = require_has_symbols()();
var hasProto = require_has_proto()();
var getProto = Object.getPrototypeOf || (hasProto ? function(x4) {
return x4.__proto__;
} : null);
var needsEval = {};
var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array);
var INTRINSICS = {
__proto__: null,
"%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError,
"%Array%": Array,
"%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer,
"%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,
"%AsyncFromSyncIteratorPrototype%": undefined2,
"%AsyncFunction%": needsEval,
"%AsyncGenerator%": needsEval,
"%AsyncGeneratorFunction%": needsEval,
"%AsyncIteratorPrototype%": needsEval,
"%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics,
"%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt,
"%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array,
"%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array,
"%Boolean%": Boolean,
"%DataView%": typeof DataView === "undefined" ? undefined2 : DataView,
"%Date%": Date,
"%decodeURI%": decodeURI,
"%decodeURIComponent%": decodeURIComponent,
"%encodeURI%": encodeURI,
"%encodeURIComponent%": encodeURIComponent,
"%Error%": $Error,
"%eval%": eval,
// eslint-disable-line no-eval
"%EvalError%": $EvalError,
"%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array,
"%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array,
"%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry,
"%Function%": $Function,
"%GeneratorFunction%": needsEval,
"%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array,
"%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array,
"%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array,
"%isFinite%": isFinite,
"%isNaN%": isNaN,
"%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,
"%JSON%": typeof JSON === "object" ? JSON : undefined2,
"%Map%": typeof Map === "undefined" ? undefined2 : Map,
"%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),
"%Math%": Math,
"%Number%": Number,
"%Object%": Object,
"%parseFloat%": parseFloat,
"%parseInt%": parseInt,
"%Promise%": typeof Promise === "undefined" ? undefined2 : Promise,
"%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy,
"%RangeError%": $RangeError,
"%ReferenceError%": $ReferenceError,
"%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect,
"%RegExp%": RegExp,
"%Set%": typeof Set === "undefined" ? undefined2 : Set,
"%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),
"%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer,
"%String%": String,
"%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2,
"%Symbol%": hasSymbols ? Symbol :