diff --git a/Makefile b/Makefile index 319f6374..ccac0094 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ .PHONY: publish test coveralls lint zero coverage codespell -VERSION=1.0.0-beta.19 +VERSION=1.0.0-beta.20 VERSION_DASH=`echo -n "1.0.0-beta.19" | sed "s/-/%E2%80%93/"` BRANCH=`git branch | grep '^*' | sed 's/* //'` DATE=`date -uR` diff --git a/README.md b/README.md index 55cef293..a2b962bd 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@

- LIPS - Scheme Based Powerful Lisp Language

[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/lips_lang)](https://twitter.com/lips_lang) [![npm](https://img.shields.io/badge/npm-1.0.0%E2%80%93beta.19-blue.svg)](https://www.npmjs.com/package/@jcubic/lips) ![1.0.0 Complete](https://img.shields.io/github/milestones/progress-percent/jcubic/lips/1?label=1.0.0%20Complete) -[![Build and test](https://github.com/jcubic/lips/actions/workflows/build.yaml/badge.svg?branch=devel&event=push)](https://github.com/jcubic/lips/actions/workflows/build.yaml) -[![Coverage Status](https://coveralls.io/repos/github/jcubic/lips/badge.svg?branch=devel&d99e59bdd4421bb215d5bb781449d63f)](https://coveralls.io/github/jcubic/lips?branch=devel) +[![Build and test](https://github.com/jcubic/lips/actions/workflows/build.yaml/badge.svg?branch=master&event=push)](https://github.com/jcubic/lips/actions/workflows/build.yaml) +[![Coverage Status](https://coveralls.io/repos/github/jcubic/lips/badge.svg?branch=master&dd93e2ed5fe4147ff629f2673e56de90)](https://coveralls.io/github/jcubic/lips?branch=master) [![Join Gitter Chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/jcubic/lips) ![NPM Download Count](https://img.shields.io/npm/dm/@jcubic/lips) ![JSDelivr Download count](https://img.shields.io/jsdelivr/npm/hm/@jcubic/lips) @@ -162,7 +162,7 @@ npm install -g @jcubic/lips@beta you can run the interpreter from the terminal: -![LIPS: Scheme interactive terminal](https://github.com/jcubic/lips/blob/devel/assets/screencast.gif?raw=true) +![LIPS: Scheme interactive terminal](https://github.com/jcubic/lips/blob/master/assets/screencast.gif?raw=true) You can also run code in a string with: @@ -201,7 +201,7 @@ Executables also return a S-Expression according to SRFI-176 use `lips --version ## FOSDEM'23 Presentation [Video] -[![FOSDEM 2023 - LIPS Scheme: Powerful introspection and extensibility](https://github.com/jcubic/lips/blob/devel/assets/fosdem-intro.png?raw=true)](https://fosdem.org/2023/schedule/event/lipsscheme/) +[![FOSDEM 2023 - LIPS Scheme: Powerful introspection and extensibility](https://github.com/jcubic/lips/blob/master/assets/fosdem-intro.png?raw=true)](https://fosdem.org/2023/schedule/event/lipsscheme/) ## Limitations @@ -210,7 +210,7 @@ Because LIPS is tree walking interpreter, sometimes it may be slow. Especially i process long arrays and use callback function. If the array is quite large each piece of code inside the callback may slow down the processing. For example see: -script [reference.scm](https://github.com/jcubic/lips/blob/devel/scripts/reference.scm) +script [reference.scm](https://github.com/jcubic/lips/blob/master/scripts/reference.scm) That generates reference documentation for all builtin functions and macros. The slow part is `(names.sort name-compare)` (`Array::sort`) that take quite time to calculate, diff --git a/dist/lips.cjs b/dist/lips.cjs index e64df137..b1345ffd 100644 --- a/dist/lips.cjs +++ b/dist/lips.cjs @@ -4,7 +4,7 @@ * | | \ \ | | | || . \/ __> | | * | | > \ | |_ | || _/\__ \ | | * | | / ^ \ |___||_||_| <___/ | | - * \_\ /_/ \_\ /_/ v. DEV + * \_\ /_/ \_\ /_/ v. 1.0.0-beta.20 * * LIPS is Pretty Simple - Scheme based Powerful LISP in JavaScript * @@ -31,63 +31,12 @@ * Copyright (c) 2014-present, Facebook, Inc. * released under MIT license * - * build: Fri, 08 Nov 2024 13:26:12 +0000 + * build: Fri, 08 Nov 2024 13:38:41 +0000 */ 'use strict'; var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null; -function _classApplyDescriptorGet(receiver, descriptor) { - if (descriptor.get) { - return descriptor.get.call(receiver); - } - return descriptor.value; -} - -function _classExtractFieldDescriptor(receiver, privateMap, action) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to " + action + " private field on non-instance"); - } - return privateMap.get(receiver); -} - -function _classPrivateFieldGet(receiver, privateMap) { - var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); - return _classApplyDescriptorGet(receiver, descriptor); -} - -function _classApplyDescriptorSet(receiver, descriptor, value) { - if (descriptor.set) { - descriptor.set.call(receiver, value); - } else { - if (!descriptor.writable) { - throw new TypeError("attempted to set read only private field"); - } - descriptor.value = value; - } -} - -function _classPrivateFieldSet(receiver, privateMap, value) { - var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); - _classApplyDescriptorSet(receiver, descriptor, value); - return value; -} - -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; -} - -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return _setPrototypeOf(o, p); -} - function _isNativeReflectConstruct$1() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); @@ -97,6 +46,12 @@ function _isNativeReflectConstruct$1() { })(); } +function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t; + }, _setPrototypeOf(t, e); +} + function _construct(t, e, r) { if (_isNativeReflectConstruct$1()) return Reflect.construct.apply(null, arguments); var o = [null]; @@ -105,39 +60,38 @@ function _construct(t, e, r) { return r && _setPrototypeOf(p, r.prototype), p; } -function _readOnlyError(name) { - throw new TypeError("\"" + name + "\" is read-only"); +function _readOnlyError(r) { + throw new TypeError('"' + r + '" is read-only'); } -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; +function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; } -function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayLikeToArray$1(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; +function _arrayLikeToArray$1(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; } -function _unsupportedIterableToArray$1(o, minLen) { - if (!o) return; - if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); +function _unsupportedIterableToArray$1(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray$1(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; + } } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _toArray(arr) { - return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableRest(); +function _toArray(r) { + return _arrayWithHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$1(r) || _nonIterableRest(); } function _typeof$1(o) { @@ -150,109 +104,95 @@ function _typeof$1(o) { }, _typeof$1(o); } -function _possibleConstructorReturn(self, call) { - if (call && (_typeof$1(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return _assertThisInitialized(self); +function _assertThisInitialized(e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e; } -function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); +function _possibleConstructorReturn(t, e) { + if (e && ("object" == _typeof$1(e) || "function" == typeof e)) return e; + if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); + return _assertThisInitialized(t); } -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { +function _getPrototypeOf(t) { + return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { + return t.__proto__ || Object.getPrototypeOf(t); + }, _getPrototypeOf(t); +} + +function _inherits(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); + t.prototype = Object.create(e && e.prototype, { constructor: { - value: subClass, - writable: true, - configurable: true + value: t, + writable: !0, + configurable: !0 } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) _setPrototypeOf(subClass, superClass); + }), Object.defineProperty(t, "prototype", { + writable: !1 + }), e && _setPrototypeOf(t, e); } -function _isNativeFunction(fn) { +function _isNativeFunction(t) { try { - return Function.toString.call(fn).indexOf("[native code]") !== -1; - } catch (e) { - return typeof fn === "function"; + return -1 !== Function.toString.call(t).indexOf("[native code]"); + } catch (n) { + return "function" == typeof t; } } -function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !_isNativeFunction(Class)) return Class; - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - _cache.set(Class, Wrapper); +function _wrapNativeSuper(t) { + var r = "function" == typeof Map ? new Map() : void 0; + return _wrapNativeSuper = function _wrapNativeSuper(t) { + if (null === t || !_isNativeFunction(t)) return t; + if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== r) { + if (r.has(t)) return r.get(t); + r.set(t, Wrapper); } function Wrapper() { - return _construct(Class, arguments, _getPrototypeOf(this).constructor); + return _construct(t, arguments, _getPrototypeOf(this).constructor); } - Wrapper.prototype = Object.create(Class.prototype, { + return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, - enumerable: false, - writable: true, - configurable: true + enumerable: !1, + writable: !0, + configurable: !0 } - }); - return _setPrototypeOf(Wrapper, Class); - }; - return _wrapNativeSuper(Class); + }), _setPrototypeOf(Wrapper, t); + }, _wrapNativeSuper(t); } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); + var i = n[a](c), + u = i.value; + } catch (n) { + return void e(n); } + i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(fn) { +function _asyncToGenerator(n) { return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + var t = this, + e = arguments; + return new Promise(function (r, o) { + var a = n.apply(t, e); + function _next(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + function _throw(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } - _next(undefined); + _next(void 0); }); }; } -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } +function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function toPrimitive(t, r) { @@ -268,69 +208,50 @@ function toPrimitive(t, r) { function toPropertyKey(t) { var i = toPrimitive(t, "string"); - return "symbol" == _typeof$1(i) ? i : String(i); + return "symbol" == _typeof$1(i) ? i : i + ""; } -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor); - } -} -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; +function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o); + } +} +function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", { + writable: !1 + }), e; } -function _defineProperty(obj, key, value) { - key = toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; +function _defineProperty(e, r, t) { + return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; } -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - return target; +function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (e.includes(n)) continue; + t[n] = r[n]; + } + return t; } -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = _objectWithoutPropertiesLoose(source, excluded); - var key, i; +function _objectWithoutProperties(e, t) { + if (null == e) return {}; + var o, + r, + i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } + var s = Object.getOwnPropertySymbols(e); + for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } - return target; + return i; } function _iterableToArrayLimit(r, l) { @@ -361,30 +282,35 @@ function _iterableToArrayLimit(r, l) { } } -function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest(); +function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray$1(r, e) || _nonIterableRest(); } -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); +function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return _arrayLikeToArray$1(r); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread(); +function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$1(r) || _nonIterableSpread(); } -function _OverloadYield(t, e) { - this.v = t, this.k = e; +function _OverloadYield(e, d) { + this.v = e, this.k = d; } function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); } +function _wrapAsyncGenerator(e) { + return function () { + return new AsyncGenerator(e.apply(this, arguments)); + }; +} function AsyncGenerator(e) { var r, t; function resume(r, t) { @@ -448,12 +374,6 @@ AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || return this._invoke("return", e); }; -function _wrapAsyncGenerator(fn) { - return function () { - return new AsyncGenerator(fn.apply(this, arguments)); - }; -} - function getDefaultExportFromCjs (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; } @@ -462,346 +382,365 @@ var regeneratorRuntime$1 = {exports: {}}; var _typeof = {exports: {}}; -(function (module) { - function _typeof(o) { - "@babel/helpers - typeof"; +var hasRequired_typeof; - return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); - } - module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; -} (_typeof)); +function require_typeof () { + if (hasRequired_typeof) return _typeof.exports; + hasRequired_typeof = 1; + (function (module) { + function _typeof(o) { + "@babel/helpers - typeof"; -var _typeofExports = _typeof.exports; + return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); + } + module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (_typeof)); + return _typeof.exports; +} -(function (module) { - var _typeof = _typeofExports["default"]; - function _regeneratorRuntime() { - module.exports = _regeneratorRuntime = function _regeneratorRuntime() { - return e; - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - var t, - e = {}, - r = Object.prototype, - n = r.hasOwnProperty, - o = Object.defineProperty || function (t, e, r) { - t[e] = r.value; - }, - i = "function" == typeof Symbol ? Symbol : {}, - a = i.iterator || "@@iterator", - c = i.asyncIterator || "@@asyncIterator", - u = i.toStringTag || "@@toStringTag"; - function define(t, e, r) { - return Object.defineProperty(t, e, { - value: r, - enumerable: !0, - configurable: !0, - writable: !0 - }), t[e]; - } - try { - define({}, ""); - } catch (t) { - define = function define(t, e, r) { - return t[e] = r; - }; - } - function wrap(t, e, r, n) { - var i = e && e.prototype instanceof Generator ? e : Generator, - a = Object.create(i.prototype), - c = new Context(n || []); - return o(a, "_invoke", { - value: makeInvokeMethod(t, r, c) - }), a; - } - function tryCatch(t, e, r) { - try { - return { - type: "normal", - arg: t.call(e, r) - }; - } catch (t) { - return { - type: "throw", - arg: t - }; - } - } - e.wrap = wrap; - var h = "suspendedStart", - l = "suspendedYield", - f = "executing", - s = "completed", - y = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var p = {}; - define(p, a, function () { - return this; - }); - var d = Object.getPrototypeOf, - v = d && d(d(values([]))); - v && v !== r && n.call(v, a) && (p = v); - var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); - function defineIteratorMethods(t) { - ["next", "throw", "return"].forEach(function (e) { - define(t, e, function (t) { - return this._invoke(e, t); - }); - }); - } - function AsyncIterator(t, e) { - function invoke(r, o, i, a) { - var c = tryCatch(t[r], t, o); - if ("throw" !== c.type) { - var u = c.arg, - h = u.value; - return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { - invoke("next", t, i, a); - }, function (t) { - invoke("throw", t, i, a); - }) : e.resolve(h).then(function (t) { - u.value = t, i(u); - }, function (t) { - return invoke("throw", t, i, a); - }); - } - a(c.arg); - } - var r; - o(this, "_invoke", { - value: function value(t, n) { - function callInvokeWithMethodAndArg() { - return new e(function (e, r) { - invoke(t, n, e, r); - }); - } - return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(e, r, n) { - var o = h; - return function (i, a) { - if (o === f) throw new Error("Generator is already running"); - if (o === s) { - if ("throw" === i) throw a; - return { - value: t, - done: !0 - }; - } - for (n.method = i, n.arg = a;;) { - var c = n.delegate; - if (c) { - var u = maybeInvokeDelegate(c, n); - if (u) { - if (u === y) continue; - return u; - } - } - if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { - if (o === h) throw o = s, n.arg; - n.dispatchException(n.arg); - } else "return" === n.method && n.abrupt("return", n.arg); - o = f; - var p = tryCatch(e, r, n); - if ("normal" === p.type) { - if (o = n.done ? s : l, p.arg === y) continue; - return { - value: p.arg, - done: n.done - }; - } - "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); - } - }; - } - function maybeInvokeDelegate(e, r) { - var n = r.method, - o = e.iterator[n]; - if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; - var i = tryCatch(o, e.iterator, r.arg); - if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; - var a = i.arg; - return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); - } - function pushTryEntry(t) { - var e = { - tryLoc: t[0] - }; - 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); - } - function resetTryEntry(t) { - var e = t.completion || {}; - e.type = "normal", delete e.arg, t.completion = e; - } - function Context(t) { - this.tryEntries = [{ - tryLoc: "root" - }], t.forEach(pushTryEntry, this), this.reset(!0); - } - function values(e) { - if (e || "" === e) { - var r = e[a]; - if (r) return r.call(e); - if ("function" == typeof e.next) return e; - if (!isNaN(e.length)) { - var o = -1, - i = function next() { - for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; - return next.value = t, next.done = !0, next; - }; - return i.next = i; - } - } - throw new TypeError(_typeof(e) + " is not iterable"); - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), o(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { - var e = "function" == typeof t && t.constructor; - return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); - }, e.mark = function (t) { - return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; - }, e.awrap = function (t) { - return { - __await: t - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { - return this; - }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { - void 0 === i && (i = Promise); - var a = new AsyncIterator(wrap(t, r, n, o), i); - return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { - return t.done ? t.value : a.next(); - }); - }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { - return this; - }), define(g, "toString", function () { - return "[object Generator]"; - }), e.keys = function (t) { - var e = Object(t), - r = []; - for (var n in e) r.push(n); - return r.reverse(), function next() { - for (; r.length;) { - var t = r.pop(); - if (t in e) return next.value = t, next.done = !1, next; - } - return next.done = !0, next; - }; - }, e.values = values, Context.prototype = { - constructor: Context, - reset: function reset(e) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); - }, - stop: function stop() { - this.done = !0; - var t = this.tryEntries[0].completion; - if ("throw" === t.type) throw t.arg; - return this.rval; - }, - dispatchException: function dispatchException(e) { - if (this.done) throw e; - var r = this; - function handle(n, o) { - return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; - } - for (var o = this.tryEntries.length - 1; o >= 0; --o) { - var i = this.tryEntries[o], - a = i.completion; - if ("root" === i.tryLoc) return handle("end"); - if (i.tryLoc <= this.prev) { - var c = n.call(i, "catchLoc"), - u = n.call(i, "finallyLoc"); - if (c && u) { - if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); - if (this.prev < i.finallyLoc) return handle(i.finallyLoc); - } else if (c) { - if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); - } else { - if (!u) throw new Error("try statement without catch or finally"); - if (this.prev < i.finallyLoc) return handle(i.finallyLoc); - } - } - } - }, - abrupt: function abrupt(t, e) { - for (var r = this.tryEntries.length - 1; r >= 0; --r) { - var o = this.tryEntries[r]; - if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { - var i = o; - break; - } - } - i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); - var a = i ? i.completion : {}; - return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); - }, - complete: function complete(t, e) { - if ("throw" === t.type) throw t.arg; - return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; - }, - finish: function finish(t) { - for (var e = this.tryEntries.length - 1; e >= 0; --e) { - var r = this.tryEntries[e]; - if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; - } - }, - "catch": function _catch(t) { - for (var e = this.tryEntries.length - 1; e >= 0; --e) { - var r = this.tryEntries[e]; - if (r.tryLoc === t) { - var n = r.completion; - if ("throw" === n.type) { - var o = n.arg; - resetTryEntry(r); - } - return o; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(e, r, n) { - return this.delegate = { - iterator: values(e), - resultName: r, - nextLoc: n - }, "next" === this.method && (this.arg = t), y; - } - }, e; - } - module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; -} (regeneratorRuntime$1)); +var hasRequiredRegeneratorRuntime; + +function requireRegeneratorRuntime () { + if (hasRequiredRegeneratorRuntime) return regeneratorRuntime$1.exports; + hasRequiredRegeneratorRuntime = 1; + (function (module) { + var _typeof = require_typeof()["default"]; + function _regeneratorRuntime() { + module.exports = _regeneratorRuntime = function _regeneratorRuntime() { + return e; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + var t, + e = {}, + r = Object.prototype, + n = r.hasOwnProperty, + o = Object.defineProperty || function (t, e, r) { + t[e] = r.value; + }, + i = "function" == typeof Symbol ? Symbol : {}, + a = i.iterator || "@@iterator", + c = i.asyncIterator || "@@asyncIterator", + u = i.toStringTag || "@@toStringTag"; + function define(t, e, r) { + return Object.defineProperty(t, e, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }), t[e]; + } + try { + define({}, ""); + } catch (t) { + define = function define(t, e, r) { + return t[e] = r; + }; + } + function wrap(t, e, r, n) { + var i = e && e.prototype instanceof Generator ? e : Generator, + a = Object.create(i.prototype), + c = new Context(n || []); + return o(a, "_invoke", { + value: makeInvokeMethod(t, r, c) + }), a; + } + function tryCatch(t, e, r) { + try { + return { + type: "normal", + arg: t.call(e, r) + }; + } catch (t) { + return { + type: "throw", + arg: t + }; + } + } + e.wrap = wrap; + var h = "suspendedStart", + l = "suspendedYield", + f = "executing", + s = "completed", + y = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var p = {}; + define(p, a, function () { + return this; + }); + var d = Object.getPrototypeOf, + v = d && d(d(values([]))); + v && v !== r && n.call(v, a) && (p = v); + var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); + function defineIteratorMethods(t) { + ["next", "throw", "return"].forEach(function (e) { + define(t, e, function (t) { + return this._invoke(e, t); + }); + }); + } + function AsyncIterator(t, e) { + function invoke(r, o, i, a) { + var c = tryCatch(t[r], t, o); + if ("throw" !== c.type) { + var u = c.arg, + h = u.value; + return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { + invoke("next", t, i, a); + }, function (t) { + invoke("throw", t, i, a); + }) : e.resolve(h).then(function (t) { + u.value = t, i(u); + }, function (t) { + return invoke("throw", t, i, a); + }); + } + a(c.arg); + } + var r; + o(this, "_invoke", { + value: function value(t, n) { + function callInvokeWithMethodAndArg() { + return new e(function (e, r) { + invoke(t, n, e, r); + }); + } + return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(e, r, n) { + var o = h; + return function (i, a) { + if (o === f) throw Error("Generator is already running"); + if (o === s) { + if ("throw" === i) throw a; + return { + value: t, + done: !0 + }; + } + for (n.method = i, n.arg = a;;) { + var c = n.delegate; + if (c) { + var u = maybeInvokeDelegate(c, n); + if (u) { + if (u === y) continue; + return u; + } + } + if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { + if (o === h) throw o = s, n.arg; + n.dispatchException(n.arg); + } else "return" === n.method && n.abrupt("return", n.arg); + o = f; + var p = tryCatch(e, r, n); + if ("normal" === p.type) { + if (o = n.done ? s : l, p.arg === y) continue; + return { + value: p.arg, + done: n.done + }; + } + "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); + } + }; + } + function maybeInvokeDelegate(e, r) { + var n = r.method, + o = e.iterator[n]; + if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; + var i = tryCatch(o, e.iterator, r.arg); + if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; + var a = i.arg; + return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); + } + function pushTryEntry(t) { + var e = { + tryLoc: t[0] + }; + 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); + } + function resetTryEntry(t) { + var e = t.completion || {}; + e.type = "normal", delete e.arg, t.completion = e; + } + function Context(t) { + this.tryEntries = [{ + tryLoc: "root" + }], t.forEach(pushTryEntry, this), this.reset(!0); + } + function values(e) { + if (e || "" === e) { + var r = e[a]; + if (r) return r.call(e); + if ("function" == typeof e.next) return e; + if (!isNaN(e.length)) { + var o = -1, + i = function next() { + for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; + return next.value = t, next.done = !0, next; + }; + return i.next = i; + } + } + throw new TypeError(_typeof(e) + " is not iterable"); + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), o(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { + var e = "function" == typeof t && t.constructor; + return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); + }, e.mark = function (t) { + return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; + }, e.awrap = function (t) { + return { + __await: t + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { + return this; + }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { + void 0 === i && (i = Promise); + var a = new AsyncIterator(wrap(t, r, n, o), i); + return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { + return t.done ? t.value : a.next(); + }); + }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { + return this; + }), define(g, "toString", function () { + return "[object Generator]"; + }), e.keys = function (t) { + var e = Object(t), + r = []; + for (var n in e) r.push(n); + return r.reverse(), function next() { + for (; r.length;) { + var t = r.pop(); + if (t in e) return next.value = t, next.done = !1, next; + } + return next.done = !0, next; + }; + }, e.values = values, Context.prototype = { + constructor: Context, + reset: function reset(e) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); + }, + stop: function stop() { + this.done = !0; + var t = this.tryEntries[0].completion; + if ("throw" === t.type) throw t.arg; + return this.rval; + }, + dispatchException: function dispatchException(e) { + if (this.done) throw e; + var r = this; + function handle(n, o) { + return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; + } + for (var o = this.tryEntries.length - 1; o >= 0; --o) { + var i = this.tryEntries[o], + a = i.completion; + if ("root" === i.tryLoc) return handle("end"); + if (i.tryLoc <= this.prev) { + var c = n.call(i, "catchLoc"), + u = n.call(i, "finallyLoc"); + if (c && u) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } else if (c) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + } else { + if (!u) throw Error("try statement without catch or finally"); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } + } + } + }, + abrupt: function abrupt(t, e) { + for (var r = this.tryEntries.length - 1; r >= 0; --r) { + var o = this.tryEntries[r]; + if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { + var i = o; + break; + } + } + i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); + var a = i ? i.completion : {}; + return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); + }, + complete: function complete(t, e) { + if ("throw" === t.type) throw t.arg; + return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; + }, + finish: function finish(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; + } + }, + "catch": function _catch(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.tryLoc === t) { + var n = r.completion; + if ("throw" === n.type) { + var o = n.arg; + resetTryEntry(r); + } + return o; + } + } + throw Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(e, r, n) { + return this.delegate = { + iterator: values(e), + resultName: r, + nextLoc: n + }, "next" === this.method && (this.arg = t), y; + } + }, e; + } + module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (regeneratorRuntime$1)); + return regeneratorRuntime$1.exports; +} -var regeneratorRuntimeExports = regeneratorRuntime$1.exports; +var regenerator; +var hasRequiredRegenerator; -// TODO(Babel 8): Remove this file. +function requireRegenerator () { + if (hasRequiredRegenerator) return regenerator; + hasRequiredRegenerator = 1; + // TODO(Babel 8): Remove this file. -var runtime = regeneratorRuntimeExports(); -var regenerator = runtime; + var runtime = requireRegeneratorRuntime()(); + regenerator = runtime; -// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - if (typeof globalThis === "object") { - globalThis.regeneratorRuntime = runtime; - } else { - Function("r", "regeneratorRuntime = r")(runtime); - } + // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= + try { + regeneratorRuntime = runtime; + } catch (accidentalStrictMode) { + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); + } + } + return regenerator; } -var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator); +var regeneratorExports = requireRegenerator(); +var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regeneratorExports); let decoder; try { @@ -816,6 +755,9 @@ const RECORD_INLINE_ID = 0xdfff; // temporary first-come first-serve tag // prop const BUNDLED_STRINGS_ID = 0xdff9; const PACKED_REFERENCE_TAG_ID = 6; const STOP_CODE = {}; +let maxArraySize = 112810000; // This is the maximum array size in V8. We would potentially detect and set it higher +// for JSC, but this is pretty large and should be sufficient for most use cases +let maxMapSize = 16810000; // JavaScript has a fixed maximum map size of about 16710000, but JS itself enforces this, let currentDecoder = {}; let currentStructures; let srcString; @@ -1088,6 +1030,7 @@ function read() { let array = []; let value, i = 0; while ((value = read()) != STOP_CODE) { + if (i >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`) array[i++] = value; } return majorType == 4 ? array : majorType == 3 ? array.join('') : Buffer.concat(array) @@ -1095,8 +1038,19 @@ function read() { let key; if (currentDecoder.mapsAsObjects) { let object = {}; - if (currentDecoder.keyMap) while((key = read()) != STOP_CODE) object[safeKey(currentDecoder.decodeKey(key))] = read(); - else while ((key = read()) != STOP_CODE) object[safeKey(key)] = read(); + let i = 0; + if (currentDecoder.keyMap) { + while((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`) + object[safeKey(currentDecoder.decodeKey(key))] = read(); + } + } + else { + while ((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`) + object[safeKey(key)] = read(); + } + } return object } else { if (restoreMapsAsObject) { @@ -1104,8 +1058,24 @@ function read() { restoreMapsAsObject = false; } let map = new Map(); - if (currentDecoder.keyMap) while((key = read()) != STOP_CODE) map.set(currentDecoder.decodeKey(key), read()); - else while ((key = read()) != STOP_CODE) map.set(key, read()); + if (currentDecoder.keyMap) { + let i = 0; + while((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) { + throw new Error(`Map size exceeds ${maxMapSize}`); + } + map.set(currentDecoder.decodeKey(key), read()); + } + } + else { + let i = 0; + while ((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) { + throw new Error(`Map size exceeds ${maxMapSize}`); + } + map.set(key, read()); + } + } return map } case 7: @@ -1136,12 +1106,14 @@ function read() { } return readFixedString(token) case 4: // array + if (token >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`) let array = new Array(token); //if (currentDecoder.keyMap) for (let i = 0; i < token; i++) array[i] = currentDecoder.decodeKey(read()) //else for (let i = 0; i < token; i++) array[i] = read(); return array case 5: // map + if (token >= maxMapSize) throw new Error(`Map size exceeds ${maxArraySize}`) if (currentDecoder.mapsAsObjects) { let object = {}; if (currentDecoder.keyMap) for (let i = 0; i < token; i++) object[safeKey(currentDecoder.decodeKey(read()))] = read(); @@ -1243,6 +1215,7 @@ function read() { } const validName = /^[a-zA-Z_$][a-zA-Z\d_$]*$/; function createStructureReader(structure) { + if (!structure) throw new Error('Structure is required in record definition'); function readObject() { // get the array size from the header let length = src[position$1++]; @@ -1298,7 +1271,8 @@ function createStructureReader(structure) { function safeKey(key) { // protect against prototype pollution if (typeof key === 'string') return key === '__proto__' ? '__proto_' : key - if (typeof key !== 'object') return key.toString() + if (typeof key === 'number' || typeof key === 'boolean' || typeof key === 'bigint') return key.toString(); + if (key == null) return key + ''; // protect against expensive (DoS) string conversions throw new Error('Invalid property name type ' + typeof key); } @@ -1566,7 +1540,7 @@ currentExtensions[2] = (buffer) => { // bigint extension let value = BigInt(0); for (let i = 0, l = buffer.byteLength; i < l; i++) { - value = BigInt(buffer[i]) + value << BigInt(8); + value = BigInt(buffer[i]) + (value << BigInt(8)); } return value }; @@ -1681,6 +1655,7 @@ currentExtensions[28] = (read) => { referenceMap.id = 0; } let id = referenceMap.id++; + let startingPosition = position$1; let token = src[position$1]; let target; // TODO: handle Maps, Sets, and other types that can cycle; this is complicated, because you potentially need to read @@ -1693,8 +1668,20 @@ currentExtensions[28] = (read) => { let refEntry = { target }; // a placeholder object referenceMap.set(id, refEntry); let targetProperties = read(); // read the next value as the target object to id - if (refEntry.used) // there is a cycle, so we have to assign properties to original target + if (refEntry.used) {// there is a cycle, so we have to assign properties to original target + if (Object.getPrototypeOf(target) !== Object.getPrototypeOf(targetProperties)) { + // this means that the returned target does not match the targetProperties, so we need rerun the read to + // have the correctly create instance be assigned as a reference, then we do the copy the properties back to the + // target + // reset the position so that the read can be repeated + position$1 = startingPosition; + // the returned instance is our new target for references + target = targetProperties; + referenceMap.set(id, { target }); + targetProperties = read(); + } return Object.assign(target, targetProperties) + } refEntry.target = targetProperties; // the placeholder wasn't used, replace with the deserialized one return targetProperties // no cycle, can just use the returned read object }; @@ -1776,7 +1763,7 @@ function registerTypedArray(TypedArray, tag) { for (let littleEndian = 0; littleEndian < 2; littleEndian++) { if (!littleEndian && bytesPerElement == 1) continue - let sizeShift = bytesPerElement == 2 ? 1 : bytesPerElement == 4 ? 2 : 3; + let sizeShift = bytesPerElement == 2 ? 1 : bytesPerElement == 4 ? 2 : bytesPerElement == 8 ? 3 : 0; currentExtensions[littleEndian ? tag : (tag - 4)] = (bytesPerElement == 1 || littleEndian == isLittleEndianMachine$1) ? (buffer) => { if (!TypedArray) throw new Error('Could not find typed array for code ' + tag) @@ -1786,7 +1773,7 @@ function registerTypedArray(TypedArray, tag) { bytesPerElement === 2 && !(buffer.byteOffset & 1) || bytesPerElement === 4 && !(buffer.byteOffset & 3) || bytesPerElement === 8 && !(buffer.byteOffset & 7)) - return new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength); + return new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength >> sizeShift); } // we have to slice/copy here to get a new ArrayBuffer, if we are not word/byte aligned return new TypedArray(Uint8Array.prototype.slice.call(buffer, 0).buffer) @@ -2375,7 +2362,7 @@ class Encoder extends Decoder { } let constructor = value.constructor; if (constructor === Object) { - writeObject(value, true); + writeObject(value); } else if (constructor === Array) { length = value.length; if (length < 0x18) { @@ -2470,8 +2457,8 @@ class Encoder extends Decoder { return encode(json) } - // no extension found, write as object - writeObject(value, !value.hasOwnProperty); // if it doesn't have hasOwnProperty, don't do hasOwnProperty checks + // no extension found, write as a plain object + writeObject(value); } } } else if (type === 'boolean') { @@ -2491,7 +2478,19 @@ class Encoder extends Decoder { target[position++] = 0xfb; targetView.setFloat64(position, Number(value)); } else { - throw new RangeError(value + ' was too large to fit in CBOR 64-bit integer format, set largeBigIntToFloat to convert to float-64') + if (value >= BigInt(0)) + target[position++] = 0xc2; // tag 2 + else { + target[position++] = 0xc3; // tag 2 + value = BigInt(-1) - value; + } + let bytes = []; + while (value) { + bytes.push(Number(value & BigInt(0xff))); + value >>= BigInt(8); + } + writeBuffer(new Uint8Array(bytes.reverse()), makeRoom); + return; } } position += 8; @@ -2533,19 +2532,19 @@ class Encoder extends Decoder { } } } : - (object, safePrototype) => { + (object) => { target[position++] = 0xb9; // always use map 16, so we can preallocate and set the length afterwards let objectOffset = position - start; position += 2; let size = 0; - if (encoder.keyMap) { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + if (encoder.keyMap) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { encode(encoder.encodeKey(key)); encode(object[key]); size++; } } else { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { encode(key); encode(object[key]); size++; @@ -2554,7 +2553,7 @@ class Encoder extends Decoder { target[objectOffset++ + start] = size >> 8; target[objectOffset + start] = size & 0xff; } : - (object, safePrototype) => { + (object, skipValues) => { let nextTransition, transition = structures.transitions || (structures.transitions = Object.create(null)); let newTransitions = 0; let length = 0; @@ -2573,7 +2572,7 @@ class Encoder extends Decoder { transition = nextTransition; } } else { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { nextTransition = transition[key]; if (!nextTransition) { if (transition[RECORD_SYMBOL] & 0x100000) {// this indicates it is a brancheable/extendable terminal node, so we will use this record id and extend it @@ -2633,9 +2632,9 @@ class Encoder extends Decoder { writeArrayHeader(length + 2); encode(0xe000 + recordId); encode(keys); - if (safePrototype === null) return; // special exit for iterator + if (skipValues) return; // special exit for iterator for (let key in object) - if (safePrototype || object.hasOwnProperty(key)) + if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) encode(object[key]); return } @@ -2645,9 +2644,9 @@ class Encoder extends Decoder { } else { writeArrayHeader(length); } - if (safePrototype === null) return; // special exit for iterator + if (skipValues) return; // special exit for iterator for (let key in object) - if (safePrototype || object.hasOwnProperty(key)) + if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) encode(object[key]); }; const makeRoom = (end) => { @@ -2685,7 +2684,7 @@ class Encoder extends Decoder { if (constructor === Object) { let useRecords = encoder.useRecords !== false; if (useRecords) - writeObject(object, null); // write the record identifier + writeObject(object, true); // write the record identifier else writeEntityLength(Object.keys(object).length, 0xa0); for (let key in object) { @@ -2710,7 +2709,7 @@ class Encoder extends Decoder { yield* tryEncode(value, iterateProperties, 'element'); } else encode(value); } - } else if (object[Symbol.iterator]) { + } else if (object[Symbol.iterator] && !object.buffer) { // iterator, but exclude typed arrays target[position++] = 0x9f; // start indefinite array for (let value of object) { if (value && (typeof value === 'object' || position - start > chunkThreshold)) { @@ -3130,289 +3129,299 @@ var lzjbPack = {}; * build: Wed, 27 Oct 2021 10:43:10 GMT */ -Object.defineProperty(lzjbPack, '__esModule', { value: true }); +var hasRequiredLzjbPack; -/* - * source https://github.com/copy/jslzjb-k - * Based on jslzjb: https://code.google.com/p/jslzjb/ - * Heavily modified for speed - */ -// Constants was used for compress/decompress function. -const -/** @const */ NBBY = 8, - /** @const */ MATCH_BITS = 6, - /** @const */ MATCH_MIN = 3, - /** @const */ MATCH_MAX = ((1 << MATCH_BITS) + (MATCH_MIN - 1)), - /** @const */ OFFSET_MASK = ((1 << (16 - MATCH_BITS)) - 1), - /** @const */ LEMPEL_SIZE = 256; +function requireLzjbPack () { + if (hasRequiredLzjbPack) return lzjbPack; + hasRequiredLzjbPack = 1; -/** - * Because of weak of javascript's natural, many compression algorithm - * become useless in javascript implementation. The main problem is - * performance, even the simple Huffman, LZ77/78 algorithm will take many - * many time to operate. We use LZJB algorithm to do that, it suprisingly - * fulfills our requirement to compress string fastly and efficiently. - * - * Our implementation is based on - * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ - * usr/src/uts/common/os/compress.c - * It is licensed under CDDL. - * - * Compress byte array using fast and efficient algorithm. - * - * @param {Uint8Array} sstart The buffer to compress - * @param {Uint8Array} dstart The buffer to write into - * @return {number} compressed length (number of bytes written to the - * output buffer). May be bigger than the size of the - * output buffer, in which case some bytes are lost - */ -function compress(sstart, dstart) { - var slen = 0, - src = 0, - dst = 0, - cpy = 0, - copymap = 0, - copymask = 1 << (NBBY - 1), - mlen = 0, - offset = 0, - hp = 0, - lempel = new Int32Array(LEMPEL_SIZE), - i = 0; + Object.defineProperty(lzjbPack, '__esModule', { value: true }); - // Initialize lempel array. - for(i = 0; i < LEMPEL_SIZE; i++) { - lempel[i] = -858993460; - } + /* + * source https://github.com/copy/jslzjb-k + * Based on jslzjb: https://code.google.com/p/jslzjb/ + * Heavily modified for speed + */ + // Constants was used for compress/decompress function. + const + /** @const */ NBBY = 8, + /** @const */ MATCH_BITS = 6, + /** @const */ MATCH_MIN = 3, + /** @const */ MATCH_MAX = ((1 << MATCH_BITS) + (MATCH_MIN - 1)), + /** @const */ OFFSET_MASK = ((1 << (16 - MATCH_BITS)) - 1), + /** @const */ LEMPEL_SIZE = 256; - slen = sstart.length; + /** + * Because of weak of javascript's natural, many compression algorithm + * become useless in javascript implementation. The main problem is + * performance, even the simple Huffman, LZ77/78 algorithm will take many + * many time to operate. We use LZJB algorithm to do that, it suprisingly + * fulfills our requirement to compress string fastly and efficiently. + * + * Our implementation is based on + * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ + * usr/src/uts/common/os/compress.c + * It is licensed under CDDL. + * + * Compress byte array using fast and efficient algorithm. + * + * @param {Uint8Array} sstart The buffer to compress + * @param {Uint8Array} dstart The buffer to write into + * @return {number} compressed length (number of bytes written to the + * output buffer). May be bigger than the size of the + * output buffer, in which case some bytes are lost + */ + function compress(sstart, dstart) { + var slen = 0, + src = 0, + dst = 0, + cpy = 0, + copymap = 0, + copymask = 1 << (NBBY - 1), + mlen = 0, + offset = 0, + hp = 0, + lempel = new Int32Array(LEMPEL_SIZE), + i = 0; - while (src < slen) { - if ((copymask <<= 1) == (1 << NBBY)) { - copymask = 1; - copymap = dst; - dstart[dst++] = 0; - } + // Initialize lempel array. + for(i = 0; i < LEMPEL_SIZE; i++) { + lempel[i] = -858993460; + } - if (src > slen - MATCH_MAX) { - dstart[dst++] = sstart[src++]; - continue; - } + slen = sstart.length; - hp = ((sstart[src] + 13) ^ - (sstart[src + 1] - 13) ^ - sstart[src + 2]) & - (LEMPEL_SIZE - 1); + while (src < slen) { + if ((copymask <<= 1) == (1 << NBBY)) { + copymask = 1; + copymap = dst; + dstart[dst++] = 0; + } - offset = (src - lempel[hp]) & OFFSET_MASK; - lempel[hp] = src; - cpy = src - offset; + if (src > slen - MATCH_MAX) { + dstart[dst++] = sstart[src++]; + continue; + } - if (cpy >= 0 && cpy != src && - sstart[src] == sstart[cpy] && - sstart[src + 1] == sstart[cpy + 1] && - sstart[src + 2] == sstart[cpy + 2]) { - dstart[copymap] |= copymask; - for (mlen = MATCH_MIN; mlen < MATCH_MAX; mlen++) - if (sstart[src + mlen] != sstart[cpy + mlen]) - break; - dstart[dst++] = ((mlen - MATCH_MIN) << (NBBY - MATCH_BITS)) | - (offset >> NBBY); - dstart[dst++] = offset; - src += mlen; - } else { - dstart[dst++] = sstart[src++]; - } - } + hp = ((sstart[src] + 13) ^ + (sstart[src + 1] - 13) ^ + sstart[src + 2]) & + (LEMPEL_SIZE - 1); - console.assert(sstart.length >= src); + offset = (src - lempel[hp]) & OFFSET_MASK; + lempel[hp] = src; + cpy = src - offset; - return dst; -} + if (cpy >= 0 && cpy != src && + sstart[src] == sstart[cpy] && + sstart[src + 1] == sstart[cpy + 1] && + sstart[src + 2] == sstart[cpy + 2]) { + dstart[copymap] |= copymask; + for (mlen = MATCH_MIN; mlen < MATCH_MAX; mlen++) + if (sstart[src + mlen] != sstart[cpy + mlen]) + break; + dstart[dst++] = ((mlen - MATCH_MIN) << (NBBY - MATCH_BITS)) | + (offset >> NBBY); + dstart[dst++] = offset; + src += mlen; + } else { + dstart[dst++] = sstart[src++]; + } + } -/** - * Our implementation is based on - * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ - * usr/src/uts/common/os/compress.c - * It is licensed under CDDL. - * - * Decompress byte array using fast and efficient algorithm. - * - * @param {Uint8Array} sstart The buffer to decompress - * @param {number} slen compressed length - * @param {Uint8Array} dstart The buffer to write into - * @return {number} decompressed length - */ -function decompress(sstart, slen, dstart) { - slen = slen | 0; + console.assert(sstart.length >= src); - var src = 0, - dst = 0, - cpy = 0, - copymap = 0, - copymask = 1 << (NBBY - 1 | 0), - mlen = 0, - offset = 0; + return dst; + } - //var avg_mlen = []; + /** + * Our implementation is based on + * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ + * usr/src/uts/common/os/compress.c + * It is licensed under CDDL. + * + * Decompress byte array using fast and efficient algorithm. + * + * @param {Uint8Array} sstart The buffer to decompress + * @param {number} slen compressed length + * @param {Uint8Array} dstart The buffer to write into + * @return {number} decompressed length + */ + function decompress(sstart, slen, dstart) { + slen = slen | 0; - while (src < slen) { - if ((copymask <<= 1) === (1 << NBBY)) { - copymask = 1; - copymap = sstart[src]; - src = src + 1 | 0; - } + var src = 0, + dst = 0, + cpy = 0, + copymap = 0, + copymask = 1 << (NBBY - 1 | 0), + mlen = 0, + offset = 0; - if (copymap & copymask) { - mlen = (sstart[src] >> (NBBY - MATCH_BITS | 0)) + MATCH_MIN | 0; - offset = ((sstart[src] << NBBY) | sstart[src + 1 | 0]) & OFFSET_MASK; - src = src + 2 | 0; + //var avg_mlen = []; - cpy = dst - offset | 0; - //if (cpy >= 0) - { - //console.log(mlen); - //avg_mlen.push(mlen); + while (src < slen) { + if ((copymask <<= 1) === (1 << NBBY)) { + copymask = 1; + copymap = sstart[src]; + src = src + 1 | 0; + } - //dstart.set(dstart.subarray(cpy, cpy + mlen | 0), dst); - //dst = dst + mlen | 0; - //cpy = cpy + mlen | 0; + if (copymap & copymask) { + mlen = (sstart[src] >> (NBBY - MATCH_BITS | 0)) + MATCH_MIN | 0; + offset = ((sstart[src] << NBBY) | sstart[src + 1 | 0]) & OFFSET_MASK; + src = src + 2 | 0; - //mlen = mlen - 1 | 0; - while (mlen > 4) { - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + cpy = dst - offset | 0; + //if (cpy >= 0) + { + //console.log(mlen); + //avg_mlen.push(mlen); - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + //dstart.set(dstart.subarray(cpy, cpy + mlen | 0), dst); + //dst = dst + mlen | 0; + //cpy = cpy + mlen | 0; - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + //mlen = mlen - 1 | 0; + while (mlen > 4) { + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - mlen = mlen - 4 | 0; - } + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - while (mlen > 0) { - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; - mlen = mlen - 1 | 0; - } - } - //else - //{ - // /* - // * offset before start of destination buffer - // * indicates corrupt source data - // */ - // console.warn("possibly corrupt data"); - // return dstart; - //} - } else { - dstart[dst] = sstart[src]; - dst = dst + 1 | 0; - src = src + 1 | 0; - } - } + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - //console.log(avg_mlen.reduce(function(a, x) { return a + x; }, 0) / avg_mlen.length); + mlen = mlen - 4 | 0; + } - //console.assert(dstart.length >= dst); - //console.assert(sstart.length >= src); + while (mlen > 0) { + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; + mlen = mlen - 1 | 0; + } + } + //else + //{ + // /* + // * offset before start of destination buffer + // * indicates corrupt source data + // */ + // console.warn("possibly corrupt data"); + // return dstart; + //} + } else { + dstart[dst] = sstart[src]; + dst = dst + 1 | 0; + src = src + 1 | 0; + } + } - return dst; -} + //console.log(avg_mlen.reduce(function(a, x) { return a + x; }, 0) / avg_mlen.length); + //console.assert(dstart.length >= dst); + //console.assert(sstart.length >= src); -function encode_magic$1() { - const encoder = new TextEncoder('utf-8'); - return encoder.encode(MAGIC_STRING); -} + return dst; + } -const MAGIC_STRING = '@lzjb'; -const MAGIC = encode_magic$1(); -function merge_uint8_array$1(...args) { - if (args.length > 1) { - const len = args.reduce((acc, arr) => acc + arr.length, 0); - const result = new Uint8Array(len); - let offset = 0; - args.forEach(item => { - result.set(item, offset); - offset += item.length; - }); - return result; - } else if (args.length) { - return args[0]; - } -} + function encode_magic() { + const encoder = new TextEncoder('utf-8'); + return encoder.encode(MAGIC_STRING); + } -function number_to_bytes(number) { - const len = Math.ceil(Math.log2(number) / 8); - const byteArray = new Uint8Array(len); + const MAGIC_STRING = '@lzjb'; + const MAGIC = encode_magic(); - for (let index = 0; index < byteArray.length; index ++ ) { - const byte = number & 0xff; - byteArray[index] = byte; - number = (number - byte) / 256; - } + function merge_uint8_array(...args) { + if (args.length > 1) { + const len = args.reduce((acc, arr) => acc + arr.length, 0); + const result = new Uint8Array(len); + let offset = 0; + args.forEach(item => { + result.set(item, offset); + offset += item.length; + }); + return result; + } else if (args.length) { + return args[0]; + } + } - return byteArray; -} + function number_to_bytes(number) { + const len = Math.ceil(Math.log2(number) / 8); + const byteArray = new Uint8Array(len); -function bytes_to_number(byteArray) { - let result = 0; - for (let i = byteArray.length - 1; i >= 0; i--) { - result = (result * 256) + byteArray[i]; - } + for (let index = 0; index < byteArray.length; index ++ ) { + const byte = number & 0xff; + byteArray[index] = byte; + number = (number - byte) / 256; + } - return result; -} + return byteArray; + } -function pack(input, { magic = true } = {}) { - const out = new Uint8Array(Math.max(input.length * 1.5 | 0, 16 * 1024)); - const len = compress(input, out); - const len_array = number_to_bytes(input.length); - const payload = [ - Uint8Array.of(len_array.length), - len_array, - out.slice(0, len) - ]; - if (magic) { - payload.unshift(MAGIC); - } - return merge_uint8_array$1(...payload); -} + function bytes_to_number(byteArray) { + let result = 0; + for (let i = byteArray.length - 1; i >= 0; i--) { + result = (result * 256) + byteArray[i]; + } -function unpack(input, { magic = true } = {}) { - if (magic) { - const decoder = new TextDecoder('utf-8'); - const magic_prefix = decoder.decode(input.slice(0, MAGIC.length)); - if (magic_prefix !== MAGIC_STRING) { - throw new Error('Invalid magic value'); - } - } - const magic_length = magic ? MAGIC.length : 0; - const size = input[magic_length]; - const start = magic_length + 1; - const end = magic_length + size + 1; - const len = bytes_to_number(input.slice(start, end)); - input = input.slice(end); - const out = new Uint8Array(len); - decompress(input, input.length, out); - return out; + return result; + } + + function pack(input, { magic = true } = {}) { + const out = new Uint8Array(Math.max(input.length * 1.5 | 0, 16 * 1024)); + const len = compress(input, out); + const len_array = number_to_bytes(input.length); + const payload = [ + Uint8Array.of(len_array.length), + len_array, + out.slice(0, len) + ]; + if (magic) { + payload.unshift(MAGIC); + } + return merge_uint8_array(...payload); + } + + function unpack(input, { magic = true } = {}) { + if (magic) { + const decoder = new TextDecoder('utf-8'); + const magic_prefix = decoder.decode(input.slice(0, MAGIC.length)); + if (magic_prefix !== MAGIC_STRING) { + throw new Error('Invalid magic value'); + } + } + const magic_length = magic ? MAGIC.length : 0; + const size = input[magic_length]; + const start = magic_length + 1; + const end = magic_length + size + 1; + const len = bytes_to_number(input.slice(start, end)); + input = input.slice(end); + const out = new Uint8Array(len); + decompress(input, input.length, out); + return out; + } + + lzjbPack.pack = pack; + lzjbPack.unpack = unpack; + return lzjbPack; } -var pack_1 = lzjbPack.pack = pack; -var unpack_1 = lzjbPack.unpack = unpack; +var lzjbPackExports = requireLzjbPack(); -function unfetch(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return {ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+","+t:t;}),t(a());},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null);})} +function e(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u={},a=function e(){return {ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:e,headers:{keys:function(){return o},entries:function(){return o.map(function(e){return [e,s.getResponseHeader(e)]})},get:function(e){return s.getResponseHeader(e)},has:function(e){return null!=s.getResponseHeader(e)}}}};for(var i in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(e,n){u[n]||o.push(u[n]=n);}),t(a());},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(i,n.headers[i]);s.send(n.body||null);})} /* * TODO: consider using exec in env.eval or use different maybe_async code @@ -3424,13 +3433,16 @@ var _excluded = ["token"], _excluded4 = ["use_dynamic"], _excluded5 = ["use_dynamic"], _excluded6 = ["env", "dynamic_env", "use_dynamic", "error"]; -function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } -function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); } +function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); } +function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); } +function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; } +function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n3 = 0, F = function F() {}; return { s: F, n: function n() { return _n3 >= r.length ? { done: !0 } : { done: !1, value: r[_n3++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); } @@ -3439,7 +3451,7 @@ var root = typeof global !== 'undefined' ? global : self; /* c8 ignore next 3 */ if (!root.fetch) { - root.fetch = unfetch; + root.fetch = e; } // ------------------------------------------------------------------------- @@ -3479,30 +3491,30 @@ function contentLoaded(win, fn) { add = modern ? 'addEventListener' : 'attachEvent', rem = modern ? 'removeEventListener' : 'detachEvent', pre = modern ? '' : 'on', - init = function init(e) { + _init = function init(e) { if (e.type == 'readystatechange' && doc.readyState != 'complete') return; - (e.type == 'load' ? win : doc)[rem](pre + e.type, init, false); + (e.type == 'load' ? win : doc)[rem](pre + e.type, _init, false); if (!done && (done = true)) fn.call(win, e.type || e); }, - poll = function poll() { + _poll = function poll() { try { root.doScroll('left'); } catch (e) { - setTimeout(poll, 50); + setTimeout(_poll, 50); return; } - init('poll'); + _init('poll'); }; if (doc.readyState == 'complete') fn.call(win, 'lazy');else { if (!modern && root.doScroll) { try { top = !win.frameElement; } catch (e) {} - if (top) poll(); + if (top) _poll(); } - doc[add](pre + 'DOMContentLoaded', init, false); - doc[add](pre + 'readystatechange', init, false); - win[add](pre + 'load', init, false); + doc[add](pre + 'DOMContentLoaded', _init, false); + doc[add](pre + 'readystatechange', _init, false); + win[add](pre + 'load', _init, false); } } // ------------------------------------------------------------------------- @@ -4506,7 +4518,7 @@ var Lexer = /*#__PURE__*/function () { this._state = this._next = this._token = null; this._prev_char = ''; } - _createClass(Lexer, [{ + return _createClass(Lexer, [{ key: "get", value: function get(name) { return this.__internal[name]; @@ -4755,7 +4767,6 @@ var Lexer = /*#__PURE__*/function () { } } }]); - return Lexer; }(); // ---------------------------------------------------------------------- // TODO: cache the rules creation or whole list // ---------------------------------------------------------------------- @@ -4931,7 +4942,7 @@ var Parser = /*#__PURE__*/function () { hidden: true }); } - _createClass(Parser, [{ + return _createClass(Parser, [{ key: "_with_syntax_scope", value: function _with_syntax_scope(fn) { // expose parser and change stdin so parser extension can use current-input @@ -4969,7 +4980,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "peek", value: function () { - var _peek = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { + var _peek = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() { var token; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { @@ -5053,7 +5064,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "read", value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() { + var _read = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() { var token; return _regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5100,7 +5111,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "read_list", value: function () { - var _read_list = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { + var _read_list = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { var head, prev, dot, token, node, cur; return _regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -5174,7 +5185,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "read_value", value: function () { - var _read_value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { + var _read_value = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { var token; return _regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { @@ -5220,7 +5231,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "read_object", value: function () { - var _read_object2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { + var _read_object2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { var object; return _regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { @@ -5281,7 +5292,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "_resolve_object", value: function () { - var _resolve_object2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(object) { + var _resolve_object2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(object) { var _this5 = this; var result; return _regeneratorRuntime.wrap(function _callee6$(_context6) { @@ -5326,7 +5337,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "_resolve_pair", value: function () { - var _resolve_pair2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(pair) { + var _resolve_pair2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(pair) { return _regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: @@ -5375,7 +5386,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "_read_object", value: function () { - var _read_object3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() { + var _read_object3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8() { var _this6 = this; var token, special, builtin, expr, extension, is_symbol, was_close_paren, object, args, result, ref, ref_label; return _regeneratorRuntime.wrap(function _callee8$(_context8) { @@ -5558,16 +5569,15 @@ var Parser = /*#__PURE__*/function () { return _read_object; }() }]); - return Parser; }(); var Unterminated = /*#__PURE__*/function (_Error) { - _inherits(Unterminated, _Error); function Unterminated() { _classCallCheck(this, Unterminated); return _callSuper(this, Unterminated, arguments); } + _inherits(Unterminated, _Error); return _createClass(Unterminated); -}( /*#__PURE__*/_wrapNativeSuper(Error)); +}(/*#__PURE__*/_wrapNativeSuper(Error)); Parser.Unterminated = Unterminated; // ---------------------------------------------------------------------- // :: Parser helper that handles circular list structures @@ -5579,13 +5589,12 @@ var DatumReference = /*#__PURE__*/function () { this.name = name; this.data = data; } - _createClass(DatumReference, [{ + return _createClass(DatumReference, [{ key: "valueOf", value: function valueOf() { return this.data; } }]); - return DatumReference; }(); // ---------------------------------------------------------------------- // :: Tokens are the array of strings from tokenizer // :: the return value is an array of lips code created out of Pair class. @@ -5597,7 +5606,7 @@ function _parse(_x, _x2) { return _parse2.apply(this, arguments); } // ---------------------------------------------------------------------- function _parse2() { - _parse2 = _wrapAsyncGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(arg, env) { + _parse2 = _wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(arg, env) { var parser, prev, expr; return _regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { @@ -5729,7 +5738,7 @@ function uniterate_async(_x5) { // :: Function that return matcher function that match string against string // ---------------------------------------------------------------------- function _uniterate_async() { - _uniterate_async = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(object) { + _uniterate_async = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee22(object) { var result, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, item; return _regeneratorRuntime.wrap(function _callee22$(_context23) { while (1) switch (_context23.prev = _context23.next) { @@ -7813,7 +7822,7 @@ function flatten(array, mutable) { var toString = Object.prototype.toString; var arrayTypeStr = '[object Array]'; var result = []; - var nodes = mutable && array || array.slice(); + var nodes = array.slice(); var node; if (!array.length) { return result; @@ -8782,13 +8791,13 @@ var macro = 'define-macro'; var recur_guard = -10000; function macro_expand(single) { return /*#__PURE__*/function () { - var _ref21 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(code, args) { + var _ref21 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee12(code, args) { var env, bindings, let_macros, lambda, define, is_let_macro, is_procedure, is_lambda, proc_bindings, let_binding, is_macro, expand_let_binding, _expand_let_binding, traverse, _traverse; return _regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) switch (_context12.prev = _context12.next) { case 0: _traverse = function _traverse3() { - _traverse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(node, n, env) { + _traverse = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee11(node, n, env) { var name, value, is_let, is_binding, second, code, result, _result, expr, scope, car, cdr, pair; return _regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { @@ -8934,7 +8943,7 @@ function macro_expand(single) { return _traverse.apply(this, arguments); }; _expand_let_binding = function _expand_let_binding3() { - _expand_let_binding = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(node, n) { + _expand_let_binding = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10(node, n) { var pair; return _regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { @@ -10981,7 +10990,7 @@ LNumber.prototype.constant = function (value, type) { }; // ------------------------------------------------------------------------- LNumber.types = { - "float": function float(n) { + "float": function _float2(n) { return new LFloat(n); }, complex: function complex(n) { @@ -11923,13 +11932,13 @@ var toRational = approxRatio(1e-10); function approxRatio(eps) { return function (n) { var gcde = function gcde(e, x, y) { - var _gcd = function _gcd(a, b) { - return b < e ? a : _gcd(b, a % b); + var _gcd2 = function _gcd(a, b) { + return b < e ? a : _gcd2(b, a % b); }; if (Number.isNaN(x) || Number.isNaN(y)) { return NaN; } - return _gcd(Math.abs(x), Math.abs(y)); + return _gcd2(Math.abs(x), Math.abs(y)); }, c = gcde(eps ? eps : 1 / 10000, 1, n); return LRational({ @@ -12336,7 +12345,7 @@ function InputPort(read) { } }); this._read = read; - this._with_parser = this._with_init_parser.bind(this, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14() { + this._with_parser = this._with_init_parser.bind(this, /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee14() { var line; return _regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) switch (_context14.prev = _context14.next) { @@ -12389,7 +12398,7 @@ InputPort.prototype._make_defaults = function () { }; InputPort.prototype._with_init_parser = function (make_parser, fn) { var self = this; - return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15() { + return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee15() { var parser, _len17, args, @@ -12467,7 +12476,6 @@ OutputPort.prototype.toString = function () { }; // ------------------------------------------------------------------------- var BufferedOutputPort = /*#__PURE__*/function (_OutputPort) { - _inherits(BufferedOutputPort, _OutputPort); function BufferedOutputPort(fn) { var _this12; _classCallCheck(this, BufferedOutputPort); @@ -12476,15 +12484,16 @@ var BufferedOutputPort = /*#__PURE__*/function (_OutputPort) { return (_this13 = _this12)._write.apply(_this13, arguments); }]); typecheck('BufferedOutputPort', fn, 'function'); - read_only(_assertThisInitialized(_this12), '_fn', fn, { + read_only(_this12, '_fn', fn, { hidden: true }); - read_only(_assertThisInitialized(_this12), '_buffer', [], { + read_only(_this12, '_buffer', [], { hidden: true }); return _this12; } - _createClass(BufferedOutputPort, [{ + _inherits(BufferedOutputPort, _OutputPort); + return _createClass(BufferedOutputPort, [{ key: "flush", value: function flush() { if (this._buffer.length) { @@ -12511,7 +12520,6 @@ var BufferedOutputPort = /*#__PURE__*/function (_OutputPort) { } } }]); - return BufferedOutputPort; }(OutputPort); // ------------------------------------------------------------------------- function OutputStringPort(toString) { var _this15 = this; @@ -12982,13 +12990,13 @@ LipsError.prototype.constructor = LipsError; // :: of body expression #163 // ------------------------------------------------------------------------- var IgnoreException = /*#__PURE__*/function (_Error2) { - _inherits(IgnoreException, _Error2); function IgnoreException() { _classCallCheck(this, IgnoreException); return _callSuper(this, IgnoreException, arguments); } + _inherits(IgnoreException, _Error2); return _createClass(IgnoreException); -}( /*#__PURE__*/_wrapNativeSuper(Error)); // ------------------------------------------------------------------------- +}(/*#__PURE__*/_wrapNativeSuper(Error)); // ------------------------------------------------------------------------- // :: Environment constructor (parent and name arguments are optional) // ------------------------------------------------------------------------- function Environment(obj, parent, name) { @@ -13378,8 +13386,8 @@ var internal_env = new Environment({ return Promise.resolve(prompt('')); }), // those will be compiled by babel regex plugin - 'letter-unicode-regex': /(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])/, - 'numeral-unicode-regex': /(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/, + 'letter-unicode-regex': /(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])/, + 'numeral-unicode-regex': /(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDD40-\uDD49\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDED0-\uDEE3\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59\uDFF0-\uDFF9]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD818[\uDD30-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDD70-\uDD79\uDE80-\uDE96]|\uD833[\uDCF0-\uDCF9]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9\uDDF1-\uDDFA]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/, 'space-unicode-regex': /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/ }, undefined, 'internal'); // ---------------------------------------------------------------------- @@ -13785,8 +13793,8 @@ var global_env = new Environment({ return __dirname.replace(/[^/]+$/, ''); } if (is_node()) { - return new Promise( /*#__PURE__*/function () { - var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(resolve, reject) { + return new Promise(/*#__PURE__*/function () { + var _ref31 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee18(resolve, reject) { var _path, _fs, root_dir, cmd, _args20; return _regeneratorRuntime.wrap(function _callee18$(_context18) { while (1) switch (_context18.prev = _context18.next) { @@ -15977,7 +15985,7 @@ function node_specific() { } // ------------------------------------------------------------------------- /* c8 ignore next 15 */ function _node_specific() { - _node_specific = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23() { + _node_specific = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee23() { var _yield$import, createRequire, moduleURL, __dirname__, __filename__; return _regeneratorRuntime.wrap(function _callee23$(_context24) { while (1) switch (_context24.prev = _context24.next) { @@ -15987,7 +15995,7 @@ function _node_specific() { case 2: _yield$import = _context24.sent; createRequire = _yield$import.createRequire; - nodeRequire = createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('lips.cjs', document.baseURI).href))); + nodeRequire = createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('lips.cjs', document.baseURI).href))); _context24.next = 7; return import('fs'); case 7: @@ -15999,7 +16007,7 @@ function _node_specific() { global_env.set('global', global); global_env.set('self', global); global_env.set('window', undefined); - moduleURL = new URL((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('lips.cjs', document.baseURI).href))); // using name __direname and __filename breaks after transpilation + moduleURL = new URL((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('lips.cjs', document.baseURI).href))); // using name __direname and __filename breaks after transpilation __dirname__ = path.dirname(moduleURL.pathname); __filename__ = path.basename(moduleURL.pathname); global_env.set('__dirname', __dirname__); @@ -16260,7 +16268,7 @@ function resolve_promises(arg) { return _promise.apply(this, arguments); } function _promise() { - _promise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(node) { + _promise = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee20(node) { var pair; return _regeneratorRuntime.wrap(function _callee20$(_context21) { while (1) switch (_context21.prev = _context21.next) { @@ -16489,10 +16497,7 @@ var Parameter = /*#__PURE__*/function () { _classCallCheck(this, Parameter); _defineProperty(this, "__value__", void 0); _defineProperty(this, "__fn__", void 0); - _classPrivateFieldInitSpec(this, _p_name__, { - writable: true, - value: void 0 - }); + _classPrivateFieldInitSpec(this, _p_name__, void 0); this.__value__ = init; if (fn) { if (!is_function(fn)) { @@ -16501,16 +16506,16 @@ var Parameter = /*#__PURE__*/function () { this.__fn__ = fn; } if (name) { - _classPrivateFieldSet(this, _p_name__, name); + _classPrivateFieldSet(_p_name__, this, name); } } - _createClass(Parameter, [{ + return _createClass(Parameter, [{ key: "__name__", get: function get() { - return _classPrivateFieldGet(this, _p_name__); + return _classPrivateFieldGet(_p_name__, this); }, set: function set(name) { - _classPrivateFieldSet(this, _p_name__, name); + _classPrivateFieldSet(_p_name__, this, name); if (this.__fn__) { this.__fn__.__name__ = "fn-".concat(name); } @@ -16529,7 +16534,6 @@ var Parameter = /*#__PURE__*/function () { return new Parameter(value, this.__fn__, this.__name__); } }]); - return Parameter; }(); // ------------------------------------------------------------------------- var LambdaContext = /*#__PURE__*/function () { function LambdaContext(payload) { @@ -16539,7 +16543,7 @@ var LambdaContext = /*#__PURE__*/function () { _defineProperty(this, "use_dynamic", void 0); Object.assign(this, payload); } - _createClass(LambdaContext, [{ + return _createClass(LambdaContext, [{ key: "__name__", get: function get() { return this.env.__name__; @@ -16556,7 +16560,6 @@ var LambdaContext = /*#__PURE__*/function () { return (_this$env = this.env).get.apply(_this$env, arguments); } }]); - return LambdaContext; }(); // ------------------------------------------------------------------------- function search_param(env, param) { var candidate = env.get(param.__name__, { @@ -16593,7 +16596,7 @@ var Continuation = /*#__PURE__*/function () { _defineProperty(this, "__value__", void 0); this.__value__ = k; } - _createClass(Continuation, [{ + return _createClass(Continuation, [{ key: "invoke", value: function invoke() { if (this.__value__ === null) { @@ -16601,7 +16604,6 @@ var Continuation = /*#__PURE__*/function () { } } }]); - return Continuation; }(); // ------------------------------------------------------------------------- function _evaluate(code) { var _ref47 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, @@ -17287,7 +17289,7 @@ function decode_magic(obj) { function serialize_bin(obj) { var magic = encode_magic(); var payload = cbor.encode(obj); - return merge_uint8_array(magic, pack_1(payload, { + return merge_uint8_array(magic, lzjbPackExports.pack(payload, { magic: false })); } @@ -17298,7 +17300,7 @@ function unserialize_bin(data) { type = _decode_magic.type, version = _decode_magic.version; if (type === 'LIPS' && version === 1) { - var arr = unpack_1(data.slice(MAGIC_LENGTH), { + var arr = lzjbPackExports.unpack(data.slice(MAGIC_LENGTH), { magic: false }); return cbor.decode(arr); @@ -17392,17 +17394,17 @@ if (typeof window !== 'undefined') { // ------------------------------------------------------------------------- var banner = function () { // Rollup tree-shaking is removing the variable if it's normal string because - // obviously 'Fri, 08 Nov 2024 13:26:12 +0000' == '{{' + 'DATE}}'; can be removed + // obviously 'Fri, 08 Nov 2024 13:38:41 +0000' == '{{' + 'DATE}}'; can be removed // but disabling Tree-shaking is adding lot of not used code so we use this // hack instead - var date = LString('Fri, 08 Nov 2024 13:26:12 +0000').valueOf(); + var date = LString('Fri, 08 Nov 2024 13:38:41 +0000').valueOf(); var _date = date === '{{' + 'DATE}}' ? new Date() : new Date(date); var _format = function _format(x) { return x.toString().padStart(2, '0'); }; var _year = _date.getFullYear(); var _build = [_year, _format(_date.getMonth() + 1), _format(_date.getDate())].join('-'); - var banner = "\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter DEV (".concat(_build, ") \nCopyright (c) 2018-").concat(_year, " Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/, ''); + var banner = "\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter 1.0.0-beta.20 (".concat(_build, ") \nCopyright (c) 2018-").concat(_year, " Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/, ''); return banner; }(); // ------------------------------------------------------------------------- @@ -17434,8 +17436,8 @@ read_only(LString, '__class__', 'string'); read_only(QuotedPromise, '__class__', 'promise'); read_only(Parameter, '__class__', 'parameter'); // ------------------------------------------------------------------------- -var version = 'DEV'; -var date = 'Fri, 08 Nov 2024 13:26:12 +0000'; +var version = '1.0.0-beta.20'; +var date = 'Fri, 08 Nov 2024 13:38:41 +0000'; // unwrap async generator into Promise var parse = compose(uniterate_async, _parse); diff --git a/dist/lips.esm.js b/dist/lips.esm.js index 60aba343..d1abe38a 100644 --- a/dist/lips.esm.js +++ b/dist/lips.esm.js @@ -4,7 +4,7 @@ * | | \ \ | | | || . \/ __> | | * | | > \ | |_ | || _/\__ \ | | * | | / ^ \ |___||_||_| <___/ | | - * \_\ /_/ \_\ /_/ v. DEV + * \_\ /_/ \_\ /_/ v. 1.0.0-beta.20 * * LIPS is Pretty Simple - Scheme based Powerful LISP in JavaScript * @@ -31,60 +31,9 @@ * Copyright (c) 2014-present, Facebook, Inc. * released under MIT license * - * build: Fri, 08 Nov 2024 13:26:12 +0000 + * build: Fri, 08 Nov 2024 13:38:41 +0000 */ -function _classApplyDescriptorGet(receiver, descriptor) { - if (descriptor.get) { - return descriptor.get.call(receiver); - } - return descriptor.value; -} - -function _classExtractFieldDescriptor(receiver, privateMap, action) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to " + action + " private field on non-instance"); - } - return privateMap.get(receiver); -} - -function _classPrivateFieldGet(receiver, privateMap) { - var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); - return _classApplyDescriptorGet(receiver, descriptor); -} - -function _classApplyDescriptorSet(receiver, descriptor, value) { - if (descriptor.set) { - descriptor.set.call(receiver, value); - } else { - if (!descriptor.writable) { - throw new TypeError("attempted to set read only private field"); - } - descriptor.value = value; - } -} - -function _classPrivateFieldSet(receiver, privateMap, value) { - var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); - _classApplyDescriptorSet(receiver, descriptor, value); - return value; -} - -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; -} - -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return _setPrototypeOf(o, p); -} - function _isNativeReflectConstruct$1() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); @@ -94,6 +43,12 @@ function _isNativeReflectConstruct$1() { })(); } +function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t; + }, _setPrototypeOf(t, e); +} + function _construct(t, e, r) { if (_isNativeReflectConstruct$1()) return Reflect.construct.apply(null, arguments); var o = [null]; @@ -102,39 +57,38 @@ function _construct(t, e, r) { return r && _setPrototypeOf(p, r.prototype), p; } -function _readOnlyError(name) { - throw new TypeError("\"" + name + "\" is read-only"); +function _readOnlyError(r) { + throw new TypeError('"' + r + '" is read-only'); } -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; +function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; } -function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function _arrayLikeToArray$1(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; +function _arrayLikeToArray$1(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; } -function _unsupportedIterableToArray$1(o, minLen) { - if (!o) return; - if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); +function _unsupportedIterableToArray$1(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray$1(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; + } } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _toArray(arr) { - return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableRest(); +function _toArray(r) { + return _arrayWithHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$1(r) || _nonIterableRest(); } function _typeof$1(o) { @@ -147,109 +101,95 @@ function _typeof$1(o) { }, _typeof$1(o); } -function _possibleConstructorReturn(self, call) { - if (call && (_typeof$1(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return _assertThisInitialized(self); +function _assertThisInitialized(e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e; } -function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); +function _possibleConstructorReturn(t, e) { + if (e && ("object" == _typeof$1(e) || "function" == typeof e)) return e; + if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); + return _assertThisInitialized(t); } -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { +function _getPrototypeOf(t) { + return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { + return t.__proto__ || Object.getPrototypeOf(t); + }, _getPrototypeOf(t); +} + +function _inherits(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); + t.prototype = Object.create(e && e.prototype, { constructor: { - value: subClass, - writable: true, - configurable: true + value: t, + writable: !0, + configurable: !0 } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) _setPrototypeOf(subClass, superClass); + }), Object.defineProperty(t, "prototype", { + writable: !1 + }), e && _setPrototypeOf(t, e); } -function _isNativeFunction(fn) { +function _isNativeFunction(t) { try { - return Function.toString.call(fn).indexOf("[native code]") !== -1; - } catch (e) { - return typeof fn === "function"; + return -1 !== Function.toString.call(t).indexOf("[native code]"); + } catch (n) { + return "function" == typeof t; } } -function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !_isNativeFunction(Class)) return Class; - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - _cache.set(Class, Wrapper); +function _wrapNativeSuper(t) { + var r = "function" == typeof Map ? new Map() : void 0; + return _wrapNativeSuper = function _wrapNativeSuper(t) { + if (null === t || !_isNativeFunction(t)) return t; + if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== r) { + if (r.has(t)) return r.get(t); + r.set(t, Wrapper); } function Wrapper() { - return _construct(Class, arguments, _getPrototypeOf(this).constructor); + return _construct(t, arguments, _getPrototypeOf(this).constructor); } - Wrapper.prototype = Object.create(Class.prototype, { + return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, - enumerable: false, - writable: true, - configurable: true + enumerable: !1, + writable: !0, + configurable: !0 } - }); - return _setPrototypeOf(Wrapper, Class); - }; - return _wrapNativeSuper(Class); + }), _setPrototypeOf(Wrapper, t); + }, _wrapNativeSuper(t); } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); + var i = n[a](c), + u = i.value; + } catch (n) { + return void e(n); } + i.done ? t(u) : Promise.resolve(u).then(r, o); } -function _asyncToGenerator(fn) { +function _asyncToGenerator(n) { return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + var t = this, + e = arguments; + return new Promise(function (r, o) { + var a = n.apply(t, e); + function _next(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + function _throw(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } - _next(undefined); + _next(void 0); }); }; } -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } +function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function toPrimitive(t, r) { @@ -265,69 +205,50 @@ function toPrimitive(t, r) { function toPropertyKey(t) { var i = toPrimitive(t, "string"); - return "symbol" == _typeof$1(i) ? i : String(i); + return "symbol" == _typeof$1(i) ? i : i + ""; } -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor); - } -} -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; +function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o); + } +} +function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", { + writable: !1 + }), e; } -function _defineProperty(obj, key, value) { - key = toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; +function _defineProperty(e, r, t) { + return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; } -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - return target; +function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (e.includes(n)) continue; + t[n] = r[n]; + } + return t; } -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = _objectWithoutPropertiesLoose(source, excluded); - var key, i; +function _objectWithoutProperties(e, t) { + if (null == e) return {}; + var o, + r, + i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } + var s = Object.getOwnPropertySymbols(e); + for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } - return target; + return i; } function _iterableToArrayLimit(r, l) { @@ -358,30 +279,35 @@ function _iterableToArrayLimit(r, l) { } } -function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest(); +function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray$1(r, e) || _nonIterableRest(); } -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); +function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return _arrayLikeToArray$1(r); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread(); +function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$1(r) || _nonIterableSpread(); } -function _OverloadYield(t, e) { - this.v = t, this.k = e; +function _OverloadYield(e, d) { + this.v = e, this.k = d; } function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); } +function _wrapAsyncGenerator(e) { + return function () { + return new AsyncGenerator(e.apply(this, arguments)); + }; +} function AsyncGenerator(e) { var r, t; function resume(r, t) { @@ -445,12 +371,6 @@ AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || return this._invoke("return", e); }; -function _wrapAsyncGenerator(fn) { - return function () { - return new AsyncGenerator(fn.apply(this, arguments)); - }; -} - function getDefaultExportFromCjs (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; } @@ -459,346 +379,365 @@ var regeneratorRuntime$1 = {exports: {}}; var _typeof = {exports: {}}; -(function (module) { - function _typeof(o) { - "@babel/helpers - typeof"; +var hasRequired_typeof; - return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); - } - module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; -} (_typeof)); +function require_typeof () { + if (hasRequired_typeof) return _typeof.exports; + hasRequired_typeof = 1; + (function (module) { + function _typeof(o) { + "@babel/helpers - typeof"; -var _typeofExports = _typeof.exports; + return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); + } + module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (_typeof)); + return _typeof.exports; +} -(function (module) { - var _typeof = _typeofExports["default"]; - function _regeneratorRuntime() { - module.exports = _regeneratorRuntime = function _regeneratorRuntime() { - return e; - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - var t, - e = {}, - r = Object.prototype, - n = r.hasOwnProperty, - o = Object.defineProperty || function (t, e, r) { - t[e] = r.value; - }, - i = "function" == typeof Symbol ? Symbol : {}, - a = i.iterator || "@@iterator", - c = i.asyncIterator || "@@asyncIterator", - u = i.toStringTag || "@@toStringTag"; - function define(t, e, r) { - return Object.defineProperty(t, e, { - value: r, - enumerable: !0, - configurable: !0, - writable: !0 - }), t[e]; - } - try { - define({}, ""); - } catch (t) { - define = function define(t, e, r) { - return t[e] = r; - }; - } - function wrap(t, e, r, n) { - var i = e && e.prototype instanceof Generator ? e : Generator, - a = Object.create(i.prototype), - c = new Context(n || []); - return o(a, "_invoke", { - value: makeInvokeMethod(t, r, c) - }), a; - } - function tryCatch(t, e, r) { - try { - return { - type: "normal", - arg: t.call(e, r) - }; - } catch (t) { - return { - type: "throw", - arg: t - }; - } - } - e.wrap = wrap; - var h = "suspendedStart", - l = "suspendedYield", - f = "executing", - s = "completed", - y = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var p = {}; - define(p, a, function () { - return this; - }); - var d = Object.getPrototypeOf, - v = d && d(d(values([]))); - v && v !== r && n.call(v, a) && (p = v); - var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); - function defineIteratorMethods(t) { - ["next", "throw", "return"].forEach(function (e) { - define(t, e, function (t) { - return this._invoke(e, t); - }); - }); - } - function AsyncIterator(t, e) { - function invoke(r, o, i, a) { - var c = tryCatch(t[r], t, o); - if ("throw" !== c.type) { - var u = c.arg, - h = u.value; - return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { - invoke("next", t, i, a); - }, function (t) { - invoke("throw", t, i, a); - }) : e.resolve(h).then(function (t) { - u.value = t, i(u); - }, function (t) { - return invoke("throw", t, i, a); - }); - } - a(c.arg); - } - var r; - o(this, "_invoke", { - value: function value(t, n) { - function callInvokeWithMethodAndArg() { - return new e(function (e, r) { - invoke(t, n, e, r); - }); - } - return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(e, r, n) { - var o = h; - return function (i, a) { - if (o === f) throw new Error("Generator is already running"); - if (o === s) { - if ("throw" === i) throw a; - return { - value: t, - done: !0 - }; - } - for (n.method = i, n.arg = a;;) { - var c = n.delegate; - if (c) { - var u = maybeInvokeDelegate(c, n); - if (u) { - if (u === y) continue; - return u; - } - } - if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { - if (o === h) throw o = s, n.arg; - n.dispatchException(n.arg); - } else "return" === n.method && n.abrupt("return", n.arg); - o = f; - var p = tryCatch(e, r, n); - if ("normal" === p.type) { - if (o = n.done ? s : l, p.arg === y) continue; - return { - value: p.arg, - done: n.done - }; - } - "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); - } - }; - } - function maybeInvokeDelegate(e, r) { - var n = r.method, - o = e.iterator[n]; - if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; - var i = tryCatch(o, e.iterator, r.arg); - if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; - var a = i.arg; - return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); - } - function pushTryEntry(t) { - var e = { - tryLoc: t[0] - }; - 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); - } - function resetTryEntry(t) { - var e = t.completion || {}; - e.type = "normal", delete e.arg, t.completion = e; - } - function Context(t) { - this.tryEntries = [{ - tryLoc: "root" - }], t.forEach(pushTryEntry, this), this.reset(!0); - } - function values(e) { - if (e || "" === e) { - var r = e[a]; - if (r) return r.call(e); - if ("function" == typeof e.next) return e; - if (!isNaN(e.length)) { - var o = -1, - i = function next() { - for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; - return next.value = t, next.done = !0, next; - }; - return i.next = i; - } - } - throw new TypeError(_typeof(e) + " is not iterable"); - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), o(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { - var e = "function" == typeof t && t.constructor; - return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); - }, e.mark = function (t) { - return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; - }, e.awrap = function (t) { - return { - __await: t - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { - return this; - }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { - void 0 === i && (i = Promise); - var a = new AsyncIterator(wrap(t, r, n, o), i); - return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { - return t.done ? t.value : a.next(); - }); - }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { - return this; - }), define(g, "toString", function () { - return "[object Generator]"; - }), e.keys = function (t) { - var e = Object(t), - r = []; - for (var n in e) r.push(n); - return r.reverse(), function next() { - for (; r.length;) { - var t = r.pop(); - if (t in e) return next.value = t, next.done = !1, next; - } - return next.done = !0, next; - }; - }, e.values = values, Context.prototype = { - constructor: Context, - reset: function reset(e) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); - }, - stop: function stop() { - this.done = !0; - var t = this.tryEntries[0].completion; - if ("throw" === t.type) throw t.arg; - return this.rval; - }, - dispatchException: function dispatchException(e) { - if (this.done) throw e; - var r = this; - function handle(n, o) { - return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; - } - for (var o = this.tryEntries.length - 1; o >= 0; --o) { - var i = this.tryEntries[o], - a = i.completion; - if ("root" === i.tryLoc) return handle("end"); - if (i.tryLoc <= this.prev) { - var c = n.call(i, "catchLoc"), - u = n.call(i, "finallyLoc"); - if (c && u) { - if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); - if (this.prev < i.finallyLoc) return handle(i.finallyLoc); - } else if (c) { - if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); - } else { - if (!u) throw new Error("try statement without catch or finally"); - if (this.prev < i.finallyLoc) return handle(i.finallyLoc); - } - } - } - }, - abrupt: function abrupt(t, e) { - for (var r = this.tryEntries.length - 1; r >= 0; --r) { - var o = this.tryEntries[r]; - if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { - var i = o; - break; - } - } - i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); - var a = i ? i.completion : {}; - return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); - }, - complete: function complete(t, e) { - if ("throw" === t.type) throw t.arg; - return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; - }, - finish: function finish(t) { - for (var e = this.tryEntries.length - 1; e >= 0; --e) { - var r = this.tryEntries[e]; - if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; - } - }, - "catch": function _catch(t) { - for (var e = this.tryEntries.length - 1; e >= 0; --e) { - var r = this.tryEntries[e]; - if (r.tryLoc === t) { - var n = r.completion; - if ("throw" === n.type) { - var o = n.arg; - resetTryEntry(r); - } - return o; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(e, r, n) { - return this.delegate = { - iterator: values(e), - resultName: r, - nextLoc: n - }, "next" === this.method && (this.arg = t), y; - } - }, e; - } - module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; -} (regeneratorRuntime$1)); +var hasRequiredRegeneratorRuntime; + +function requireRegeneratorRuntime () { + if (hasRequiredRegeneratorRuntime) return regeneratorRuntime$1.exports; + hasRequiredRegeneratorRuntime = 1; + (function (module) { + var _typeof = require_typeof()["default"]; + function _regeneratorRuntime() { + module.exports = _regeneratorRuntime = function _regeneratorRuntime() { + return e; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + var t, + e = {}, + r = Object.prototype, + n = r.hasOwnProperty, + o = Object.defineProperty || function (t, e, r) { + t[e] = r.value; + }, + i = "function" == typeof Symbol ? Symbol : {}, + a = i.iterator || "@@iterator", + c = i.asyncIterator || "@@asyncIterator", + u = i.toStringTag || "@@toStringTag"; + function define(t, e, r) { + return Object.defineProperty(t, e, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }), t[e]; + } + try { + define({}, ""); + } catch (t) { + define = function define(t, e, r) { + return t[e] = r; + }; + } + function wrap(t, e, r, n) { + var i = e && e.prototype instanceof Generator ? e : Generator, + a = Object.create(i.prototype), + c = new Context(n || []); + return o(a, "_invoke", { + value: makeInvokeMethod(t, r, c) + }), a; + } + function tryCatch(t, e, r) { + try { + return { + type: "normal", + arg: t.call(e, r) + }; + } catch (t) { + return { + type: "throw", + arg: t + }; + } + } + e.wrap = wrap; + var h = "suspendedStart", + l = "suspendedYield", + f = "executing", + s = "completed", + y = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var p = {}; + define(p, a, function () { + return this; + }); + var d = Object.getPrototypeOf, + v = d && d(d(values([]))); + v && v !== r && n.call(v, a) && (p = v); + var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); + function defineIteratorMethods(t) { + ["next", "throw", "return"].forEach(function (e) { + define(t, e, function (t) { + return this._invoke(e, t); + }); + }); + } + function AsyncIterator(t, e) { + function invoke(r, o, i, a) { + var c = tryCatch(t[r], t, o); + if ("throw" !== c.type) { + var u = c.arg, + h = u.value; + return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { + invoke("next", t, i, a); + }, function (t) { + invoke("throw", t, i, a); + }) : e.resolve(h).then(function (t) { + u.value = t, i(u); + }, function (t) { + return invoke("throw", t, i, a); + }); + } + a(c.arg); + } + var r; + o(this, "_invoke", { + value: function value(t, n) { + function callInvokeWithMethodAndArg() { + return new e(function (e, r) { + invoke(t, n, e, r); + }); + } + return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(e, r, n) { + var o = h; + return function (i, a) { + if (o === f) throw Error("Generator is already running"); + if (o === s) { + if ("throw" === i) throw a; + return { + value: t, + done: !0 + }; + } + for (n.method = i, n.arg = a;;) { + var c = n.delegate; + if (c) { + var u = maybeInvokeDelegate(c, n); + if (u) { + if (u === y) continue; + return u; + } + } + if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { + if (o === h) throw o = s, n.arg; + n.dispatchException(n.arg); + } else "return" === n.method && n.abrupt("return", n.arg); + o = f; + var p = tryCatch(e, r, n); + if ("normal" === p.type) { + if (o = n.done ? s : l, p.arg === y) continue; + return { + value: p.arg, + done: n.done + }; + } + "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); + } + }; + } + function maybeInvokeDelegate(e, r) { + var n = r.method, + o = e.iterator[n]; + if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; + var i = tryCatch(o, e.iterator, r.arg); + if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; + var a = i.arg; + return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); + } + function pushTryEntry(t) { + var e = { + tryLoc: t[0] + }; + 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); + } + function resetTryEntry(t) { + var e = t.completion || {}; + e.type = "normal", delete e.arg, t.completion = e; + } + function Context(t) { + this.tryEntries = [{ + tryLoc: "root" + }], t.forEach(pushTryEntry, this), this.reset(!0); + } + function values(e) { + if (e || "" === e) { + var r = e[a]; + if (r) return r.call(e); + if ("function" == typeof e.next) return e; + if (!isNaN(e.length)) { + var o = -1, + i = function next() { + for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; + return next.value = t, next.done = !0, next; + }; + return i.next = i; + } + } + throw new TypeError(_typeof(e) + " is not iterable"); + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), o(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { + var e = "function" == typeof t && t.constructor; + return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); + }, e.mark = function (t) { + return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; + }, e.awrap = function (t) { + return { + __await: t + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { + return this; + }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { + void 0 === i && (i = Promise); + var a = new AsyncIterator(wrap(t, r, n, o), i); + return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { + return t.done ? t.value : a.next(); + }); + }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { + return this; + }), define(g, "toString", function () { + return "[object Generator]"; + }), e.keys = function (t) { + var e = Object(t), + r = []; + for (var n in e) r.push(n); + return r.reverse(), function next() { + for (; r.length;) { + var t = r.pop(); + if (t in e) return next.value = t, next.done = !1, next; + } + return next.done = !0, next; + }; + }, e.values = values, Context.prototype = { + constructor: Context, + reset: function reset(e) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); + }, + stop: function stop() { + this.done = !0; + var t = this.tryEntries[0].completion; + if ("throw" === t.type) throw t.arg; + return this.rval; + }, + dispatchException: function dispatchException(e) { + if (this.done) throw e; + var r = this; + function handle(n, o) { + return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; + } + for (var o = this.tryEntries.length - 1; o >= 0; --o) { + var i = this.tryEntries[o], + a = i.completion; + if ("root" === i.tryLoc) return handle("end"); + if (i.tryLoc <= this.prev) { + var c = n.call(i, "catchLoc"), + u = n.call(i, "finallyLoc"); + if (c && u) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } else if (c) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + } else { + if (!u) throw Error("try statement without catch or finally"); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } + } + } + }, + abrupt: function abrupt(t, e) { + for (var r = this.tryEntries.length - 1; r >= 0; --r) { + var o = this.tryEntries[r]; + if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { + var i = o; + break; + } + } + i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); + var a = i ? i.completion : {}; + return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); + }, + complete: function complete(t, e) { + if ("throw" === t.type) throw t.arg; + return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; + }, + finish: function finish(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; + } + }, + "catch": function _catch(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.tryLoc === t) { + var n = r.completion; + if ("throw" === n.type) { + var o = n.arg; + resetTryEntry(r); + } + return o; + } + } + throw Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(e, r, n) { + return this.delegate = { + iterator: values(e), + resultName: r, + nextLoc: n + }, "next" === this.method && (this.arg = t), y; + } + }, e; + } + module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (regeneratorRuntime$1)); + return regeneratorRuntime$1.exports; +} -var regeneratorRuntimeExports = regeneratorRuntime$1.exports; +var regenerator; +var hasRequiredRegenerator; -// TODO(Babel 8): Remove this file. +function requireRegenerator () { + if (hasRequiredRegenerator) return regenerator; + hasRequiredRegenerator = 1; + // TODO(Babel 8): Remove this file. -var runtime = regeneratorRuntimeExports(); -var regenerator = runtime; + var runtime = requireRegeneratorRuntime()(); + regenerator = runtime; -// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - if (typeof globalThis === "object") { - globalThis.regeneratorRuntime = runtime; - } else { - Function("r", "regeneratorRuntime = r")(runtime); - } + // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= + try { + regeneratorRuntime = runtime; + } catch (accidentalStrictMode) { + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); + } + } + return regenerator; } -var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator); +var regeneratorExports = requireRegenerator(); +var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regeneratorExports); let decoder; try { @@ -813,6 +752,9 @@ const RECORD_INLINE_ID = 0xdfff; // temporary first-come first-serve tag // prop const BUNDLED_STRINGS_ID = 0xdff9; const PACKED_REFERENCE_TAG_ID = 6; const STOP_CODE = {}; +let maxArraySize = 112810000; // This is the maximum array size in V8. We would potentially detect and set it higher +// for JSC, but this is pretty large and should be sufficient for most use cases +let maxMapSize = 16810000; // JavaScript has a fixed maximum map size of about 16710000, but JS itself enforces this, let currentDecoder = {}; let currentStructures; let srcString; @@ -1085,6 +1027,7 @@ function read() { let array = []; let value, i = 0; while ((value = read()) != STOP_CODE) { + if (i >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`) array[i++] = value; } return majorType == 4 ? array : majorType == 3 ? array.join('') : Buffer.concat(array) @@ -1092,8 +1035,19 @@ function read() { let key; if (currentDecoder.mapsAsObjects) { let object = {}; - if (currentDecoder.keyMap) while((key = read()) != STOP_CODE) object[safeKey(currentDecoder.decodeKey(key))] = read(); - else while ((key = read()) != STOP_CODE) object[safeKey(key)] = read(); + let i = 0; + if (currentDecoder.keyMap) { + while((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`) + object[safeKey(currentDecoder.decodeKey(key))] = read(); + } + } + else { + while ((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`) + object[safeKey(key)] = read(); + } + } return object } else { if (restoreMapsAsObject) { @@ -1101,8 +1055,24 @@ function read() { restoreMapsAsObject = false; } let map = new Map(); - if (currentDecoder.keyMap) while((key = read()) != STOP_CODE) map.set(currentDecoder.decodeKey(key), read()); - else while ((key = read()) != STOP_CODE) map.set(key, read()); + if (currentDecoder.keyMap) { + let i = 0; + while((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) { + throw new Error(`Map size exceeds ${maxMapSize}`); + } + map.set(currentDecoder.decodeKey(key), read()); + } + } + else { + let i = 0; + while ((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) { + throw new Error(`Map size exceeds ${maxMapSize}`); + } + map.set(key, read()); + } + } return map } case 7: @@ -1133,12 +1103,14 @@ function read() { } return readFixedString(token) case 4: // array + if (token >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`) let array = new Array(token); //if (currentDecoder.keyMap) for (let i = 0; i < token; i++) array[i] = currentDecoder.decodeKey(read()) //else for (let i = 0; i < token; i++) array[i] = read(); return array case 5: // map + if (token >= maxMapSize) throw new Error(`Map size exceeds ${maxArraySize}`) if (currentDecoder.mapsAsObjects) { let object = {}; if (currentDecoder.keyMap) for (let i = 0; i < token; i++) object[safeKey(currentDecoder.decodeKey(read()))] = read(); @@ -1240,6 +1212,7 @@ function read() { } const validName = /^[a-zA-Z_$][a-zA-Z\d_$]*$/; function createStructureReader(structure) { + if (!structure) throw new Error('Structure is required in record definition'); function readObject() { // get the array size from the header let length = src[position$1++]; @@ -1295,7 +1268,8 @@ function createStructureReader(structure) { function safeKey(key) { // protect against prototype pollution if (typeof key === 'string') return key === '__proto__' ? '__proto_' : key - if (typeof key !== 'object') return key.toString() + if (typeof key === 'number' || typeof key === 'boolean' || typeof key === 'bigint') return key.toString(); + if (key == null) return key + ''; // protect against expensive (DoS) string conversions throw new Error('Invalid property name type ' + typeof key); } @@ -1563,7 +1537,7 @@ currentExtensions[2] = (buffer) => { // bigint extension let value = BigInt(0); for (let i = 0, l = buffer.byteLength; i < l; i++) { - value = BigInt(buffer[i]) + value << BigInt(8); + value = BigInt(buffer[i]) + (value << BigInt(8)); } return value }; @@ -1678,6 +1652,7 @@ currentExtensions[28] = (read) => { referenceMap.id = 0; } let id = referenceMap.id++; + let startingPosition = position$1; let token = src[position$1]; let target; // TODO: handle Maps, Sets, and other types that can cycle; this is complicated, because you potentially need to read @@ -1690,8 +1665,20 @@ currentExtensions[28] = (read) => { let refEntry = { target }; // a placeholder object referenceMap.set(id, refEntry); let targetProperties = read(); // read the next value as the target object to id - if (refEntry.used) // there is a cycle, so we have to assign properties to original target + if (refEntry.used) {// there is a cycle, so we have to assign properties to original target + if (Object.getPrototypeOf(target) !== Object.getPrototypeOf(targetProperties)) { + // this means that the returned target does not match the targetProperties, so we need rerun the read to + // have the correctly create instance be assigned as a reference, then we do the copy the properties back to the + // target + // reset the position so that the read can be repeated + position$1 = startingPosition; + // the returned instance is our new target for references + target = targetProperties; + referenceMap.set(id, { target }); + targetProperties = read(); + } return Object.assign(target, targetProperties) + } refEntry.target = targetProperties; // the placeholder wasn't used, replace with the deserialized one return targetProperties // no cycle, can just use the returned read object }; @@ -1773,7 +1760,7 @@ function registerTypedArray(TypedArray, tag) { for (let littleEndian = 0; littleEndian < 2; littleEndian++) { if (!littleEndian && bytesPerElement == 1) continue - let sizeShift = bytesPerElement == 2 ? 1 : bytesPerElement == 4 ? 2 : 3; + let sizeShift = bytesPerElement == 2 ? 1 : bytesPerElement == 4 ? 2 : bytesPerElement == 8 ? 3 : 0; currentExtensions[littleEndian ? tag : (tag - 4)] = (bytesPerElement == 1 || littleEndian == isLittleEndianMachine$1) ? (buffer) => { if (!TypedArray) throw new Error('Could not find typed array for code ' + tag) @@ -1783,7 +1770,7 @@ function registerTypedArray(TypedArray, tag) { bytesPerElement === 2 && !(buffer.byteOffset & 1) || bytesPerElement === 4 && !(buffer.byteOffset & 3) || bytesPerElement === 8 && !(buffer.byteOffset & 7)) - return new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength); + return new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength >> sizeShift); } // we have to slice/copy here to get a new ArrayBuffer, if we are not word/byte aligned return new TypedArray(Uint8Array.prototype.slice.call(buffer, 0).buffer) @@ -2372,7 +2359,7 @@ class Encoder extends Decoder { } let constructor = value.constructor; if (constructor === Object) { - writeObject(value, true); + writeObject(value); } else if (constructor === Array) { length = value.length; if (length < 0x18) { @@ -2467,8 +2454,8 @@ class Encoder extends Decoder { return encode(json) } - // no extension found, write as object - writeObject(value, !value.hasOwnProperty); // if it doesn't have hasOwnProperty, don't do hasOwnProperty checks + // no extension found, write as a plain object + writeObject(value); } } } else if (type === 'boolean') { @@ -2488,7 +2475,19 @@ class Encoder extends Decoder { target[position++] = 0xfb; targetView.setFloat64(position, Number(value)); } else { - throw new RangeError(value + ' was too large to fit in CBOR 64-bit integer format, set largeBigIntToFloat to convert to float-64') + if (value >= BigInt(0)) + target[position++] = 0xc2; // tag 2 + else { + target[position++] = 0xc3; // tag 2 + value = BigInt(-1) - value; + } + let bytes = []; + while (value) { + bytes.push(Number(value & BigInt(0xff))); + value >>= BigInt(8); + } + writeBuffer(new Uint8Array(bytes.reverse()), makeRoom); + return; } } position += 8; @@ -2530,19 +2529,19 @@ class Encoder extends Decoder { } } } : - (object, safePrototype) => { + (object) => { target[position++] = 0xb9; // always use map 16, so we can preallocate and set the length afterwards let objectOffset = position - start; position += 2; let size = 0; - if (encoder.keyMap) { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + if (encoder.keyMap) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { encode(encoder.encodeKey(key)); encode(object[key]); size++; } } else { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { encode(key); encode(object[key]); size++; @@ -2551,7 +2550,7 @@ class Encoder extends Decoder { target[objectOffset++ + start] = size >> 8; target[objectOffset + start] = size & 0xff; } : - (object, safePrototype) => { + (object, skipValues) => { let nextTransition, transition = structures.transitions || (structures.transitions = Object.create(null)); let newTransitions = 0; let length = 0; @@ -2570,7 +2569,7 @@ class Encoder extends Decoder { transition = nextTransition; } } else { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { nextTransition = transition[key]; if (!nextTransition) { if (transition[RECORD_SYMBOL] & 0x100000) {// this indicates it is a brancheable/extendable terminal node, so we will use this record id and extend it @@ -2630,9 +2629,9 @@ class Encoder extends Decoder { writeArrayHeader(length + 2); encode(0xe000 + recordId); encode(keys); - if (safePrototype === null) return; // special exit for iterator + if (skipValues) return; // special exit for iterator for (let key in object) - if (safePrototype || object.hasOwnProperty(key)) + if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) encode(object[key]); return } @@ -2642,9 +2641,9 @@ class Encoder extends Decoder { } else { writeArrayHeader(length); } - if (safePrototype === null) return; // special exit for iterator + if (skipValues) return; // special exit for iterator for (let key in object) - if (safePrototype || object.hasOwnProperty(key)) + if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) encode(object[key]); }; const makeRoom = (end) => { @@ -2682,7 +2681,7 @@ class Encoder extends Decoder { if (constructor === Object) { let useRecords = encoder.useRecords !== false; if (useRecords) - writeObject(object, null); // write the record identifier + writeObject(object, true); // write the record identifier else writeEntityLength(Object.keys(object).length, 0xa0); for (let key in object) { @@ -2707,7 +2706,7 @@ class Encoder extends Decoder { yield* tryEncode(value, iterateProperties, 'element'); } else encode(value); } - } else if (object[Symbol.iterator]) { + } else if (object[Symbol.iterator] && !object.buffer) { // iterator, but exclude typed arrays target[position++] = 0x9f; // start indefinite array for (let value of object) { if (value && (typeof value === 'object' || position - start > chunkThreshold)) { @@ -3127,289 +3126,299 @@ var lzjbPack = {}; * build: Wed, 27 Oct 2021 10:43:10 GMT */ -Object.defineProperty(lzjbPack, '__esModule', { value: true }); +var hasRequiredLzjbPack; -/* - * source https://github.com/copy/jslzjb-k - * Based on jslzjb: https://code.google.com/p/jslzjb/ - * Heavily modified for speed - */ -// Constants was used for compress/decompress function. -const -/** @const */ NBBY = 8, - /** @const */ MATCH_BITS = 6, - /** @const */ MATCH_MIN = 3, - /** @const */ MATCH_MAX = ((1 << MATCH_BITS) + (MATCH_MIN - 1)), - /** @const */ OFFSET_MASK = ((1 << (16 - MATCH_BITS)) - 1), - /** @const */ LEMPEL_SIZE = 256; +function requireLzjbPack () { + if (hasRequiredLzjbPack) return lzjbPack; + hasRequiredLzjbPack = 1; -/** - * Because of weak of javascript's natural, many compression algorithm - * become useless in javascript implementation. The main problem is - * performance, even the simple Huffman, LZ77/78 algorithm will take many - * many time to operate. We use LZJB algorithm to do that, it suprisingly - * fulfills our requirement to compress string fastly and efficiently. - * - * Our implementation is based on - * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ - * usr/src/uts/common/os/compress.c - * It is licensed under CDDL. - * - * Compress byte array using fast and efficient algorithm. - * - * @param {Uint8Array} sstart The buffer to compress - * @param {Uint8Array} dstart The buffer to write into - * @return {number} compressed length (number of bytes written to the - * output buffer). May be bigger than the size of the - * output buffer, in which case some bytes are lost - */ -function compress(sstart, dstart) { - var slen = 0, - src = 0, - dst = 0, - cpy = 0, - copymap = 0, - copymask = 1 << (NBBY - 1), - mlen = 0, - offset = 0, - hp = 0, - lempel = new Int32Array(LEMPEL_SIZE), - i = 0; + Object.defineProperty(lzjbPack, '__esModule', { value: true }); - // Initialize lempel array. - for(i = 0; i < LEMPEL_SIZE; i++) { - lempel[i] = -858993460; - } + /* + * source https://github.com/copy/jslzjb-k + * Based on jslzjb: https://code.google.com/p/jslzjb/ + * Heavily modified for speed + */ + // Constants was used for compress/decompress function. + const + /** @const */ NBBY = 8, + /** @const */ MATCH_BITS = 6, + /** @const */ MATCH_MIN = 3, + /** @const */ MATCH_MAX = ((1 << MATCH_BITS) + (MATCH_MIN - 1)), + /** @const */ OFFSET_MASK = ((1 << (16 - MATCH_BITS)) - 1), + /** @const */ LEMPEL_SIZE = 256; - slen = sstart.length; + /** + * Because of weak of javascript's natural, many compression algorithm + * become useless in javascript implementation. The main problem is + * performance, even the simple Huffman, LZ77/78 algorithm will take many + * many time to operate. We use LZJB algorithm to do that, it suprisingly + * fulfills our requirement to compress string fastly and efficiently. + * + * Our implementation is based on + * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ + * usr/src/uts/common/os/compress.c + * It is licensed under CDDL. + * + * Compress byte array using fast and efficient algorithm. + * + * @param {Uint8Array} sstart The buffer to compress + * @param {Uint8Array} dstart The buffer to write into + * @return {number} compressed length (number of bytes written to the + * output buffer). May be bigger than the size of the + * output buffer, in which case some bytes are lost + */ + function compress(sstart, dstart) { + var slen = 0, + src = 0, + dst = 0, + cpy = 0, + copymap = 0, + copymask = 1 << (NBBY - 1), + mlen = 0, + offset = 0, + hp = 0, + lempel = new Int32Array(LEMPEL_SIZE), + i = 0; - while (src < slen) { - if ((copymask <<= 1) == (1 << NBBY)) { - copymask = 1; - copymap = dst; - dstart[dst++] = 0; - } + // Initialize lempel array. + for(i = 0; i < LEMPEL_SIZE; i++) { + lempel[i] = -858993460; + } - if (src > slen - MATCH_MAX) { - dstart[dst++] = sstart[src++]; - continue; - } + slen = sstart.length; - hp = ((sstart[src] + 13) ^ - (sstart[src + 1] - 13) ^ - sstart[src + 2]) & - (LEMPEL_SIZE - 1); + while (src < slen) { + if ((copymask <<= 1) == (1 << NBBY)) { + copymask = 1; + copymap = dst; + dstart[dst++] = 0; + } - offset = (src - lempel[hp]) & OFFSET_MASK; - lempel[hp] = src; - cpy = src - offset; + if (src > slen - MATCH_MAX) { + dstart[dst++] = sstart[src++]; + continue; + } - if (cpy >= 0 && cpy != src && - sstart[src] == sstart[cpy] && - sstart[src + 1] == sstart[cpy + 1] && - sstart[src + 2] == sstart[cpy + 2]) { - dstart[copymap] |= copymask; - for (mlen = MATCH_MIN; mlen < MATCH_MAX; mlen++) - if (sstart[src + mlen] != sstart[cpy + mlen]) - break; - dstart[dst++] = ((mlen - MATCH_MIN) << (NBBY - MATCH_BITS)) | - (offset >> NBBY); - dstart[dst++] = offset; - src += mlen; - } else { - dstart[dst++] = sstart[src++]; - } - } + hp = ((sstart[src] + 13) ^ + (sstart[src + 1] - 13) ^ + sstart[src + 2]) & + (LEMPEL_SIZE - 1); - console.assert(sstart.length >= src); + offset = (src - lempel[hp]) & OFFSET_MASK; + lempel[hp] = src; + cpy = src - offset; - return dst; -} + if (cpy >= 0 && cpy != src && + sstart[src] == sstart[cpy] && + sstart[src + 1] == sstart[cpy + 1] && + sstart[src + 2] == sstart[cpy + 2]) { + dstart[copymap] |= copymask; + for (mlen = MATCH_MIN; mlen < MATCH_MAX; mlen++) + if (sstart[src + mlen] != sstart[cpy + mlen]) + break; + dstart[dst++] = ((mlen - MATCH_MIN) << (NBBY - MATCH_BITS)) | + (offset >> NBBY); + dstart[dst++] = offset; + src += mlen; + } else { + dstart[dst++] = sstart[src++]; + } + } -/** - * Our implementation is based on - * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ - * usr/src/uts/common/os/compress.c - * It is licensed under CDDL. - * - * Decompress byte array using fast and efficient algorithm. - * - * @param {Uint8Array} sstart The buffer to decompress - * @param {number} slen compressed length - * @param {Uint8Array} dstart The buffer to write into - * @return {number} decompressed length - */ -function decompress(sstart, slen, dstart) { - slen = slen | 0; + console.assert(sstart.length >= src); - var src = 0, - dst = 0, - cpy = 0, - copymap = 0, - copymask = 1 << (NBBY - 1 | 0), - mlen = 0, - offset = 0; + return dst; + } - //var avg_mlen = []; + /** + * Our implementation is based on + * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ + * usr/src/uts/common/os/compress.c + * It is licensed under CDDL. + * + * Decompress byte array using fast and efficient algorithm. + * + * @param {Uint8Array} sstart The buffer to decompress + * @param {number} slen compressed length + * @param {Uint8Array} dstart The buffer to write into + * @return {number} decompressed length + */ + function decompress(sstart, slen, dstart) { + slen = slen | 0; - while (src < slen) { - if ((copymask <<= 1) === (1 << NBBY)) { - copymask = 1; - copymap = sstart[src]; - src = src + 1 | 0; - } + var src = 0, + dst = 0, + cpy = 0, + copymap = 0, + copymask = 1 << (NBBY - 1 | 0), + mlen = 0, + offset = 0; - if (copymap & copymask) { - mlen = (sstart[src] >> (NBBY - MATCH_BITS | 0)) + MATCH_MIN | 0; - offset = ((sstart[src] << NBBY) | sstart[src + 1 | 0]) & OFFSET_MASK; - src = src + 2 | 0; + //var avg_mlen = []; - cpy = dst - offset | 0; - //if (cpy >= 0) - { - //console.log(mlen); - //avg_mlen.push(mlen); + while (src < slen) { + if ((copymask <<= 1) === (1 << NBBY)) { + copymask = 1; + copymap = sstart[src]; + src = src + 1 | 0; + } - //dstart.set(dstart.subarray(cpy, cpy + mlen | 0), dst); - //dst = dst + mlen | 0; - //cpy = cpy + mlen | 0; + if (copymap & copymask) { + mlen = (sstart[src] >> (NBBY - MATCH_BITS | 0)) + MATCH_MIN | 0; + offset = ((sstart[src] << NBBY) | sstart[src + 1 | 0]) & OFFSET_MASK; + src = src + 2 | 0; - //mlen = mlen - 1 | 0; - while (mlen > 4) { - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + cpy = dst - offset | 0; + //if (cpy >= 0) + { + //console.log(mlen); + //avg_mlen.push(mlen); - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + //dstart.set(dstart.subarray(cpy, cpy + mlen | 0), dst); + //dst = dst + mlen | 0; + //cpy = cpy + mlen | 0; - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + //mlen = mlen - 1 | 0; + while (mlen > 4) { + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - mlen = mlen - 4 | 0; - } + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - while (mlen > 0) { - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; - mlen = mlen - 1 | 0; - } - } - //else - //{ - // /* - // * offset before start of destination buffer - // * indicates corrupt source data - // */ - // console.warn("possibly corrupt data"); - // return dstart; - //} - } else { - dstart[dst] = sstart[src]; - dst = dst + 1 | 0; - src = src + 1 | 0; - } - } + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - //console.log(avg_mlen.reduce(function(a, x) { return a + x; }, 0) / avg_mlen.length); + mlen = mlen - 4 | 0; + } - //console.assert(dstart.length >= dst); - //console.assert(sstart.length >= src); + while (mlen > 0) { + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; + mlen = mlen - 1 | 0; + } + } + //else + //{ + // /* + // * offset before start of destination buffer + // * indicates corrupt source data + // */ + // console.warn("possibly corrupt data"); + // return dstart; + //} + } else { + dstart[dst] = sstart[src]; + dst = dst + 1 | 0; + src = src + 1 | 0; + } + } - return dst; -} + //console.log(avg_mlen.reduce(function(a, x) { return a + x; }, 0) / avg_mlen.length); + //console.assert(dstart.length >= dst); + //console.assert(sstart.length >= src); -function encode_magic$1() { - const encoder = new TextEncoder('utf-8'); - return encoder.encode(MAGIC_STRING); -} + return dst; + } -const MAGIC_STRING = '@lzjb'; -const MAGIC = encode_magic$1(); -function merge_uint8_array$1(...args) { - if (args.length > 1) { - const len = args.reduce((acc, arr) => acc + arr.length, 0); - const result = new Uint8Array(len); - let offset = 0; - args.forEach(item => { - result.set(item, offset); - offset += item.length; - }); - return result; - } else if (args.length) { - return args[0]; - } -} + function encode_magic() { + const encoder = new TextEncoder('utf-8'); + return encoder.encode(MAGIC_STRING); + } -function number_to_bytes(number) { - const len = Math.ceil(Math.log2(number) / 8); - const byteArray = new Uint8Array(len); + const MAGIC_STRING = '@lzjb'; + const MAGIC = encode_magic(); - for (let index = 0; index < byteArray.length; index ++ ) { - const byte = number & 0xff; - byteArray[index] = byte; - number = (number - byte) / 256; - } + function merge_uint8_array(...args) { + if (args.length > 1) { + const len = args.reduce((acc, arr) => acc + arr.length, 0); + const result = new Uint8Array(len); + let offset = 0; + args.forEach(item => { + result.set(item, offset); + offset += item.length; + }); + return result; + } else if (args.length) { + return args[0]; + } + } - return byteArray; -} + function number_to_bytes(number) { + const len = Math.ceil(Math.log2(number) / 8); + const byteArray = new Uint8Array(len); -function bytes_to_number(byteArray) { - let result = 0; - for (let i = byteArray.length - 1; i >= 0; i--) { - result = (result * 256) + byteArray[i]; - } + for (let index = 0; index < byteArray.length; index ++ ) { + const byte = number & 0xff; + byteArray[index] = byte; + number = (number - byte) / 256; + } - return result; -} + return byteArray; + } -function pack(input, { magic = true } = {}) { - const out = new Uint8Array(Math.max(input.length * 1.5 | 0, 16 * 1024)); - const len = compress(input, out); - const len_array = number_to_bytes(input.length); - const payload = [ - Uint8Array.of(len_array.length), - len_array, - out.slice(0, len) - ]; - if (magic) { - payload.unshift(MAGIC); - } - return merge_uint8_array$1(...payload); -} + function bytes_to_number(byteArray) { + let result = 0; + for (let i = byteArray.length - 1; i >= 0; i--) { + result = (result * 256) + byteArray[i]; + } -function unpack(input, { magic = true } = {}) { - if (magic) { - const decoder = new TextDecoder('utf-8'); - const magic_prefix = decoder.decode(input.slice(0, MAGIC.length)); - if (magic_prefix !== MAGIC_STRING) { - throw new Error('Invalid magic value'); - } - } - const magic_length = magic ? MAGIC.length : 0; - const size = input[magic_length]; - const start = magic_length + 1; - const end = magic_length + size + 1; - const len = bytes_to_number(input.slice(start, end)); - input = input.slice(end); - const out = new Uint8Array(len); - decompress(input, input.length, out); - return out; + return result; + } + + function pack(input, { magic = true } = {}) { + const out = new Uint8Array(Math.max(input.length * 1.5 | 0, 16 * 1024)); + const len = compress(input, out); + const len_array = number_to_bytes(input.length); + const payload = [ + Uint8Array.of(len_array.length), + len_array, + out.slice(0, len) + ]; + if (magic) { + payload.unshift(MAGIC); + } + return merge_uint8_array(...payload); + } + + function unpack(input, { magic = true } = {}) { + if (magic) { + const decoder = new TextDecoder('utf-8'); + const magic_prefix = decoder.decode(input.slice(0, MAGIC.length)); + if (magic_prefix !== MAGIC_STRING) { + throw new Error('Invalid magic value'); + } + } + const magic_length = magic ? MAGIC.length : 0; + const size = input[magic_length]; + const start = magic_length + 1; + const end = magic_length + size + 1; + const len = bytes_to_number(input.slice(start, end)); + input = input.slice(end); + const out = new Uint8Array(len); + decompress(input, input.length, out); + return out; + } + + lzjbPack.pack = pack; + lzjbPack.unpack = unpack; + return lzjbPack; } -var pack_1 = lzjbPack.pack = pack; -var unpack_1 = lzjbPack.unpack = unpack; +var lzjbPackExports = requireLzjbPack(); -function unfetch(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return {ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+","+t:t;}),t(a());},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null);})} +function e(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u={},a=function e(){return {ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:e,headers:{keys:function(){return o},entries:function(){return o.map(function(e){return [e,s.getResponseHeader(e)]})},get:function(e){return s.getResponseHeader(e)},has:function(e){return null!=s.getResponseHeader(e)}}}};for(var i in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(e,n){u[n]||o.push(u[n]=n);}),t(a());},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(i,n.headers[i]);s.send(n.body||null);})} /* * TODO: consider using exec in env.eval or use different maybe_async code @@ -3421,13 +3430,16 @@ var _excluded = ["token"], _excluded4 = ["use_dynamic"], _excluded5 = ["use_dynamic"], _excluded6 = ["env", "dynamic_env", "use_dynamic", "error"]; -function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } -function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); } +function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); } +function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); } +function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; } +function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n3 = 0, F = function F() {}; return { s: F, n: function n() { return _n3 >= r.length ? { done: !0 } : { done: !1, value: r[_n3++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); } @@ -3436,7 +3448,7 @@ var root = typeof global !== 'undefined' ? global : self; /* c8 ignore next 3 */ if (!root.fetch) { - root.fetch = unfetch; + root.fetch = e; } // ------------------------------------------------------------------------- @@ -3476,30 +3488,30 @@ function contentLoaded(win, fn) { add = modern ? 'addEventListener' : 'attachEvent', rem = modern ? 'removeEventListener' : 'detachEvent', pre = modern ? '' : 'on', - init = function init(e) { + _init = function init(e) { if (e.type == 'readystatechange' && doc.readyState != 'complete') return; - (e.type == 'load' ? win : doc)[rem](pre + e.type, init, false); + (e.type == 'load' ? win : doc)[rem](pre + e.type, _init, false); if (!done && (done = true)) fn.call(win, e.type || e); }, - poll = function poll() { + _poll = function poll() { try { root.doScroll('left'); } catch (e) { - setTimeout(poll, 50); + setTimeout(_poll, 50); return; } - init('poll'); + _init('poll'); }; if (doc.readyState == 'complete') fn.call(win, 'lazy');else { if (!modern && root.doScroll) { try { top = !win.frameElement; } catch (e) {} - if (top) poll(); + if (top) _poll(); } - doc[add](pre + 'DOMContentLoaded', init, false); - doc[add](pre + 'readystatechange', init, false); - win[add](pre + 'load', init, false); + doc[add](pre + 'DOMContentLoaded', _init, false); + doc[add](pre + 'readystatechange', _init, false); + win[add](pre + 'load', _init, false); } } // ------------------------------------------------------------------------- @@ -4503,7 +4515,7 @@ var Lexer = /*#__PURE__*/function () { this._state = this._next = this._token = null; this._prev_char = ''; } - _createClass(Lexer, [{ + return _createClass(Lexer, [{ key: "get", value: function get(name) { return this.__internal[name]; @@ -4752,7 +4764,6 @@ var Lexer = /*#__PURE__*/function () { } } }]); - return Lexer; }(); // ---------------------------------------------------------------------- // TODO: cache the rules creation or whole list // ---------------------------------------------------------------------- @@ -4928,7 +4939,7 @@ var Parser = /*#__PURE__*/function () { hidden: true }); } - _createClass(Parser, [{ + return _createClass(Parser, [{ key: "_with_syntax_scope", value: function _with_syntax_scope(fn) { // expose parser and change stdin so parser extension can use current-input @@ -4966,7 +4977,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "peek", value: function () { - var _peek = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { + var _peek = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() { var token; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { @@ -5050,7 +5061,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "read", value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() { + var _read = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() { var token; return _regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5097,7 +5108,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "read_list", value: function () { - var _read_list = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { + var _read_list = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { var head, prev, dot, token, node, cur; return _regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -5171,7 +5182,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "read_value", value: function () { - var _read_value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { + var _read_value = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { var token; return _regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { @@ -5217,7 +5228,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "read_object", value: function () { - var _read_object2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { + var _read_object2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { var object; return _regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { @@ -5278,7 +5289,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "_resolve_object", value: function () { - var _resolve_object2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(object) { + var _resolve_object2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(object) { var _this5 = this; var result; return _regeneratorRuntime.wrap(function _callee6$(_context6) { @@ -5323,7 +5334,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "_resolve_pair", value: function () { - var _resolve_pair2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(pair) { + var _resolve_pair2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(pair) { return _regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: @@ -5372,7 +5383,7 @@ var Parser = /*#__PURE__*/function () { }, { key: "_read_object", value: function () { - var _read_object3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() { + var _read_object3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8() { var _this6 = this; var token, special, builtin, expr, extension, is_symbol, was_close_paren, object, args, result, ref, ref_label; return _regeneratorRuntime.wrap(function _callee8$(_context8) { @@ -5555,16 +5566,15 @@ var Parser = /*#__PURE__*/function () { return _read_object; }() }]); - return Parser; }(); var Unterminated = /*#__PURE__*/function (_Error) { - _inherits(Unterminated, _Error); function Unterminated() { _classCallCheck(this, Unterminated); return _callSuper(this, Unterminated, arguments); } + _inherits(Unterminated, _Error); return _createClass(Unterminated); -}( /*#__PURE__*/_wrapNativeSuper(Error)); +}(/*#__PURE__*/_wrapNativeSuper(Error)); Parser.Unterminated = Unterminated; // ---------------------------------------------------------------------- // :: Parser helper that handles circular list structures @@ -5576,13 +5586,12 @@ var DatumReference = /*#__PURE__*/function () { this.name = name; this.data = data; } - _createClass(DatumReference, [{ + return _createClass(DatumReference, [{ key: "valueOf", value: function valueOf() { return this.data; } }]); - return DatumReference; }(); // ---------------------------------------------------------------------- // :: Tokens are the array of strings from tokenizer // :: the return value is an array of lips code created out of Pair class. @@ -5594,7 +5603,7 @@ function _parse(_x, _x2) { return _parse2.apply(this, arguments); } // ---------------------------------------------------------------------- function _parse2() { - _parse2 = _wrapAsyncGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(arg, env) { + _parse2 = _wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(arg, env) { var parser, prev, expr; return _regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { @@ -5726,7 +5735,7 @@ function uniterate_async(_x5) { // :: Function that return matcher function that match string against string // ---------------------------------------------------------------------- function _uniterate_async() { - _uniterate_async = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(object) { + _uniterate_async = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee22(object) { var result, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, item; return _regeneratorRuntime.wrap(function _callee22$(_context23) { while (1) switch (_context23.prev = _context23.next) { @@ -7810,7 +7819,7 @@ function flatten(array, mutable) { var toString = Object.prototype.toString; var arrayTypeStr = '[object Array]'; var result = []; - var nodes = mutable && array || array.slice(); + var nodes = array.slice(); var node; if (!array.length) { return result; @@ -8779,13 +8788,13 @@ var macro = 'define-macro'; var recur_guard = -10000; function macro_expand(single) { return /*#__PURE__*/function () { - var _ref21 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(code, args) { + var _ref21 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee12(code, args) { var env, bindings, let_macros, lambda, define, is_let_macro, is_procedure, is_lambda, proc_bindings, let_binding, is_macro, expand_let_binding, _expand_let_binding, traverse, _traverse; return _regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) switch (_context12.prev = _context12.next) { case 0: _traverse = function _traverse3() { - _traverse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(node, n, env) { + _traverse = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee11(node, n, env) { var name, value, is_let, is_binding, second, code, result, _result, expr, scope, car, cdr, pair; return _regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { @@ -8931,7 +8940,7 @@ function macro_expand(single) { return _traverse.apply(this, arguments); }; _expand_let_binding = function _expand_let_binding3() { - _expand_let_binding = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(node, n) { + _expand_let_binding = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10(node, n) { var pair; return _regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { @@ -10978,7 +10987,7 @@ LNumber.prototype.constant = function (value, type) { }; // ------------------------------------------------------------------------- LNumber.types = { - "float": function float(n) { + "float": function _float2(n) { return new LFloat(n); }, complex: function complex(n) { @@ -11920,13 +11929,13 @@ var toRational = approxRatio(1e-10); function approxRatio(eps) { return function (n) { var gcde = function gcde(e, x, y) { - var _gcd = function _gcd(a, b) { - return b < e ? a : _gcd(b, a % b); + var _gcd2 = function _gcd(a, b) { + return b < e ? a : _gcd2(b, a % b); }; if (Number.isNaN(x) || Number.isNaN(y)) { return NaN; } - return _gcd(Math.abs(x), Math.abs(y)); + return _gcd2(Math.abs(x), Math.abs(y)); }, c = gcde(eps ? eps : 1 / 10000, 1, n); return LRational({ @@ -12333,7 +12342,7 @@ function InputPort(read) { } }); this._read = read; - this._with_parser = this._with_init_parser.bind(this, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14() { + this._with_parser = this._with_init_parser.bind(this, /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee14() { var line; return _regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) switch (_context14.prev = _context14.next) { @@ -12386,7 +12395,7 @@ InputPort.prototype._make_defaults = function () { }; InputPort.prototype._with_init_parser = function (make_parser, fn) { var self = this; - return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15() { + return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee15() { var parser, _len17, args, @@ -12464,7 +12473,6 @@ OutputPort.prototype.toString = function () { }; // ------------------------------------------------------------------------- var BufferedOutputPort = /*#__PURE__*/function (_OutputPort) { - _inherits(BufferedOutputPort, _OutputPort); function BufferedOutputPort(fn) { var _this12; _classCallCheck(this, BufferedOutputPort); @@ -12473,15 +12481,16 @@ var BufferedOutputPort = /*#__PURE__*/function (_OutputPort) { return (_this13 = _this12)._write.apply(_this13, arguments); }]); typecheck('BufferedOutputPort', fn, 'function'); - read_only(_assertThisInitialized(_this12), '_fn', fn, { + read_only(_this12, '_fn', fn, { hidden: true }); - read_only(_assertThisInitialized(_this12), '_buffer', [], { + read_only(_this12, '_buffer', [], { hidden: true }); return _this12; } - _createClass(BufferedOutputPort, [{ + _inherits(BufferedOutputPort, _OutputPort); + return _createClass(BufferedOutputPort, [{ key: "flush", value: function flush() { if (this._buffer.length) { @@ -12508,7 +12517,6 @@ var BufferedOutputPort = /*#__PURE__*/function (_OutputPort) { } } }]); - return BufferedOutputPort; }(OutputPort); // ------------------------------------------------------------------------- function OutputStringPort(toString) { var _this15 = this; @@ -12979,13 +12987,13 @@ LipsError.prototype.constructor = LipsError; // :: of body expression #163 // ------------------------------------------------------------------------- var IgnoreException = /*#__PURE__*/function (_Error2) { - _inherits(IgnoreException, _Error2); function IgnoreException() { _classCallCheck(this, IgnoreException); return _callSuper(this, IgnoreException, arguments); } + _inherits(IgnoreException, _Error2); return _createClass(IgnoreException); -}( /*#__PURE__*/_wrapNativeSuper(Error)); // ------------------------------------------------------------------------- +}(/*#__PURE__*/_wrapNativeSuper(Error)); // ------------------------------------------------------------------------- // :: Environment constructor (parent and name arguments are optional) // ------------------------------------------------------------------------- function Environment(obj, parent, name) { @@ -13375,8 +13383,8 @@ var internal_env = new Environment({ return Promise.resolve(prompt('')); }), // those will be compiled by babel regex plugin - 'letter-unicode-regex': /(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])/, - 'numeral-unicode-regex': /(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/, + 'letter-unicode-regex': /(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])/, + 'numeral-unicode-regex': /(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDD40-\uDD49\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDED0-\uDEE3\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59\uDFF0-\uDFF9]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD818[\uDD30-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDD70-\uDD79\uDE80-\uDE96]|\uD833[\uDCF0-\uDCF9]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9\uDDF1-\uDDFA]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/, 'space-unicode-regex': /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/ }, undefined, 'internal'); // ---------------------------------------------------------------------- @@ -13782,8 +13790,8 @@ var global_env = new Environment({ return __dirname.replace(/[^/]+$/, ''); } if (is_node()) { - return new Promise( /*#__PURE__*/function () { - var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(resolve, reject) { + return new Promise(/*#__PURE__*/function () { + var _ref31 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee18(resolve, reject) { var _path, _fs, root_dir, cmd, _args20; return _regeneratorRuntime.wrap(function _callee18$(_context18) { while (1) switch (_context18.prev = _context18.next) { @@ -15974,7 +15982,7 @@ function node_specific() { } // ------------------------------------------------------------------------- /* c8 ignore next 15 */ function _node_specific() { - _node_specific = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23() { + _node_specific = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee23() { var _yield$import, createRequire, moduleURL, __dirname__, __filename__; return _regeneratorRuntime.wrap(function _callee23$(_context24) { while (1) switch (_context24.prev = _context24.next) { @@ -16257,7 +16265,7 @@ function resolve_promises(arg) { return _promise.apply(this, arguments); } function _promise() { - _promise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(node) { + _promise = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee20(node) { var pair; return _regeneratorRuntime.wrap(function _callee20$(_context21) { while (1) switch (_context21.prev = _context21.next) { @@ -16486,10 +16494,7 @@ var Parameter = /*#__PURE__*/function () { _classCallCheck(this, Parameter); _defineProperty(this, "__value__", void 0); _defineProperty(this, "__fn__", void 0); - _classPrivateFieldInitSpec(this, _p_name__, { - writable: true, - value: void 0 - }); + _classPrivateFieldInitSpec(this, _p_name__, void 0); this.__value__ = init; if (fn) { if (!is_function(fn)) { @@ -16498,16 +16503,16 @@ var Parameter = /*#__PURE__*/function () { this.__fn__ = fn; } if (name) { - _classPrivateFieldSet(this, _p_name__, name); + _classPrivateFieldSet(_p_name__, this, name); } } - _createClass(Parameter, [{ + return _createClass(Parameter, [{ key: "__name__", get: function get() { - return _classPrivateFieldGet(this, _p_name__); + return _classPrivateFieldGet(_p_name__, this); }, set: function set(name) { - _classPrivateFieldSet(this, _p_name__, name); + _classPrivateFieldSet(_p_name__, this, name); if (this.__fn__) { this.__fn__.__name__ = "fn-".concat(name); } @@ -16526,7 +16531,6 @@ var Parameter = /*#__PURE__*/function () { return new Parameter(value, this.__fn__, this.__name__); } }]); - return Parameter; }(); // ------------------------------------------------------------------------- var LambdaContext = /*#__PURE__*/function () { function LambdaContext(payload) { @@ -16536,7 +16540,7 @@ var LambdaContext = /*#__PURE__*/function () { _defineProperty(this, "use_dynamic", void 0); Object.assign(this, payload); } - _createClass(LambdaContext, [{ + return _createClass(LambdaContext, [{ key: "__name__", get: function get() { return this.env.__name__; @@ -16553,7 +16557,6 @@ var LambdaContext = /*#__PURE__*/function () { return (_this$env = this.env).get.apply(_this$env, arguments); } }]); - return LambdaContext; }(); // ------------------------------------------------------------------------- function search_param(env, param) { var candidate = env.get(param.__name__, { @@ -16590,7 +16593,7 @@ var Continuation = /*#__PURE__*/function () { _defineProperty(this, "__value__", void 0); this.__value__ = k; } - _createClass(Continuation, [{ + return _createClass(Continuation, [{ key: "invoke", value: function invoke() { if (this.__value__ === null) { @@ -16598,7 +16601,6 @@ var Continuation = /*#__PURE__*/function () { } } }]); - return Continuation; }(); // ------------------------------------------------------------------------- function _evaluate(code) { var _ref47 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, @@ -17284,7 +17286,7 @@ function decode_magic(obj) { function serialize_bin(obj) { var magic = encode_magic(); var payload = cbor.encode(obj); - return merge_uint8_array(magic, pack_1(payload, { + return merge_uint8_array(magic, lzjbPackExports.pack(payload, { magic: false })); } @@ -17295,7 +17297,7 @@ function unserialize_bin(data) { type = _decode_magic.type, version = _decode_magic.version; if (type === 'LIPS' && version === 1) { - var arr = unpack_1(data.slice(MAGIC_LENGTH), { + var arr = lzjbPackExports.unpack(data.slice(MAGIC_LENGTH), { magic: false }); return cbor.decode(arr); @@ -17389,17 +17391,17 @@ if (typeof window !== 'undefined') { // ------------------------------------------------------------------------- var banner = function () { // Rollup tree-shaking is removing the variable if it's normal string because - // obviously 'Fri, 08 Nov 2024 13:26:12 +0000' == '{{' + 'DATE}}'; can be removed + // obviously 'Fri, 08 Nov 2024 13:38:41 +0000' == '{{' + 'DATE}}'; can be removed // but disabling Tree-shaking is adding lot of not used code so we use this // hack instead - var date = LString('Fri, 08 Nov 2024 13:26:12 +0000').valueOf(); + var date = LString('Fri, 08 Nov 2024 13:38:41 +0000').valueOf(); var _date = date === '{{' + 'DATE}}' ? new Date() : new Date(date); var _format = function _format(x) { return x.toString().padStart(2, '0'); }; var _year = _date.getFullYear(); var _build = [_year, _format(_date.getMonth() + 1), _format(_date.getDate())].join('-'); - var banner = "\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter DEV (".concat(_build, ") \nCopyright (c) 2018-").concat(_year, " Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/, ''); + var banner = "\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter 1.0.0-beta.20 (".concat(_build, ") \nCopyright (c) 2018-").concat(_year, " Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/, ''); return banner; }(); // ------------------------------------------------------------------------- @@ -17431,8 +17433,8 @@ read_only(LString, '__class__', 'string'); read_only(QuotedPromise, '__class__', 'promise'); read_only(Parameter, '__class__', 'parameter'); // ------------------------------------------------------------------------- -var version = 'DEV'; -var date = 'Fri, 08 Nov 2024 13:26:12 +0000'; +var version = '1.0.0-beta.20'; +var date = 'Fri, 08 Nov 2024 13:38:41 +0000'; // unwrap async generator into Promise var parse = compose(uniterate_async, _parse); diff --git a/dist/lips.esm.min.js b/dist/lips.esm.min.js index 4a486c70..59047187 100644 --- a/dist/lips.esm.min.js +++ b/dist/lips.esm.min.js @@ -4,7 +4,7 @@ * | | \ \ | | | || . \/ __> | | * | | > \ | |_ | || _/\__ \ | | * | | / ^ \ |___||_||_| <___/ | | - * \_\ /_/ \_\ /_/ v. DEV + * \_\ /_/ \_\ /_/ v. 1.0.0-beta.20 * * LIPS is Pretty Simple - Scheme based Powerful LISP in JavaScript * @@ -31,9 +31,9 @@ * Copyright (c) 2014-present, Facebook, Inc. * released under MIT license * - * build: Fri, 08 Nov 2024 13:26:12 +0000 + * build: Fri, 08 Nov 2024 13:38:41 +0000 */ -function _classApplyDescriptorGet(e,t){if(t.get){return t.get.call(e)}return t.value}function _classExtractFieldDescriptor(e,t,r){if(!t.has(e)){throw new TypeError("attempted to "+r+" private field on non-instance")}return t.get(e)}function _classPrivateFieldGet(e,t){var r=_classExtractFieldDescriptor(e,t,"get");return _classApplyDescriptorGet(e,r)}function _classApplyDescriptorSet(e,t,r){if(t.set){t.set.call(e,r)}else{if(!t.writable){throw new TypeError("attempted to set read only private field")}t.value=r}}function _classPrivateFieldSet(e,t,r){var n=_classExtractFieldDescriptor(e,t,"set");_classApplyDescriptorSet(e,n,r);return r}function _assertThisInitialized(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,r){t.__proto__=r;return t};return _setPrototypeOf(e,t)}function _isNativeReflectConstruct$1(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct$1=function e(){return!!t})()}function _construct(e,t,r){if(_isNativeReflectConstruct$1())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var i=new(e.bind.apply(e,n));return r&&_setPrototypeOf(i,r.prototype),i}function _readOnlyError(e){throw new TypeError('"'+e+'" is read-only')}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArray(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function _arrayLikeToArray$1(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r=0)continue;r[i]=e[i]}return r}function _objectWithoutProperties(e,t){if(e==null)return{};var r=_objectWithoutPropertiesLoose(e,t);var n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}function _iterableToArrayLimit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,u=[],s=!0,c=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(u.push(n.value),u.length!==t);s=!0);}catch(e){c=!0,i=e}finally{try{if(!s&&null!=r["return"]&&(o=r["return"](),Object(o)!==o))return}finally{if(c)throw i}}return u}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray$1(e,t)||_nonIterableRest()}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray$1(e)}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray$1(e)||_nonIterableSpread()}function _OverloadYield(e,t){this.v=e,this.k=t}function _awaitAsyncGenerator(e){return new _OverloadYield(e,0)}function AsyncGenerator(o){var a,u;function s(r,e){try{var n=o[r](e),i=n.value,a=i instanceof _OverloadYield;Promise.resolve(a?i.v:i).then(function(e){if(a){var t="return"===r?"return":"next";if(!i.k||e.done)return s(t,e);e=o[t](e).value}c(n.done?"return":"normal",e)},function(e){s("throw",e)})}catch(e){c("throw",e)}}function c(e,t){switch(e){case"return":a.resolve({value:t,done:!0});break;case"throw":a.reject(t);break;default:a.resolve({value:t,done:!1})}(a=a.next)?s(a.key,a.arg):u=null}this._invoke=function(n,i){return new Promise(function(e,t){var r={key:n,arg:i,resolve:e,reject:t,next:null};u?u=u.next=r:(a=u=r,s(n,i))})},"function"!=typeof o["return"]&&(this["return"]=void 0)}AsyncGenerator.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},AsyncGenerator.prototype.next=function(e){return this._invoke("next",e)},AsyncGenerator.prototype["throw"]=function(e){return this._invoke("throw",e)},AsyncGenerator.prototype["return"]=function(e){return this._invoke("return",e)};function _wrapAsyncGenerator(e){return function(){return new AsyncGenerator(e.apply(this,arguments))}}function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e["default"]:e}var regeneratorRuntime$1={exports:{}};var _typeof={exports:{}};(function(t){function r(e){"@babel/helpers - typeof";return t.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t.exports.__esModule=true,t.exports["default"]=t.exports,r(e)}t.exports=r,t.exports.__esModule=true,t.exports["default"]=t.exports})(_typeof);var _typeofExports=_typeof.exports;(function(P){var N=_typeofExports["default"];function B(){P.exports=B=function e(){return o},P.exports.__esModule=true,P.exports["default"]=P.exports;var c,o={},e=Object.prototype,l=e.hasOwnProperty,f=Object.defineProperty||function(e,t,r){e[t]=r.value},t="function"==typeof Symbol?Symbol:{},i=t.iterator||"@@iterator",r=t.asyncIterator||"@@asyncIterator",n=t.toStringTag||"@@toStringTag";function a(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{a({},"")}catch(c){a=function e(t,r,n){return t[r]=n}}function u(e,t,r,n){var i=t&&t.prototype instanceof s?t:s,a=Object.create(i.prototype),o=new C(n||[]);return f(a,"_invoke",{value:S(e,r,o)}),a}function _(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}o.wrap=u;var p="suspendedStart",d="suspendedYield",h="executing",m="completed",y={};function s(){}function v(){}function b(){}var g={};a(g,i,function(){return this});var w=Object.getPrototypeOf,D=w&&w(w(O([])));D&&D!==e&&l.call(D,i)&&(g=D);var x=b.prototype=s.prototype=Object.create(g);function L(e){["next","throw","return"].forEach(function(t){a(e,t,function(e){return this._invoke(t,e)})})}function E(u,s){function c(e,t,r,n){var i=_(u[e],u,t);if("throw"!==i.type){var a=i.arg,o=a.value;return o&&"object"==N(o)&&l.call(o,"__await")?s.resolve(o.__await).then(function(e){c("next",e,r,n)},function(e){c("throw",e,r,n)}):s.resolve(o).then(function(e){a.value=e,r(a)},function(e){return c("throw",e,r,n)})}n(i.arg)}var i;f(this,"_invoke",{value:function e(r,n){function t(){return new s(function(e,t){c(r,n,e,t)})}return i=i?i.then(t,t):t()}})}function S(a,o,u){var s=p;return function(e,t){if(s===h)throw new Error("Generator is already running");if(s===m){if("throw"===e)throw t;return{value:c,done:!0}}for(u.method=e,u.arg=t;;){var r=u.delegate;if(r){var n=A(r,u);if(n){if(n===y)continue;return n}}if("next"===u.method)u.sent=u._sent=u.arg;else if("throw"===u.method){if(s===p)throw s=m,u.arg;u.dispatchException(u.arg)}else"return"===u.method&&u.abrupt("return",u.arg);s=h;var i=_(a,o,u);if("normal"===i.type){if(s=u.done?m:d,i.arg===y)continue;return{value:i.arg,done:u.done}}"throw"===i.type&&(s=m,u.method="throw",u.arg=i.arg)}}}function A(e,t){var r=t.method,n=e.iterator[r];if(n===c)return t.delegate=null,"throw"===r&&e.iterator["return"]&&(t.method="return",t.arg=c,A(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var i=_(n,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,y;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=c),t.delegate=null,y):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,y)}function F(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(F,this),this.reset(!0)}function O(t){if(t||""===t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,n=function e(){for(;++r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return t("end");if(a.tryLoc<=this.prev){var u=l.call(a,"catchLoc"),s=l.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&l.call(i,"finallyLoc")&&this.prev=0;--r){var n=this.tryEntries[r];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),y}},catch:function e(t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var a=i.arg;k(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function e(t,r,n){return this.delegate={iterator:O(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=c),y}},o}P.exports=B,P.exports.__esModule=true,P.exports["default"]=P.exports})(regeneratorRuntime$1);var regeneratorRuntimeExports=regeneratorRuntime$1.exports;var runtime=regeneratorRuntimeExports();var regenerator=runtime;try{regeneratorRuntime=runtime}catch(e){if(typeof globalThis==="object"){globalThis.regeneratorRuntime=runtime}else{Function("r","regeneratorRuntime = r")(runtime)}}var _regeneratorRuntime=getDefaultExportFromCjs(regenerator);let decoder;try{decoder=new TextDecoder}catch(e){}let src;let srcEnd;let position$1=0;const LEGACY_RECORD_INLINE_ID=105;const RECORD_DEFINITIONS_ID=57342;const RECORD_INLINE_ID=57343;const BUNDLED_STRINGS_ID=57337;const PACKED_REFERENCE_TAG_ID=6;const STOP_CODE={};let currentDecoder={};let currentStructures;let srcString;let srcStringStart=0;let srcStringEnd=0;let bundledStrings$1;let referenceMap;let currentExtensions=[];let currentExtensionRanges=[];let packedValues;let dataView;let restoreMapsAsObject;let defaultOptions={useRecords:false,mapsAsObjects:true};let sequentialMode=false;let inlineObjectReadThreshold=2;try{new Function("")}catch(e){inlineObjectReadThreshold=Infinity}class Decoder{constructor(r){if(r){if((r.keyMap||r._keyMap)&&!r.useRecords){r.useRecords=false;r.mapsAsObjects=true}if(r.useRecords===false&&r.mapsAsObjects===undefined)r.mapsAsObjects=true;if(r.getStructures)r.getShared=r.getStructures;if(r.getShared&&!r.structures)(r.structures=[]).uninitialized=true;if(r.keyMap){this.mapKey=new Map;for(let[e,t]of Object.entries(r.keyMap))this.mapKey.set(t,e)}}Object.assign(this,r)}decodeKey(e){return this.keyMap?this.mapKey.get(e)||e:e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(r){if(!this._keyMap)return r;let n=new Map;for(let[e,t]of Object.entries(r))n.set(this._keyMap.hasOwnProperty(e)?this._keyMap[e]:e,t);return n}decodeKeys(e){if(!this._keyMap||e.constructor.name!="Map")return e;if(!this._mapKey){this._mapKey=new Map;for(let[e,t]of Object.entries(this._keyMap))this._mapKey.set(t,e)}let r={};e.forEach((e,t)=>r[safeKey(this._mapKey.has(t)?this._mapKey.get(t):t)]=e);return r}mapDecode(e,t){let r=this.decode(e);if(this._keyMap){switch(r.constructor.name){case"Array":return r.map(e=>this.decodeKeys(e))}}return r}decode(t,e){if(src){return saveState(()=>{clearSource();return this?this.decode(t,e):Decoder.prototype.decode.call(defaultOptions,t,e)})}srcEnd=e>-1?e:t.length;position$1=0;srcStringEnd=0;srcString=null;bundledStrings$1=null;src=t;try{dataView=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(e){src=null;if(t instanceof Uint8Array)throw e;throw new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof Decoder){currentDecoder=this;packedValues=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues);if(this.structures){currentStructures=this.structures;return checkedRead()}else if(!currentStructures||currentStructures.length>0){currentStructures=[]}}else{currentDecoder=defaultOptions;if(!currentStructures||currentStructures.length>0)currentStructures=[];packedValues=null}return checkedRead()}decodeMultiple(r,n){let i,a=0;try{let e=r.length;sequentialMode=true;let t=this?this.decode(r,e):defaultDecoder.decode(r,e);if(n){if(n(t)===false){return}while(position$1=bundledStrings$1.postBundlePosition){let e=new Error("Unexpected bundle position");e.incomplete=true;throw e}position$1=bundledStrings$1.postBundlePosition;bundledStrings$1=null}if(position$1==srcEnd){currentStructures=null;src=null;if(referenceMap)referenceMap=null}else if(position$1>srcEnd){let e=new Error("Unexpected end of CBOR data");e.incomplete=true;throw e}else if(!sequentialMode){throw new Error("Data read, but end of buffer not reached")}return e}catch(e){clearSource();if(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")){e.incomplete=true}throw e}}function read(){let n=src[position$1++];let i=n>>5;n=n&31;if(n>23){switch(n){case 24:n=src[position$1++];break;case 25:if(i==7){return getFloat16()}n=dataView.getUint16(position$1);position$1+=2;break;case 26:if(i==7){let t=dataView.getFloat32(position$1);if(currentDecoder.useFloat32>2){let e=mult10[(src[position$1]&127)<<1|src[position$1+1]>>7];position$1+=4;return(e*t+(t>0?.5:-.5)>>0)/e}position$1+=4;return t}n=dataView.getUint32(position$1);position$1+=4;break;case 27:if(i==7){let e=dataView.getFloat64(position$1);position$1+=8;return e}if(i>1){if(dataView.getUint32(position$1)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");n=dataView.getUint32(position$1+4)}else if(currentDecoder.int64AsNumber){n=dataView.getUint32(position$1)*4294967296;n+=dataView.getUint32(position$1+4)}else n=dataView.getBigUint64(position$1);position$1+=8;break;case 31:switch(i){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let e=[];let t,r=0;while((t=read())!=STOP_CODE){e[r++]=t}return i==4?e:i==3?e.join(""):Buffer.concat(e);case 5:let n;if(currentDecoder.mapsAsObjects){let e={};if(currentDecoder.keyMap)while((n=read())!=STOP_CODE)e[safeKey(currentDecoder.decodeKey(n))]=read();else while((n=read())!=STOP_CODE)e[safeKey(n)]=read();return e}else{if(restoreMapsAsObject){currentDecoder.mapsAsObjects=true;restoreMapsAsObject=false}let e=new Map;if(currentDecoder.keyMap)while((n=read())!=STOP_CODE)e.set(currentDecoder.decodeKey(n),read());else while((n=read())!=STOP_CODE)e.set(n,read());return e}case 7:return STOP_CODE;default:throw new Error("Invalid major type for indefinite length "+i)}default:throw new Error("Unknown token "+n)}}switch(i){case 0:return n;case 1:return~n;case 2:return readBin(n);case 3:if(srcStringEnd>=position$1){return srcString.slice(position$1-srcStringStart,(position$1+=n)-srcStringStart)}if(srcStringEnd==0&&srcEnd<140&&n<32){let e=n<16?shortStringInJS(n):longStringInJS(n);if(e!=null)return e}return readFixedString(n);case 4:let t=new Array(n);for(let e=0;e=BUNDLED_STRINGS_ID){let e=currentStructures[n&8191];if(e){if(!e.read)e.read=createStructureReader(e);return e.read()}if(n<65536){if(n==RECORD_INLINE_ID){let e=readJustLength();let t=read();let r=read();recordDefinition(t,r);let n={};if(currentDecoder.keyMap)for(let t=2;t23){switch(t){case 24:t=src[position$1++];break;case 25:t=dataView.getUint16(position$1);position$1+=2;break;case 26:t=dataView.getUint32(position$1);position$1+=4;break;default:throw new Error("Expected array header, but got "+src[position$1-1])}}let r=this.compiledReader;while(r){if(r.propertyCount===t)return r(read);r=r.next}if(this.slowReads++>=inlineObjectReadThreshold){let e=this.length==t?this:this.slice(0,t);r=currentDecoder.keyMap?new Function("r","return {"+e.map(e=>currentDecoder.decodeKey(e)).map(e=>validName.test(e)?safeKey(e)+":r()":"["+JSON.stringify(e)+"]:r()").join(",")+"}"):new Function("r","return {"+e.map(e=>validName.test(e)?safeKey(e)+":r()":"["+JSON.stringify(e)+"]:r()").join(",")+"}");if(this.compiledReader)r.next=this.compiledReader;r.propertyCount=t;this.compiledReader=r;return r(read)}let n={};if(currentDecoder.keyMap)for(let e=0;e64&&decoder)return decoder.decode(src.subarray(position$1,position$1+=e));const r=position$1+e;const n=[];t="";while(position$165535){e-=65536;n.push(e>>>10&1023|55296);e=56320|e&1023}n.push(e)}else{n.push(i)}if(n.length>=4096){t+=fromCharCode.apply(String,n);n.length=0}}if(n.length>0){t+=fromCharCode.apply(String,n)}return t}let fromCharCode=String.fromCharCode;function longStringInJS(t){let r=position$1;let n=new Array(t);for(let e=0;e0){position$1=r;return}n[e]=i}return fromCharCode.apply(String,n)}function shortStringInJS(h){if(h<4){if(h<2){if(h===0)return"";else{let e=src[position$1++];if((e&128)>1){position$1-=1;return}return fromCharCode(e)}}else{let e=src[position$1++];let t=src[position$1++];if((e&128)>0||(t&128)>0){position$1-=2;return}if(h<3)return fromCharCode(e,t);let r=src[position$1++];if((r&128)>0){position$1-=3;return}return fromCharCode(e,t,r)}}else{let f=src[position$1++];let _=src[position$1++];let p=src[position$1++];let d=src[position$1++];if((f&128)>0||(_&128)>0||(p&128)>0||(d&128)>0){position$1-=4;return}if(h<6){if(h===4)return fromCharCode(f,_,p,d);else{let e=src[position$1++];if((e&128)>0){position$1-=5;return}return fromCharCode(f,_,p,d,e)}}else if(h<8){let e=src[position$1++];let t=src[position$1++];if((e&128)>0||(t&128)>0){position$1-=6;return}if(h<7)return fromCharCode(f,_,p,d,e,t);let r=src[position$1++];if((r&128)>0){position$1-=7;return}return fromCharCode(f,_,p,d,e,t,r)}else{let u=src[position$1++];let s=src[position$1++];let c=src[position$1++];let l=src[position$1++];if((u&128)>0||(s&128)>0||(c&128)>0||(l&128)>0){position$1-=8;return}if(h<10){if(h===8)return fromCharCode(f,_,p,d,u,s,c,l);else{let e=src[position$1++];if((e&128)>0){position$1-=9;return}return fromCharCode(f,_,p,d,u,s,c,l,e)}}else if(h<12){let e=src[position$1++];let t=src[position$1++];if((e&128)>0||(t&128)>0){position$1-=10;return}if(h<11)return fromCharCode(f,_,p,d,u,s,c,l,e,t);let r=src[position$1++];if((r&128)>0){position$1-=11;return}return fromCharCode(f,_,p,d,u,s,c,l,e,t,r)}else{let n=src[position$1++];let i=src[position$1++];let a=src[position$1++];let o=src[position$1++];if((n&128)>0||(i&128)>0||(a&128)>0||(o&128)>0){position$1-=12;return}if(h<14){if(h===12)return fromCharCode(f,_,p,d,u,s,c,l,n,i,a,o);else{let e=src[position$1++];if((e&128)>0){position$1-=13;return}return fromCharCode(f,_,p,d,u,s,c,l,n,i,a,o,e)}}else{let e=src[position$1++];let t=src[position$1++];if((e&128)>0||(t&128)>0){position$1-=14;return}if(h<15)return fromCharCode(f,_,p,d,u,s,c,l,n,i,a,o,e,t);let r=src[position$1++];if((r&128)>0){position$1-=15;return}return fromCharCode(f,_,p,d,u,s,c,l,n,i,a,o,e,t,r)}}}}}function readBin(e){return currentDecoder.copyBuffers?Uint8Array.prototype.slice.call(src,position$1,position$1+=e):src.subarray(position$1,position$1+=e)}let f32Array=new Float32Array(1);let u8Array=new Uint8Array(f32Array.buffer,0,4);function getFloat16(){let t=src[position$1++];let r=src[position$1++];let e=(t&127)>>2;if(e===31){if(r||t&3)return NaN;return t&128?-Infinity:Infinity}if(e===0){let e=((t&3)<<8|r)/(1<<24);return t&128?-e:e}u8Array[3]=t&128|(e>>1)+56;u8Array[2]=(t&7)<<5|r>>3;u8Array[1]=r<<5;u8Array[0]=0;return f32Array[0]}new Array(4096);class Tag{constructor(e,t){this.value=e;this.tag=t}}currentExtensions[0]=e=>{return new Date(e)};currentExtensions[1]=e=>{return new Date(Math.round(e*1e3))};currentExtensions[2]=r=>{let n=BigInt(0);for(let e=0,t=r.byteLength;e{return BigInt(-1)-currentExtensions[2](e)};currentExtensions[4]=e=>{return+(e[1]+"e"+e[0])};currentExtensions[5]=e=>{return e[1]*Math.exp(e[0]*Math.log(2))};const recordDefinition=(e,t)=>{e=e-57344;let r=currentStructures[e];if(r&&r.isShared){(currentStructures.restoreStructures||(currentStructures.restoreStructures=[]))[e]=r}currentStructures[e]=t;t.read=createStructureReader(t)};currentExtensions[LEGACY_RECORD_INLINE_ID]=r=>{let e=r.length;let n=r[1];recordDefinition(r[0],n);let i={};for(let t=2;t{if(bundledStrings$1)return bundledStrings$1[0].slice(bundledStrings$1.position0,bundledStrings$1.position0+=e);return new Tag(e,14)};currentExtensions[15]=e=>{if(bundledStrings$1)return bundledStrings$1[1].slice(bundledStrings$1.position1,bundledStrings$1.position1+=e);return new Tag(e,15)};let glbl={Error:Error,RegExp:RegExp};currentExtensions[27]=e=>{return(glbl[e[0]]||Error)(e[1],e[2])};const packedTable=e=>{if(src[position$1++]!=132){let e=new Error("Packed values structure must be followed by a 4 element array");if(src.length{if(!packedValues){if(currentDecoder.getShared)loadShared();else return new Tag(e,PACKED_REFERENCE_TAG_ID)}if(typeof e=="number")return packedValues[16+(e>=0?2*e:-2*e-1)];let t=new Error("No support for non-integer packed references yet");if(e===undefined)t.incomplete=true;throw t};currentExtensions[28]=e=>{if(!referenceMap){referenceMap=new Map;referenceMap.id=0}let t=referenceMap.id++;let r=src[position$1];let n;if(r>>5==4)n=[];else n={};let i={target:n};referenceMap.set(t,i);let a=e();if(i.used)return Object.assign(n,a);i.target=a;return a};currentExtensions[28].handlesRead=true;currentExtensions[29]=e=>{let t=referenceMap.get(e);t.used=true;return t.target};currentExtensions[258]=e=>new Set(e);(currentExtensions[259]=e=>{if(currentDecoder.mapsAsObjects){currentDecoder.mapsAsObjects=false;restoreMapsAsObject=true}return e()}).handlesRead=true;function combine(e,t){if(typeof e==="string")return e+t;if(e instanceof Array)return e.concat(t);return Object.assign({},e,t)}function getPackedValues(){if(!packedValues){if(currentDecoder.getShared)loadShared();else throw new Error("No packed values available")}return packedValues}const SHARED_DATA_TAG_ID=1399353956;currentExtensionRanges.push((e,t)=>{if(e>=225&&e<=255)return combine(getPackedValues().prefixes[e-224],t);if(e>=28704&&e<=32767)return combine(getPackedValues().prefixes[e-28672],t);if(e>=1879052288&&e<=2147483647)return combine(getPackedValues().prefixes[e-1879048192],t);if(e>=216&&e<=223)return combine(t,getPackedValues().suffixes[e-216]);if(e>=27647&&e<=28671)return combine(t,getPackedValues().suffixes[e-27639]);if(e>=1811940352&&e<=1879048191)return combine(t,getPackedValues().suffixes[e-1811939328]);if(e==SHARED_DATA_TAG_ID){return{packedValues:packedValues,structures:currentStructures.slice(0),version:t}}if(e==55799)return t});const isLittleEndianMachine$1=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;const typedArrays=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array=="undefined"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array=="undefined"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array];const typedArrayTags=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e{if(!u)throw new Error("Could not find typed array for code "+s);if(!currentDecoder.copyBuffers){if(t===1||t===2&&!(e.byteOffset&1)||t===4&&!(e.byteOffset&3)||t===8&&!(e.byteOffset&7))return new u(e.buffer,e.byteOffset,e.byteLength)}return new u(Uint8Array.prototype.slice.call(e,0).buffer)}:e=>{if(!u)throw new Error("Could not find typed array for code "+s);let t=new DataView(e.buffer,e.byteOffset,e.byteLength);let r=e.length>>a;let n=new u(r);let i=t[c];for(let e=0;e23){switch(e){case 24:e=src[position$1++];break;case 25:e=dataView.getUint16(position$1);position$1+=2;break;case 26:e=dataView.getUint32(position$1);position$1+=4;break}}return e}function loadShared(){if(currentDecoder.getShared){let e=saveState(()=>{src=null;return currentDecoder.getShared()})||{};let t=e.structures||[];currentDecoder.sharedVersion=e.version;packedValues=currentDecoder.sharedValues=e.packedValues;if(currentStructures===true)currentDecoder.structures=currentStructures=t;else currentStructures.splice.apply(currentStructures,[0,t.length].concat(t))}}function saveState(e){let t=srcEnd;let r=position$1;let n=srcStringStart;let i=srcStringEnd;let a=srcString;let o=referenceMap;let u=bundledStrings$1;let s=new Uint8Array(src.slice(0,srcEnd));let c=currentStructures;let l=currentDecoder;let f=sequentialMode;let _=e();srcEnd=t;position$1=r;srcStringStart=n;srcStringEnd=i;srcString=a;referenceMap=o;bundledStrings$1=u;src=s;sequentialMode=f;currentStructures=c;currentDecoder=l;dataView=new DataView(src.buffer,src.byteOffset,src.byteLength);return _}function clearSource(){src=null;referenceMap=null;currentStructures=null}function addExtension$1(e){currentExtensions[e.tag]=e.decode}const mult10=new Array(147);for(let e=0;e<256;e++){mult10[e]=+("1e"+Math.floor(45.15-e*.30103))}let defaultDecoder=new Decoder({useRecords:false});defaultDecoder.decode;defaultDecoder.decodeMultiple;let textEncoder;try{textEncoder=new TextEncoder}catch(e){}let extensions,extensionClasses;const Buffer$1=typeof globalThis==="object"&&globalThis.Buffer;const hasNodeBuffer=typeof Buffer$1!=="undefined";const ByteArrayAllocate=hasNodeBuffer?Buffer$1.allocUnsafeSlow:Uint8Array;const ByteArray=hasNodeBuffer?Buffer$1:Uint8Array;const MAX_STRUCTURES=256;const MAX_BUFFER_SIZE=hasNodeBuffer?4294967296:2144337920;let throwOnIterable;let target;let targetView;let position=0;let safeEnd;let bundledStrings=null;const MAX_BUNDLE_SIZE=61440;const hasNonLatin=/[\u0080-\uFFFF]/;const RECORD_SYMBOL=Symbol("record-id");class Encoder extends Decoder{constructor(r){super(r);this.offset=0;let s;let o;let l;let f;let n;r=r||{};let c=ByteArray.prototype.utf8Write?function(e,t,r){return target.utf8Write(e,t,r)}:textEncoder&&textEncoder.encodeInto?function(e,t){return textEncoder.encodeInto(e,target.subarray(t)).written}:false;let a=this;let e=r.structures||r.saveStructures;let _=r.maxSharedStructures;if(_==null)_=e?128:0;if(_>8190)throw new Error("Maximum maxSharedStructure is 8190");let i=r.sequential;if(i){_=0}if(!this.structures)this.structures=[];if(this.saveStructures)this.saveShared=this.saveStructures;let p,d,u=r.sharedValues;let h;if(u){h=Object.create(null);for(let e=0,t=u.length;ethis.encodeKeys(e));break}}return this.encode(e,t)};this.encode=function(t,e){if(!target){target=new ByteArrayAllocate(8192);targetView=new DataView(target.buffer,0,8192);position=0}safeEnd=target.length-10;if(safeEnd-position<2048){target=new ByteArrayAllocate(target.length);targetView=new DataView(target.buffer,0,target.length);safeEnd=target.length-10;position=0}else if(e===REUSE_BUFFER_MODE)position=position+7&2147483640;s=position;if(a.useSelfDescribedHeader){targetView.setUint32(position,3654940416);position+=3}n=a.structuredClone?new Map:null;if(a.bundleStrings&&typeof t!=="string"){bundledStrings=[];bundledStrings.size=Infinity}else bundledStrings=null;o=a.structures;if(o){if(o.uninitialized){let e=a.getShared()||{};a.structures=o=e.structures||[];a.sharedVersion=e.version;let r=a.sharedValues=e.packedValues;if(r){h={};for(let e=0,t=r.length;e_&&!i)e=_;if(!o.transitions){o.transitions=Object.create(null);for(let a=0;a0){target[position++]=216;target[position++]=51;writeArrayHeader(4);let r=e.values;b(r);writeArrayHeader(0);writeArrayHeader(0);d=Object.create(h||null);for(let e=0,t=r.length;esafeEnd)w(position);a.offset=position;let e=insertIds(target.subarray(s,position),n.idsToInsert);n=null;return e}if(e&REUSE_BUFFER_MODE){target.start=s;target.end=position;return target}return target.subarray(s,position)}finally{if(o){if(v<10)v++;if(o.length>_)o.length=_;if(y>1e4){o.transitions=null;v=0;y=0;if(m.length>0)m=[]}else if(m.length>0&&!i){for(let e=0,t=m.length;e_){a.structures=a.structures.slice(0,_)}let e=target.subarray(s,position);if(a.updateSharedData()===false)return a.encode(t);return e}if(e&RESET_BUFFER_MODE)position=s}};this.findCommonStringsToPack=()=>{p=new Map;if(!h)h=Object.create(null);return e=>{let r=e&&e.threshold||4;let n=this.pack?e.maxPrivatePackedValues||16:0;if(!u)u=this.sharedValues=[];for(let[e,t]of p){if(t.count>r){h[e]=n++;u.push(e);l=true}}while(this.saveShared&&this.updateSharedData()===false){}p=null}};const b=o=>{if(position>safeEnd)target=w(position);var e=typeof o;var u;if(e==="string"){if(d){let e=d[o];if(e>=0){if(e<16)target[position++]=e+224;else{target[position++]=198;if(e&1)b(15-e>>1);else b(e-16>>1)}return}else if(p&&!r.pack){let e=p.get(o);if(e)e.count++;else p.set(o,{count:1})}}let i=o.length;if(bundledStrings&&i>=4&&i<1024){if((bundledStrings.size+=i)>MAX_BUNDLE_SIZE){let e;let t=(bundledStrings[0]?bundledStrings[0].length*3+bundledStrings[1].length:0)+10;if(position+t>safeEnd)target=w(position+t);target[position++]=217;target[position++]=223;target[position++]=249;target[position++]=bundledStrings.position?132:130;target[position++]=26;e=position-s;position+=4;if(bundledStrings.position){writeBundles(s,b)}bundledStrings=["",""];bundledStrings.size=0;bundledStrings.position=e}let e=hasNonLatin.test(o);bundledStrings[e?0:1]+=o;target[position++]=e?206:207;b(i);return}let a;if(i<32){a=1}else if(i<256){a=2}else if(i<65536){a=3}else{a=5}let e=i*3;if(position+e>safeEnd)target=w(position+e);if(i<64||!c){let e,t,r,n=position+a;for(e=0;e>6|192;target[n++]=t&63|128}else if((t&64512)===55296&&((r=o.charCodeAt(e+1))&64512)===56320){t=65536+((t&1023)<<10)+(r&1023);e++;target[n++]=t>>18|240;target[n++]=t>>12&63|128;target[n++]=t>>6&63|128;target[n++]=t&63|128}else{target[n++]=t>>12|224;target[n++]=t>>6&63|128;target[n++]=t&63|128}}u=n-position-a}else{u=c(o,position+a,e)}if(u<24){target[position++]=96|u}else if(u<256){if(a<2){target.copyWithin(position+2,position+1,position+1+u)}target[position++]=120;target[position++]=u}else if(u<65536){if(a<3){target.copyWithin(position+3,position+2,position+2+u)}target[position++]=121;target[position++]=u>>8;target[position++]=u&255}else{if(a<5){target.copyWithin(position+5,position+3,position+3+u)}target[position++]=122;targetView.setUint32(position,u);position+=4}position+=u}else if(e==="number"){if(!this.alwaysUseFloat&&o>>>0===o){if(o<24){target[position++]=o}else if(o<256){target[position++]=24;target[position++]=o}else if(o<65536){target[position++]=25;target[position++]=o>>8;target[position++]=o&255}else{target[position++]=26;targetView.setUint32(position,o);position+=4}}else if(!this.alwaysUseFloat&&o>>0===o){if(o>=-24){target[position++]=31-o}else if(o>=-256){target[position++]=56;target[position++]=~o}else if(o>=-65536){target[position++]=57;targetView.setUint16(position,~o);position+=2}else{target[position++]=58;targetView.setUint32(position,~o);position+=4}}else{let t;if((t=this.useFloat32)>0&&o<4294967296&&o>=-2147483648){target[position++]=250;targetView.setFloat32(position,o);let e;if(t<4||(e=o*mult10[(target[position]&127)<<1|target[position+1]>>7])>>0===e){position+=4;return}else position--}target[position++]=251;targetView.setFloat64(position,o);position+=8}}else if(e==="object"){if(!o)target[position++]=246;else{if(n){let t=n.get(o);if(t){target[position++]=216;target[position++]=29;target[position++]=25;if(!t.references){let e=n.idsToInsert||(n.idsToInsert=[]);t.references=[];e.push(t)}t.references.push(position-s);position+=2;return}else n.set(o,{offset:position-s})}let e=o.constructor;if(e===Object){g(o,true)}else if(e===Array){u=o.length;if(u<24){target[position++]=128|u}else{writeArrayHeader(u)}for(let e=0;e>8;target[position++]=u&255}else{target[position++]=186;targetView.setUint32(position,u);position+=4}if(a.keyMap){for(let[e,t]of o){b(a.encodeKey(e));b(t)}}else{for(let[e,t]of o){b(e);b(t)}}}else{for(let r=0,e=extensions.length;r>8;target[position++]=t&255}else if(t>-1){target[position++]=218;targetView.setUint32(position,t);position+=4}e.encode.call(this,o,b,w);return}}if(o[Symbol.iterator]){if(throwOnIterable){let e=new Error("Iterable should be serialized as iterator");e.iteratorNotHandled=true;throw e}target[position++]=159;for(let e of o){b(e)}target[position++]=255;return}if(o[Symbol.asyncIterator]||isBlob(o)){let e=new Error("Iterable/blob should be serialized as iterator");e.iteratorNotHandled=true;throw e}if(this.useToJSON&&o.toJSON){const t=o.toJSON();if(t!==o)return b(t)}g(o,!o.hasOwnProperty)}}}else if(e==="boolean"){target[position++]=o?245:244}else if(e==="bigint"){if(o=0){target[position++]=27;targetView.setBigUint64(position,o)}else if(o>-(BigInt(1)<{let t=Object.keys(e);let r=Object.values(e);let n=t.length;if(n<24){target[position++]=160|n}else if(n<256){target[position++]=184;target[position++]=n}else if(n<65536){target[position++]=185;target[position++]=n>>8;target[position++]=n&255}else{target[position++]=186;targetView.setUint32(position,n);position+=4}if(a.keyMap){for(let e=0;e{target[position++]=185;let e=position-s;position+=2;let n=0;if(a.keyMap){for(let e in t)if(r||t.hasOwnProperty(e)){b(a.encodeKey(e));b(t[e]);n++}}else{for(let e in t)if(r||t.hasOwnProperty(e)){b(e);b(t[e]);n++}}target[e+++s]=n>>8;target[e+s]=n&255}:(t,r)=>{let n,i=f.transitions||(f.transitions=Object.create(null));let a=0;let o=0;let u;let s;if(this.keyMap){s=Object.keys(t).map(e=>this.encodeKey(e));o=s.length;for(let t=0;t>8|224;target[position++]=c&255}else{if(!s)s=i.__keys__||(i.__keys__=Object.keys(t));if(u===undefined){c=f.nextId++;if(!c){c=0;f.nextId=1}if(c>=MAX_STRUCTURES){f.nextId=(c=_)+1}}else{c=u}f[c]=s;if(c<_){target[position++]=217;target[position++]=c>>8|224;target[position++]=c&255;i=f.transitions;for(let e=0;e=MAX_STRUCTURES-_)m.shift()[RECORD_SYMBOL]=undefined;m.push(i);writeArrayHeader(o+2);b(57344+c);b(s);if(r===null)return;for(let e in t)if(r||t.hasOwnProperty(e))b(t[e]);return}}if(o<24){target[position++]=128|o}else{writeArrayHeader(o)}if(r===null)return;for(let e in t)if(r||t.hasOwnProperty(e))b(t[e])};const w=e=>{let t;if(e>16777216){if(e-s>MAX_BUFFER_SIZE)throw new Error("Encoded buffer would be larger than maximum buffer size");t=Math.min(MAX_BUFFER_SIZE,Math.round(Math.max((e-s)*(e>67108864?1.25:2),4194304)/4096)*4096)}else t=(Math.max(e-s<<2,target.length-1)>>12)+1<<12;let r=new ByteArrayAllocate(t);targetView=new DataView(r.buffer,0,t);if(target.copy)target.copy(r,0,s,e);else r.set(target.slice(s,e));position-=s;s=0;safeEnd=r.length-10;return target=r};let D=100;let x=1e3;this.encodeAsIterable=function(e,t){return A(e,t,L)};this.encodeAsAsyncIterable=function(e,t){return A(e,t,F)};function*L(n,i,e){let t=n.constructor;if(t===Object){let r=a.useRecords!==false;if(r)g(n,null);else writeEntityLength(Object.keys(n).length,160);for(let t in n){let e=n[t];if(!r)b(t);if(e&&typeof e==="object"){if(i[t])yield*L(e,i[t]);else yield*E(e,i,t)}else b(e)}}else if(t===Array){let e=n.length;writeArrayHeader(e);for(let t=0;tD)){if(i.element)yield*L(e,i.element);else yield*E(e,i,"element")}else b(e)}}else if(n[Symbol.iterator]){target[position++]=159;for(let e of n){if(e&&(typeof e==="object"||position-s>D)){if(i.element)yield*L(e,i.element);else yield*E(e,i,"element")}else b(e)}target[position++]=255}else if(isBlob(n)){writeEntityLength(n.size,64);yield target.subarray(s,position);yield n;S()}else if(n[Symbol.asyncIterator]){target[position++]=159;yield target.subarray(s,position);yield n;S();target[position++]=255}else{b(n)}if(e&&position>s)yield target.subarray(s,position);else if(position-s>D){yield target.subarray(s,position);S()}}function*E(t,r,n){let i=position-s;try{b(t);if(position-s>D){yield target.subarray(s,position);S()}}catch(e){if(e.iteratorNotHandled){r[n]={};position=s+i;yield*L.call(this,t,r[n])}else throw e}}function S(){D=x;a.encode(null,THROW_ON_ITERABLE)}function A(e,t,r){if(t&&t.chunkThreshold)D=x=t.chunkThreshold;else D=100;if(e&&typeof e==="object"){a.encode(null,THROW_ON_ITERABLE);return r(e,a.iterateProperties||(a.iterateProperties={}),true)}return[a.encode(e)]}async function*F(e,t){for(let r of L(e,t,true)){let e=r.constructor;if(e===ByteArray||e===Uint8Array)yield r;else if(isBlob(r)){let e=r.stream().getReader();let t;while(!(t=await e.read()).done){yield t.value}}else if(r[Symbol.asyncIterator]){for await(let e of r){S();if(e)yield*F(e,t.async||(t.async={}));else yield a.encode(e)}}else{yield r}}}}useBuffer(e){target=e;targetView=new DataView(target.buffer,target.byteOffset,target.byteLength);position=0}clearSharedData(){if(this.structures)this.structures=[];if(this.sharedValues)this.sharedValues=undefined}updateSharedData(){let t=this.sharedVersion||0;this.sharedVersion=t+1;let e=this.structures.slice(0);let r=new SharedData(e,this.sharedValues,this.sharedVersion);let n=this.saveShared(r,e=>(e&&e.version||0)==t);if(n===false){r=this.getShared()||{};this.structures=r.structures||[];this.sharedValues=r.packedValues;this.sharedVersion=r.version;this.structures.nextId=this.structures.length}else{e.forEach((e,t)=>this.structures[t]=e)}return n}}function writeEntityLength(e,t){if(e<24)target[position++]=t|e;else if(e<256){target[position++]=t|24;target[position++]=e}else if(e<65536){target[position++]=t|25;target[position++]=e>>8;target[position++]=e&255}else{target[position++]=t|26;targetView.setUint32(position,e);position+=4}}class SharedData{constructor(e,t,r){this.structures=e;this.packedValues=t;this.version=r}}function writeArrayHeader(e){if(e<24)target[position++]=128|e;else if(e<256){target[position++]=152;target[position++]=e}else if(e<65536){target[position++]=153;target[position++]=e>>8;target[position++]=e&255}else{target[position++]=154;targetView.setUint32(position,e);position+=4}}const BlobConstructor=typeof Blob==="undefined"?function(){}:Blob;function isBlob(e){if(e instanceof BlobConstructor)return true;let t=e[Symbol.toStringTag];return t==="Blob"||t==="File"}function findRepetitiveStrings(r,n){switch(typeof r){case"string":if(r.length>3){if(n.objectMap[r]>-1||n.values.length>=n.maxValues)return;let e=n.get(r);if(e){if(++e.count==2){n.values.push(r)}}else{n.set(r,{count:1});if(n.samplingPackedValues){let e=n.samplingPackedValues.get(r);if(e)e.count++;else n.samplingPackedValues.set(r,{count:1})}}}break;case"object":if(r){if(r instanceof Array){for(let e=0,t=r.length;e=0&&r<4294967296){target[position++]=26;targetView.setUint32(position,r);position+=4}else{target[position++]=251;targetView.setFloat64(position,r);position+=8}}},{tag:258,encode(e,t){let r=Array.from(e);t(r)}},{tag:27,encode(e,t){t([e.name,e.message])}},{tag:27,encode(e,t){t(["RegExp",e.source,e.flags])}},{getTag(e){return e.tag},encode(e,t){t(e.value)}},{encode(e,t,r){writeBuffer(e,r)}},{getTag(e){if(e.constructor===Uint8Array){if(this.tagUint8Array||hasNodeBuffer&&this.tagUint8Array!==false)return 64}},encode(e,t,r){writeBuffer(e,r)}},typedArrayEncoder(68,1),typedArrayEncoder(69,2),typedArrayEncoder(70,4),typedArrayEncoder(71,8),typedArrayEncoder(72,1),typedArrayEncoder(77,2),typedArrayEncoder(78,4),typedArrayEncoder(79,8),typedArrayEncoder(85,4),typedArrayEncoder(86,8),{encode(t,n){let e=t.packedValues||[];let r=t.structures||[];if(e.values.length>0){target[position++]=216;target[position++]=51;writeArrayHeader(4);let r=e.values;n(r);writeArrayHeader(0);writeArrayHeader(0);packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let e=0,t=r.length;e1)e-=4;return{tag:e,encode:function e(t,r){let n=t.byteLength;let i=t.byteOffset||0;let a=t.buffer||t;r(hasNodeBuffer?Buffer$1.from(a,i,n):new Uint8Array(a,i,n))}}}function writeBuffer(e,t){let r=e.byteLength;if(r<24){target[position++]=64+r}else if(r<256){target[position++]=88;target[position++]=r}else if(r<65536){target[position++]=89;target[position++]=r>>8;target[position++]=r&255}else{target[position++]=90;targetView.setUint32(position,r);position+=4}if(position+r>=target.length){t(position+r)}target.set(e.buffer?e:new Uint8Array(e),position);position+=r}function insertIds(n,e){let r;let i=e.length*2;let a=n.length-i;e.sort((e,t)=>e.offset>t.offset?1:-1);for(let r=0;r>8;n[e]=r&255}}while(r=e.pop()){let e=r.offset;n.copyWithin(e+i,e,a);i-=2;let t=e+i;n[t++]=216;n[t++]=28;a=e}return n}function writeBundles(e,t){targetView.setUint32(bundledStrings.position+e,position-bundledStrings.position-e+1);let r=bundledStrings;bundledStrings=null;t(r[0]);t(r[1])}function addExtension(e){if(e.Class){if(!e.encode)throw new Error("Extension has no encode function");extensionClasses.unshift(e.Class);extensions.unshift(e)}addExtension$1(e)}let defaultEncoder=new Encoder({useRecords:false});defaultEncoder.encode;defaultEncoder.encodeAsIterable;defaultEncoder.encodeAsAsyncIterable;const REUSE_BUFFER_MODE=512;const RESET_BUFFER_MODE=1024;const THROW_ON_ITERABLE=2048;var lzjbPack={}; +function _isNativeReflectConstruct$1(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct$1=function e(){return!!t})()}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _construct(e,t,r){if(_isNativeReflectConstruct$1())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var i=new(e.bind.apply(e,n));return r&&_setPrototypeOf(i,r.prototype),i}function _readOnlyError(e){throw new TypeError('"'+e+'" is read-only')}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayLikeToArray$1(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return t("end");if(a.tryLoc<=this.prev){var u=l.call(a,"catchLoc"),s=l.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&l.call(i,"finallyLoc")&&this.prev=0;--r){var n=this.tryEntries[r];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),y}},catch:function e(t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var a=i.arg;k(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function e(t,r,n){return this.delegate={iterator:P(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=c),y}},o}O.exports=B,O.exports.__esModule=true,O.exports["default"]=O.exports})(regeneratorRuntime$1);return regeneratorRuntime$1.exports}var regenerator;var hasRequiredRegenerator;function requireRegenerator(){if(hasRequiredRegenerator)return regenerator;hasRequiredRegenerator=1;var t=requireRegeneratorRuntime()();regenerator=t;try{regeneratorRuntime=t}catch(e){if(typeof globalThis==="object"){globalThis.regeneratorRuntime=t}else{Function("r","regeneratorRuntime = r")(t)}}return regenerator}var regeneratorExports=requireRegenerator();var _regeneratorRuntime=getDefaultExportFromCjs(regeneratorExports);let decoder;try{decoder=new TextDecoder}catch(e){}let src;let srcEnd;let position$1=0;const LEGACY_RECORD_INLINE_ID=105;const RECORD_DEFINITIONS_ID=57342;const RECORD_INLINE_ID=57343;const BUNDLED_STRINGS_ID=57337;const PACKED_REFERENCE_TAG_ID=6;const STOP_CODE={};let maxArraySize=11281e4;let maxMapSize=1681e4;let currentDecoder={};let currentStructures;let srcString;let srcStringStart=0;let srcStringEnd=0;let bundledStrings$1;let referenceMap;let currentExtensions=[];let currentExtensionRanges=[];let packedValues;let dataView;let restoreMapsAsObject;let defaultOptions={useRecords:false,mapsAsObjects:true};let sequentialMode=false;let inlineObjectReadThreshold=2;try{new Function("")}catch(e){inlineObjectReadThreshold=Infinity}class Decoder{constructor(r){if(r){if((r.keyMap||r._keyMap)&&!r.useRecords){r.useRecords=false;r.mapsAsObjects=true}if(r.useRecords===false&&r.mapsAsObjects===undefined)r.mapsAsObjects=true;if(r.getStructures)r.getShared=r.getStructures;if(r.getShared&&!r.structures)(r.structures=[]).uninitialized=true;if(r.keyMap){this.mapKey=new Map;for(let[e,t]of Object.entries(r.keyMap))this.mapKey.set(t,e)}}Object.assign(this,r)}decodeKey(e){return this.keyMap?this.mapKey.get(e)||e:e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(r){if(!this._keyMap)return r;let n=new Map;for(let[e,t]of Object.entries(r))n.set(this._keyMap.hasOwnProperty(e)?this._keyMap[e]:e,t);return n}decodeKeys(e){if(!this._keyMap||e.constructor.name!="Map")return e;if(!this._mapKey){this._mapKey=new Map;for(let[e,t]of Object.entries(this._keyMap))this._mapKey.set(t,e)}let r={};e.forEach((e,t)=>r[safeKey(this._mapKey.has(t)?this._mapKey.get(t):t)]=e);return r}mapDecode(e,t){let r=this.decode(e);if(this._keyMap){switch(r.constructor.name){case"Array":return r.map(e=>this.decodeKeys(e))}}return r}decode(t,e){if(src){return saveState(()=>{clearSource();return this?this.decode(t,e):Decoder.prototype.decode.call(defaultOptions,t,e)})}srcEnd=e>-1?e:t.length;position$1=0;srcStringEnd=0;srcString=null;bundledStrings$1=null;src=t;try{dataView=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(e){src=null;if(t instanceof Uint8Array)throw e;throw new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof Decoder){currentDecoder=this;packedValues=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues);if(this.structures){currentStructures=this.structures;return checkedRead()}else if(!currentStructures||currentStructures.length>0){currentStructures=[]}}else{currentDecoder=defaultOptions;if(!currentStructures||currentStructures.length>0)currentStructures=[];packedValues=null}return checkedRead()}decodeMultiple(r,n){let i,a=0;try{let e=r.length;sequentialMode=true;let t=this?this.decode(r,e):defaultDecoder.decode(r,e);if(n){if(n(t)===false){return}while(position$1=bundledStrings$1.postBundlePosition){let e=new Error("Unexpected bundle position");e.incomplete=true;throw e}position$1=bundledStrings$1.postBundlePosition;bundledStrings$1=null}if(position$1==srcEnd){currentStructures=null;src=null;if(referenceMap)referenceMap=null}else if(position$1>srcEnd){let e=new Error("Unexpected end of CBOR data");e.incomplete=true;throw e}else if(!sequentialMode){throw new Error("Data read, but end of buffer not reached")}return e}catch(e){clearSource();if(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")){e.incomplete=true}throw e}}function read(){let n=src[position$1++];let i=n>>5;n=n&31;if(n>23){switch(n){case 24:n=src[position$1++];break;case 25:if(i==7){return getFloat16()}n=dataView.getUint16(position$1);position$1+=2;break;case 26:if(i==7){let t=dataView.getFloat32(position$1);if(currentDecoder.useFloat32>2){let e=mult10[(src[position$1]&127)<<1|src[position$1+1]>>7];position$1+=4;return(e*t+(t>0?.5:-.5)>>0)/e}position$1+=4;return t}n=dataView.getUint32(position$1);position$1+=4;break;case 27:if(i==7){let e=dataView.getFloat64(position$1);position$1+=8;return e}if(i>1){if(dataView.getUint32(position$1)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");n=dataView.getUint32(position$1+4)}else if(currentDecoder.int64AsNumber){n=dataView.getUint32(position$1)*4294967296;n+=dataView.getUint32(position$1+4)}else n=dataView.getBigUint64(position$1);position$1+=8;break;case 31:switch(i){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let e=[];let t,r=0;while((t=read())!=STOP_CODE){if(r>=maxArraySize)throw new Error(`Array length exceeds ${maxArraySize}`);e[r++]=t}return i==4?e:i==3?e.join(""):Buffer.concat(e);case 5:let n;if(currentDecoder.mapsAsObjects){let e={};let t=0;if(currentDecoder.keyMap){while((n=read())!=STOP_CODE){if(t++>=maxMapSize)throw new Error(`Property count exceeds ${maxMapSize}`);e[safeKey(currentDecoder.decodeKey(n))]=read()}}else{while((n=read())!=STOP_CODE){if(t++>=maxMapSize)throw new Error(`Property count exceeds ${maxMapSize}`);e[safeKey(n)]=read()}}return e}else{if(restoreMapsAsObject){currentDecoder.mapsAsObjects=true;restoreMapsAsObject=false}let t=new Map;if(currentDecoder.keyMap){let e=0;while((n=read())!=STOP_CODE){if(e++>=maxMapSize){throw new Error(`Map size exceeds ${maxMapSize}`)}t.set(currentDecoder.decodeKey(n),read())}}else{let e=0;while((n=read())!=STOP_CODE){if(e++>=maxMapSize){throw new Error(`Map size exceeds ${maxMapSize}`)}t.set(n,read())}}return t}case 7:return STOP_CODE;default:throw new Error("Invalid major type for indefinite length "+i)}default:throw new Error("Unknown token "+n)}}switch(i){case 0:return n;case 1:return~n;case 2:return readBin(n);case 3:if(srcStringEnd>=position$1){return srcString.slice(position$1-srcStringStart,(position$1+=n)-srcStringStart)}if(srcStringEnd==0&&srcEnd<140&&n<32){let e=n<16?shortStringInJS(n):longStringInJS(n);if(e!=null)return e}return readFixedString(n);case 4:if(n>=maxArraySize)throw new Error(`Array length exceeds ${maxArraySize}`);let t=new Array(n);for(let e=0;e=maxMapSize)throw new Error(`Map size exceeds ${maxArraySize}`);if(currentDecoder.mapsAsObjects){let t={};if(currentDecoder.keyMap)for(let e=0;e=BUNDLED_STRINGS_ID){let e=currentStructures[n&8191];if(e){if(!e.read)e.read=createStructureReader(e);return e.read()}if(n<65536){if(n==RECORD_INLINE_ID){let e=readJustLength();let t=read();let r=read();recordDefinition(t,r);let n={};if(currentDecoder.keyMap)for(let t=2;t23){switch(t){case 24:t=src[position$1++];break;case 25:t=dataView.getUint16(position$1);position$1+=2;break;case 26:t=dataView.getUint32(position$1);position$1+=4;break;default:throw new Error("Expected array header, but got "+src[position$1-1])}}let r=this.compiledReader;while(r){if(r.propertyCount===t)return r(read);r=r.next}if(this.slowReads++>=inlineObjectReadThreshold){let e=this.length==t?this:this.slice(0,t);r=currentDecoder.keyMap?new Function("r","return {"+e.map(e=>currentDecoder.decodeKey(e)).map(e=>validName.test(e)?safeKey(e)+":r()":"["+JSON.stringify(e)+"]:r()").join(",")+"}"):new Function("r","return {"+e.map(e=>validName.test(e)?safeKey(e)+":r()":"["+JSON.stringify(e)+"]:r()").join(",")+"}");if(this.compiledReader)r.next=this.compiledReader;r.propertyCount=t;this.compiledReader=r;return r(read)}let n={};if(currentDecoder.keyMap)for(let e=0;e64&&decoder)return decoder.decode(src.subarray(position$1,position$1+=e));const r=position$1+e;const n=[];t="";while(position$165535){e-=65536;n.push(e>>>10&1023|55296);e=56320|e&1023}n.push(e)}else{n.push(i)}if(n.length>=4096){t+=fromCharCode.apply(String,n);n.length=0}}if(n.length>0){t+=fromCharCode.apply(String,n)}return t}let fromCharCode=String.fromCharCode;function longStringInJS(t){let r=position$1;let n=new Array(t);for(let e=0;e0){position$1=r;return}n[e]=i}return fromCharCode.apply(String,n)}function shortStringInJS(h){if(h<4){if(h<2){if(h===0)return"";else{let e=src[position$1++];if((e&128)>1){position$1-=1;return}return fromCharCode(e)}}else{let e=src[position$1++];let t=src[position$1++];if((e&128)>0||(t&128)>0){position$1-=2;return}if(h<3)return fromCharCode(e,t);let r=src[position$1++];if((r&128)>0){position$1-=3;return}return fromCharCode(e,t,r)}}else{let f=src[position$1++];let _=src[position$1++];let p=src[position$1++];let d=src[position$1++];if((f&128)>0||(_&128)>0||(p&128)>0||(d&128)>0){position$1-=4;return}if(h<6){if(h===4)return fromCharCode(f,_,p,d);else{let e=src[position$1++];if((e&128)>0){position$1-=5;return}return fromCharCode(f,_,p,d,e)}}else if(h<8){let e=src[position$1++];let t=src[position$1++];if((e&128)>0||(t&128)>0){position$1-=6;return}if(h<7)return fromCharCode(f,_,p,d,e,t);let r=src[position$1++];if((r&128)>0){position$1-=7;return}return fromCharCode(f,_,p,d,e,t,r)}else{let u=src[position$1++];let s=src[position$1++];let c=src[position$1++];let l=src[position$1++];if((u&128)>0||(s&128)>0||(c&128)>0||(l&128)>0){position$1-=8;return}if(h<10){if(h===8)return fromCharCode(f,_,p,d,u,s,c,l);else{let e=src[position$1++];if((e&128)>0){position$1-=9;return}return fromCharCode(f,_,p,d,u,s,c,l,e)}}else if(h<12){let e=src[position$1++];let t=src[position$1++];if((e&128)>0||(t&128)>0){position$1-=10;return}if(h<11)return fromCharCode(f,_,p,d,u,s,c,l,e,t);let r=src[position$1++];if((r&128)>0){position$1-=11;return}return fromCharCode(f,_,p,d,u,s,c,l,e,t,r)}else{let n=src[position$1++];let i=src[position$1++];let a=src[position$1++];let o=src[position$1++];if((n&128)>0||(i&128)>0||(a&128)>0||(o&128)>0){position$1-=12;return}if(h<14){if(h===12)return fromCharCode(f,_,p,d,u,s,c,l,n,i,a,o);else{let e=src[position$1++];if((e&128)>0){position$1-=13;return}return fromCharCode(f,_,p,d,u,s,c,l,n,i,a,o,e)}}else{let e=src[position$1++];let t=src[position$1++];if((e&128)>0||(t&128)>0){position$1-=14;return}if(h<15)return fromCharCode(f,_,p,d,u,s,c,l,n,i,a,o,e,t);let r=src[position$1++];if((r&128)>0){position$1-=15;return}return fromCharCode(f,_,p,d,u,s,c,l,n,i,a,o,e,t,r)}}}}}function readBin(e){return currentDecoder.copyBuffers?Uint8Array.prototype.slice.call(src,position$1,position$1+=e):src.subarray(position$1,position$1+=e)}let f32Array=new Float32Array(1);let u8Array=new Uint8Array(f32Array.buffer,0,4);function getFloat16(){let t=src[position$1++];let r=src[position$1++];let e=(t&127)>>2;if(e===31){if(r||t&3)return NaN;return t&128?-Infinity:Infinity}if(e===0){let e=((t&3)<<8|r)/(1<<24);return t&128?-e:e}u8Array[3]=t&128|(e>>1)+56;u8Array[2]=(t&7)<<5|r>>3;u8Array[1]=r<<5;u8Array[0]=0;return f32Array[0]}new Array(4096);class Tag{constructor(e,t){this.value=e;this.tag=t}}currentExtensions[0]=e=>{return new Date(e)};currentExtensions[1]=e=>{return new Date(Math.round(e*1e3))};currentExtensions[2]=r=>{let n=BigInt(0);for(let e=0,t=r.byteLength;e{return BigInt(-1)-currentExtensions[2](e)};currentExtensions[4]=e=>{return+(e[1]+"e"+e[0])};currentExtensions[5]=e=>{return e[1]*Math.exp(e[0]*Math.log(2))};const recordDefinition=(e,t)=>{e=e-57344;let r=currentStructures[e];if(r&&r.isShared){(currentStructures.restoreStructures||(currentStructures.restoreStructures=[]))[e]=r}currentStructures[e]=t;t.read=createStructureReader(t)};currentExtensions[LEGACY_RECORD_INLINE_ID]=r=>{let e=r.length;let n=r[1];recordDefinition(r[0],n);let i={};for(let t=2;t{if(bundledStrings$1)return bundledStrings$1[0].slice(bundledStrings$1.position0,bundledStrings$1.position0+=e);return new Tag(e,14)};currentExtensions[15]=e=>{if(bundledStrings$1)return bundledStrings$1[1].slice(bundledStrings$1.position1,bundledStrings$1.position1+=e);return new Tag(e,15)};let glbl={Error:Error,RegExp:RegExp};currentExtensions[27]=e=>{return(glbl[e[0]]||Error)(e[1],e[2])};const packedTable=e=>{if(src[position$1++]!=132){let e=new Error("Packed values structure must be followed by a 4 element array");if(src.length{if(!packedValues){if(currentDecoder.getShared)loadShared();else return new Tag(e,PACKED_REFERENCE_TAG_ID)}if(typeof e=="number")return packedValues[16+(e>=0?2*e:-2*e-1)];let t=new Error("No support for non-integer packed references yet");if(e===undefined)t.incomplete=true;throw t};currentExtensions[28]=e=>{if(!referenceMap){referenceMap=new Map;referenceMap.id=0}let t=referenceMap.id++;let r=position$1;let n=src[position$1];let i;if(n>>5==4)i=[];else i={};let a={target:i};referenceMap.set(t,a);let o=e();if(a.used){if(Object.getPrototypeOf(i)!==Object.getPrototypeOf(o)){position$1=r;i=o;referenceMap.set(t,{target:i});o=e()}return Object.assign(i,o)}a.target=o;return o};currentExtensions[28].handlesRead=true;currentExtensions[29]=e=>{let t=referenceMap.get(e);t.used=true;return t.target};currentExtensions[258]=e=>new Set(e);(currentExtensions[259]=e=>{if(currentDecoder.mapsAsObjects){currentDecoder.mapsAsObjects=false;restoreMapsAsObject=true}return e()}).handlesRead=true;function combine(e,t){if(typeof e==="string")return e+t;if(e instanceof Array)return e.concat(t);return Object.assign({},e,t)}function getPackedValues(){if(!packedValues){if(currentDecoder.getShared)loadShared();else throw new Error("No packed values available")}return packedValues}const SHARED_DATA_TAG_ID=1399353956;currentExtensionRanges.push((e,t)=>{if(e>=225&&e<=255)return combine(getPackedValues().prefixes[e-224],t);if(e>=28704&&e<=32767)return combine(getPackedValues().prefixes[e-28672],t);if(e>=1879052288&&e<=2147483647)return combine(getPackedValues().prefixes[e-1879048192],t);if(e>=216&&e<=223)return combine(t,getPackedValues().suffixes[e-216]);if(e>=27647&&e<=28671)return combine(t,getPackedValues().suffixes[e-27639]);if(e>=1811940352&&e<=1879048191)return combine(t,getPackedValues().suffixes[e-1811939328]);if(e==SHARED_DATA_TAG_ID){return{packedValues:packedValues,structures:currentStructures.slice(0),version:t}}if(e==55799)return t});const isLittleEndianMachine$1=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;const typedArrays=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array=="undefined"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array=="undefined"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array];const typedArrayTags=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e{if(!u)throw new Error("Could not find typed array for code "+s);if(!currentDecoder.copyBuffers){if(t===1||t===2&&!(e.byteOffset&1)||t===4&&!(e.byteOffset&3)||t===8&&!(e.byteOffset&7))return new u(e.buffer,e.byteOffset,e.byteLength>>a)}return new u(Uint8Array.prototype.slice.call(e,0).buffer)}:e=>{if(!u)throw new Error("Could not find typed array for code "+s);let t=new DataView(e.buffer,e.byteOffset,e.byteLength);let r=e.length>>a;let n=new u(r);let i=t[c];for(let e=0;e23){switch(e){case 24:e=src[position$1++];break;case 25:e=dataView.getUint16(position$1);position$1+=2;break;case 26:e=dataView.getUint32(position$1);position$1+=4;break}}return e}function loadShared(){if(currentDecoder.getShared){let e=saveState(()=>{src=null;return currentDecoder.getShared()})||{};let t=e.structures||[];currentDecoder.sharedVersion=e.version;packedValues=currentDecoder.sharedValues=e.packedValues;if(currentStructures===true)currentDecoder.structures=currentStructures=t;else currentStructures.splice.apply(currentStructures,[0,t.length].concat(t))}}function saveState(e){let t=srcEnd;let r=position$1;let n=srcStringStart;let i=srcStringEnd;let a=srcString;let o=referenceMap;let u=bundledStrings$1;let s=new Uint8Array(src.slice(0,srcEnd));let c=currentStructures;let l=currentDecoder;let f=sequentialMode;let _=e();srcEnd=t;position$1=r;srcStringStart=n;srcStringEnd=i;srcString=a;referenceMap=o;bundledStrings$1=u;src=s;sequentialMode=f;currentStructures=c;currentDecoder=l;dataView=new DataView(src.buffer,src.byteOffset,src.byteLength);return _}function clearSource(){src=null;referenceMap=null;currentStructures=null}function addExtension$1(e){currentExtensions[e.tag]=e.decode}const mult10=new Array(147);for(let e=0;e<256;e++){mult10[e]=+("1e"+Math.floor(45.15-e*.30103))}let defaultDecoder=new Decoder({useRecords:false});defaultDecoder.decode;defaultDecoder.decodeMultiple;let textEncoder;try{textEncoder=new TextEncoder}catch(e){}let extensions,extensionClasses;const Buffer$1=typeof globalThis==="object"&&globalThis.Buffer;const hasNodeBuffer=typeof Buffer$1!=="undefined";const ByteArrayAllocate=hasNodeBuffer?Buffer$1.allocUnsafeSlow:Uint8Array;const ByteArray=hasNodeBuffer?Buffer$1:Uint8Array;const MAX_STRUCTURES=256;const MAX_BUFFER_SIZE=hasNodeBuffer?4294967296:2144337920;let throwOnIterable;let target;let targetView;let position=0;let safeEnd;let bundledStrings=null;const MAX_BUNDLE_SIZE=61440;const hasNonLatin=/[\u0080-\uFFFF]/;const RECORD_SYMBOL=Symbol("record-id");class Encoder extends Decoder{constructor(r){super(r);this.offset=0;let s;let o;let c;let l;let n;r=r||{};let f=ByteArray.prototype.utf8Write?function(e,t,r){return target.utf8Write(e,t,r)}:textEncoder&&textEncoder.encodeInto?function(e,t){return textEncoder.encodeInto(e,target.subarray(t)).written}:false;let a=this;let e=r.structures||r.saveStructures;let _=r.maxSharedStructures;if(_==null)_=e?128:0;if(_>8190)throw new Error("Maximum maxSharedStructure is 8190");let i=r.sequential;if(i){_=0}if(!this.structures)this.structures=[];if(this.saveStructures)this.saveShared=this.saveStructures;let p,d,u=r.sharedValues;let h;if(u){h=Object.create(null);for(let e=0,t=u.length;ethis.encodeKeys(e));break}}return this.encode(e,t)};this.encode=function(t,e){if(!target){target=new ByteArrayAllocate(8192);targetView=new DataView(target.buffer,0,8192);position=0}safeEnd=target.length-10;if(safeEnd-position<2048){target=new ByteArrayAllocate(target.length);targetView=new DataView(target.buffer,0,target.length);safeEnd=target.length-10;position=0}else if(e===REUSE_BUFFER_MODE)position=position+7&2147483640;s=position;if(a.useSelfDescribedHeader){targetView.setUint32(position,3654940416);position+=3}n=a.structuredClone?new Map:null;if(a.bundleStrings&&typeof t!=="string"){bundledStrings=[];bundledStrings.size=Infinity}else bundledStrings=null;o=a.structures;if(o){if(o.uninitialized){let e=a.getShared()||{};a.structures=o=e.structures||[];a.sharedVersion=e.version;let r=a.sharedValues=e.packedValues;if(r){h={};for(let e=0,t=r.length;e_&&!i)e=_;if(!o.transitions){o.transitions=Object.create(null);for(let a=0;a0){target[position++]=216;target[position++]=51;writeArrayHeader(4);let r=e.values;b(r);writeArrayHeader(0);writeArrayHeader(0);d=Object.create(h||null);for(let e=0,t=r.length;esafeEnd)w(position);a.offset=position;let e=insertIds(target.subarray(s,position),n.idsToInsert);n=null;return e}if(e&REUSE_BUFFER_MODE){target.start=s;target.end=position;return target}return target.subarray(s,position)}finally{if(o){if(v<10)v++;if(o.length>_)o.length=_;if(y>1e4){o.transitions=null;v=0;y=0;if(m.length>0)m=[]}else if(m.length>0&&!i){for(let e=0,t=m.length;e_){a.structures=a.structures.slice(0,_)}let e=target.subarray(s,position);if(a.updateSharedData()===false)return a.encode(t);return e}if(e&RESET_BUFFER_MODE)position=s}};this.findCommonStringsToPack=()=>{p=new Map;if(!h)h=Object.create(null);return e=>{let r=e&&e.threshold||4;let n=this.pack?e.maxPrivatePackedValues||16:0;if(!u)u=this.sharedValues=[];for(let[e,t]of p){if(t.count>r){h[e]=n++;u.push(e);c=true}}while(this.saveShared&&this.updateSharedData()===false){}p=null}};const b=o=>{if(position>safeEnd)target=w(position);var e=typeof o;var u;if(e==="string"){if(d){let e=d[o];if(e>=0){if(e<16)target[position++]=e+224;else{target[position++]=198;if(e&1)b(15-e>>1);else b(e-16>>1)}return}else if(p&&!r.pack){let e=p.get(o);if(e)e.count++;else p.set(o,{count:1})}}let i=o.length;if(bundledStrings&&i>=4&&i<1024){if((bundledStrings.size+=i)>MAX_BUNDLE_SIZE){let e;let t=(bundledStrings[0]?bundledStrings[0].length*3+bundledStrings[1].length:0)+10;if(position+t>safeEnd)target=w(position+t);target[position++]=217;target[position++]=223;target[position++]=249;target[position++]=bundledStrings.position?132:130;target[position++]=26;e=position-s;position+=4;if(bundledStrings.position){writeBundles(s,b)}bundledStrings=["",""];bundledStrings.size=0;bundledStrings.position=e}let e=hasNonLatin.test(o);bundledStrings[e?0:1]+=o;target[position++]=e?206:207;b(i);return}let a;if(i<32){a=1}else if(i<256){a=2}else if(i<65536){a=3}else{a=5}let e=i*3;if(position+e>safeEnd)target=w(position+e);if(i<64||!f){let e,t,r,n=position+a;for(e=0;e>6|192;target[n++]=t&63|128}else if((t&64512)===55296&&((r=o.charCodeAt(e+1))&64512)===56320){t=65536+((t&1023)<<10)+(r&1023);e++;target[n++]=t>>18|240;target[n++]=t>>12&63|128;target[n++]=t>>6&63|128;target[n++]=t&63|128}else{target[n++]=t>>12|224;target[n++]=t>>6&63|128;target[n++]=t&63|128}}u=n-position-a}else{u=f(o,position+a,e)}if(u<24){target[position++]=96|u}else if(u<256){if(a<2){target.copyWithin(position+2,position+1,position+1+u)}target[position++]=120;target[position++]=u}else if(u<65536){if(a<3){target.copyWithin(position+3,position+2,position+2+u)}target[position++]=121;target[position++]=u>>8;target[position++]=u&255}else{if(a<5){target.copyWithin(position+5,position+3,position+3+u)}target[position++]=122;targetView.setUint32(position,u);position+=4}position+=u}else if(e==="number"){if(!this.alwaysUseFloat&&o>>>0===o){if(o<24){target[position++]=o}else if(o<256){target[position++]=24;target[position++]=o}else if(o<65536){target[position++]=25;target[position++]=o>>8;target[position++]=o&255}else{target[position++]=26;targetView.setUint32(position,o);position+=4}}else if(!this.alwaysUseFloat&&o>>0===o){if(o>=-24){target[position++]=31-o}else if(o>=-256){target[position++]=56;target[position++]=~o}else if(o>=-65536){target[position++]=57;targetView.setUint16(position,~o);position+=2}else{target[position++]=58;targetView.setUint32(position,~o);position+=4}}else{let t;if((t=this.useFloat32)>0&&o<4294967296&&o>=-2147483648){target[position++]=250;targetView.setFloat32(position,o);let e;if(t<4||(e=o*mult10[(target[position]&127)<<1|target[position+1]>>7])>>0===e){position+=4;return}else position--}target[position++]=251;targetView.setFloat64(position,o);position+=8}}else if(e==="object"){if(!o)target[position++]=246;else{if(n){let t=n.get(o);if(t){target[position++]=216;target[position++]=29;target[position++]=25;if(!t.references){let e=n.idsToInsert||(n.idsToInsert=[]);t.references=[];e.push(t)}t.references.push(position-s);position+=2;return}else n.set(o,{offset:position-s})}let e=o.constructor;if(e===Object){g(o)}else if(e===Array){u=o.length;if(u<24){target[position++]=128|u}else{writeArrayHeader(u)}for(let e=0;e>8;target[position++]=u&255}else{target[position++]=186;targetView.setUint32(position,u);position+=4}if(a.keyMap){for(let[e,t]of o){b(a.encodeKey(e));b(t)}}else{for(let[e,t]of o){b(e);b(t)}}}else{for(let r=0,e=extensions.length;r>8;target[position++]=t&255}else if(t>-1){target[position++]=218;targetView.setUint32(position,t);position+=4}e.encode.call(this,o,b,w);return}}if(o[Symbol.iterator]){if(throwOnIterable){let e=new Error("Iterable should be serialized as iterator");e.iteratorNotHandled=true;throw e}target[position++]=159;for(let e of o){b(e)}target[position++]=255;return}if(o[Symbol.asyncIterator]||isBlob(o)){let e=new Error("Iterable/blob should be serialized as iterator");e.iteratorNotHandled=true;throw e}if(this.useToJSON&&o.toJSON){const t=o.toJSON();if(t!==o)return b(t)}g(o)}}}else if(e==="boolean"){target[position++]=o?245:244}else if(e==="bigint"){if(o=0){target[position++]=27;targetView.setBigUint64(position,o)}else if(o>-(BigInt(1)<=BigInt(0))target[position++]=194;else{target[position++]=195;o=BigInt(-1)-o}let e=[];while(o){e.push(Number(o&BigInt(255)));o>>=BigInt(8)}writeBuffer(new Uint8Array(e.reverse()),w);return}}position+=8}else if(e==="undefined"){target[position++]=247}else{throw new Error("Unknown type: "+e)}};const g=this.useRecords===false?this.variableMapSize?e=>{let t=Object.keys(e);let r=Object.values(e);let n=t.length;if(n<24){target[position++]=160|n}else if(n<256){target[position++]=184;target[position++]=n}else if(n<65536){target[position++]=185;target[position++]=n>>8;target[position++]=n&255}else{target[position++]=186;targetView.setUint32(position,n);position+=4}if(a.keyMap){for(let e=0;e{target[position++]=185;let e=position-s;position+=2;let r=0;if(a.keyMap){for(let e in t)if(typeof t.hasOwnProperty!=="function"||t.hasOwnProperty(e)){b(a.encodeKey(e));b(t[e]);r++}}else{for(let e in t)if(typeof t.hasOwnProperty!=="function"||t.hasOwnProperty(e)){b(e);b(t[e]);r++}}target[e+++s]=r>>8;target[e+s]=r&255}:(t,e)=>{let r,n=l.transitions||(l.transitions=Object.create(null));let i=0;let a=0;let o;let u;if(this.keyMap){u=Object.keys(t).map(e=>this.encodeKey(e));a=u.length;for(let t=0;t>8|224;target[position++]=s&255}else{if(!u)u=n.__keys__||(n.__keys__=Object.keys(t));if(o===undefined){s=l.nextId++;if(!s){s=0;l.nextId=1}if(s>=MAX_STRUCTURES){l.nextId=(s=_)+1}}else{s=o}l[s]=u;if(s<_){target[position++]=217;target[position++]=s>>8|224;target[position++]=s&255;n=l.transitions;for(let e=0;e=MAX_STRUCTURES-_)m.shift()[RECORD_SYMBOL]=undefined;m.push(n);writeArrayHeader(a+2);b(57344+s);b(u);if(e)return;for(let e in t)if(typeof t.hasOwnProperty!=="function"||t.hasOwnProperty(e))b(t[e]);return}}if(a<24){target[position++]=128|a}else{writeArrayHeader(a)}if(e)return;for(let e in t)if(typeof t.hasOwnProperty!=="function"||t.hasOwnProperty(e))b(t[e])};const w=e=>{let t;if(e>16777216){if(e-s>MAX_BUFFER_SIZE)throw new Error("Encoded buffer would be larger than maximum buffer size");t=Math.min(MAX_BUFFER_SIZE,Math.round(Math.max((e-s)*(e>67108864?1.25:2),4194304)/4096)*4096)}else t=(Math.max(e-s<<2,target.length-1)>>12)+1<<12;let r=new ByteArrayAllocate(t);targetView=new DataView(r.buffer,0,t);if(target.copy)target.copy(r,0,s,e);else r.set(target.slice(s,e));position-=s;s=0;safeEnd=r.length-10;return target=r};let D=100;let x=1e3;this.encodeAsIterable=function(e,t){return A(e,t,L)};this.encodeAsAsyncIterable=function(e,t){return A(e,t,F)};function*L(n,i,e){let t=n.constructor;if(t===Object){let r=a.useRecords!==false;if(r)g(n,true);else writeEntityLength(Object.keys(n).length,160);for(let t in n){let e=n[t];if(!r)b(t);if(e&&typeof e==="object"){if(i[t])yield*L(e,i[t]);else yield*E(e,i,t)}else b(e)}}else if(t===Array){let e=n.length;writeArrayHeader(e);for(let t=0;tD)){if(i.element)yield*L(e,i.element);else yield*E(e,i,"element")}else b(e)}}else if(n[Symbol.iterator]&&!n.buffer){target[position++]=159;for(let e of n){if(e&&(typeof e==="object"||position-s>D)){if(i.element)yield*L(e,i.element);else yield*E(e,i,"element")}else b(e)}target[position++]=255}else if(isBlob(n)){writeEntityLength(n.size,64);yield target.subarray(s,position);yield n;S()}else if(n[Symbol.asyncIterator]){target[position++]=159;yield target.subarray(s,position);yield n;S();target[position++]=255}else{b(n)}if(e&&position>s)yield target.subarray(s,position);else if(position-s>D){yield target.subarray(s,position);S()}}function*E(t,r,n){let i=position-s;try{b(t);if(position-s>D){yield target.subarray(s,position);S()}}catch(e){if(e.iteratorNotHandled){r[n]={};position=s+i;yield*L.call(this,t,r[n])}else throw e}}function S(){D=x;a.encode(null,THROW_ON_ITERABLE)}function A(e,t,r){if(t&&t.chunkThreshold)D=x=t.chunkThreshold;else D=100;if(e&&typeof e==="object"){a.encode(null,THROW_ON_ITERABLE);return r(e,a.iterateProperties||(a.iterateProperties={}),true)}return[a.encode(e)]}async function*F(e,t){for(let r of L(e,t,true)){let e=r.constructor;if(e===ByteArray||e===Uint8Array)yield r;else if(isBlob(r)){let e=r.stream().getReader();let t;while(!(t=await e.read()).done){yield t.value}}else if(r[Symbol.asyncIterator]){for await(let e of r){S();if(e)yield*F(e,t.async||(t.async={}));else yield a.encode(e)}}else{yield r}}}}useBuffer(e){target=e;targetView=new DataView(target.buffer,target.byteOffset,target.byteLength);position=0}clearSharedData(){if(this.structures)this.structures=[];if(this.sharedValues)this.sharedValues=undefined}updateSharedData(){let t=this.sharedVersion||0;this.sharedVersion=t+1;let e=this.structures.slice(0);let r=new SharedData(e,this.sharedValues,this.sharedVersion);let n=this.saveShared(r,e=>(e&&e.version||0)==t);if(n===false){r=this.getShared()||{};this.structures=r.structures||[];this.sharedValues=r.packedValues;this.sharedVersion=r.version;this.structures.nextId=this.structures.length}else{e.forEach((e,t)=>this.structures[t]=e)}return n}}function writeEntityLength(e,t){if(e<24)target[position++]=t|e;else if(e<256){target[position++]=t|24;target[position++]=e}else if(e<65536){target[position++]=t|25;target[position++]=e>>8;target[position++]=e&255}else{target[position++]=t|26;targetView.setUint32(position,e);position+=4}}class SharedData{constructor(e,t,r){this.structures=e;this.packedValues=t;this.version=r}}function writeArrayHeader(e){if(e<24)target[position++]=128|e;else if(e<256){target[position++]=152;target[position++]=e}else if(e<65536){target[position++]=153;target[position++]=e>>8;target[position++]=e&255}else{target[position++]=154;targetView.setUint32(position,e);position+=4}}const BlobConstructor=typeof Blob==="undefined"?function(){}:Blob;function isBlob(e){if(e instanceof BlobConstructor)return true;let t=e[Symbol.toStringTag];return t==="Blob"||t==="File"}function findRepetitiveStrings(r,n){switch(typeof r){case"string":if(r.length>3){if(n.objectMap[r]>-1||n.values.length>=n.maxValues)return;let e=n.get(r);if(e){if(++e.count==2){n.values.push(r)}}else{n.set(r,{count:1});if(n.samplingPackedValues){let e=n.samplingPackedValues.get(r);if(e)e.count++;else n.samplingPackedValues.set(r,{count:1})}}}break;case"object":if(r){if(r instanceof Array){for(let e=0,t=r.length;e=0&&r<4294967296){target[position++]=26;targetView.setUint32(position,r);position+=4}else{target[position++]=251;targetView.setFloat64(position,r);position+=8}}},{tag:258,encode(e,t){let r=Array.from(e);t(r)}},{tag:27,encode(e,t){t([e.name,e.message])}},{tag:27,encode(e,t){t(["RegExp",e.source,e.flags])}},{getTag(e){return e.tag},encode(e,t){t(e.value)}},{encode(e,t,r){writeBuffer(e,r)}},{getTag(e){if(e.constructor===Uint8Array){if(this.tagUint8Array||hasNodeBuffer&&this.tagUint8Array!==false)return 64}},encode(e,t,r){writeBuffer(e,r)}},typedArrayEncoder(68,1),typedArrayEncoder(69,2),typedArrayEncoder(70,4),typedArrayEncoder(71,8),typedArrayEncoder(72,1),typedArrayEncoder(77,2),typedArrayEncoder(78,4),typedArrayEncoder(79,8),typedArrayEncoder(85,4),typedArrayEncoder(86,8),{encode(t,n){let e=t.packedValues||[];let r=t.structures||[];if(e.values.length>0){target[position++]=216;target[position++]=51;writeArrayHeader(4);let r=e.values;n(r);writeArrayHeader(0);writeArrayHeader(0);packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let e=0,t=r.length;e1)e-=4;return{tag:e,encode:function e(t,r){let n=t.byteLength;let i=t.byteOffset||0;let a=t.buffer||t;r(hasNodeBuffer?Buffer$1.from(a,i,n):new Uint8Array(a,i,n))}}}function writeBuffer(e,t){let r=e.byteLength;if(r<24){target[position++]=64+r}else if(r<256){target[position++]=88;target[position++]=r}else if(r<65536){target[position++]=89;target[position++]=r>>8;target[position++]=r&255}else{target[position++]=90;targetView.setUint32(position,r);position+=4}if(position+r>=target.length){t(position+r)}target.set(e.buffer?e:new Uint8Array(e),position);position+=r}function insertIds(n,e){let r;let i=e.length*2;let a=n.length-i;e.sort((e,t)=>e.offset>t.offset?1:-1);for(let r=0;r>8;n[e]=r&255}}while(r=e.pop()){let e=r.offset;n.copyWithin(e+i,e,a);i-=2;let t=e+i;n[t++]=216;n[t++]=28;a=e}return n}function writeBundles(e,t){targetView.setUint32(bundledStrings.position+e,position-bundledStrings.position-e+1);let r=bundledStrings;bundledStrings=null;t(r[0]);t(r[1])}function addExtension(e){if(e.Class){if(!e.encode)throw new Error("Extension has no encode function");extensionClasses.unshift(e.Class);extensions.unshift(e)}addExtension$1(e)}let defaultEncoder=new Encoder({useRecords:false});defaultEncoder.encode;defaultEncoder.encodeAsIterable;defaultEncoder.encodeAsAsyncIterable;const REUSE_BUFFER_MODE=512;const RESET_BUFFER_MODE=1024;const THROW_ON_ITERABLE=2048;var lzjbPack={}; /**@license * * No Dependency fast and small LZJB Compression for Browser and Node @@ -42,4 +42,4 @@ function _classApplyDescriptorGet(e,t){if(t.get){return t.get.call(e)}return t.v * Released under BSD-3-Clause License * * build: Wed, 27 Oct 2021 10:43:10 GMT - */Object.defineProperty(lzjbPack,"__esModule",{value:true});const NBBY=8,MATCH_BITS=6,MATCH_MIN=3,MATCH_MAX=(1<r-MATCH_MAX){t[i++]=e[n++];continue}l=(e[n]+13^e[n+1]-13^e[n+2])&LEMPEL_SIZE-1;c=n-f[l]&OFFSET_MASK;f[l]=n;a=n-c;if(a>=0&&a!=n&&e[n]==e[a]&&e[n+1]==e[a+1]&&e[n+2]==e[a+2]){t[o]|=u;for(s=MATCH_MIN;s>NBBY;t[i++]=c;n+=s}else{t[i++]=e[n++]}}console.assert(e.length>=n);return i}function decompress(e,t,r){t=t|0;var n=0,i=0,a=0,o=0,u=1<<(NBBY-1|0),s=0,c=0;while(n>(NBBY-MATCH_BITS|0))+MATCH_MIN|0;c=(e[n]<4){r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;s=s-4|0}while(s>0){r[i]=r[a];i=i+1|0;a=a+1|0;s=s-1|0}}}else{r[i]=e[n];i=i+1|0;n=n+1|0}}return i}function encode_magic$1(){const e=new TextEncoder("utf-8");return e.encode(MAGIC_STRING)}const MAGIC_STRING="@lzjb";const MAGIC=encode_magic$1();function merge_uint8_array$1(...e){if(e.length>1){const r=e.reduce((e,t)=>e+t.length,0);const n=new Uint8Array(r);let t=0;e.forEach(e=>{n.set(e,t);t+=e.length});return n}else if(e.length){return e[0]}}function number_to_bytes(t){const e=Math.ceil(Math.log2(t)/8);const r=new Uint8Array(e);for(let e=0;e=0;e--){r=r*256+t[e]}return r}function pack(e,{magic:t=true}={}){const r=new Uint8Array(Math.max(e.length*1.5|0,16*1024));const n=compress(e,r);const i=number_to_bytes(e.length);const a=[Uint8Array.of(i.length),i,r.slice(0,n)];if(t){a.unshift(MAGIC)}return merge_uint8_array$1(...a)}function unpack(t,{magic:e=true}={}){if(e){const e=new TextDecoder("utf-8");const s=e.decode(t.slice(0,MAGIC.length));if(s!==MAGIC_STRING){throw new Error("Invalid magic value")}}const r=e?MAGIC.length:0;const n=t[r];const i=r+1;const a=r+n+1;const o=bytes_to_number(t.slice(i,a));t=t.slice(a);const u=new Uint8Array(o);decompress(t,t.length,u);return u}var pack_1=lzjbPack.pack=pack;var unpack_1=lzjbPack.unpack=unpack;function unfetch(s,c){return c=c||{},new Promise(function(e,t){var r=new XMLHttpRequest,n=[],i=[],a={},o=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:o,headers:{keys:function(){return n},entries:function(){return i},get:function(e){return a[e.toLowerCase()]},has:function(e){return e.toLowerCase()in a}}}};for(var u in r.open(c.method||"get",s,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,r){n.push(t=t.toLowerCase()),i.push([t,r]),a[t]=a[t]?a[t]+","+r:r}),e(o())},r.onerror=t,r.withCredentials="include"==c.credentials,c.headers)r.setRequestHeader(u,c.headers[u]);r.send(c.body||null)})}var _excluded=["token"],_excluded2=["env"],_excluded3=["stderr","stdin","stdout","command_line"],_excluded4=["use_dynamic"],_excluded5=["use_dynamic"],_excluded6=["env","dynamic_env","use_dynamic","error"];function _classPrivateFieldInitSpec(e,t,r){_checkPrivateRedeclaration(e,t);t.set(e,r)}function _checkPrivateRedeclaration(e,t){if(t.has(e)){throw new TypeError("Cannot initialize the same private elements twice on an object")}}function _callSuper(e,t,r){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,r||[],_getPrototypeOf(e).constructor):t.apply(e,r))}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function e(){return!!t})()}function _createForOfIteratorHelper(t,e){var r=typeof Symbol!=="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=_unsupportedIterableToArray(t))||e&&t&&typeof t.length==="number"){if(r)t=r;var n=0;var i=function e(){};return{s:i,n:function e(){if(n>=t.length)return{done:true};return{done:false,value:t[n++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a=true,o=false,u;return{s:function e(){r=r.call(t)},n:function e(){var t=r.next();a=t.done;return t},e:function e(t){o=true;u=t},f:function e(){try{if(!a&&r["return"]!=null)r["return"]()}finally{if(o)throw u}}}}function _unsupportedIterableToArray(e,t){if(!e)return;if(typeof e==="string")return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor)r=e.constructor.name;if(r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _arrayLikeToArray(e,t)}function _arrayLikeToArray(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r1?t-1:0),n=1;n0&&arguments[0]!==undefined?arguments[0]:null;var t=user_env&&user_env.get("DEBUG",{throwError:false});if(e===null){return t===true}return(t===null||t===void 0?void 0:t.valueOf())===e.valueOf()}function num_mnemicic_re(e){return e?"(?:#".concat(e,"(?:#[ie])?|#[ie]#").concat(e,")"):"(?:#[ie])?"}function gen_rational_re(e,t){return"".concat(num_mnemicic_re(e),"[+-]?").concat(t,"+/").concat(t,"+")}function gen_complex_re(e,t){return"".concat(num_mnemicic_re(e),"(?:[+-]?(?:").concat(t,"+/").concat(t,"+|nan.0|inf.0|").concat(t,"+))?(?:[+-]i|[+-]?(?:").concat(t,"+/").concat(t,"+|").concat(t,"+|nan.0|inf.0)i)(?=[()[\\]\\s]|$)")}function gen_integer_re(e,t){return"".concat(num_mnemicic_re(e),"[+-]?").concat(t,"+")}var re_re=/^#\/((?:\\\/|[^/]|\[[^\]]*\/[^\]]*\])+)\/([gimyus]*)$/;var float_stre="(?:[-+]?(?:[0-9]+(?:[eE][-+]?[0-9]+)|(?:\\.[0-9]+|[0-9]+\\.[0-9]+)(?:[eE][-+]?[0-9]+)?)|[0-9]+\\.)";var complex_float_stre="(?:#[ie])?(?:[+-]?(?:[0-9][0-9_]*/[0-9][0-9_]*|nan.0|inf.0|".concat(float_stre,"|[+-]?[0-9]+))?(?:").concat(float_stre,"|[+-](?:[0-9]+/[0-9]+|[0-9]+|nan.0|inf.0))i");var float_re=new RegExp("^(#[ie])?".concat(float_stre,"$"),"i");function make_complex_match_re(e,t){var r=e==="x"?"(?!\\+|".concat(t,")"):"(?!\\.|".concat(t,")");var n="";if(e===""){n="(?:[-+]?(?:[0-9]+(?:[eE][-+]?[0-9]+)|(?:\\.[0-9]+|[0-9]+\\.[0-9]+(?![0-9]))(?:[eE][-+]?[0-9]+)?))"}return new RegExp("^((?:(?:".concat(n,"|[-+]?inf.0|[-+]?nan.0|[+-]?").concat(t,"+/").concat(t,"+(?!").concat(t,")|[+-]?").concat(t,"+)").concat(r,")?)(").concat(n,"|[-+]?inf.0|[-+]?nan.0|[+-]?").concat(t,"+/").concat(t,"+|[+-]?").concat(t,"+|[+-])i$"),"i")}var complex_list_re=function(){var a={};[[10,"","[0-9]"],[16,"x","[0-9a-fA-F]"],[8,"o","[0-7]"],[2,"b","[01]"]].forEach(function(e){var t=_slicedToArray(e,3),r=t[0],n=t[1],i=t[2];a[r]=make_complex_match_re(n,i)});return a}();var characters={alarm:"",backspace:"\b",delete:"",escape:"",newline:"\n",null:"\0",return:"\r",space:" ",tab:"\t",dle:"",soh:"",dc1:"",stx:"",dc2:"",etx:"",dc3:"",eot:"",dc4:"",enq:"",nak:"",ack:"",syn:"",bel:"",etb:"",bs:"\b",can:"",ht:"\t",em:"",lf:"\n",sub:"",vt:"\v",esc:"",ff:"\f",fs:"",cr:"\r",gs:"",so:"",rs:"",si:"",us:"",del:""};function ucs2decode(e){var t=[];var r=0;var n=e.length;while(r=55296&&i<=56319&&r1&&arguments[1]!==undefined?arguments[1]:10;var r=num_pre_parse(e);var n=r.number.split("/");var i=LRational({num:LNumber([n[0],r.radix||t]),denom:LNumber([n[1],r.radix||t])});if(r.inexact){return i.valueOf()}else{return i}}function parse_integer(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;var r=num_pre_parse(e);if(r.inexact){return LFloat(parseInt(r.number,r.radix||t))}return LNumber([r.number,r.radix||t])}function parse_character(e){var t=e.match(/#\\x([0-9a-f]+)$/i);var r;if(t){var n=parseInt(t[1],16);r=String.fromCodePoint(n)}else{t=e.match(/#\\([\s\S]+)$/);if(t){r=t[1]}}if(r){return LCharacter(r)}throw new Error("Parse: invalid character")}function parse_complex(e){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;function t(e){var t;if(e==="+"){t=LNumber(1)}else if(e==="-"){t=LNumber(-1)}else if(e.match(int_bare_re)){t=LNumber([e,i])}else if(e.match(rational_bare_re)){var r=e.split("/");t=LRational({num:LNumber([r[0],i]),denom:LNumber([r[1],i])})}else if(e.match(float_re)){var n=parse_float(e);if(a.exact){return n.toRational()}return n}else if(e.match(/nan.0$/)){return LNumber(NaN)}else if(e.match(/inf.0$/)){if(e[0]==="-"){return LNumber(Number.NEGATIVE_INFINITY)}return LNumber(Number.POSITIVE_INFINITY)}else{throw new Error("Internal Parser Error")}if(a.inexact){return LFloat(t.valueOf())}return t}var a=num_pre_parse(e);i=a.radix||i;var r;var n=a.number.match(complex_bare_match_re);if(i!==10&&n){r=n}else{r=a.number.match(complex_list_re[i])}var o,u;u=t(r[2]);if(r[1]){o=t(r[1])}else if(u instanceof LFloat){o=LFloat(0)}else{o=LNumber(0)}if(u.cmp(0)===0&&u.__type__==="bigint"){return o}return LComplex({im:u,re:o})}function is_int(e){return parseInt(e.toString(),10)===e}function parse_big_int(e){var t=e.match(/^(([-+]?[0-9]*)(?:\.([0-9]+))?)e([-+]?[0-9]+)/i);if(t){var r=parseInt(t[4],10);var n;var i=t[1].replace(/[-+]?([0-9]*)\..+$/,"$1").length;var a=t[3]&&t[3].length;if(i0&&(t.exact||!t.number.match(/\./))){return LNumber(a).mul(u)}}}r=LFloat(r);if(t.exact){return r.toRational()}return r}function parse_string(e){e=e.replace(/\\x([0-9a-f]+);/gi,function(e,t){return"\\u"+t.padStart(4,"0")}).replace(/\n/g,"\\n");var t=e.match(/(\\*)(\\x[0-9A-F])/i);if(t&&t[1].length%2===0){throw new Error("Invalid string literal, unclosed ".concat(t[2]))}try{var r=LString(JSON.parse(e));r.freeze();return r}catch(e){var n=e.message.replace(/in JSON /,"").replace(/.*Error: /,"");throw new Error("Invalid string literal: ".concat(n))}}function parse_symbol(e){e.match(/^name/);var t=/(^|.)\|/g;if(e.match(t)){e=e.split("|").filter(Boolean).reduce(function(e,t){var r="";if(t.match(/^\\+$/)){if(t.length>1){var n=Math.floor(t.length/2);r="\\".repeat(n)}if(t.length%2!==0){r+="|"}}else{r=t}return e+r});var r={t:"\t",r:"\r",n:"\n"};e=e.replace(/\\(x[^;]+);/g,function(e,t){return String.fromCharCode(parseInt("0"+t,16))}).replace(/\\([trn])/g,function(e,t){return r[t]})}return new LSymbol(e)}function parse_argument(e){if(constants.hasOwnProperty(e)){return constants[e]}if(e.match(/^"[\s\S]*"$/)){return parse_string(e)}else if(e[0]==="#"){var t=e.match(re_re);if(t){return new RegExp(t[1],t[2])}else if(e.match(char_re)){return parse_character(e)}var r=e.match(/#\\(.+)/);if(r&&ucs2decode(r[1]).length===1){return parse_character(e)}}if(e.match(/[0-9a-f]|[+-]i/i)){if(e.match(int_re)){return parse_integer(e)}else if(e.match(float_re)){return parse_float(e)}else if(e.match(rational_re)){return parse_rational(e)}else if(e.match(complex_re)){return parse_complex(e)}}if(e.match(/^#[iexobd]/)){throw new Error("Invalid numeric constant: "+e)}return parse_symbol(e)}function is_atom_string(e){return!(["(",")","[","]"].includes(e)||specials.names().includes(e))}function is_symbol_string(e){return is_atom_string(e)&&!(e.match(re_re)||e.match(/^"[\s\S]*"$/)||e.match(int_re)||e.match(float_re)||e.match(complex_re)||e.match(rational_re)||e.match(char_re)||["#t","#f","nil"].includes(e))}var string_re=/"(?:\\[\S\s]|[^"])*"?/g;function escape_regex(e){if(typeof e==="string"){var t=/([-\\^$[\]()+{}?*.|])/g;return e.replace(t,"\\$1")}return e}function Stack(){this.data=[]}Stack.prototype.push=function(e){this.data.push(e)};Stack.prototype.top=function(){return this.data[this.data.length-1]};Stack.prototype.pop=function(){return this.data.pop()};Stack.prototype.is_empty=function(){return!this.data.length};function tokens(e){if(e instanceof LString){e=e.valueOf()}var t=new Lexer(e,{whitespace:true});var r=[];while(true){var n=t.peek(true);if(n===eof){break}r.push(n);t.skip()}return r}function multiline_formatter(e){var t=e.token,r=_objectWithoutProperties(e,_excluded);if(t.match(/^"[\s\S]*"$/)&&t.match(/\n/)){var n=new RegExp("^ {1,"+(e.col+1)+"}","mg");t=t.replace(n,"")}return _objectSpread({token:t},r)}function Thunk(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};this.fn=e;this.cont=t}Thunk.prototype.toString=function(){return"#"};function trampoline(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r1&&arguments[1]!==undefined?arguments[1]:false;if(e instanceof LString){e=e.toString()}if(t){return tokens(e)}else{var r=tokens(e).map(function(e){if(e.token==="#\\ "||e.token=="#\\\n"){return e.token}return e.token.trim()}).filter(function(e){return e&&!e.match(/^;/)&&!e.match(/^#\|[\s\S]*\|#$/)});return strip_s_comments(r)}}function strip_s_comments(e){var t=0;var r=null;var n=[];for(var i=0;i0&&arguments[0]!==undefined?arguments[0]:null;if(e instanceof LSymbol){if(e.is_gensym()){return e}e=e.valueOf()}if(is_gensym(e)){return LSymbol(e)}if(e!==null){return r(e,Symbol("#:".concat(e)))}t++;return r(t,Symbol("#:g".concat(t)))}}();function hygienic_begin(e,t){var r=global_env.get("begin");var n=gensym("begin");e.forEach(function(e){e.set(n,r)});return new Pair(n,t)}function QuotedPromise(e){var r=this;var n={pending:true,rejected:false,fulfilled:false,reason:undefined,type:undefined};e=e.then(function(e){n.type=type(e);n.fulfilled=true;n.pending=false;return e});read_only(this,"_promise",e,{hidden:true});if(is_function(e["catch"])){e=e["catch"](function(e){n.rejected=true;n.pending=false;n.reason=e})}Object.keys(n).forEach(function(t){Object.defineProperty(r,"__".concat(t,"__"),{enumerable:true,get:function e(){return n[t]}})});read_only(this,"__promise__",e);this.then=false}QuotedPromise.prototype.then=function(e){return new QuotedPromise(this.valueOf().then(e))};QuotedPromise.prototype["catch"]=function(e){return new QuotedPromise(this.valueOf()["catch"](e))};QuotedPromise.prototype.valueOf=function(){if(!this._promise){throw new Error("QuotedPromise: invalid promise created")}return this._promise};QuotedPromise.prototype.toString=function(){if(this.__pending__){return QuotedPromise.pending_str}if(this.__rejected__){return QuotedPromise.rejected_str}return"#")};QuotedPromise.pending_str="#";QuotedPromise.rejected_str="#";function promise_all(e){if(Array.isArray(e)){return Promise.all(escape_quoted_promises(e)).then(unescape_quoted_promises)}return e}function escape_quoted_promises(e){var t=new Array(e.length),r=e.length;while(r--){var n=e[r];if(n instanceof QuotedPromise){t[r]=new Value(n)}else{t[r]=n}}return t}function unescape_quoted_promises(e){var t=new Array(e.length),r=e.length;while(r--){var n=e[r];if(n instanceof Value){t[r]=n.valueOf()}else{t[r]=n}}return t}var specials={LITERAL:Symbol["for"]("literal"),SPLICE:Symbol["for"]("splice"),SYMBOL:Symbol["for"]("symbol"),names:function e(){return Object.keys(this.__list__)},type:function e(t){try{return this.get(t).type}catch(e){console.log({name:t});console.log(e);return null}},get:function e(t){return this.__list__[t]},off:function e(t){var r=this;var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(Array.isArray(t)){t.forEach(function(e){return r.off(e,n)})}else if(n===null){delete this.__events__[t]}else{this.__events__=this.__events__.filter(function(e){return e!==n})}},on:function e(t,r){var n=this;if(Array.isArray(t)){t.forEach(function(e){return n.on(e,r)})}else if(!this.__events__[t]){this.__events__[t]=[r]}else{this.__events__[t].push(r)}},trigger:function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i",new LSymbol("quote-promise"),specials.LITERAL]];var builtins=defined_specials.map(function(e){return e[0]});Object.freeze(builtins);Object.defineProperty(specials,"__builtins__",{writable:false,value:builtins});defined_specials.forEach(function(e){var t=_slicedToArray(e,3),r=t[0],n=t[1],i=t[2];specials.append(r,n,i)});var Lexer=function(){function v(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.whitespace,i=n===void 0?false:n;_classCallCheck(this,v);read_only(this,"__input__",e.replace(/\r/g,""));var a={};["_i","_whitespace","_col","_newline","_line","_state","_next","_token","_prev_char"].forEach(function(r){Object.defineProperty(t,r,{configurable:false,enumerable:false,get:function e(){return a[r]},set:function e(t){a[r]=t}})});this._whitespace=i;this._i=this._line=this._col=this._newline=0;this._state=this._next=this._token=null;this._prev_char=""}_createClass(v,[{key:"get",value:function e(t){return this.__internal[t]}},{key:"set",value:function e(t,r){this.__internal[t]=r}},{key:"token",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(t){var r=this._line;if(this._whitespace&&this._token==="\n"){--r}return{token:this._token,col:this._col,offset:this._i,line:r}}return this._token}},{key:"peek",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this._i>=this.__input__.length){return eof}if(this._token){read_only(this,"__token__",this.token(true));return this.token(t)}var r=this.next_token();if(r){this._token=this.__input__.substring(this._i,this._next);if(!this.__token__){read_only(this,"__token__",this.token(true))}return this.token(t)}return eof}},{key:"skip",value:function e(){if(this._next!==null){this._token=null;this._i=this._next}}},{key:"read_line",value:function e(){var t=this.__input__.length;if(this._i>=t){return eof}for(var r=this._i;r=r){return eof}if(t+this._i>=r){return this.read_rest()}var n=this._i+t;var i=this.__input__.substring(this._i,n);var a=i.match(/\n/g);if(a){this._line+=a.length}this._i=n;return i}},{key:"peek_char",value:function e(){if(this._i>=this.__input__.length){return eof}return LCharacter(this.__input__[this._i])}},{key:"read_char",value:function e(){var t=this.peek_char();this.skip_char();return t}},{key:"skip_char",value:function e(){if(this._i1&&arguments[1]!==undefined?arguments[1]:{},n=r.prev_char,i=r["char"],a=r.next_char;var o=_slicedToArray(t,4),u=o[0],s=o[1],c=o[2],l=o[3];if(t.length!==5){throw new Error("Lexer: Invalid rule of length ".concat(t.length))}if(is_string(u)){if(u!==i){return false}}else if(!i.match(u)){return false}if(!match_or_null(s,n)){return false}if(!match_or_null(c,a)){return false}if(l!==this._state){return false}return true}},{key:"next_token",value:function e(){if(this._i>=this.__input__.length){return false}var t=true;e:for(var r=this._i,n=this.__input__.length;r2&&arguments[2]!==undefined?arguments[2]:null;var i=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;if(t.length===0){throw new Error("Lexer: invalid literal rule")}if(t.length===1){return[[t,n,i,null,null]]}var a=[];for(var o=0,u=t.length;o0&&arguments[0]!==undefined?arguments[0]:{},t=e.env,r=e.meta,n=r===void 0?false:r,i=e.formatter,a=i===void 0?multiline_formatter:i;_classCallCheck(this,o);read_only(this,"_formatter",a,{hidden:true});read_only(this,"__env__",t);read_only(this,"_meta",n,{hidden:true});read_only(this,"_refs",[],{hidden:true});read_only(this,"_state",{parentheses:0,fold_case:false},{hidden:true})}_createClass(o,[{key:"_with_syntax_scope",value:function e(t){var r=get_internal(this.__env__);var n=r.get("stdin");global_env.set("lips",_objectSpread(_objectSpread({},lips),{},{__parser__:this}));r.set("stdin",new ParserInputPort(this,this.__env__));var i=function e(){global_env.set("lips",lips);r.set("stdin",n)};return unpromise(t(),function(e){i();return e},i)}},{key:"parse",value:function e(t){if(t instanceof LString){t=t.toString()}read_only(this,"__lexer__",new Lexer(t))}},{key:"resolve",value:function e(t){return this.__env__&&this.__env__.get(t,{throwError:false})}},{key:"peek",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=this.__lexer__.peek(true);if(!(r===eof)){t.next=4;break}return t.abrupt("return",eof);case 4:if(!this.is_comment(r.token)){t.next=7;break}this.skip();return t.abrupt("continue",0);case 7:if(!is_directive(r.token)){t.next=11;break}this.skip();if(r.token==="#!fold-case"){this._state.fold_case=true}else if(r.token==="#!no-fold-case"){this._state.fold_case=false}return t.abrupt("continue",0);case 11:if(!(r.token==="#;")){t.next=18;break}this.skip();if(!(this.__lexer__.peek()===eof)){t.next=15;break}throw new Error("Lexer: syntax error eof found after comment");case 15:t.next=17;return this._read_object();case 17:return t.abrupt("continue",0);case 18:return t.abrupt("break",21);case 21:r=this._formatter(r);if(this._state.fold_case){r.token=foldcase_string(r.token)}if(!this._meta){t.next=25;break}return t.abrupt("return",r);case 25:return t.abrupt("return",r.token);case 26:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"reset",value:function e(){this._refs.length=0}},{key:"skip",value:function e(){this.__lexer__.skip()}},{key:"read",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.peek();case 2:r=t.sent;this.skip();return t.abrupt("return",r);case 5:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"match_datum_label",value:function e(t){var r=t.match(/^#([0-9]+)=$/);return r&&r[1]}},{key:"match_datum_ref",value:function e(t){var r=t.match(/^#([0-9]+)#$/);return r&&r[1]}},{key:"is_open",value:function e(t){return["(","["].includes(t)}},{key:"is_close",value:function e(t){return[")","]"].includes(t)}},{key:"read_list",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r,n,i,a,o,u;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=_nil,n=r;case 1:t.next=4;return this.peek();case 4:a=t.sent;if(!(a===eof)){t.next=7;break}return t.abrupt("break",31);case 7:if(!this.is_close(a)){t.next=11;break}--this._state.parentheses;this.skip();return t.abrupt("break",31);case 11:if(!(a==="."&&!is_nil(r))){t.next=19;break}this.skip();t.next=15;return this._read_object();case 15:n.cdr=t.sent;i=true;t.next=29;break;case 19:if(!i){t.next=23;break}throw new Error("Parser: syntax error more than one element after dot");case 23:t.next=25;return this._read_object();case 25:o=t.sent;u=new Pair(o,_nil);if(is_nil(r)){r=u}else{n.cdr=u}n=u;case 29:t.next=1;break;case 31:return t.abrupt("return",r);case 32:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"read_value",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.read();case 2:r=t.sent;if(!(r===eof)){t.next=5;break}throw new Error("Parser: Expected token eof found");case 5:return t.abrupt("return",parse_argument(r));case 6:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"is_comment",value:function e(t){return t.match(/^;/)||t.match(/^#\|/)&&t.match(/\|#$/)}},{key:"evaluate",value:function e(t){return _evaluate(t,{env:this.__env__,error:function e(t){throw t}})}},{key:"read_object",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:this.reset();t.next=3;return this._read_object();case 3:r=t.sent;if(r instanceof DatumReference){r=r.valueOf()}if(!this._refs.length){t.next=7;break}return t.abrupt("return",unpromise(this._resolve_object(r),function(e){if(is_pair(e)){e.mark_cycles()}return e}));case 7:return t.abrupt("return",r);case 8:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"balanced",value:function e(){return this._state.parentheses===0}},{key:"ballancing_error",value:function e(t,r){var n=this._state.parentheses;var i;if(n<0){i=new Error("Parser: unexpected parenthesis");i.__code__=[r.toString()+")"]}else{i=new Error("Parser: expected parenthesis but eof found");var a=new RegExp("\\){".concat(n,"}$"));i.__code__=[t.toString().replace(a,"")]}throw i}},{key:"_resolve_object",value:function(){var t=_asyncToGenerator(_regeneratorRuntime.mark(function e(r){var n=this;var i;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!Array.isArray(r)){t.next=2;break}return t.abrupt("return",r.map(function(e){return n._resolve_object(e)}));case 2:if(!is_plain_object(r)){t.next=6;break}i={};Object.keys(r).forEach(function(e){i[e]=n._resolve_object(r[e])});return t.abrupt("return",i);case 6:if(!is_pair(r)){t.next=8;break}return t.abrupt("return",this._resolve_pair(r));case 8:return t.abrupt("return",r);case 9:case"end":return t.stop()}},e,this)}));function e(e){return t.apply(this,arguments)}return e}()},{key:"_resolve_pair",value:function(){var t=_asyncToGenerator(_regeneratorRuntime.mark(function e(r){return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!is_pair(r)){t.next=15;break}if(!(r.car instanceof DatumReference)){t.next=7;break}t.next=4;return r.car.valueOf();case 4:r.car=t.sent;t.next=8;break;case 7:this._resolve_pair(r.car);case 8:if(!(r.cdr instanceof DatumReference)){t.next=14;break}t.next=11;return r.cdr.valueOf();case 11:r.cdr=t.sent;t.next=15;break;case 14:this._resolve_pair(r.cdr);case 15:return t.abrupt("return",r);case 16:case"end":return t.stop()}},e,this)}));function e(e){return t.apply(this,arguments)}return e}()},{key:"_read_object",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r=this;var n,i,a,o,u,s,c,l,f,_,p,d;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.peek();case 2:n=t.sent;if(!(n===eof)){t.next=5;break}return t.abrupt("return",n);case 5:if(!is_special(n)){t.next=51;break}i=specials.get(n);a=is_builtin(n);this.skip();s=is_symbol_extension(n);t.t0=this;t.next=13;return this.peek();case 13:t.t1=t.sent;c=t.t0.is_close.call(t.t0,t.t1);if(!s){t.next=19;break}t.t2=undefined;t.next=22;break;case 19:t.next=21;return this._read_object();case 21:t.t2=t.sent;case 22:l=t.t2;if(!(l===eof)){t.next=25;break}throw new Unterminated("Expecting expression eof found");case 25:if(a){t.next=32;break}u=this.__env__.get(i.symbol);if(!(typeof u==="function")){t.next=32;break}if(is_literal(n)){f=[l]}else if(is_nil(l)){f=[]}else if(is_pair(l)){f=l.to_array(false)}if(!(f||s)){t.next=31;break}return t.abrupt("return",this._with_syntax_scope(function(){return call_function(u,s?[]:f,{env:r.__env__,dynamic_env:r.__env__,use_dynamic:false})}));case 31:throw new Error("Parse Error: Invalid parser extension "+"invocation ".concat(i.symbol));case 32:if(!is_literal(n)){t.next=38;break}if(!c){t.next=35;break}throw new Error("Parse Error: expecting datum");case 35:o=new Pair(i.symbol,new Pair(l,_nil));t.next=39;break;case 38:o=new Pair(i.symbol,l);case 39:if(!a){t.next=41;break}return t.abrupt("return",o);case 41:if(!(u instanceof Macro)){t.next=50;break}t.next=44;return this._with_syntax_scope(function(){return r.evaluate(o)});case 44:_=t.sent;if(!(is_pair(_)||_ instanceof LSymbol)){t.next=47;break}return t.abrupt("return",Pair.fromArray([LSymbol("quote"),_]));case 47:return t.abrupt("return",_);case 50:throw new Error("Parse Error: invalid parser extension: "+i.symbol);case 51:p=this.match_datum_ref(n);if(!(p!==null)){t.next=57;break}this.skip();if(!this._refs[p]){t.next=56;break}return t.abrupt("return",new DatumReference(p,this._refs[p]));case 56:throw new Error("Parse Error: invalid datum label #".concat(p,"#"));case 57:d=this.match_datum_label(n);if(!(d!==null)){t.next=64;break}this.skip();this._refs[d]=this._read_object();return t.abrupt("return",this._refs[d]);case 64:if(!this.is_close(n)){t.next=69;break}--this._state.parentheses;this.skip();t.next=76;break;case 69:if(!this.is_open(n)){t.next=75;break}++this._state.parentheses;this.skip();return t.abrupt("return",this.read_list());case 75:return t.abrupt("return",this.read_value());case 76:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()}]);return o}();var Unterminated=function(e){_inherits(t,e);function t(){_classCallCheck(this,t);return _callSuper(this,t,arguments)}return _createClass(t)}(_wrapNativeSuper(Error));Parser.Unterminated=Unterminated;var DatumReference=function(){function r(e,t){_classCallCheck(this,r);this.name=e;this.data=t}_createClass(r,[{key:"valueOf",value:function e(){return this.data}}]);return r}();function _parse(e,t){return _parse2.apply(this,arguments)}function _parse2(){_parse2=_wrapAsyncGenerator(_regeneratorRuntime.mark(function e(r,n){var i,a,o;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!n){if(global_env){n=global_env.get("**interaction-environment**",{throwError:false})}else{n=user_env}}if(r instanceof Parser){i=r}else{i=new Parser({env:n});i.parse(r)}case 2:t.next=5;return _awaitAsyncGenerator(i.read_object());case 5:o=t.sent;if(!i.balanced()){i.ballancing_error(o,a)}if(!(o===eof)){t.next=9;break}return t.abrupt("break",14);case 9:a=o;t.next=12;return o;case 12:t.next=2;break;case 14:case"end":return t.stop()}},e)}));return _parse2.apply(this,arguments)}function unpromise(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(e){return e};var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(is_promise(e)){var n=e.then(t);if(r===null){return n}else{return n["catch"](r)}}if(e instanceof Array){return unpromise_array(e,t,r)}if(is_plain_object(e)){return unpromise_object(e,t,r)}return t(e)}function unpromise_array(t,r,e){if(t.find(is_promise)){return unpromise(promise_all(t),function(e){if(Object.isFrozen(t)){Object.freeze(e)}return r(e)},e)}return r(t)}function unpromise_object(t,e,r){var i=Object.keys(t);var n=[],a=[];var o=i.length;while(o--){var u=i[o];var s=t[u];n[o]=s;if(is_promise(s)){a.push(s)}}if(a.length){return unpromise(promise_all(n),function(e){var n={};e.forEach(function(e,t){var r=i[t];n[r]=e});if(Object.isFrozen(t)){Object.freeze(n)}return n},r)}return e(t)}function read_only(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{},i=n.hidden,a=i===void 0?false:i;Object.defineProperty(e,t,{value:r,configurable:true,enumerable:!a})}function uniterate_async(e){return _uniterate_async.apply(this,arguments)}function _uniterate_async(){_uniterate_async=_asyncToGenerator(_regeneratorRuntime.mark(function e(r){var n,i,a,o,u,s,c;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:n=[];i=false;a=false;t.prev=3;u=_asyncIterator(r);case 5:t.next=7;return u.next();case 7:if(!(i=!(s=t.sent).done)){t.next=13;break}c=s.value;n.push(c);case 10:i=false;t.next=5;break;case 13:t.next=19;break;case 15:t.prev=15;t.t0=t["catch"](3);a=true;o=t.t0;case 19:t.prev=19;t.prev=20;if(!(i&&u["return"]!=null)){t.next=24;break}t.next=24;return u["return"]();case 24:t.prev=24;if(!a){t.next=27;break}throw o;case 27:return t.finish(24);case 28:return t.finish(19);case 29:return t.abrupt("return",n);case 30:case"end":return t.stop()}},e,null,[[3,15,19,29],[20,,24,28]])}));return _uniterate_async.apply(this,arguments)}function matcher(e,t){if(t instanceof RegExp){return function(e){return String(e).match(t)}}else if(is_function(t)){return t}throw new Error("Invalid matcher")}function doc(e,t,r,n){if(typeof e!=="string"){t=arguments[0];r=arguments[1];n=arguments[2];e=null}if(r){if(n){t.__doc__=r}else{t.__doc__=trim_lines(r)}}if(e){t.__name__=e}else if(t.name&&!is_lambda(t)){t.__name__=t.name}return t}function trim_lines(e){return e.split("\n").map(function(e){return e.trim()}).join("\n")}function previousSexp(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;var r=e.length;if(t<=0){throw Error("previousSexp: Invalid argument sexp = ".concat(t))}e:while(t--&&r>=0){var n=1;while(n>0){var i=e[--r];if(!i){break e}if(i==="("||i.token==="("){n--}else if(i===")"||i.token===")"){n++}}r--}return e.slice(r+1)}function lineIndent(e){if(!e||!e.length){return 0}var t=e.length;if(e[t-1].token==="\n"){return 0}while(--t){if(e[t].token==="\n"){var r=(e[t+1]||{}).token;if(r){return r.length}}}return 0}function match(e,t){return l(e,t)===t.length;function l(r,n){function e(e,t){var r=_createForOfIteratorHelper(e),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;var a=l(i,t);if(a!==-1){return a}}}catch(e){r.e(e)}finally{r.f()}return-1}function t(){return r[a]===Symbol["for"]("symbol")&&!is_symbol_string(n[u])}function i(){var e=r[a+1];var t=n[u+1];if(e!==undefined&&t!==undefined){return l([e],[t])}}var a=0;var o={};for(var u=0;u0){continue}}else if(t()){return-1}}else if(r[a]instanceof Array){var c=l(r[a],n.slice(u));if(c===-1||c+u>n.length){return-1}u+=c-1;a++;continue}else{return-1}a++}if(r.length!==a){return-1}return n.length}}function Formatter(e){this.__code__=e.replace(/\r/g,"")}Formatter.defaults={offset:0,indent:2,exceptions:{specials:[/^(?:#:)?(?:define(?:-values|-syntax|-macro|-class|-record-type)?|(?:call-with-(?:input-file|output-file|port))|lambda|let-env|try|catch|when|unless|while|syntax-rules|(let|letrec)(-syntax|\*?-values|\*)?)$/],shift:{1:["&","#"]}}};Formatter.match=match;Formatter.prototype._options=function e(t){var r=Formatter.defaults;if(typeof t==="undefined"){return Object.assign({},r)}var n=t&&t.exceptions||{};var i=n.specials||[];var a=n.shift||{1:[]};return _objectSpread(_objectSpread(_objectSpread({},r),t),{},{exceptions:{specials:[].concat(_toConsumableArray(r.exceptions.specials),_toConsumableArray(i)),shift:_objectSpread(_objectSpread({},a),{},{1:[].concat(_toConsumableArray(r.exceptions.shift[1]),_toConsumableArray(a[1]))})}})};Formatter.prototype.indent=function e(t){var r=tokenize(this.__code__,true);return this._indent(r,t)};Formatter.exception_shift=function(a,e){function t(e){if(!e.length){return false}if(e.indexOf(a)!==-1){return true}else{var t=e.filter(function(e){return e instanceof RegExp});if(!t.length){return false}var r=_createForOfIteratorHelper(t),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;if(a.match(i)){return true}}}catch(e){r.e(e)}finally{r.f()}}return false}if(t(e.exceptions.specials)){return e.indent}var r=e.exceptions.shift;for(var n=0,i=Object.entries(r);n0){n.offset=0}if(a.toString()===t.toString()&&balanced(a)){return n.offset+a[0].col}else if(a.length===1){return n.offset+a[0].col+1}else{var s=-1;if(o){var c=Formatter.exception_shift(o.token,n);if(c!==-1){s=c}}if(s===-1){s=Formatter.exception_shift(a[1].token,n)}if(s!==-1){return n.offset+a[0].col+s}else if(a[0].line3&&a[1].line===a[3].line){if(a[1].token==="("||a[1].token==="["){return n.offset+a[1].col}return n.offset+a[3].col}else if(a[0].line===a[1].line){return n.offset+n.indent+a[0].col}else{var l=a.slice(2);for(var f=0;f")};Ahead.prototype.match=function(e){return e.match(this.pattern)};function Pattern(){for(var e=arguments.length,t=new Array(e),r=0;r")};Formatter.Pattern=Pattern;Formatter.Ahead=Ahead;var p_o=/^[[(]$/;var p_e=/^[\])]$/;var not_p=/[^()[\]]/;var not_close=new Ahead(/[^)\]]/);var glob=Symbol["for"]("*");var sexp_or_atom=new Pattern([p_o,glob,p_e],[not_p],"+");var sexp=new Pattern([p_o,glob,p_e],"+");var symbol=new Pattern([Symbol["for"]("symbol")],"?");var symbols=new Pattern([Symbol["for"]("symbol")],"*");var identifiers=[p_o,symbols,p_e];var let_value=new Pattern([p_o,Symbol["for"]("symbol"),glob,p_e],"+");var syntax_rules=keywords_re("syntax-rules");var def_lambda_re=keywords_re("define","lambda","define-macro","syntax-rules");var non_def=/^(?!.*\b(?:[()[\]]|define(?:-macro)?|let(?:\*|rec|-env|-syntax|)?|lambda|syntax-rules)\b).*$/;var let_re=/^(?:#:)?(let(?:\*|rec|-env|-syntax)?)$/;function keywords_re(){for(var e=arguments.length,t=new Array(e),r=0;r0&&!u[e]){u[e]=previousSexp(o,e)}});var s=_createForOfIteratorHelper(i),c;try{for(s.s();!(c=s.n()).done;){var l=_slicedToArray(c.value,3),f=l[0],_=l[1],p=l[2];_=_.valueOf();var d=_>0?u[_]:o;var h=d.filter(function(e){return e.trim()&&!is_special(e)});var m=r(d);var y=match(f,h);var v=n.slice(a).find(function(e){return e.trim()&&!is_special(e)});if(y&&(p instanceof Ahead&&p.match(v)||!p)){var b=a-m;if(n[b]!=="\n"){if(!n[b].trim()){n[b]="\n"}else{n.splice(b,0,"\n");a++}}a+=m;continue e}}}catch(e){s.e(e)}finally{s.f()}}this.__code__=n.join("");return this};Formatter.prototype._spaces=function(e){return" ".repeat(e)};Formatter.prototype.format=function e(t){var r=this.__code__.replace(/[ \t]*\n[ \t]*/g,"\n ");var n=tokenize(r,true);var i=this._options(t);var a=0;var o=0;for(var u=0;u0){n=Math.floor(t()*r);r--;var i=[e[n],e[r]];e[r]=i[0];e[n]=i[1]}return e}function Nil(){}Nil.prototype.toString=function(){return"()"};Nil.prototype.valueOf=function(){return undefined};Nil.prototype.serialize=function(){return 0};Nil.prototype.to_object=function(){return{}};Nil.prototype.append=function(e){return new Pair(e,_nil)};Nil.prototype.to_array=function(){return[]};var _nil=new Nil;function Pair(e,t){if(typeof this!=="undefined"&&this.constructor!==Pair||typeof this==="undefined"){return new Pair(e,t)}this.car=e;this.cdr=t}function to_array(a,o){return function e(t){typecheck(a,t,["pair","nil"]);if(is_nil(t)){return[]}var r=[];var n=t;while(true){if(is_pair(n)){if(n.have_cycles("cdr")){break}var i=n.car;if(o&&is_pair(i)){i=this.get(a).call(this,i)}r.push(i);n=n.cdr}else if(is_nil(n)){break}else{throw new Error("".concat(a,": can't convert improper list"))}}return r}}Pair.prototype.flatten=function(){return Pair.fromArray(flatten(this.to_array()))};Pair.prototype.length=function(){var e=0;var t=this;while(true){if(!t||is_nil(t)||!is_pair(t)||t.have_cycles("cdr")){break}e++;t=t.cdr}return e};Pair.match=function(e,t){if(e instanceof LSymbol){return LSymbol.is(e,t)}else if(is_pair(e)){return Pair.match(e.car,t)||Pair.match(e.cdr,t)}else if(Array.isArray(e)){return e.some(function(e){return Pair.match(e,t)})}else if(is_plain_object(e)){return Object.values(e).some(function(e){return Pair.match(e,t)})}return false};Pair.prototype.find=function(e){return Pair.match(this,e)};Pair.prototype.clone=function(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var n=new Map;function i(e){if(is_pair(e)){if(n.has(e)){return n.get(e)}var t=new Pair;n.set(e,t);if(r){t.car=i(e.car)}else{t.car=e.car}t.cdr=i(e.cdr);t[__cycles__]=e[__cycles__];return t}return e}return i(this)};Pair.prototype.last_pair=function(){var e=this;while(true){if(!is_pair(e.cdr)){return e}if(e.have_cycles("cdr")){break}e=e.cdr}};Pair.prototype.to_array=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var t=[];if(is_pair(this.car)){if(e){t.push(this.car.to_array())}else{t.push(this.car)}}else{t.push(this.car.valueOf())}if(is_pair(this.cdr)){t=t.concat(this.cdr.to_array(e))}return t};Pair.fromArray=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(is_pair(e)||r&&e instanceof Array&&e[__data__]){return e}if(t===false){var n=_nil;for(var i=e.length;i--;){n=new Pair(e[i],n)}return n}if(e.length&&!(e instanceof Array)){e=_toConsumableArray(e)}var a=_nil;var o=e.length;while(o--){var u=e[o];if(u instanceof Array){u=Pair.fromArray(u,t,r)}else if(typeof u==="string"){u=LString(u)}else if(typeof u==="number"&&!Number.isNaN(u)){u=LNumber(u)}a=new Pair(u,a)}return a};Pair.prototype.to_object=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var t=this;var r={};while(true){if(is_pair(t)&&is_pair(t.car)){var n=t.car;var i=n.car;if(i instanceof LSymbol){i=i.__name__}if(i instanceof LString){i=i.valueOf()}var a=n.cdr;if(is_pair(a)){a=a.to_object(e)}if(is_native(a)){if(!e){a=a.valueOf()}}r[i]=a;t=t.cdr}else{break}}return r};Pair.fromPairs=function(e){return e.reduce(function(e,t){return new Pair(new Pair(new LSymbol(t[0]),t[1]),e)},_nil)};Pair.fromObject=function(t){var e=Object.keys(t).map(function(e){return[e,t[e]]});return Pair.fromPairs(e)};Pair.prototype.reduce=function(e){var t=this;var r=_nil;while(true){if(!is_nil(t)){r=e(r,t.car);t=t.cdr}else{break}}return r};Pair.prototype.reverse=function(){if(this.have_cycles()){throw new Error("You can't reverse list that have cycles")}var e=this;var t=_nil;while(!is_nil(e)){var r=e.cdr;e.cdr=t;t=e;e=r}return t};Pair.prototype.transform=function(n){function i(e){if(is_pair(e)){if(e.replace){delete e.replace;return e}var t=n(e.car);if(is_pair(t)){t=i(t)}var r=n(e.cdr);if(is_pair(r)){r=i(r)}return new Pair(t,r)}return e}return i(this)};Pair.prototype.map=function(e){if(typeof this.car!=="undefined"){return new Pair(e(this.car),is_nil(this.cdr)?_nil:this.cdr.map(e))}else{return _nil}};var repr=new Map;function is_plain_object(e){return e&&_typeof$1(e)==="object"&&e.constructor===Object}var props=Object.getOwnPropertyNames(Array.prototype);var array_methods=[];props.forEach(function(e){array_methods.push(Array[e],Array.prototype[e])});function is_array_method(e){e=unbind(e);return array_methods.includes(e)}function is_lips_function(e){return is_function(e)&&(is_lambda(e)||e.__doc__)}function user_repr(e){var r=e.constructor||Object;var n=is_plain_object(e);var i=is_function(e[Symbol.asyncIterator])||is_function(e[Symbol.iterator]);var a;if(repr.has(r)){a=repr.get(r)}else{repr.forEach(function(e,t){t=unbind(t);if(r===t&&(t===Object&&n&&!i||t!==Object)){a=e}})}return a}var str_mapping=new Map;[[true,"#t"],[false,"#f"],[null,"#null"],[undefined,"#void"]].forEach(function(e){var t=_slicedToArray(e,2),r=t[0],n=t[1];str_mapping.set(r,n)});function symbolize(r){if(r&&_typeof$1(r)==="object"){var n={};var e=Object.getOwnPropertySymbols(r);e.forEach(function(e){var t=e.toString().replace(/Symbol\(([^)]+)\)/,"$1");n[t]=toString(r[e])});var t=Object.getOwnPropertyNames(r);t.forEach(function(e){var t=r[e];if(t&&_typeof$1(t)==="object"&&t.constructor===Object){n[e]=symbolize(t)}else{n[e]=toString(t)}});return n}return r}function get_props(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function has_own_function(e,t){return e.hasOwnProperty(t)&&is_function(e.toString)}function function_to_string(e){if(is_native_function(e)){return"#"}var t=e.prototype&&e.prototype.constructor;if(is_function(t)&&is_lambda(t)){if(e[__class__]&&t.hasOwnProperty("__name__")){var r=t.__name__;if(LString.isString(r)){r=r.toString();return"#")}return"#"}}if(e.hasOwnProperty("__name__")){var n=e.__name__;if(_typeof$1(n)==="symbol"){n=symbol_to_string(n)}if(typeof n==="string"){return"#")}}if(has_own_function(e,"toString")){return e.toString()}else if(e.name&&!is_lambda(e)){return"#")}else{return"#"}}var instances=new Map;[[Error,function(e){return e.message}],[Pair,function(e,t){var r=t.quote,n=t.skip_cycles,i=t.pair_args;if(!n){e.mark_cycles()}return e.toString.apply(e,[r].concat(_toConsumableArray(i)))}],[LCharacter,function(e,t){var r=t.quote;if(r){return e.toString()}return e.valueOf()}],[LString,function(e,t){var r=t.quote;e=e.toString();if(r){return JSON.stringify(e).replace(/\\n/g,"\n")}return e}],[RegExp,function(e){return"#"+e.toString()}]].forEach(function(e){var t=_slicedToArray(e,2),r=t[0],n=t[1];instances.set(r,n)});var native_types=[LSymbol,Macro,Values,InputPort,OutputPort,Environment,QuotedPromise];function toString(e,t,r){if(typeof jQuery!=="undefined"&&e instanceof jQuery.fn.init){return"#"}if(str_mapping.has(e)){return str_mapping.get(e)}if(is_prototype(e)){return"#"}if(e){var n=e.constructor;if(instances.has(n)){for(var i=arguments.length,a=new Array(i>3?i-3:0),o=3;o"}if(e===null){return"null"}if(is_function(e)){if(is_function(e.toString)&&e.hasOwnProperty("toString")){return e.toString().valueOf()}return function_to_string(e)}if(_typeof$1(e)==="object"){var l=e.constructor;if(!l){l=Object}var f;if(typeof l.__class__==="string"){f=l.__class__}else{var _=user_repr(e);if(_){if(is_function(_)){return _(e,t)}else{throw new Error("toString: Invalid repr value")}}f=l.name}if(is_function(e.toString)&&e.hasOwnProperty("toString")){return e.toString().valueOf()}if(type(e)==="instance"){if(is_lambda(l)&&l.__name__){f=l.__name__.valueOf();if(_typeof$1(f)==="symbol"){f=f.toString().replace(/^Symbol\((?:#:)?([^\)]+)\)$/,"$1")}}else if(!is_native_function(l)){f="instance"}}if(is_iterator(e,Symbol.iterator)){if(f){return"#")}return"#"}if(is_iterator(e,Symbol.asyncIterator)){if(f){return"#")}return"#"}if(f!==""){return"#<"+f+">"}return"#"}if(typeof e!=="string"){return e.toString()}return e}Pair.prototype.mark_cycles=function(){mark_cycles(this);return this};Pair.prototype.have_cycles=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(!e){return this.have_cycles("car")||this.have_cycles("cdr")}return!!(this[__cycles__]&&this[__cycles__][e])};Pair.prototype.is_cycle=function(){return is_cycle(this)};function is_cycle(e){if(!is_pair(e)){return false}if(e.have_cycles()){return true}return is_cycle(e.car,fn)||is_cycle(e.cdr,fn)}function mark_cycles(e){var t=[];var i=[];var a=[];function o(e){if(!t.includes(e)){t.push(e)}}function u(e,t,r,n){if(is_pair(r)){if(n.includes(r)){if(!a.includes(r)){a.push(r)}if(!e[__cycles__]){e[__cycles__]={}}e[__cycles__][t]=r;if(!i.includes(e)){i.push(e)}return true}}}var s=trampoline(function e(t,r){if(is_pair(t)){delete t[__ref__];delete t[__cycles__];o(t);r.push(t);var n=u(t,"car",t.car,r);var i=u(t,"cdr",t.cdr,r);if(!n){s(t.car,r.slice())}if(!i){return new Thunk(function(){return e(t.cdr,r.slice())})}}});function r(e,t){if(is_pair(e[__cycles__][t])){var r=n.indexOf(e[__cycles__][t]);e[__cycles__][t]="#".concat(r,"#")}}s(e,[]);var n=t.filter(function(e){return a.includes(e)});n.forEach(function(e,t){e[__ref__]="#".concat(t,"=")});i.forEach(function(e){r(e,"car");r(e,"cdr")})}Pair.prototype.toString=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.nested,n=r===void 0?false:r;var i=[];if(this[__ref__]){i.push(this[__ref__]+"(")}else if(!n){i.push("(")}var a;if(this[__cycles__]&&this[__cycles__].car){a=this[__cycles__].car}else{a=toString(this.car,e,true)}if(a!==undefined){i.push(a)}if(is_pair(this.cdr)){if(this[__cycles__]&&this[__cycles__].cdr){i.push(" . ");i.push(this[__cycles__].cdr)}else{if(this.cdr[__ref__]){i.push(" . ")}else{i.push(" ")}var o=this.cdr.toString(e,{nested:true});i.push(o)}}else if(!is_nil(this.cdr)){i=i.concat([" . ",toString(this.cdr,e,true)])}if(!n||this[__ref__]){i.push(")")}return i.join("")};Pair.prototype.set=function(e,t){this[e]=t;if(is_pair(t)){this.mark_cycles()}};Pair.prototype.append=function(e){if(e instanceof Array){return this.append(Pair.fromArray(e))}var t=this;if(t.car===undefined){if(is_pair(e)){this.car=e.car;this.cdr=e.cdr}else{this.car=e}}else if(!is_nil(e)){while(true){if(is_pair(t)&&!is_nil(t.cdr)){t=t.cdr}else{break}}t.cdr=e}return this};Pair.prototype.serialize=function(){return[this.car,this.cdr]};Pair.prototype[Symbol.iterator]=function(){var r=this;return{next:function e(){var t=r;r=t.cdr;if(is_nil(t)){return{value:undefined,done:true}}else{return{value:t.car,done:false}}}}};function abs(e){return e<0?-e:e}function seq_compare(e,t){var r=_toArray(t),n=r[0],i=r.slice(1);while(i.length>0){var a=i,o=_slicedToArray(a,1),u=o[0];if(!e(n,u)){return false}var s=i;var c=_toArray(s);n=c[0];i=c.slice(1)}return true}function equal(e,t){if(is_function(e)){return is_function(t)&&unbind(e)===unbind(t)}else if(e instanceof LNumber){if(!(t instanceof LNumber)){return false}var r;if(e.__type__===t.__type__){if(e.__type__==="complex"){r=e.__im__.__type__===t.__im__.__type__&&e.__re__.__type__===t.__re__.__type__}else{r=true}if(r&&e.cmp(t)===0){if(e.valueOf()===0){return Object.is(e.valueOf(),t.valueOf())}return true}}return false}else if(typeof e==="number"){if(typeof t!=="number"){return false}if(Number.isNaN(e)){return Number.isNaN(t)}if(e===Number.NEGATIVE_INFINITY){return t===Number.NEGATIVE_INFINITY}if(e===Number.POSITIVE_INFINITY){return t===Number.POSITIVE_INFINITY}return equal(LNumber(e),LNumber(t))}else if(e instanceof LCharacter){if(!(t instanceof LCharacter)){return false}return e.__char__===t.__char__}else{return e===t}}function same_atom(e,t){if(type(e)!==type(t)){return false}if(!is_atom(e)){return false}if(e instanceof RegExp){return e.source===t.source}if(e instanceof LString){return e.valueOf()===t.valueOf()}return equal(e,t)}function is_atom(e){return e instanceof LSymbol||LString.isString(e)||is_nil(e)||e===null||e instanceof LCharacter||e instanceof LNumber||e===true||e===false}var truncate=function(){if(Math.trunc){return Math.trunc}else{return function(e){if(e===0){return 0}else if(e<0){return Math.ceil(e)}else{return Math.floor(e)}}}}();function Macro(e,t,r,n){if(typeof this!=="undefined"&&this.constructor!==Macro||typeof this==="undefined"){return new Macro(e,t)}typecheck("Macro",e,"string",1);typecheck("Macro",t,"function",2);if(r){if(n){this.__doc__=r}else{this.__doc__=trim_lines(r)}}this.__name__=e;this.__fn__=t}Macro.defmacro=function(e,t,r,n){var i=new Macro(e,t,r,n);i.__defmacro__=true;return i};Macro.prototype.invoke=function(e,t,r){var n=t.env,i=_objectWithoutProperties(t,_excluded2);var a=_objectSpread(_objectSpread({},i),{},{macro_expand:r});var o=this.__fn__.call(n,e,a,this.__name__);return o};Macro.prototype.toString=function(){return"#")};var macro="define-macro";var recur_guard=-1e4;function macro_expand(c){return function(){var r=_asyncToGenerator(_regeneratorRuntime.mark(function e(r,v){var a,b,n,i,o,g,w,D,x,L,E,S,u,A,s;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:s=function e(){s=_asyncToGenerator(_regeneratorRuntime.mark(function e(r,n,i){var a,o,u,s,c,l,f,_,p,d,h,m,y;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!(is_pair(r)&&r.car instanceof LSymbol)){t.next=50;break}if(!r[__data__]){t.next=3;break}return t.abrupt("return",r);case 3:a=r.car.valueOf();o=i.get(r.car,{throwError:false});u=g(r.car);s=u||w(o,r)||D(o);if(!(s&&is_pair(r.cdr.car))){t.next=28;break}if(!u){t.next=15;break}b=L(r.cdr.car);t.next=12;return S(r.cdr.car,n);case 12:c=t.sent;t.next=17;break;case 15:b=x(r.cdr.car);c=r.cdr.car;case 17:t.t0=Pair;t.t1=r.car;t.t2=Pair;t.t3=c;t.next=23;return A(r.cdr.cdr,n,i);case 23:t.t4=t.sent;t.t5=new t.t2(t.t3,t.t4);return t.abrupt("return",new t.t0(t.t1,t.t5));case 28:if(!E(a,o)){t.next=50;break}l=o instanceof Syntax?r:r.cdr;t.next=32;return o.invoke(l,_objectSpread(_objectSpread({},v),{},{env:i}),true);case 32:f=t.sent;if(!(o instanceof Syntax)){t.next=41;break}_=f,p=_.expr,d=_.scope;if(!is_pair(p)){t.next=40;break}if(!(n!==-1&&n<=1||n")}return"#"};var SyntaxParameter=_createClass(function e(t){_classCallCheck(this,e);read_only(this,"_syntax",t,{hidden:true});read_only(this._syntax,"_param",true,{hidden:true})});Syntax.Parameter=SyntaxParameter;function extract_patterns(e,t,K,J){var r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};var W={"...":{symbols:{},lists:[]},symbols:{}};var Q=r.expansion,X=r.define;log(K);function Z(t,e){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var n=r.ellipsis,i=n===void 0?false:n,a=r.trailing,I=a===void 0?false:a,o=r.pattern_names,u=o===void 0?[]:o;log({code:e,pattern:t});if(is_atom(t)&&!(t instanceof LSymbol)){return same_atom(t,e)}if(t instanceof LSymbol){var s=t.literal();if(K.includes(s)){if(!LSymbol.is(e,s)&&!LSymbol.is(t,e)){return false}var c=Q.ref(s);return!c||c===X||c===global_env}}if(Array.isArray(t)&&Array.isArray(e)){log("<<< a 1");if(t.length===0&&e.length===0){return true}if(LSymbol.is(t[1],J)){if(t[0]instanceof LSymbol){var l=t[0].valueOf();log("<<< a 2 "+i);if(i){var f=e.length-2;var j=f>0?e.slice(0,f):e;var _=Pair.fromArray(j,false);if(!W["..."].symbols[l]){W["..."].symbols[l]=new Pair(_,_nil)}else{W["..."].symbols[l].append(new Pair(_,_nil))}}else{W["..."].symbols[l]=Pair.fromArray(e,false)}}else if(Array.isArray(t[0])){log("<<< a 3");var R=_toConsumableArray(u);var T=_objectSpread(_objectSpread({},r),{},{pattern_names:R,ellipsis:true});if(!e.every(function(e){return Z(t[0],e,T)})){return false}}if(t.length>2){var p=t.slice(2);return Z(p,e.slice(-p.length),r)}return true}var d=Z(t[0],e[0],r);log({first:d,pattern:t[0],code:e[0]});var h=Z(t.slice(1),e.slice(1),r);log({first:d,rest:h});return d&&h}if(is_pair(t)&&is_pair(t.car)&&is_pair(t.car.cdr)&&LSymbol.is(t.car.cdr.car,J)){log(">> 0");if(is_nil(e)){log({pattern:t});if(t.car.car instanceof LSymbol){var m=t.car.car.valueOf();if(W["..."].symbols[m]){throw new Error("syntax: named ellipsis can only "+"appear onces")}W["..."].symbols[m]=e}}}if(is_pair(t)&&is_pair(t.cdr)&&LSymbol.is(t.cdr.car,J)){log(">> 1 (a)");if(!is_nil(t.cdr.cdr)){if(is_pair(t.cdr.cdr)){log(">> 1 (b)");var M=t.cdr.cdr.length();var y=!is_nil(t.last_pair().cdr);if(!is_pair(e)){return false}var v=e.length();var b=e;var $=y?1:1;while(v-$>M){b=b.cdr;v--}var V=b.cdr;b.cdr=_nil;var q=_objectSpread(_objectSpread({},r),{},{trailing:y});if(!Z(t.cdr.cdr,V,q)){return false}}}if(t.car instanceof LSymbol){var g=t.car.__name__;if(W["..."].symbols[g]&&!u.includes(g)&&!i){throw new Error("syntax: named ellipsis can only appear onces")}log(">> 1 (next)");if(is_nil(e)){log(">> 2");if(i){log("NIL");W["..."].symbols[g]=_nil}else{log("NULL");W["..."].symbols[g]=null}}else if(is_pair(e)&&(is_pair(e.car)||is_nil(e.car))){log(">> 3 "+i);if(i){if(W["..."].symbols[g]){var w=W["..."].symbols[g];if(is_nil(w)){w=new Pair(_nil,new Pair(e,_nil))}else{w=w.append(new Pair(e,_nil))}W["..."].symbols[g]=w}else{W["..."].symbols[g]=new Pair(e,_nil)}}else{log(">> 4");W["..."].symbols[g]=new Pair(e,_nil)}}else{log(">> 6");if(is_pair(e)){log(">> 7 "+i);if(!is_pair(e.cdr)&&!is_nil(e.cdr)){log(">> 7 (b)");if(is_nil(t.cdr.cdr)){return false}else if(!W["..."].symbols[g]){W["..."].symbols[g]=new Pair(e.car,_nil);return Z(t.cdr.cdr,e.cdr,r)}}var D=e.last_pair();log({last_pair:D});if(!is_nil(D.cdr)){log(">> 7 (c)");if(is_nil(t.cdr.cdr)){return false}else{log(">> 7 (d)");var x=e.clone();x.last_pair().cdr=_nil;W["..."].symbols[g]=x;return Z(t.cdr.cdr,D.cdr,r)}}u.push(g);if(!W["..."].symbols[g]){log(">> 7 (e)");W["..."].symbols[g]=new Pair(e,_nil)}else{log(">> 7 (f)");var U=W["..."].symbols[g];W["..."].symbols[g]=U.append(new Pair(e,_nil))}log({IIIIII:W["..."].symbols[g]})}else if(t.car instanceof LSymbol&&is_pair(t.cdr)&&LSymbol.is(t.cdr.car,J)){log(">> 8");W["..."].symbols[g]=null;return Z(t.cdr.cdr,e,r)}else{log(">> 9");return false}}return true}else if(is_pair(t.car)){var L=_toConsumableArray(u);if(is_nil(e)){log(">> 10");W["..."].lists.push(_nil);return true}log(">> 11");var E=e;var z=_objectSpread(_objectSpread({},r),{},{pattern_names:L,ellipsis:true});while(is_pair(E)){if(!Z(t.car,E.car,z)){return false}E=E.cdr}return true}if(Array.isArray(t.car)){var L=_toConsumableArray(u);var S=e;var G=_objectSpread(_objectSpread({},r),{},{pattern_names:L,ellipsis:true});while(is_pair(S)){if(!Z(t.car,S.car,G)){return false}S=S.cdr}return true}return false}if(t instanceof LSymbol){if(LSymbol.is(t,J)){throw new Error("syntax: invalid usage of ellipsis")}log(">> 12");var A=t.__name__;if(K.includes(A)){return true}if(i){var F,k;log(W["..."].symbols[A]);(k=(F=W["..."].symbols)[A])!==null&&k!==void 0?k:F[A]=[];W["..."].symbols[A].push(e)}else{W.symbols[A]=e}return true}if(is_pair(t)&&is_pair(e)){log(">> 13");log({a:13,code:e,pattern:t});var C=t.car instanceof LSymbol&&t.cdr instanceof LSymbol;if(I&&C){log(">> 13 (a)");if(!is_nil(e.cdr)){return false}var H=t.car.valueOf();var Y=t.cdr.valueOf();W.symbols[H]=e.car;W.symbols[Y]=_nil;return true}if(is_nil(e.cdr)){log(">> 13 (b)");if(C){if(!Z(t.car,e.car,r)){return false}log(">> 14");var O=t.cdr.valueOf();if(!(O in W.symbols)){W.symbols[O]=_nil}O=t.car.valueOf();if(!(O in W.symbols)){W.symbols[O]=e.car}return true}}log({pattern:t,code:e});if(is_pair(t.cdr)&&is_pair(t.cdr.cdr)&&t.cdr.car instanceof LSymbol&&LSymbol.is(t.cdr.cdr.car,J)&&is_pair(t.cdr.cdr.cdr)&&!LSymbol.is(t.cdr.cdr.cdr.car,J)&&Z(t.car,e.car,r)&&Z(t.cdr.cdr.cdr,e.cdr,_objectSpread(_objectSpread({},r),{},{trailing:true}))){var P=t.cdr.car.__name__;log({pattern:t,code:e,name:P});if(K.includes(P)){return true}W["..."].symbols[P]=null;return true}log("recur");log({pattern:t,code:e});var N=Z(t.car,e.car,r);var B=Z(t.cdr,e.cdr,r);log({$car_code:e.car,$car_pattern:t.car,car:N,$cdr_code:e.cdr,$cdr_pattern:t.cdr,cdr:B});if(N&&B){return true}}else if(is_nil(t)&&(is_nil(e)||e===undefined)){return true}else if(is_pair(t.car)&&LSymbol.is(t.car.car,J)){throw new Error("syntax: invalid usage of ellipsis")}else{return false}}if(Z(e,t)){return W}}function clear_gensyms(e,i){function a(t){if(is_pair(t)){if(!i.length){return t}var e=a(t.car);var r=a(t.cdr);return new Pair(e,r)}else if(t instanceof LSymbol){var n=i.find(function(e){return e.gensym===t});if(n){return LSymbol(n.name)}return t}else{return t}}return a(e)}function transform_syntax(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var P=e.bindings,t=e.expr,N=e.scope,o=e.symbols,l=e.names,B=e.ellipsis;var f={};function u(e){if(e instanceof LSymbol){return true}return["string","symbol"].includes(_typeof$1(e))}function I(e){if(!u(e)){var t=type(e);throw new Error("syntax: internal error, need symbol got ".concat(t))}var r=e.valueOf();if(r===B){throw new Error("syntax: internal error, ellipis not transformed")}var n=_typeof$1(r);if(["string","symbol"].includes(n)){if(r in P.symbols){return P.symbols[r]}else if(n==="string"&&r.match(/\./)){var i=r.split(".");var a=i[0];if(a in P.symbols){return Pair.fromArray([LSymbol("."),P.symbols[a]].concat(i.slice(1).map(function(e){return LString(e)})))}}}if(o.includes(r)){return e}return s(r,e)}function s(e,t){if(!f[e]){var r=N.ref(e);if(_typeof$1(e)==="symbol"&&!r){e=t.literal()}if(f[e]){return f[e]}var n=gensym(e);if(r){var i=N.get(e);N.set(n,i)}else{var a=N.get(e,{throwError:false});if(typeof a!=="undefined"){N.set(n,a)}}l.push({name:e,gensym:n});f[e]=n;if(typeof e==="string"&&e.match(/\./)){var o=e.split(".").filter(Boolean),u=_toArray(o),s=u[0],c=u.slice(1);if(f[s]){hidden_prop(n,"__object__",[f[s]].concat(_toConsumableArray(c)))}}}return f[e]}function j(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:function(){};var i=r.nested;log({bindings:t,expr:e});if(Array.isArray(e)&&!e.length){return e}if(e instanceof LSymbol){var a=e.valueOf();if(is_gensym(e)&&!t[a]);log("[t 1");if(t[a]){if(is_pair(t[a])){var o=t[a],u=o.car,s=o.cdr;if(i){var c=u.car,l=u.cdr;if(!is_nil(l)){n(a,new Pair(l,_nil))}return c}if(!is_nil(s)){n(a,s)}return u}else if(t[a]instanceof Array){n(a,t[a].slice(1));return t[a][0]}}return I(e)}var f=Array.isArray(e);if(is_pair(e)||f){var _=f?e[0]:e.car;var p=f?e[1]:is_pair(e.cdr)&&e.cdr.car;if(_ instanceof LSymbol&&LSymbol.is(p,B)){f?e.slice(2):e.cdr.cdr;log("[t 2");var d=_.valueOf();var h=t[d];if(h===null){return}else if(d in t){log({name:d,binding:t[d]});if(is_pair(h)){log("[t 2 Pair "+i);var m=h.car,y=h.cdr;var v=f?e.slice(2):e.cdr.cdr;if(i){if(!is_nil(y)){log("|| next 1");n(d,y)}if(f&&v.length||!is_nil(v)&&!f){var b=j(v,t,r,n);if(f){return m.concat(b)}else if(is_pair(m)){return m.append(b)}else{log("UNKNOWN")}}return m}else if(is_pair(m)){if(!is_nil(m.cdr)){log("|| next 2");n(d,new Pair(m.cdr,y))}return new Value(m.car)}else if(is_nil(y)){return m}else{var g=e.last_pair();if(g.cdr instanceof LSymbol){log("|| next 3");n(d,h.last_pair());return m}}}else if(h instanceof Array){log("[t 2 Array "+i);if(i){n(d,h.slice(1));return Pair.fromArray(h)}else{var w=h.slice(1);if(w.length){n(d,w)}return h[0]}}else{return h}}}log("[t 3 recur ",e);var D=f?e.slice(1):e.cdr;var x=j(_,t,r,n);var L=j(D,t,r,n);log({head:x,rest:L});if(f){return[x].concat(L)}return new Pair(x,L)}return e}function R(t,r){var e=Object.values(t);var n=Object.getOwnPropertySymbols(t);if(n.length){e.push.apply(e,_toConsumableArray(n.map(function(e){return t[e]})))}return e.length&&e.every(function(e){if(e===null){return!r}return is_pair(e)||is_nil(e)||Array.isArray(e)&&e.length})}function T(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function M(i){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},t=e.disabled;log("traverse>> ",i);var a=Array.isArray(i);if(a&&i.length===0){return i}if(is_pair(i)||a){log(">> 0");var r=a?i[0]:i.car;var n,o;if(a){n=i[1];o=i.slice(2)}else if(is_pair(i.cdr)){n=i.cdr.car;o=i.cdr.cdr}log({first:r,second:n,rest_second:o});if(!t&&is_pair(r)&&LSymbol.is(r.car,B)){return new Pair(r.cdr.car,M(i.cdr))}if(n&&LSymbol.is(n,B)&&!t){log(">> 1");var u=P["..."].symbols;var s=Object.values(u);if(s.length&&s.every(function(e){return e===null})){log(">>> 1 (a)");return M(o,{disabled:t})}var c=T(u);var l=r instanceof LSymbol&&LSymbol.is(o.car,B);if(is_pair(r)||l){log(">>> 1 (b)");if(is_nil(P["..."].lists[0])){if(!l){return M(o,{disabled:t})}log(o);return _nil}var f=r;if(l){log(">>> 1 (c)");f=new Pair(r,new Pair(n,_nil))}log(">> 2");var _;if(c.length){log(">> 2 (a)");var p=_objectSpread({},u);_=a?[]:_nil;var d=function e(){log({bind:p});if(!R(p)){return 1}var n={};var t=function e(t,r){n[t]=r};var r=j(f,p,{nested:true},t);if(r!==undefined){if(r instanceof Value){r.valueOf(),_readOnlyError("car")}if(l){if(a){if(Array.isArray(r)){var i;(i=_).push.apply(i,_toConsumableArray(r))}else{log("ZONK {1}")}}else{if(is_nil(_)){_=r}else{_=_.append(r)}}}else if(a){_.push(r)}else{_=new Pair(r,_)}}p=n};while(true){if(d())break}if(!is_nil(_)&&!l&&!a){_=_.reverse()}if(a){if(o){log({rest_second:o,expr:i});var h=M(o,{disabled:t});return _.concat(h)}return _}if(!is_nil(i.cdr.cdr)&&!LSymbol.is(i.cdr.cdr.car,B)){var m=M(i.cdr.cdr,{disabled:t});return _.append(m)}return _}else{log(">> 3");var y=j(r,u,{nested:true});if(y){if(y instanceof Value){y.valueOf(),_readOnlyError("car")}return new Pair(y,_nil)}return _nil}}else if(r instanceof LSymbol){log(">> 4");if(LSymbol.is(o.car,B)){log(">> 4 (a)")}else{log(">> 4 (b)")}var v=r.__name__;var b=_defineProperty({},v,u[v]);log({bind:b});var g=u[v]===null;var w=a?[]:_nil;var D=function e(){if(!R(b,true)){log({bind:b});return 1}var n={};var t=function e(t,r){n[t]=r};var r=j(i,b,{nested:false},t);log({value:r});if(typeof r!=="undefined"){if(r instanceof Value){r=r.valueOf()}if(a){w.push(r)}else{w=new Pair(r,w)}}b=n};while(true){if(D())break}if(!is_nil(w)&&!a){w=w.reverse()}if(is_pair(i.cdr)){if(is_pair(i.cdr.cdr)||i.cdr.cdr instanceof LSymbol){var x=M(i.cdr.cdr,{disabled:t});log({node:x});if(g){return x}if(is_nil(w)){w=x}else{w.append(x)}log({result:w,node:x})}}log("<<<< 2");log({result:w});return w}}var L=M(r,{disabled:t});var E;var S;if(r instanceof LSymbol){var A=N.get(r,{throwError:false});S=A instanceof Macro&&A.__name__==="syntax-rules"}if(S){if(i.cdr.car instanceof LSymbol){E=new Pair(M(i.cdr.car,{disabled:t}),new Pair(i.cdr.cdr.car,M(i.cdr.cdr.cdr,{disabled:t})))}else{E=new Pair(i.cdr.car,M(i.cdr.cdr,{disabled:t}))}log("REST >>>> ",E)}else{E=M(i.cdr,{disabled:t})}log({a:true,car:toString(i.car),cdr:toString(i.cdr),head:toString(L),rest:toString(E)});return new Pair(L,E)}if(i instanceof LSymbol){if(t&&LSymbol.is(i,B)){return i}var F=Object.keys(P["..."].symbols);var k=i.literal();if(F.includes(k)){var C="missing ellipsis symbol next to name `".concat(k,"'");throw new Error("syntax-rules: ".concat(C))}var O=I(i);if(typeof O!=="undefined"){return O}}return i}return M(t,{})}function is_null(e){return is_undef(e)||is_nil(e)||e===null}function is_nil(e){return e===_nil}function is_function(e){return typeof e==="function"&&typeof e.bind==="function"}function is_directive(e){return directives.includes(e)}function is_false(e){return e===false||e===null}function is_string(e){return typeof e==="string"}function is_prototype(e){return e&&_typeof$1(e)==="object"&&e.hasOwnProperty&&e.hasOwnProperty("constructor")&&typeof e.constructor==="function"&&e.constructor.prototype===e}function is_continuation(e){return e instanceof Continuation}function is_context(e){return e instanceof LambdaContext}function is_parameter(e){return e instanceof Parameter}function is_pair(e){return e instanceof Pair}function is_env(e){return e instanceof Environment}function is_callable(e){return is_function(e)||is_continuation(e)||is_parameter(e)||is_macro(e)}function is_macro(e){return e instanceof Macro||e instanceof SyntaxParameter}function is_promise(e){if(e instanceof QuotedPromise){return false}if(e instanceof Promise){return true}return!!e&&is_function(e.then)}function is_undef(e){return typeof e==="undefined"}function get_proto(e){return Object.getPrototypeOf(e)}function is_iterator(e,t){if(has_own_symbol(e,t)||has_own_symbol(get_proto(e),t)){return is_function(e[t])}}function is_instance(e){if(!e){return false}if(_typeof$1(e)!=="object"){return false}if(e.__instance__){e.__instance__=false;return e.__instance__}return false}function self_evaluated(e){var t=_typeof$1(e);return["string","function"].includes(t)||_typeof$1(e)==="symbol"||e instanceof QuotedPromise||e instanceof LSymbol||e instanceof LNumber||e instanceof LString||e instanceof RegExp}function is_native(e){return e instanceof LNumber||e instanceof LString||e instanceof LCharacter}function has_own_symbol(e,t){if(e===null){return false}return _typeof$1(e)==="object"&&t in Object.getOwnPropertySymbols(e)}function box(e){switch(_typeof$1(e)){case"string":return LString(e);case"bigint":return LNumber(e);case"number":if(Number.isNaN(e)){return nan}else{return LNumber(e)}}return e}function map_object(r,n){var e=Object.getOwnPropertyNames(r);var t=Object.getOwnPropertySymbols(r);var i={};e.concat(t).forEach(function(e){var t=n(r[e]);i[e]=t});return i}function unbox(t){var e=[LString,LNumber,LCharacter].some(function(e){return t instanceof e});if(e){return t.valueOf()}if(t instanceof Array){return t.map(unbox)}if(t instanceof QuotedPromise){delete t.then}if(is_plain_object(t)){return map_object(t,unbox)}return t}function patch_value(e,t){if(is_pair(e)){e.mark_cycles();return quote(e)}if(is_function(e)){if(t){return bind(e,t)}}return box(e)}function unbind(e){if(is_bound(e)){return e[__fn__]}return e}function bind(e,t){if(e[Symbol["for"]("__bound__")]){return e}var r=e.bind(t);var n=Object.getOwnPropertyNames(e);var i=_createForOfIteratorHelper(n),a;try{for(i.s();!(a=i.n()).done;){var o=a.value;if(filter_fn_names(o)){try{r[o]=e[o]}catch(e){}}}}catch(e){i.e(e)}finally{i.f()}hidden_prop(r,"__fn__",e);hidden_prop(r,"__context__",t);hidden_prop(r,"__bound__",true);if(is_native_function(e)){hidden_prop(r,"__native__",true)}if(is_plain_object(t)&&is_lambda(e)){hidden_prop(r,"__method__",true)}r.valueOf=function(){return e};return r}function is_object_bound(e){return is_bound(e)&&e[Symbol["for"]("__context__")]===Object}function is_bound(e){return!!(is_function(e)&&e[__fn__])}function lips_context(e){if(is_function(e)){var t=e[__context__];if(t&&(t===lips||t.constructor&&t.constructor.__class__)){return true}}return false}function is_port(e){return e instanceof InputPort||e instanceof OutputPort}function is_port_method(e){if(is_function(e)){if(is_port(e[__context__])){return true}}return false}var __context__=Symbol["for"]("__context__");var __fn__=Symbol["for"]("__fn__");var __data__=Symbol["for"]("__data__");var __ref__=Symbol["for"]("__ref__");var __cycles__=Symbol["for"]("__cycles__");var __class__=Symbol["for"]("__class__");var __method__=Symbol["for"]("__method__");var __prototype__=Symbol["for"]("__prototype__");var __lambda__=Symbol["for"]("__lambda__");var exluded_names=["name","length","caller","callee","arguments","prototype"];function filter_fn_names(e){return!exluded_names.includes(e)}function hidden_prop(e,t,r){Object.defineProperty(e,Symbol["for"](t),{get:function e(){return r},set:function e(){},configurable:false,enumerable:false})}function set_fn_length(t,r){try{Object.defineProperty(t,"length",{get:function e(){return r}});return t}catch(e){var n=new Array(r).fill(0).map(function(e,t){return"a"+t}).join(",");var i=new Function("f","return function(".concat(n,") {\n return f.apply(this, arguments);\n };"));return i(t)}}function is_lambda(e){return e&&e[__lambda__]}function is_method(e){return e&&e[__method__]}function is_raw_lambda(e){return is_lambda(e)&&!e[__prototype__]&&!is_method(e)&&!is_port_method(e)}function is_native_function(e){var t=Symbol["for"]("__native__");return is_function(e)&&e.toString().match(/\{\s*\[native code\]\s*\}/)&&(e.name.match(/^bound /)&&e[t]===true||!e.name.match(/^bound /)&&!e[t])}function let_macro(e){var w;switch(e){case Symbol["for"]("letrec"):w="letrec";break;case Symbol["for"]("let"):w="let";break;case Symbol["for"]("let*"):w="let*";break;default:throw new Error("Invalid let_macro value")}return Macro.defmacro(w,function(t,e){var l=e.dynamic_env;var f=e.error,r=e.macro_expand,_=e.use_dynamic;var p;if(t.car instanceof LSymbol){if(!(is_pair(t.cdr.car)||is_nil(t.cdr.car))){throw new Error("let require list of pairs")}var n;if(is_nil(t.cdr.car)){p=_nil;n=_nil}else{n=t.cdr.car.map(function(e){return e.car});p=t.cdr.car.map(function(e){return e.cdr.car})}return new Pair(Pair.fromArray([LSymbol("letrec"),[[t.car,Pair(LSymbol("lambda"),Pair(n,t.cdr.cdr))]],t.car]),p)}else if(r){return}var d=this;p=global_env.get("list->array")(t.car);var h=d.inherit(w);var m,y;if(w==="let*"){y=h}else if(w==="let"){m=[]}var v=0;function b(){var e=hygienic_begin([h],t.cdr);return _evaluate(e,{env:h,dynamic_env:h,use_dynamic:_,error:f})}function g(e){if(e in h.__env__){throw new Error("Duplicated let variable ".concat(e))}}return function t(){var r=p[v++];l=w==="let*"?h:d;if(!r){if(m&&m.length){var e=m.map(function(e){return e.value});var n=e.filter(is_promise);if(n.length){return promise_all(e).then(function(e){for(var t=0,r=e.length;t1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=t.error;var i=this;var a=this;var o=[];var u=e;while(is_pair(u)){o.push(_evaluate(u.car,{env:i,dynamic_env:a,use_dynamic:r,error:n}));u=u.cdr}var s=o.filter(is_promise).length;if(s){return promise_all(o).then(c.bind(this))}else{return c.call(this,o)}})}function guard_math_call(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2?n-2:0),a=2;a1&&arguments[1]!==undefined?arguments[1]:null;return function(){for(var e=arguments.length,t=new Array(e),r=0;r1?e-1:0),r=1;r=u){return o.apply(n,i)}else{return a}}}();return a.apply(void 0,arguments)}}function limit(n,i){typecheck("limit",i,"function",2);return function(){for(var e=arguments.length,t=new Array(e),r=0;r1){e=e.toLowerCase();if(LCharacter.__names__[e]){t=e;e=LCharacter.__names__[e]}else{throw new Error("Internal: Unknown named character")}}else{t=LCharacter.__rev_names__[e]}Object.defineProperty(this,"__char__",{value:e,enumerable:true});if(t){Object.defineProperty(this,"__name__",{value:t,enumerable:true})}}LCharacter.__names__=characters;LCharacter.__rev_names__={};Object.keys(LCharacter.__names__).forEach(function(e){var t=LCharacter.__names__[e];LCharacter.__rev_names__[t]=e});LCharacter.prototype.toUpperCase=function(){return LCharacter(this.__char__.toUpperCase())};LCharacter.prototype.toLowerCase=function(){return LCharacter(this.__char__.toLowerCase())};LCharacter.prototype.toString=function(){return"#\\"+(this.__name__||this.__char__)};LCharacter.prototype.valueOf=LCharacter.prototype.serialize=function(){return this.__char__};function LString(e){if(typeof this!=="undefined"&&!(this instanceof LString)||typeof this==="undefined"){return new LString(e)}if(e instanceof Array){this.__string__=e.map(function(e,t){typecheck("LString",e,"character",t+1);return e.toString()}).join("")}else{this.__string__=e.valueOf()}}{var ignore=["length","constructor"];var _keys=Object.getOwnPropertyNames(String.prototype).filter(function(e){return!ignore.includes(e)});var wrap=function e(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r0){r.push(this.__string__.substring(0,e))}r.push(t);if(e1&&arguments[1]!==undefined?arguments[1]:false;if(e instanceof LNumber){return e}if(typeof this!=="undefined"&&!(this instanceof LNumber)||typeof this==="undefined"){return new LNumber(e,t)}if(typeof e==="undefined"){throw new Error("Invalid LNumber constructor call")}var r=LNumber.getType(e);if(LNumber.types[r]){return LNumber.types[r](e,t)}var n=e instanceof Array&&LString.isString(e[0])&&LNumber.isNumber(e[1]);if(e instanceof LNumber){return LNumber(e.value)}if(!LNumber.isNumber(e)&&!n){throw new Error("You can't create LNumber from ".concat(type(e)))}if(e===null){e=0}var i;if(n){var a=e,o=_slicedToArray(a,2),u=o[0],s=o[1];if(u instanceof LString){u=u.valueOf()}if(s instanceof LNumber){s=s.valueOf()}var c=u.match(/^([+-])/);var l=false;if(c){u=u.replace(/^[+-]/,"");if(c[1]==="-"){l=true}}}if(Number.isNaN(e)){return LFloat(e)}else if(n&&Number.isNaN(parseInt(u,s))){return nan}else if(typeof BigInt!=="undefined"){if(typeof e!=="bigint"){if(n){var f;switch(s){case 8:f="0o";break;case 16:f="0x";break;case 2:f="0b";break;case 10:f="";break}if(typeof f==="undefined"){var _=BigInt(s);i=_toConsumableArray(u).map(function(e,t){return BigInt(parseInt(e,s))*pow(_,BigInt(t))}).reduce(function(e,t){return e+t})}else{i=BigInt(f+u)}}else{i=BigInt(e)}if(l){i*=BigInt(-1)}}else{i=e}return LBigInteger(i,true)}else if(typeof BN!=="undefined"&&!(e instanceof BN)){if(e instanceof Array){return LBigInteger(_construct(BN,_toConsumableArray(e)))}return LBigInteger(new BN(e))}else if(n){this.constant(parseInt(u,s),"integer")}else{this.constant(e,"integer")}}LNumber.prototype.constant=function(e,t){Object.defineProperty(this,"__value__",{value:e,enumerable:true});Object.defineProperty(this,"__type__",{value:t,enumerable:true})};LNumber.types={float:function e(t){return new LFloat(t)},complex:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!LNumber.isComplex(t)){t={im:0,re:t}}return new LComplex(t,r)},rational:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!LNumber.isRational(t)){t={num:t,denom:1}}return new LRational(t,r)}};LNumber.prototype.serialize=function(){return this.__value__};LNumber.prototype.isNaN=function(){return Number.isNaN(this.__value__)};LNumber.prototype.gcd=function(e){var t=this.abs();e=e.abs();if(e.cmp(t)===1){var r=t;t=e;e=r}while(true){t=t.rem(e);if(t.cmp(0)===0){return e}e=e.rem(t);if(e.cmp(0)===0){return t}}};LNumber.isFloat=function e(t){return t instanceof LFloat||Number(t)===t&&t%1!==0};LNumber.isNumber=function(e){return e instanceof LNumber||LNumber.isNative(e)||LNumber.isBN(e)};LNumber.isComplex=function(e){if(!e){return false}var t=e instanceof LComplex||(LNumber.isNumber(e.im)||LNumber.isRational(e.im)||Number.isNaN(e.im))&&(LNumber.isNumber(e.re)||LNumber.isRational(e.re)||Number.isNaN(e.re));return t};LNumber.isRational=function(e){if(!e){return false}return e instanceof LRational||LNumber.isNumber(e.num)&&LNumber.isNumber(e.denom)};LNumber.isInteger=function(e){if(!(LNumber.isNative(e)||e instanceof LNumber)){return false}if(LNumber.isFloat(e)){return false}if(LNumber.isRational(e)){return false}if(LNumber.isComplex(e)){return false}return true};LNumber.isNative=function(e){return typeof e==="bigint"||typeof e==="number"};LNumber.isBigInteger=function(e){return e instanceof LBigInteger||typeof e==="bigint"||LNumber.isBN(e)};LNumber.isBN=function(e){return typeof BN!=="undefined"&&e instanceof BN};LNumber.getArgsType=function(e,t){if(e instanceof LFloat||t instanceof LFloat){return LFloat}if(e instanceof LBigInteger||t instanceof LBigInteger){return LBigInteger}return LNumber};LNumber.prototype.toString=function(e){if(Number.isNaN(this.__value__)){return"+nan.0"}if(e>=2&&e<36){return this.__value__.toString(e)}return this.__value__.toString()};LNumber.prototype.asType=function(e){var t=LNumber.getType(this);return LNumber.types[t]?LNumber.types[t](e):LNumber(e)};LNumber.prototype.isBigNumber=function(){return typeof this.__value__==="bigint"||typeof BN!=="undefined"&&!(this.value instanceof BN)};["floor","ceil","round"].forEach(function(e){LNumber.prototype[e]=function(){if(this["float"]||LNumber.isFloat(this.__value__)){return LNumber(Math[e](this.__value__))}else{return LNumber(Math[e](this.valueOf()))}}});LNumber.prototype.valueOf=function(){if(LNumber.isNative(this.__value__)){return Number(this.__value__)}else if(LNumber.isBN(this.__value__)){return this.__value__.toNumber()}};var matrix=function(){var e=function e(t,r){return[t,r]};return{bigint:{bigint:e,float:function e(t,r){return[LFloat(t.valueOf()),r]},rational:function e(t,r){return[{num:t,denom:1},r]},complex:function e(t,r){return[{im:0,re:t},r]}},integer:{integer:e,float:function e(t,r){return[LFloat(t.valueOf()),r]},rational:function e(t,r){return[{num:t,denom:1},r]},complex:function e(t,r){return[{im:0,re:t},r]}},float:{bigint:function e(t,r){return[t,r&&LFloat(r.valueOf())]},integer:function e(t,r){return[t,r&&LFloat(r.valueOf())]},float:e,rational:function e(t,r){return[t,r&&LFloat(r.valueOf())]},complex:function e(t,r){return[{re:t,im:LFloat(0)},r]}},complex:{bigint:t("bigint"),integer:t("integer"),float:t("float"),rational:t("rational"),complex:function e(t,r){var n=LNumber.coerce(t.__re__,r.__re__),i=_slicedToArray(n,2),a=i[0],o=i[1];var u=LNumber.coerce(t.__im__,r.__im__),s=_slicedToArray(u,2),c=s[0],l=s[1];return[{im:c,re:a},{im:l,re:o}]}},rational:{bigint:function e(t,r){return[t,r&&{num:r,denom:1}]},integer:function e(t,r){return[t,r&&{num:r,denom:1}]},float:function e(t,r){return[LFloat(t.valueOf()),r]},rational:e,complex:function e(t,r){return[{im:coerce(t.__type__,r.__im__.__type__,0)[0],re:coerce(t.__type__,r.__re__.__type__,t)[0]},{im:coerce(t.__type__,r.__im__.__type__,r.__im__)[0],re:coerce(t.__type__,r.__re__.__type__,r.__re__)[0]}]}}};function t(r){return function(e,t){return[{im:coerce(r,e.__im__.__type__,0,e.__im__)[1],re:coerce(r,e.__re__.__type__,0,e.__re__)[1]},{im:coerce(r,e.__im__.__type__,0,0)[1],re:coerce(r,t.__type__,0,t)[1]}]}}}();function coerce(e,t,r,n){return matrix[e][t](r,n)}LNumber.coerce=function(e,t){var r=LNumber.getType(e);var n=LNumber.getType(t);if(!matrix[r]){throw new Error("LNumber::coerce unknown lhs type ".concat(r))}else if(!matrix[r][n]){throw new Error("LNumber::coerce unknown rhs type ".concat(n))}var i=matrix[r][n](e,t);return i.map(function(e){return LNumber(e,true)})};LNumber.prototype.coerce=function(e){if(!(typeof e==="number"||e instanceof LNumber)){throw new Error("LNumber: you can't coerce ".concat(type(e)))}if(typeof e==="number"){e=LNumber(e)}return LNumber.coerce(this,e)};LNumber.getType=function(e){if(e instanceof LNumber){return e.__type__}if(LNumber.isFloat(e)){return"float"}if(LNumber.isComplex(e)){return"complex"}if(LNumber.isRational(e)){return"rational"}if(typeof e==="number"){return"integer"}if(typeof BigInt!=="undefined"&&typeof e!=="bigint"||typeof BN!=="undefined"&&!(e instanceof BN)){return"bigint"}};LNumber.prototype.isFloat=function(){return!!(LNumber.isFloat(this.__value__)||this["float"])};var mapping={add:"+",sub:"-",mul:"*",div:"/",rem:"%",or:"|",and:"&",neg:"~",shl:">>",shr:"<<"};var rev_mapping={};Object.keys(mapping).forEach(function(t){rev_mapping[mapping[t]]=t;LNumber.prototype[t]=function(e){return this.op(mapping[t],e)}});LNumber._ops={"*":function e(t,r){return t*r},"+":function e(t,r){return t+r},"-":function e(t,r){if(typeof r==="undefined"){return-t}return t-r},"/":function e(t,r){return t/r},"%":function e(t,r){return t%r},"|":function e(t,r){return t|r},"&":function e(t,r){return t&r},"~":function e(t){return~t},">>":function e(t,r){return t>>r},"<<":function e(t,r){return t<1&&arguments[1]!==undefined?arguments[1]:false;if(typeof this!=="undefined"&&!(this instanceof LComplex)||typeof this==="undefined"){return new LComplex(e,t)}if(e instanceof LComplex){return LComplex({im:e.__im__,re:e.__re__})}if(LNumber.isNumber(e)&&t){if(!t){return Number(e)}}else if(!LNumber.isComplex(e)){var r="Invalid constructor call for LComplex expect &(:im :re ) object but got ".concat(toString(e));throw new Error(r)}var n=e.im instanceof LNumber?e.im:LNumber(e.im);var i=e.re instanceof LNumber?e.re:LNumber(e.re);this.constant(n,i)}LComplex.prototype=Object.create(LNumber.prototype);LComplex.prototype.constructor=LComplex;LComplex.prototype.constant=function(e,t){Object.defineProperty(this,"__im__",{value:e,enumerable:true});Object.defineProperty(this,"__re__",{value:t,enumerable:true});Object.defineProperty(this,"__type__",{value:"complex",enumerable:true})};LComplex.prototype.serialize=function(){return{re:this.__re__,im:this.__im__}};LComplex.prototype.toRational=function(e){var t=this.__im__,r=this.__re__;if(LNumber.isFloat(this.__im__)){t=LFloat(this.__im__).toRational(e)}if(LNumber.isFloat(this.__re__)){r=LFloat(this.__re__).toRational(e)}return LComplex({im:t,re:r})};LComplex.prototype.pow=function(e){e.cmp(0);if(e===0){return LNumber(1)}var t=LNumber(Math.atan2(this.__im__.valueOf(),this.__re__.valueOf()));var r=LNumber(this.modulus());if(LNumber.isComplex(e)&&e.__im__.cmp(0)!==0){var n=e.mul(Math.log(r.valueOf())).add(LComplex.i.mul(t).mul(e));if(!LNumber.isComplex(n)){return LFloat(Math.E).pow(n)}var i=LFloat(Math.E).pow(n.__re__.valueOf());return LComplex({re:i.mul(Math.cos(n.__im__.valueOf())),im:i.mul(Math.sin(n.__im__.valueOf()))})}var a=e.__re__.cmp(0)>0;e=e.__re__.valueOf();if(LNumber.isInteger(e)&&a){var o=this;while(--e){o=o.mul(this)}return o}var u=r.pow(e);var s=t.mul(e);return LComplex({re:u.mul(Math.cos(s)),im:u.mul(Math.sin(s))})};LComplex.prototype.add=function(e){return this.complex_op("add",e,function(e,t,r,n){return{re:e.add(t),im:r.add(n)}})};LComplex.prototype.factor=function(){if(this.__im__ instanceof LFloat||this.__im__ instanceof LFloat){var e=this.__re__,t=this.__im__;var r,n;if(e instanceof LFloat){r=e.toRational().mul(e.toRational())}else{r=e.mul(e)}if(t instanceof LFloat){n=t.toRational().mul(t.toRational())}else{n=t.mul(t)}return r.add(n)}else{return this.__re__.mul(this.__re__).add(this.__im__.mul(this.__im__))}};LComplex.prototype.modulus=function(){return this.factor().sqrt()};LComplex.prototype.conjugate=function(){return LComplex({re:this.__re__,im:this.__im__.sub()})};LComplex.prototype.sqrt=function(){var e=this.modulus();var t,r;if(e.cmp(0)===0){t=r=e}else if(this.__re__.cmp(0)===1){t=LFloat(.5).mul(e.add(this.__re__)).sqrt();r=this.__im__.div(t).div(2)}else{r=LFloat(.5).mul(e.sub(this.__re__)).sqrt();if(this.__im__.cmp(0)===-1){r=r.sub()}t=this.__im__.div(r).div(2)}return LComplex({im:r,re:t})};LComplex.prototype.div=function(e){if(LNumber.isNumber(e)&&!LNumber.isComplex(e)){if(!(e instanceof LNumber)){e=LNumber(e)}var t=this.__re__.div(e);var r=this.__im__.div(e);return LComplex({re:t,im:r})}else if(!LNumber.isComplex(e)){throw new Error("[LComplex::div] Invalid value")}if(this.cmp(e)===0){var n=this.coerce(e),i=_slicedToArray(n,2),a=i[0],o=i[1];var u=a.__im__.div(o.__im__);return u.coerce(o.__re__)[0]}var s=this.coerce(e),c=_slicedToArray(s,2),l=c[0],f=c[1];var _=f.factor();var p=f.conjugate();var d=l.mul(p);if(!LNumber.isComplex(d)){return d.div(_)}var h=d.__re__.op("/",_);var m=d.__im__.op("/",_);return LComplex({re:h,im:m})};LComplex.prototype.sub=function(e){return this.complex_op("sub",e,function(e,t,r,n){return{re:e.sub(t),im:r.sub(n)}})};LComplex.prototype.mul=function(e){return this.complex_op("mul",e,function(e,t,r,n){var i={re:e.mul(t).sub(r.mul(n)),im:e.mul(n).add(t.mul(r))};return i})};LComplex.prototype.complex_op=function(e,t,i){var a=this;var r=function e(t,r){var n=i(a.__re__,t,a.__im__,r);if("im"in n&&"re"in n){if(n.im.cmp(0)===0){return n.re}return LComplex(n,true)}return n};if(typeof t==="undefined"){return r()}if(LNumber.isNumber(t)&&!LNumber.isComplex(t)){if(!(t instanceof LNumber)){t=LNumber(t)}var n=t.asType(0);t={__im__:n,__re__:t}}else if(!LNumber.isComplex(t)){throw new Error("[LComplex::".concat(e,"] Invalid value"))}var o=t.__re__ instanceof LNumber?t.__re__:this.__re__.asType(t.__re__);var u=t.__im__ instanceof LNumber?t.__im__:this.__im__.asType(t.__im__);return r(o,u)};LComplex._op={"+":"add","-":"sub","*":"mul","/":"div"};LComplex.prototype._op=function(e,t){var r=LComplex._op[e];return this[r](t)};LComplex.prototype.cmp=function(e){var t=this.coerce(e),r=_slicedToArray(t,2),n=r[0],i=r[1];var a=n.__re__.coerce(i.__re__),o=_slicedToArray(a,2),u=o[0],s=o[1];var c=u.cmp(s);if(c!==0){return c}else{var l=n.__im__.coerce(i.__im__),f=_slicedToArray(l,2),_=f[0],p=f[1];return _.cmp(p)}};LComplex.prototype.valueOf=function(){return[this.__re__,this.__im__].map(function(e){return e.valueOf()})};LComplex.prototype.toString=function(){var e;if(this.__re__.cmp(0)!==0){e=[toString(this.__re__)]}else{e=[]}var t=this.__im__.valueOf();var r=[Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY].includes(t);var n=toString(this.__im__);if(!r&&!Number.isNaN(t)){var i=this.__im__.cmp(0);if(i<0||i===0&&this.__im__._minus){e.push("-")}else{e.push("+")}n=n.replace(/^-/,"")}e.push(n);e.push("i");return e.join("")};function LFloat(e){if(typeof this!=="undefined"&&!(this instanceof LFloat)||typeof this==="undefined"){return new LFloat(e)}if(!LNumber.isNumber(e)){throw new Error("Invalid constructor call for LFloat")}if(e instanceof LNumber){return LFloat(e.valueOf())}if(typeof e==="number"){if(Object.is(e,-0)){Object.defineProperty(this,"_minus",{value:true})}this.constant(e,"float")}}LFloat.prototype=Object.create(LNumber.prototype);LFloat.prototype.constructor=LFloat;LFloat.prototype.toString=function(e){if(this.__value__===Number.NEGATIVE_INFINITY){return"-inf.0"}if(this.__value__===Number.POSITIVE_INFINITY){return"+inf.0"}if(Number.isNaN(this.__value__)){return"+nan.0"}e&&(e=e.valueOf());var t=this.__value__.toString(e);if(!t.match(/e[+-]?[0-9]+$/i)){var r=t.replace(/^-/,"");var n=this.__value__<0?"-":"";if(t.match(/^-?0\.0{3}/)){var i=r.match(/^[.0]+/g)[0].length-1;var a=r.replace(/^[.0]+/,"").replace(/^([0-9a-f])/i,"$1.");return"".concat(n).concat(a,"e-").concat(i.toString(e))}if(t.match(/^-?[0-9a-f]{7,}\.?/i)){var o=r.match(/^[0-9a-f]+/gi)[0].length-1;var u=r.replace(/\./,"").replace(/^([0-9a-f])/i,"$1.").replace(/0+$/,"").replace(/\.$/,".0");return"".concat(n).concat(u,"e+").concat(o.toString(e))}if(!LNumber.isFloat(this.__value__)){var s=t+".0";return this._minus?"-"+s:s}}return t.replace(/^([0-9]+)e/,"$1.0e")};LFloat.prototype._op=function(e,t){if(t instanceof LNumber){t=t.__value__}var r=LNumber._ops[e];if(e==="/"&&this.__value__===0&&t===0){return NaN}return LFloat(r(this.__value__,t))};LFloat.prototype.toRational=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){return toRational(this.__value__.valueOf())}return approxRatio(e.valueOf())(this.__value__.valueOf())};LFloat.prototype.sqrt=function(){var e=this.valueOf();if(this.cmp(0)<0){var t=LFloat(Math.sqrt(-e));return LComplex({re:0,im:t})}return LFloat(Math.sqrt(e))};LFloat.prototype.abs=function(){var e=this.valueOf();if(e<0){e=-e}return LFloat(e)};var toRational=approxRatio(1e-10);function approxRatio(n){return function(e){var t=function e(n,t,r){var i=function e(t,r){return r0){i=simplest_rational2(n,r)}else if(n.cmp(r)<=0){i=r}else if(r.cmp(0)>0){i=simplest_rational2(r,n)}else if(t.cmp(0)<0){i=LNumber(simplest_rational2(n.sub(),r.sub())).sub()}else{i=LNumber(0)}if(LNumber.isFloat(t)||LNumber.isFloat(e)){return LFloat(i)}return i}function simplest_rational2(e,t){var r=LNumber(e).floor();var n=LNumber(t).floor();if(e.cmp(r)<1){return r}else if(r.cmp(n)===0){var i=LNumber(1).div(t.sub(n));var a=LNumber(1).div(e.sub(r));return r.add(LNumber(1).div(simplest_rational2(i,a)))}else{return r.add(LNumber(1))}}function LRational(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(typeof this!=="undefined"&&!(this instanceof LRational)||typeof this==="undefined"){return new LRational(e,t)}if(!LNumber.isRational(e)){throw new Error("Invalid constructor call for LRational")}var r,n;if(e instanceof LRational){r=LNumber(e.__num__);n=LNumber(e.__denom__)}else{r=LNumber(e.num);n=LNumber(e.denom)}if(!t&&n.cmp(0)!==0){var i=r.op("%",n).cmp(0)===0;if(i){return LNumber(r.div(n))}}this.constant(r,n)}LRational.prototype=Object.create(LNumber.prototype);LRational.prototype.constructor=LRational;LRational.prototype.constant=function(e,t){Object.defineProperty(this,"__num__",{value:e,enumerable:true});Object.defineProperty(this,"__denom__",{value:t,enumerable:true});Object.defineProperty(this,"__type__",{value:"rational",enumerable:true})};LRational.prototype.serialize=function(){return{num:this.__num__,denom:this.__denom__}};LRational.prototype.pow=function(e){if(LNumber.isRational(e)){return pow(this.valueOf(),e.valueOf())}var t=e.cmp(0);if(t===0){return LNumber(1)}if(t===-1){e=e.sub();var r=this.__denom__.pow(e);var n=this.__num__.pow(e);return LRational({num:r,denom:n})}var i=this;e=e.valueOf();while(e>1){i=i.mul(this);e--}return i};LRational.prototype.sqrt=function(){var e=this.__num__.sqrt();var t=this.__denom__.sqrt();if(e instanceof LFloat||t instanceof LFloat){return e.div(t)}return LRational({num:e,denom:t})};LRational.prototype.abs=function(){var e=this.__num__;var t=this.__denom__;if(e.cmp(0)===-1){e=e.sub()}if(t.cmp(0)!==1){t=t.sub()}return LRational({num:e,denom:t})};LRational.prototype.cmp=function(e){return LNumber(this.valueOf(),true).cmp(e)};LRational.prototype.toString=function(){var e=this.__num__.gcd(this.__denom__);var t,r;if(e.cmp(1)!==0){t=this.__num__.div(e);if(t instanceof LRational){t=LNumber(t.valueOf(true))}r=this.__denom__.div(e);if(r instanceof LRational){r=LNumber(r.valueOf(true))}}else{t=this.__num__;r=this.__denom__}var n=this.cmp(0)<0;if(n){if(t.abs().cmp(r.abs())===0){return t.toString()}}else if(t.cmp(r)===0){return t.toString()}return t.toString()+"/"+r.toString()};LRational.prototype.valueOf=function(e){if(this.__denom__.cmp(0)===0){if(this.__num__.cmp(0)<0){return Number.NEGATIVE_INFINITY}return Number.POSITIVE_INFINITY}if(e){return LNumber._ops["/"](this.__num__.value,this.__denom__.value)}return LFloat(this.__num__.valueOf()).div(this.__denom__.valueOf())};LRational.prototype.mul=function(e){if(!(e instanceof LNumber)){e=LNumber(e)}if(LNumber.isRational(e)){var t=this.__num__.mul(e.__num__);var r=this.__denom__.mul(e.__denom__);return LRational({num:t,denom:r})}var n=LNumber.coerce(this,e),i=_slicedToArray(n,2),a=i[0],o=i[1];return a.mul(o)};LRational.prototype.div=function(e){if(!(e instanceof LNumber)){e=LNumber(e)}if(LNumber.isRational(e)){var t=this.__num__.mul(e.__denom__);var r=this.__denom__.mul(e.__num__);return LRational({num:t,denom:r})}var n=LNumber.coerce(this,e),i=_slicedToArray(n,2),a=i[0],o=i[1];var u=a.div(o);return u};LRational.prototype._op=function(e,t){return this[rev_mapping[e]](t)};LRational.prototype.sub=function(e){if(typeof e==="undefined"){return this.mul(-1)}if(!(e instanceof LNumber)){e=LNumber(e)}if(LNumber.isRational(e)){var t=e.__num__.sub();var r=e.__denom__;return this.add(LRational({num:t,denom:r}))}if(!(e instanceof LNumber)){e=LNumber(e).sub()}else{e=e.sub()}var n=LNumber.coerce(this,e),i=_slicedToArray(n,2),a=i[0],o=i[1];return a.add(o)};LRational.prototype.add=function(e){if(!(e instanceof LNumber)){e=LNumber(e)}if(LNumber.isRational(e)){var t=this.__denom__;var r=e.__denom__;var n=this.__num__;var i=e.__num__;var a,o;if(t!==r){o=r.mul(n).add(i.mul(t));a=t.mul(r)}else{o=n.add(i);a=t}return LRational({num:o,denom:a})}if(LNumber.isFloat(e)){return LFloat(this.valueOf()).add(e)}var u=LNumber.coerce(this,e),s=_slicedToArray(u,2),c=s[0],l=s[1];return c.add(l)};function LBigInteger(e,t){if(typeof this!=="undefined"&&!(this instanceof LBigInteger)||typeof this==="undefined"){return new LBigInteger(e,t)}if(e instanceof LBigInteger){return LBigInteger(e.__value__,e._native)}if(!LNumber.isBigInteger(e)){throw new Error("Invalid constructor call for LBigInteger")}this.constant(e,"bigint");Object.defineProperty(this,"_native",{value:t})}LBigInteger.prototype=Object.create(LNumber.prototype);LBigInteger.prototype.constructor=LBigInteger;LBigInteger.bn_op={"+":"iadd","-":"isub","*":"imul","/":"idiv","%":"imod","|":"ior","&":"iand","~":"inot","<<":"ishrn",">>":"ishln"};LBigInteger.prototype.serialize=function(){return this.__value__.toString()};LBigInteger.prototype._op=function(e,t){if(typeof t==="undefined"){if(LNumber.isBN(this.__value__)){e=LBigInteger.bn_op[e];return LBigInteger(this.__value__.clone()[e](),false)}return LBigInteger(LNumber._ops[e](this.__value__),true)}if(LNumber.isBN(this.__value__)&&LNumber.isBN(t.__value__)){e=LBigInteger.bn_op[e];return LBigInteger(this.__value__.clone()[e](t),false)}var r=LNumber._ops[e](this.__value__,t.__value__);if(e==="/"){var n=this.op("%",t).cmp(0)===0;if(n){return LNumber(r)}return LRational({num:this,denom:t})}return LBigInteger(r,true)};LBigInteger.prototype.sqrt=function(){var e;var t=this.cmp(0)<0;if(LNumber.isNative(this.__value__)){e=LNumber(Math.sqrt(t?-this.valueOf():this.valueOf()))}else if(LNumber.isBN(this.__value__)){e=t?this.__value__.neg().sqrt():this.__value__.sqrt()}if(t){return LComplex({re:0,im:e})}return e};LNumber.NaN=LNumber(NaN);LComplex.i=LComplex({im:1,re:0});function InputPort(e){var n=this;var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:global_env;if(typeof this!=="undefined"&&!(this instanceof InputPort)||typeof this==="undefined"){return new InputPort(e)}typecheck("InputPort",e,"function");read_only(this,"__type__",text_port);var a;Object.defineProperty(this,"__parser__",{enumerable:true,get:function e(){return a},set:function e(t){typecheck("InputPort::__parser__",t,"parser");a=t}});this._read=e;this._with_parser=this._with_init_parser.bind(this,_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(n.char_ready()){t.next=6;break}t.next=3;return n._read();case 3:r=t.sent;a=new Parser({env:i});a.parse(r);case 6:return t.abrupt("return",n.__parser__);case 7:case"end":return t.stop()}},e)})));this.char_ready=function(){return!!this.__parser__&&this.__parser__.__lexer__.peek()!==eof};this._make_defaults()}InputPort.prototype._make_defaults=function(){this.read=this._with_parser(function(e){return e.read_object()});this.read_line=this._with_parser(function(e){return e.__lexer__.read_line()});this.read_char=this._with_parser(function(e){return e.__lexer__.read_char()});this.read_string=this._with_parser(function(e,t){if(!LNumber.isInteger(t)){var r=LNumber.getType(t);typeErrorMessage("read-string",r,"integer")}return e.__lexer__.read_string(t.valueOf())});this.peek_char=this._with_parser(function(e){return e.__lexer__.peek_char()})};InputPort.prototype._with_init_parser=function(u,s){var c=this;return _asyncToGenerator(_regeneratorRuntime.mark(function e(){var r,n,i,a,o=arguments;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return u.call(c);case 2:r=t.sent;for(n=o.length,i=new Array(n),a=0;a"};function OutputPort(e){if(typeof this!=="undefined"&&!(this instanceof OutputPort)||typeof this==="undefined"){return new OutputPort(e)}typecheck("OutputPort",e,"function");read_only(this,"__type__",text_port);this.write=e}OutputPort.prototype.is_open=function(){return this._closed!==true};OutputPort.prototype.close=function(){Object.defineProperty(this,"_closed",{get:function e(){return true},set:function e(){},configurable:false,enumerable:false});this.write=function(){throw new Error("output-port: port is closed")}};OutputPort.prototype.flush=function(){};OutputPort.prototype.toString=function(){return"#"};var BufferedOutputPort=function(e){_inherits(r,e);function r(e){var t;_classCallCheck(this,r);t=_callSuper(this,r,[function(){var e;return(e=t)._write.apply(e,arguments)}]);typecheck("BufferedOutputPort",e,"function");read_only(_assertThisInitialized(t),"_fn",e,{hidden:true});read_only(_assertThisInitialized(t),"_buffer",[],{hidden:true});return t}_createClass(r,[{key:"flush",value:function e(){if(this._buffer.length){this._fn(this._buffer.join(""));this._buffer.length=0}}},{key:"_write",value:function e(){var t=this;for(var r=arguments.length,n=new Array(r),i=0;i"};OutputStringPort.prototype.valueOf=function(){return this.__buffer__.map(function(e){return e.valueOf()}).join("")};function OutputFilePort(e,t){var r=this;if(typeof this!=="undefined"&&!(this instanceof OutputFilePort)||typeof this==="undefined"){return new OutputFilePort(e,t)}typecheck("OutputFilePort",e,"string");read_only(this,"__filename__",e);read_only(this,"_fd",t.valueOf(),{hidden:true});read_only(this,"__type__",text_port);this.write=function(e){if(!LString.isString(e)){e=toString(e)}else{e=e.valueOf()}r.fs().write(r._fd,e,function(e){if(e){throw e}})}}OutputFilePort.prototype=Object.create(OutputPort.prototype);OutputFilePort.prototype.constructor=OutputFilePort;OutputFilePort.prototype.fs=function(){if(!this._fs){this._fs=this.internal("fs")}return this._fs};OutputFilePort.prototype.internal=function(e){return user_env.get("**internal-env**").get(e)};OutputFilePort.prototype.close=function(){var n=this;return new Promise(function(t,r){n.fs().close(n._fd,function(e){if(e){r(e)}else{read_only(n,"_fd",null,{hidden:true});OutputPort.prototype.close.call(n);t()}})})};OutputFilePort.prototype.toString=function(){return"#")};function InputStringPort(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:global_env;if(typeof this!=="undefined"&&!(this instanceof InputStringPort)||typeof this==="undefined"){return new InputStringPort(e)}typecheck("InputStringPort",e,"string");e=e.valueOf();this._with_parser=this._with_init_parser.bind(this,function(){if(!t.__parser__){t.__parser__=new Parser({env:r});t.__parser__.parse(e)}return t.__parser__});read_only(this,"__type__",text_port);this._make_defaults()}InputStringPort.prototype.char_ready=function(){return true};InputStringPort.prototype=Object.create(InputPort.prototype);InputStringPort.prototype.constructor=InputStringPort;InputStringPort.prototype.toString=function(){return"#"};function ParserInputPort(e){if(typeof this!=="undefined"&&!(this instanceof ParserInputPort)||typeof this==="undefined"){return new ParserInputPort(e)}this._with_parser=this._with_init_parser.bind(this,function(){return e});read_only(this,"__type__",text_port);this._make_defaults()}ParserInputPort.prototype.char_ready=function(){return true};ParserInputPort.prototype=Object.create(InputPort.prototype);ParserInputPort.prototype.constructor=ParserInputPort;ParserInputPort.prototype.toString=function(){return"#"};function InputByteVectorPort(e){if(typeof this!=="undefined"&&!(this instanceof InputByteVectorPort)||typeof this==="undefined"){return new InputByteVectorPort(e)}typecheck("InputByteVectorPort",e,"uint8array");read_only(this,"__vector__",e);read_only(this,"__type__",binary_port);var r=0;Object.defineProperty(this,"__index__",{enumerable:true,get:function e(){return r},set:function e(t){typecheck("InputByteVectorPort::__index__",t,"number");if(t instanceof LNumber){t=t.valueOf()}if(typeof t==="bigint"){t=Number(t)}if(Math.floor(t)!==t){throw new Error("InputByteVectorPort::__index__ value is "+"not integer")}r=t}})}InputByteVectorPort.prototype=Object.create(InputPort.prototype);InputByteVectorPort.prototype.constructor=InputByteVectorPort;InputByteVectorPort.prototype.toString=function(){return"#"};InputByteVectorPort.prototype.close=function(){var t=this;read_only(this,"__vector__",_nil);var r=function e(){throw new Error("Input-binary-port: port is closed")};["read_u8","close","peek_u8","read_u8_vector"].forEach(function(e){t[e]=r});this.u8_ready=this.char_ready=function(){return false}};InputByteVectorPort.prototype.u8_ready=function(){return true};InputByteVectorPort.prototype.peek_u8=function(){if(this.__index__>=this.__vector__.length){return eof}return this.__vector__[this.__index__]};InputByteVectorPort.prototype.skip=function(){if(this.__index__<=this.__vector__.length){++this.__index__}};InputByteVectorPort.prototype.read_u8=function(){var e=this.peek_u8();this.skip();return e};InputByteVectorPort.prototype.read_u8_vector=function(e){if(typeof e==="undefined"){e=this.__vector__.length}else if(e>this.__index__+this.__vector__.length){e=this.__index__+this.__vector__.length}if(this.peek_u8()===eof){return eof}return this.__vector__.slice(this.__index__,e)};function OutputByteVectorPort(){if(typeof this!=="undefined"&&!(this instanceof OutputByteVectorPort)||typeof this==="undefined"){return new OutputByteVectorPort}read_only(this,"__type__",binary_port);read_only(this,"_buffer",[],{hidden:true});this.write=function(e){typecheck("write",e,["number","uint8array"]);if(LNumber.isNumber(e)){this._buffer.push(e.valueOf())}else{var t;(t=this._buffer).push.apply(t,_toConsumableArray(Array.from(e)))}};Object.defineProperty(this,"__buffer__",{enumerable:true,get:function e(){return Uint8Array.from(this._buffer)}})}OutputByteVectorPort.prototype=Object.create(OutputPort.prototype);OutputByteVectorPort.prototype.constructor=OutputByteVectorPort;OutputByteVectorPort.prototype.close=function(){OutputPort.prototype.close.call(this);read_only(this,"_buffer",null,{hidden:true})};OutputByteVectorPort.prototype._close_guard=function(){if(this._closed){throw new Error("output-port: binary port is closed")}};OutputByteVectorPort.prototype.write_u8=function(e){typecheck("OutputByteVectorPort::write_u8",e,"number");this.write(e)};OutputByteVectorPort.prototype.write_u8_vector=function(e){typecheck("OutputByteVectorPort::write_u8_vector",e,"uint8array");this.write(e)};OutputByteVectorPort.prototype.toString=function(){return"#"};OutputByteVectorPort.prototype.valueOf=function(){return this.__buffer__};function InputFilePort(e,t){if(typeof this!=="undefined"&&!(this instanceof InputFilePort)||typeof this==="undefined"){return new InputFilePort(e,t)}InputStringPort.call(this,e);typecheck("InputFilePort",t,"string");read_only(this,"__filename__",t)}InputFilePort.prototype=Object.create(InputStringPort.prototype);InputFilePort.prototype.constructor=InputFilePort;InputFilePort.prototype.toString=function(){return"#")};function InputBinaryFilePort(e,t){if(typeof this!=="undefined"&&!(this instanceof InputBinaryFilePort)||typeof this==="undefined"){return new InputBinaryFilePort(e,t)}InputByteVectorPort.call(this,e);typecheck("InputBinaryFilePort",t,"string");read_only(this,"__filename__",t)}InputBinaryFilePort.prototype=Object.create(InputByteVectorPort.prototype);InputBinaryFilePort.prototype.constructor=InputBinaryFilePort;InputBinaryFilePort.prototype.toString=function(){return"#")};function OutputBinaryFilePort(e,t){var i=this;if(typeof this!=="undefined"&&!(this instanceof OutputBinaryFilePort)||typeof this==="undefined"){return new OutputBinaryFilePort(e,t)}typecheck("OutputBinaryFilePort",e,"string");read_only(this,"__filename__",e);read_only(this,"_fd",t.valueOf(),{hidden:true});read_only(this,"__type__",binary_port);var a;this.write=function(e){typecheck("write",e,["number","uint8array"]);var n;if(!a){a=i.internal("fs")}if(LNumber.isNumber(e)){n=new Uint8Array([e.valueOf()])}else{n=new Uint8Array(Array.from(e))}return new Promise(function(t,r){a.write(i._fd,n,function(e){if(e){r(e)}else{t()}})})}}OutputBinaryFilePort.prototype=Object.create(OutputFilePort.prototype);OutputBinaryFilePort.prototype.constructor=OutputBinaryFilePort;OutputBinaryFilePort.prototype.write_u8=function(e){typecheck("OutputByteVectorPort::write_u8",e,"number");this.write(e)};OutputBinaryFilePort.prototype.write_u8_vector=function(e){typecheck("OutputByteVectorPort::write_u8_vector",e,"uint8array");this.write(e)};var binary_port=Symbol["for"]("binary");var text_port=Symbol["for"]("text");var eof=new EOF;function EOF(){}EOF.prototype.toString=function(){return"#"};function Interpreter(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.stderr,i=r.stdin,a=r.stdout,o=r.command_line,u=o===void 0?null:o,s=_objectWithoutProperties(r,_excluded3);if(typeof this!=="undefined"&&!(this instanceof Interpreter)||typeof this==="undefined"){return new Interpreter(e,_objectSpread({stdin:i,stdout:a,stderr:n,command_line:u},s))}if(typeof e==="undefined"){e="anonymous"}this.__env__=user_env.inherit(e,s);this.__parser__=new Parser({env:this.__env__});this.__env__.set("parent.frame",doc("parent.frame",function(){return t.__env__},global_env.__env__["parent.frame"].__doc__));var c="**interaction-environment-defaults**";this.set(c,get_props(s).concat(c));var l=internal_env.inherit("internal-".concat(e));if(is_port(i)){l.set("stdin",i)}if(is_port(n)){l.set("stderr",n)}if(is_port(a)){l.set("stdout",a)}l.set("command-line",u);set_interaction_env(this.__env__,l)}Interpreter.prototype.exec=function(){var t=_asyncToGenerator(function(o){var u=this;var s=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return _regeneratorRuntime.mark(function e(){var r,n,i,a;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=s.use_dynamic,n=r===void 0?false:r,i=s.dynamic_env,a=s.env;typecheck("Interpreter::exec",o,["string","array"],1);typecheck("Interpreter::exec",n,"boolean",2);if(!a){a=u.__env__}if(!i){i=a}global_env.set("**interaction-environment**",u.__env__);if(!Array.isArray(o)){t.next=10;break}return t.abrupt("return",exec(o,{env:a,dynamic_env:i,use_dynamic:n}));case 10:u.__parser__.parse(o);return t.abrupt("return",exec(u.__parser__,{env:a,dynamic_env:i,use_dynamic:n}));case 12:case"end":return t.stop()}},e)})()});return function(e){return t.apply(this,arguments)}}();Interpreter.prototype.get=function(e){var t=this.__env__.get(e);if(is_function(t)){var r=new LambdaContext({env:this.__env__});return t.bind(r)}return t};Interpreter.prototype.set=function(e,t){return this.__env__.set(e,t)};Interpreter.prototype.constant=function(e,t){return this.__env__.constant(e,t)};function LipsError(e,t){this.name="LipsError";this.message=e;this.args=t;this.stack=(new Error).stack}LipsError.prototype=new Error;LipsError.prototype.constructor=LipsError;var IgnoreException=function(e){_inherits(t,e);function t(){_classCallCheck(this,t);return _callSuper(this,t,arguments)}return _createClass(t)}(_wrapNativeSuper(Error));function Environment(e,t,r){if(arguments.length===1){if(_typeof$1(arguments[0])==="object"){e=arguments[0];t=null}else if(typeof arguments[0]==="string"){e={};t=null;r=arguments[0]}}this.__docs__=new Map;this.__env__=e;this.__parent__=t;this.__name__=r||"anonymous"}Environment.prototype.list=function(){return get_props(this.__env__)};Environment.prototype.fs=function(){return this.get("**fs**")};Environment.prototype.unset=function(e){if(e instanceof LSymbol){e=e.valueOf()}if(e instanceof LString){e=e.valueOf()}delete this.__env__[e]};Environment.prototype.inherit=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(_typeof$1(e)==="object"){t=e}if(!e||_typeof$1(e)==="object"){e="child of "+(this.__name__||"unknown")}return new Environment(t||{},this,e)};Environment.prototype.doc=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(e instanceof LSymbol){e=e.__name__}if(e instanceof LString){e=e.valueOf()}if(t){if(!r){t=trim_lines(t)}this.__docs__.set(e,t);return this}if(this.__docs__.has(e)){return this.__docs__.get(e)}if(this.__parent__){return this.__parent__.doc(e)}};Environment.prototype.new_frame=function(e,t){var n=this.inherit("__frame__");n.set("parent.frame",doc("parent.frame",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;e=e.valueOf();var t=n.__parent__;if(!is_env(t)){return _nil}if(e<=0){return t}var r=t.get("parent.frame");return r(e-1)},global_env.__env__["parent.frame"].__doc__));t.callee=e;n.set("arguments",t);return n};Environment.prototype._lookup=function(e){if(e instanceof LSymbol){e=e.__name__}if(e instanceof LString){e=e.valueOf()}if(this.__env__.hasOwnProperty(e)){return Value(this.__env__[e])}if(this.__parent__){return this.__parent__._lookup(e)}};Environment.prototype.toString=function(){return"#"};Environment.prototype.clone=function(){var t=this;var r={};Object.keys(this.__env__).forEach(function(e){r[e]=t.__env__[e]});return new Environment(r,this.__parent__,this.__name__)};Environment.prototype.merge=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"merge";typecheck("Environment::merge",e,"environment");return this.inherit(t,e.__env__)};function Value(e){if(typeof this!=="undefined"&&!(this instanceof Value)||typeof this==="undefined"){return new Value(e)}this.value=e}Value.isUndefined=function(e){return e instanceof Value&&typeof e.value==="undefined"};Value.prototype.valueOf=function(){return this.value};function Values(e){if(!e.length){return}if(e.length===1){return e[0]}if(typeof this!=="undefined"&&!(this instanceof Values)||typeof this==="undefined"){return new Values(e)}this.__values__=e}Values.prototype.toString=function(){return this.__values__.map(function(e){return toString(e)}).join("\n")};Values.prototype.valueOf=function(){return this.__values__};Environment.prototype.get=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};typecheck("Environment::get",e,["symbol","string"]);var r=t.throwError,n=r===void 0?true:r;var i=e;if(i instanceof LSymbol||i instanceof LString){i=i.valueOf()}var a=this._lookup(i);if(a instanceof Value){if(Value.isUndefined(a)){return undefined}return patch_value(a.valueOf())}var o;if(e instanceof LSymbol&&e[LSymbol.object]){o=e[LSymbol.object]}else if(typeof i==="string"){o=i.split(".").filter(Boolean)}if(o&&o.length>0){var u=o,s=_toArray(u),c=s[0],l=s.slice(1);a=this._lookup(c);if(l.length){try{if(a instanceof Value){a=a.valueOf()}else{a=get(root,c);if(is_function(a)){a=unbind(a)}}if(typeof a!=="undefined"){return get.apply(void 0,[a].concat(_toConsumableArray(l)))}}catch(e){throw e}}else if(a instanceof Value){return patch_value(a.valueOf())}a=get(root,i)}if(typeof a!=="undefined"){return a}if(n){throw new Error("Unbound variable `"+i.toString()+"'")}};Environment.prototype.set=function(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;typecheck("Environment::set",e,["string","symbol"]);if(LNumber.isNumber(t)){t=LNumber(t)}if(e instanceof LSymbol){e=e.__name__}if(e instanceof LString){e=e.valueOf()}this.__env__[e]=t;if(r){this.doc(e,r,true)}return this};Environment.prototype.constant=function(t,e){var r=this;if(this.__env__.hasOwnProperty(t)){throw new Error("Environment::constant: ".concat(t," already exists"))}if(arguments.length===1&&is_plain_object(arguments[0])){var n=arguments[0];Object.keys(n).forEach(function(e){r.constant(t,n[e])})}else{Object.defineProperty(this.__env__,t,{value:e,enumerable:true})}return this};Environment.prototype.has=function(e){return this.__env__.hasOwnProperty(e)};Environment.prototype.ref=function(e){var t=this;while(true){if(!t){break}if(t.has(e)){return t}t=t.__parent__}};Environment.prototype.parents=function(){var e=this;var t=[];while(e){t.unshift(e);e=e.__parent__}return t};function quote(e){if(is_promise(e)){return e.then(quote)}if(is_pair(e)||e instanceof LSymbol){e[__data__]=true}return e}var native_lambda=_parse(tokenize('(lambda ()\n "[native code]"\n (throw "Invalid Invocation"))'))[0];var get=doc("get",function e(t){var r;for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=internal(this,"stdin")}typecheck_text_port("peek-char",e,"input-port");return e.peek_char()},"(peek-char port)\n\n This function reads and returns a character from the string\n port, or, if there is no more data in the string port, it\n returns an EOF."),"read-line":doc("read-line",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=internal(this,"stdin")}typecheck_text_port("read-line",e,"input-port");return e.read_line()},"(read-line port)\n\n This function reads and returns the next line from the input\n port."),"read-char":doc("read-char",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=internal(this,"stdin")}typecheck_text_port("read-char",e,"input-port");return e.read_char()},"(read-char port)\n\n This function reads and returns the next character from the\n input port."),read:doc("read",function(){var e=_asyncToGenerator(function(){var i=this;var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;return _regeneratorRuntime.mark(function e(){var r,n;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=i.env;if(a===null){n=internal(r,"stdin")}else{n=a}typecheck_text_port("read",n,"input-port");return t.abrupt("return",n.read.call(r));case 4:case"end":return t.stop()}},e)})()});function t(){return e.apply(this,arguments)}return t}(),"(read [port])\n\n This function, if called with a port, it will parse the next\n item from the port. If called without an input, it will read\n a string from standard input (using the browser's prompt or\n a user defined input method) and parse it. This function can be\n used together with `eval` to evaluate code from port."),pprint:doc("pprint",function e(t){if(is_pair(t)){t=new lips.Formatter(t.toString(true))["break"]().format();global_env.get("display").call(global_env,t)}else{global_env.get("write").call(global_env,t)}global_env.get("newline").call(global_env)},"(pprint expression)\n\n This function will pretty print its input to stdout. If it is called\n with a non-list, it will just call the print function on its\n input."),print:doc("print",function e(){var t=global_env.get("display");var r=global_env.get("newline");var n=this.use_dynamic;var i=global_env;var a=global_env;for(var o=arguments.length,u=new Array(o),s=0;s1?r-1:0),i=1;in.length){throw new Error("Not enough arguments")}var u=0;var s=global_env.get("repr");t=t.replace(a,function(e){var t=e[1];if(t==="~"){return"~"}else if(t==="%"){return"\n"}else{var r=n[u++];if(t==="a"){return s(r)}else{return s(r,true)}}});o=t.match(/~([\S])/);if(o){throw new Error("format: Unrecognized escape sequence ".concat(o[1]))}return t},"(format string n1 n2 ...)\n\n This function accepts a string template and replaces any\n escape sequences in its inputs:\n\n * ~a value as if printed with `display`\n * ~s value as if printed with `write`\n * ~% newline character\n * ~~ literal tilde '~'\n\n If there are missing inputs or other escape characters it\n will error."),newline:doc("newline",function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;var r=global_env.get("display");var n=this.use_dynamic;var i=global_env;var a=global_env;call_function(r,["\n",t],{env:i,dynamic_env:a,use_dynamic:n})},"(newline [port])\n\n Write newline character to standard output or given port"),display:doc("display",function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(r===null){r=internal(this,"stdout")}else{typecheck("display",r,"output-port")}var n=t;if(!(r instanceof OutputBinaryFilePort)){n=global_env.get("repr")(t)}r.write.call(global_env,n)},"(display string [port])\n\n This function outputs the string to the standard output or\n the port if given. No newline."),"display-error":doc("display-error",function e(){var t=internal(this,"stderr");var r=global_env.get("repr");for(var n=arguments.length,i=new Array(n),a=0;a1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=_objectWithoutProperties(t,_excluded4);var i=this;var o=this;var u;var s=_objectSpread(_objectSpread({},n),{},{env:this,dynamic_env:i,use_dynamic:r});var c=_evaluate(e.cdr.car,s);c=resolve_promises(c);function l(t,r,n){if(is_promise(t)){return t.then(function(e){return l(t,e,n)})}if(is_promise(r)){return r.then(function(e){return l(t,e,n)})}if(is_promise(n)){return n.then(function(e){return l(t,r,e)})}o.get("set-obj!").call(o,t,r,n);return n}if(is_pair(e.car)&&LSymbol.is(e.car.car,".")){var f=e.car.cdr.car;var _=e.car.cdr.cdr.car;var p=_evaluate(f,s);var d=_evaluate(_,s);return l(p,d,c)}if(!(e.car instanceof LSymbol)){throw new Error("set! first argument need to be a symbol or "+"dot accessor that evaluate to object.")}var h=e.car.valueOf();u=this.ref(e.car.__name__);return unpromise(c,function(e){if(!u){var t=h.split(".");if(t.length>1){var r=t.pop();var n=t.join(".");var i=a.get(n,{throwError:false});if(i){l(i,r,e);return}}throw new Error("Unbound variable `"+h+"'")}u.set(h,e)})}),"(set! name value)\n\n Macro that can be used to set the value of the variable or slot (mutate it).\n set! searches the scope chain until it finds first non empty slot and sets it."),"unset!":doc(new Macro("set!",function(e){if(!(e.car instanceof LSymbol)){throw new Error("unset! first argument need to be a symbol or "+"dot accessor that evaluate to object.")}var t=e.car;var r=this.ref(t);if(r){delete r.__env__[t.__name__]}}),"(unset! name)\n\n Function to delete the specified name from environment.\n Trying to access the name afterwards will error."),"set-car!":doc("set-car!",function(e,t){typecheck("set-car!",e,"pair");e.car=t},"(set-car! obj value)\n\n Function that sets the car (first item) of the list/pair to specified value.\n The old value is lost."),"set-cdr!":doc("set-cdr!",function(e,t){typecheck("set-cdr!",e,"pair");e.cdr=t},"(set-cdr! obj value)\n\n Function that sets the cdr (tail) of the list/pair to specified value.\n It will destroy the list. The old tail is lost."),"empty?":doc("empty?",function(e){return typeof e==="undefined"||is_nil(e)},"(empty? object)\n\n Function that returns #t if value is nil (an empty list) or undefined."),gensym:doc("gensym",gensym,"(gensym)\n\n Generates a unique symbol that is not bound anywhere,\n to use with macros as meta name."),load:doc("load",function e(c,t){typecheck("load",c,"string");var l=this;if(l.__name__==="__frame__"){l=l.__parent__}if(!(t instanceof Environment)){if(l===global_env){t=l}else{t=this.get("**interaction-environment**")}}var f="@lips";var _=c.startsWith(f);var p="**module-path**";var d=global_env.get(p,{throwError:false});c=c.valueOf();if(!c.match(/.[^.]+$/)){c+=".scm"}var r=c.match(/\.xcb$/);function h(e){if(r){e=unserialize_bin(e)}else{if(type(e)==="buffer"){e=e.toString()}e=e.replace(/^(#!.*)/,function(e,t){if(is_directive(t)){return t}return""});if(e.match(/^\{/)){e=unserialize(e)}}return exec(e,{env:t})}function n(e){return root.fetch(e).then(function(e){return r?e.arrayBuffer():e.text()}).then(function(e){if(r){e=new Uint8Array(e)}return e})}function m(){var e=global_env.get("__dirname");return e.replace(/[^/]+$/,"")}if(is_node()){return new Promise(function(){var r=_asyncToGenerator(_regeneratorRuntime.mark(function e(r,n){var i,a,o,u,s;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.prev=0;t.next=3;return node_ready;case 3:i=nodeRequire("path");a=nodeRequire("fs");o=m();if(_){c=c.replace(f,o)}if(!d){t.next=12;break}d=d.valueOf();if(!c.startsWith("/")){c=i.join(d,c)}t.next=19;break;case 12:if(c.startsWith("/")){t.next=19;break}u=l.get("command-line",{throwError:false});if(!u){t.next=18;break}t.next=17;return u();case 17:s=t.sent;case 18:if(s&&!is_nil(s)){process.cwd();c=i.join(i.dirname(s.car.valueOf()),c)}case 19:global_env.set(p,i.dirname(c));a.readFile(c,function(e,t){if(e){n(e);global_env.set(p,d)}else{try{h(t).then(function(){r();global_env.set(p,d)})["catch"](n)}catch(e){n(e)}}});t.next=26;break;case 23:t.prev=23;t.t0=t["catch"](0);console.error(t.t0);case 26:case"end":return t.stop()}},e,null,[[0,23]])}));return function(e,t){return r.apply(this,arguments)}}())}if(_){var i,a;var o=(i=global_env.get("__dirname",{throwError:false}))!==null&&i!==void 0?i:current_script;(a=o)!==null&&a!==void 0?a:o=current_script;var u=o.replace(/dist\/?[^\/]*$/,"");c=c.replace(f,u)}if(d){d=d.valueOf();if(!c.startsWith("/")){c=d+"/"+c.replace(/^\.?\/?/,"")}}return n(c).then(function(e){global_env.set(p,c.replace(/\/[^/]*$/,""));return h(e)}).then(function(){})["finally"](function(){global_env.set(p,d)})},"(load filename)\n (load filename environment)\n\n Fetches the file (from disk or network) and evaluates its content as LIPS code.\n If the second argument is provided and it's an environment the evaluation\n will happen in that environment."),while:doc(new Macro("while",function(e,t){var r=e.car;var n=_objectSpread(_objectSpread({},t),{},{env:this});var i=new Pair(new LSymbol("begin"),e.cdr);return function t(){return unpromise(_evaluate(r,n),function(e){if(e){return unpromise(_evaluate(i,n),t)}})}()}),"(while cond body)\n\n Creates a loop, it executes cond and body until cond expression is false."),do:doc(new Macro("do",function(){var r=_asyncToGenerator(function(_,e){var p=this;var d=e.use_dynamic,h=e.error;return _regeneratorRuntime.mark(function e(){var u,r,s,c,n,l,f,i,a,o;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:u=p;r=u;s=u.inherit("do");c=_.car;n=_.cdr.car;l=_.cdr.cdr;if(!is_nil(l)){l=new Pair(LSymbol("begin"),l)}f={env:u,dynamic_env:r,use_dynamic:d,error:h};i=c;case 9:if(is_nil(i)){t.next=20;break}a=i.car;t.t0=s;t.t1=a.car;t.next=15;return _evaluate(a.cdr.car,f);case 15:t.t2=t.sent;t.t0.set.call(t.t0,t.t1,t.t2);i=i.cdr;t.next=9;break;case 20:f={env:s,dynamic_env:r,error:h};o=_regeneratorRuntime.mark(function e(){var r,n,i,a,o;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(is_nil(l)){t.next=3;break}t.next=3;return lips.evaluate(l,f);case 3:r=c;n={};case 5:if(is_nil(r)){t.next=15;break}i=r.car;if(is_nil(i.cdr.cdr)){t.next=12;break}t.next=10;return _evaluate(i.cdr.cdr.car,f);case 10:a=t.sent;n[i.car.valueOf()]=a;case 12:r=r.cdr;t.next=5;break;case 15:o=Object.getOwnPropertySymbols(n);f.env=s=u.inherit("do");Object.keys(n).concat(o).forEach(function(e){s.set(e,n[e])});case 18:case"end":return t.stop()}},e)});case 22:t.next=24;return _evaluate(n.car,f);case 24:t.t3=t.sent;if(!(t.t3===false)){t.next=29;break}return t.delegateYield(o(),"t4",27);case 27:t.next=22;break;case 29:if(is_nil(n.cdr)){t.next=33;break}t.next=32;return _evaluate(n.cdr.car,f);case 32:return t.abrupt("return",t.sent);case 33:case"end":return t.stop()}},e)})()});return function(e,t){return r.apply(this,arguments)}}()),"(do (( )) (test return) . body)\n\n Iteration macro that evaluates the expression body in scope of the variables.\n On each loop it changes the variables according to the expression and runs\n test to check if the loop should continue. If test is a single value, the macro\n will return undefined. If the test is a pair of expressions the macro will\n evaluate and return the second expression after the loop exits."),if:doc(new Macro("if",function(r,e){var t=e.error,n=e.use_dynamic;var i=this;var a=this;var o={env:a,dynamic_env:i,use_dynamic:n,error:t};var u=function e(t){if(is_false(t)){return _evaluate(r.cdr.cdr.car,o)}else{return _evaluate(r.cdr.car,o)}};if(is_nil(r)){throw new Error("too few expressions for `if`")}var s=_evaluate(r.car,o);return unpromise(s,u)}),"(if cond true-expr false-expr)\n\n Macro that evaluates cond expression and if the value is true, it\n evaluates and returns true-expression, if not it evaluates and returns\n false-expression."),"let-env":new Macro("let-env",function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=e.dynamic_env,n=e.use_dynamic,i=e.error;typecheck("let-env",t,"pair");var a=_evaluate(t.car,{env:this,dynamic_env:r,error:i,use_dynamic:n});return unpromise(a,function(e){typecheck("let-env",e,"environment");return _evaluate(Pair(LSymbol("begin"),t.cdr),{env:e,dynamic_env:r,error:i})})},"(let-env env . body)\n\n Special macro that evaluates body in context of given environment\n object."),letrec:doc(let_macro(Symbol["for"]("letrec")),"(letrec ((a value-a) (b value-b) ...) . body)\n\n Macro that creates a new environment, then evaluates and assigns values to\n names and then evaluates the body in context of that environment.\n Values are evaluated sequentially and the next value can access the\n previous values/names."),"letrec*":doc(let_macro(Symbol["for"]("letrec")),"(letrec* ((a value-a) (b value-b) ...) . body)\n\n Same as letrec but the order of execution of the binding is guaranteed,\n so you can use recursive code as well as referencing the previous binding.\n\n In LIPS both letrec and letrec* behave the same."),"let*":doc(let_macro(Symbol["for"]("let*")),"(let* ((a value-a) (b value-b) ...) . body)\n\n Macro similar to `let`, but the subsequent bindings after the first\n are evaluated in the environment including the previous let variables,\n so you can define one variable, and use it in the next's definition."),let:doc(let_macro(Symbol["for"]("let")),"(let ((a value-a) (b value-b) ...) . body)\n\n Macro that creates a new environment, then evaluates and assigns values to names,\n and then evaluates the body in context of that environment. Values are evaluated\n sequentially but you can't access previous values/names when the next are\n evaluated. You can only get them in the body of the let expression. (If you want\n to define multiple variables and use them in each other's definitions, use\n `let*`.)"),"begin*":doc(parallel("begin*",function(e){return e.pop()}),"(begin* . body)\n\n This macro is a parallel version of begin. It evaluates each expression\n in the body and if it's a promise it will await it in parallel and return\n the value of the last expression (i.e. it uses Promise.all())."),shuffle:doc("shuffle",function(e){typecheck("shuffle",e,["pair","nil","array"]);var t=global_env.get("random");if(is_nil(e)){return _nil}if(Array.isArray(e)){return shuffle(e.slice(),t)}var r=global_env.get("list->array")(e);r=shuffle(r,t);return global_env.get("array->list")(r)},"(shuffle obj)\n\n Order items in vector or list in random order."),begin:doc(new Macro("begin",function(e,t){var n=_objectSpread(_objectSpread({},t),{},{env:this});var i=global_env.get("list->array")(e);var a;return function t(){if(i.length){var e=i.shift();var r=_evaluate(e,n);return unpromise(r,function(e){a=e;return t()})}else{return a}}()}),"(begin . args)\n\n Macro that runs a list of expressions in order and returns the value\n of the last one. It can be used in places where you can only have a\n single expression, like (if)."),ignore:new Macro("ignore",function(e,t){var r=_objectSpread(_objectSpread({},t),{},{env:this,dynamic_env:this});_evaluate(new Pair(new LSymbol("begin"),e),r)},"(ignore . body)\n\n Macro that will evaluate the expression and swallow any promises that may\n be created. It will discard any value that may be returned by the last body\n expression. The code should have side effects and/or when it's promise\n it should resolve to undefined."),"call/cc":doc(Macro.defmacro("call/cc",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=_objectSpread({env:this},t);return unpromise(_evaluate(e.car,r),function(e){if(is_function(e)){return e(new Continuation(null))}})}),"(call/cc proc)\n\n Call-with-current-continuation.\n\n NOT SUPPORTED BY LIPS RIGHT NOW"),parameterize:doc(new Macro("parameterize",function(t,e){var i=e.dynamic_env;var a=i.inherit("parameterize").new_frame(null,{});var o=_objectSpread(_objectSpread({},e),{},{env:this});var u=t.car;if(!is_pair(u)){var r=type(u);throw new Error("Invalid syntax for parameterize expecting pair got ".concat(r))}function s(){var e=new Pair(new LSymbol("begin"),t.cdr);return _evaluate(e,_objectSpread(_objectSpread({},o),{},{dynamic_env:a}))}return function r(){var e=u.car;var n=e.car.valueOf();return unpromise(_evaluate(e.cdr.car,o),function(e){var t=i.get(n,{throwError:false});if(!is_parameter(t)){throw new Error("Unknown parameter ".concat(n))}a.set(n,t.inherit(e));if(!is_null(u.cdr)){u=u.cdr;return r()}else{return s()}})}()}),"(parameterize ((name value) ...)\n\n Macro that change the dynamic variable created by make-parameter."),"make-parameter":doc(new Macro("make-parameter",function(e,t){t.dynamic_env;var r=_evaluate(e.car,t);var n;if(is_pair(e.cdr.car)){n=_evaluate(e.cdr.car,t)}return new Parameter(r,n)}),"(make-parameter init converter)\n\n Function creates new dynamic variable that can be custimized with parameterize\n macro. The value should be assigned to a variable e.g.:\n\n (define radix (make-parameter 10))\n\n The result value is a procedure that return the value of dynamic variable."),"define-syntax-parameter":doc(new Macro("define-syntax-parameter",function(e,t){var r=e.car;var n=this;if(!(r instanceof LSymbol)){throw new Error("define-syntax-parameter: invalid syntax expecting symbol got ".concat(type(r)))}var i=_evaluate(e.cdr.car,_objectSpread({env:n},t));typecheck("define-syntax-parameter",i,"syntax",2);i.__name__=r.valueOf();if(i.__name__ instanceof LString){i.__name__=i.__name__.valueOf()}var a;if(is_pair(e.cdr.cdr)&&LString.isString(e.cdr.cdr.car)){a=e.cdr.cdr.car.valueOf()}n.set(e.car,new SyntaxParameter(i),a,true)}),"(define-syntax-parameter name syntax [__doc__])\n\n Binds to the transformer obtained by evaluating .\n The transformer provides the default expansion for the syntax parameter,\n and in the absence of syntax-parameterize, is functionally equivalent to\n define-syntax."),"syntax-parameterize":doc(new Macro("syntax-parameterize",function(e,t){var r=global_env.get("list->array")(e.car);var n=this.inherit("syntax-parameterize");while(r.length){var i=r.shift();if(!(is_pair(i)||i.car instanceof LSymbol)){var a="invalid syntax for syntax-parameterize: ".concat(repr(e,true));throw new Error("syntax-parameterize: ".concat(a))}var o=_evaluate(i.cdr.car,_objectSpread(_objectSpread({},t),{},{env:this}));var u=i.car;typecheck("syntax-parameterize",o,["syntax"]);typecheck("syntax-parameterize",u,"symbol");o.__name__=u.valueOf();if(o.__name__ instanceof LString){o.__name__=o.__name__.valueOf()}var s=new SyntaxParameter(o);if(u.is_gensym()){var c=u.literal();var l=this.get(c,{throwError:false});if(l instanceof SyntaxParameter){n.set(c,s)}}n.set(u,s)}var f=hygienic_begin([n,t.dynamic_env],e.cdr);return _evaluate(f,_objectSpread(_objectSpread({},t),{},{env:n}))}),"(syntax-parameterize (bindings) body)\n\n Macro work similar to let-syntax but the the bindnds will be exposed to the user.\n With syntax-parameterize you can define anaphoric macros."),define:doc(Macro.defmacro("define",function(r,e){var n=this;if(is_pair(r.car)&&r.car.car instanceof LSymbol){var t=new Pair(new LSymbol("define"),new Pair(r.car.car,new Pair(new Pair(new LSymbol("lambda"),new Pair(r.car.cdr,r.cdr)))));return t}else if(e.macro_expand){return}e.dynamic_env=this;e.env=n;var i=r.cdr.car;var a;if(is_pair(i)){i=_evaluate(i,e);a=true}else if(i instanceof LSymbol){i=n.get(i)}typecheck("define",r.car,"symbol");return unpromise(i,function(e){if(n.__name__===Syntax.__merge_env__){n=n.__parent__}if(a&&(is_function(e)&&is_lambda(e)||e instanceof Syntax||is_parameter(e))){e.__name__=r.car.valueOf();if(e.__name__ instanceof LString){e.__name__=e.__name__.valueOf()}}var t;if(is_pair(r.cdr.cdr)&&LString.isString(r.cdr.cdr.car)){t=r.cdr.cdr.car.valueOf()}n.set(r.car,e,t,true)})}),'(define name expression)\n (define name expression "doc string")\n (define (function-name . args) . body)\n\n Macro for defining values. It can be used to define variables,\n or functions. If the first argument is list it will create a function\n with name being first element of the list. This form expands to\n `(define function-name (lambda args body))`'),"set-obj!":doc("set-obj!",function(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var i=_typeof$1(e);if(is_null(e)||i!=="object"&&i!=="function"){var a=typeErrorMessage("set-obj!",type(e),["object","function"]);throw new Error(a)}typecheck("set-obj!",t,["string","symbol","number"]);e=unbind(e);t=t.valueOf();if(arguments.length===2){delete e[t]}else if(is_prototype(e)&&is_function(r)){e[t]=unbind(r);e[t][__prototype__]=true}else if(is_function(r)||is_native(r)||is_nil(r)){e[t]=r}else{e[t]=r&&!is_prototype(r)?r.valueOf():r}if(props){var o=e[t];Object.defineProperty(e,t,_objectSpread(_objectSpread({},n),{},{value:o}))}},"(set-obj! obj key value)\n (set-obj! obj key value props)\n\n Function set a property of a JavaScript object. props should be a vector of pairs,\n passed to Object.defineProperty."),"null-environment":doc("null-environment",function(){return global_env.inherit("null")},"(null-environment)\n\n Returns a clean environment with only the standard library."),values:doc("values",function e(){for(var t=arguments.length,r=new Array(t),n=0;n1&&arguments[1]!==undefined?arguments[1]:{},y=e.use_dynamic,v=e.error;var b=this;var g;if(is_pair(m.cdr)&&LString.isString(m.cdr.car)&&!is_nil(m.cdr.cdr)){g=m.cdr.car.valueOf()}function w(){var e=is_context(this)?this:{dynamic_env:b},r=e.dynamic_env;var n=b.inherit("lambda");r=r.inherit("lambda");if(this&&!is_context(this)){if(this&&!this.__instance__){Object.defineProperty(this,"__instance__",{enumerable:false,get:function e(){return true},set:function e(){},configurable:false})}n.set("this",this)}for(var t=arguments.length,i=new Array(t),a=0;a> SYNTAX");log(e);log(v);var n=w.inherit("syntax");var i=n;var a=this;if(a.__name__===Syntax.__merge_env__){var o=Object.getOwnPropertySymbols(a.__env__);o.forEach(function(e){a.__parent__.set(e,a.__env__[e])});a=a.__parent__}var u={env:n,dynamic_env:i,use_dynamic:b,error:g};var s,c,l;if(v.car instanceof LSymbol){s=v.car;l=D(v.cdr.car);c=v.cdr.cdr}else{s="...";l=D(v.car);c=v.cdr}try{while(!is_nil(c)){var f=c.car.car;var _=c.car.cdr.car;log("[[[ RULE");log(f);var p=extract_patterns(f,e,l,s,{expansion:this,define:w});if(p){if(is_debug()){console.log(JSON.stringify(symbolize(p),true,2));console.log("PATTERN: "+f.toString(true));console.log("MACRO: "+e.toString(true))}var d=[];var h=transform_syntax({bindings:p,expr:_,symbols:l,scope:n,lex_scope:a,names:d,ellipsis:s});log("OUPUT>>> ",h);if(h){_=h}var m=a.merge(n,Syntax.__merge_env__);if(r){return{expr:_,scope:m}}var y=_evaluate(_,_objectSpread(_objectSpread({},u),{},{env:m}));return clear_gensyms(y,d)}c=c.cdr}}catch(e){e.message+="\nin macro:\n ".concat(v.toString(true));throw e}throw new Error("syntax-rules: no matching syntax in macro ".concat(e.toString(true)))},w);r.__code__=v;return r},"(syntax-rules () (pattern expression) ...)\n\n Base of hygienic macros, it will return a new syntax expander\n that works like Lisp macros."),quote:doc(new Macro("quote",function(e){return quote(e.car)}),"(quote expression) or 'expression\n\n Macro that returns a single LIPS expression as data (it won't evaluate the\n argument). It will return a list if put in front of LIPS code.\n And if put in front of a symbol it will return the symbol itself, not the value\n bound to that name."),"unquote-splicing":doc("unquote-splicing",function(){throw new Error("You can't call `unquote-splicing` outside of quasiquote")},"(unquote-splicing code) or ,@code\n\n Special form used in the quasiquote macro. It evaluates the expression inside and\n splices the list into quasiquote's result. If it is not the last element of the\n expression, the computed value must be a pair."),unquote:doc("unquote",function(){throw new Error("You can't call `unquote` outside of quasiquote")},"(unquote code) or ,code\n\n Special form used in the quasiquote macro. It evaluates the expression inside and\n substitutes the value into quasiquote's result."),quasiquote:Macro.defmacro("quasiquote",function(e,t){var u=t.use_dynamic,s=t.error;var c=this;var l=c;function a(e){return is_pair(e)||is_plain_object(e)||Array.isArray(e)}function f(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:a;if(is_pair(e)){var n=e.car;var i=e.cdr;if(r(n)){n=t(n)}if(r(i)){i=t(i)}if(is_promise(n)||is_promise(i)){return promise_all([n,i]).then(function(e){var t=_slicedToArray(e,2),r=t[0],n=t[1];return new Pair(r,n)})}else{return new Pair(n,i)}}return e}function o(e,t){if(is_pair(e)){if(!is_nil(t)){e.append(t)}}else{e=new Pair(e,t)}return e}function r(e){return!!e.filter(function(e){return is_pair(e)&&LSymbol.is(e.car,/^(unquote|unquote-splicing)$/)}).length}function _(e,n,i){return e.reduce(function(e,t){if(!is_pair(t)){e.push(t);return e}if(LSymbol.is(t.car,"unquote-splicing")){var r;if(n+11){var t="You can't splice multiple atoms inside list";throw new Error(t)}if(!(is_pair(i.cdr)&&is_nil(r[0]))){return r[0]}}r=r.map(function(e){if(h.has(e)){return e.clone()}else{h.add(e);return e}});var n=m(i.cdr,0,1);if(is_nil(n)&&is_nil(r[0])){return undefined}return unpromise(n,function(e){if(is_nil(r[0])){return e}if(r.length===1){return o(r[0],e)}var t=r.reduce(function(e,t){return o(e,t)});return o(t,e)})})}(i.car.cdr)}var h=new Set;function m(e,t,r){if(is_pair(e)){if(is_pair(e.car)){if(LSymbol.is(e.car.car,"unquote-splicing")){return d(e,t+1,r)}if(LSymbol.is(e.car.car,"unquote")){if(t+2===r&&is_pair(e.car.cdr)&&is_pair(e.car.cdr.car)&&LSymbol.is(e.car.cdr.car.car,"unquote-splicing")){var n=e.car.cdr;return new Pair(new Pair(new LSymbol("unquote"),d(n,t+2,r)),_nil)}else if(is_pair(e.car.cdr)&&!is_nil(e.car.cdr.cdr)){if(is_pair(e.car.cdr.car)){var i=[];return function t(r){if(is_nil(r)){return Pair.fromArray(i)}return unpromise(_evaluate(r.car,{env:c,dynamic_env:l,use_dynamic:u,error:s}),function(e){i.push(e);return t(r.cdr)})}(e.car.cdr)}else{return e.car.cdr}}}}if(LSymbol.is(e.car,"quasiquote")){var a=m(e.cdr,t,r+1);return new Pair(e.car,a)}if(LSymbol.is(e.car,"quote")){return new Pair(e.car,m(e.cdr,t,r))}if(LSymbol.is(e.car,"unquote")){t++;if(tr){throw new Error("You can't call `unquote` outside "+"of quasiquote")}if(is_pair(e.cdr)){if(!is_nil(e.cdr.cdr)){if(is_pair(e.cdr.car)){var o=[];return function t(r){if(is_nil(r)){return Pair.fromArray(o)}return unpromise(_evaluate(r.car,{env:c,dynamic_env:l,use_dynamic:u,error:s}),function(e){o.push(e);return t(r.cdr)})}(e.cdr)}else{return e.cdr}}else{return _evaluate(e.cdr.car,{env:c,dynamic_env:l,error:s})}}else{return e.cdr}}return f(e,function(e){return m(e,t,r)})}else if(is_plain_object(e)){return p(e,t,r)}else if(e instanceof Array){return _(e,t,r)}return e}function n(e){if(is_pair(e)){delete e[__data__];if(!e.have_cycles("car")){n(e.car)}if(!e.have_cycles("cdr")){n(e.cdr)}}}if(is_plain_object(e.car)&&!r(Object.values(e.car))){return quote(e.car)}if(Array.isArray(e.car)&&!r(e.car)){return quote(e.car)}if(is_pair(e.car)&&!e.car.find("unquote")&&!e.car.find("unquote-splicing")&&!e.car.find("quasiquote")){return quote(e.car)}var i=m(e.car,0,1);return unpromise(i,function(e){n(e);return quote(e)})},"(quasiquote list)\n\n Similar macro to `quote` but inside it you can use special expressions (unquote\n x) abbreviated to ,x that will evaluate x and insert its value verbatim or\n (unquote-splicing x) abbreviated to ,@x that will evaluate x and splice the value\n into the result. Best used with macros but it can be used outside."),clone:doc("clone",function e(t){typecheck("clone",t,"pair");return t.clone()},"(clone list)\n\n Function that returns a clone of the list, that does not share any pairs with the\n original, so the clone can be safely mutated without affecting the original."),append:doc("append",function e(){var t;for(var r=arguments.length,n=new Array(r),i=0;iarray")(t).reverse();return global_env.get("array->list")(r)}else if(Array.isArray(t)){return t.reverse()}else{throw new Error(typeErrorMessage("reverse",type(t),"array or pair"))}},"(reverse list)\n\n Function that reverses the list or array. If value is not a list\n or array it will error."),nth:doc("nth",function e(t,r){typecheck("nth",t,"number");typecheck("nth",r,["array","pair"]);if(is_pair(r)){var n=r;var i=0;while(iarray")(r).join(t)},"(join separator list)\n\n Function that returns a string by joining elements of the list using separator."),split:doc("split",function e(t,r){typecheck("split",t,["regex","string"]);typecheck("split",r,"string");return global_env.get("array->list")(r.split(t))},"(split separator string)\n\n Function that creates a list by splitting string by separator which can\n be a string or regular expression."),replace:doc("replace",function e(t,r,n){typecheck("replace",t,["regex","string"]);typecheck("replace",r,["string","function"]);typecheck("replace",n,"string");if(is_function(r)){var i=[];n.replace(t,function(){i.push(r.apply(void 0,arguments))});return unpromise(i,function(e){return n.replace(t,function(){return e.shift()})})}return n.replace(t,r)},"(replace pattern replacement string)\n\n Function that changes pattern to replacement inside string. Pattern can be a\n string or regex and replacement can be function or string. See Javascript\n String.replace()."),match:doc("match",function e(t,r){typecheck("match",t,["regex","string"]);typecheck("match",r,"string");var n=r.match(t);return n?global_env.get("array->list")(n):false},"(match pattern string)\n\n Function that returns a match object from JavaScript as a list or #f if\n no match."),search:doc("search",function e(t,r){typecheck("search",t,["regex","string"]);typecheck("search",r,"string");return r.search(t)},"(search pattern string)\n\n Function that returns the first found index of the pattern inside a string."),repr:doc("repr",function e(t,r){return toString(t,r)},"(repr obj)\n\n Function that returns a LIPS code representation of the object as a string."),"escape-regex":doc("escape-regex",function(e){typecheck("escape-regex",e,"string");return escape_regex(e.valueOf())},"(escape-regex string)\n\n Function that returns a new string where all special operators used in regex,\n are escaped with backslashes so they can be used in the RegExp constructor\n to match a literal string."),env:doc("env",function e(e){e=e||this.env;var t=Object.keys(e.__env__).map(LSymbol);var r;if(t.length){r=Pair.fromArray(t)}else{r=_nil}if(e.__parent__ instanceof Environment){return global_env.get("env").call(this,e.__parent__).append(r)}return r},"(env)\n (env obj)\n\n Function that returns a list of names (functions, macros and variables)\n that are bound in the current environment or one of its parents."),new:doc("new",function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2&&arguments[2]!==undefined?arguments[2]:specials.LITERAL;typecheck("set-special!",e,"string",1);typecheck("set-special!",t,"symbol",2);specials.append(e.valueOf(),t,r)},'(set-special! symbol name [type])\n\n Add a special symbol to the list of transforming operators by the parser.\n e.g.: `(add-special! "#" \'x)` will allow to use `#(1 2 3)` and it will be\n transformed into (x (1 2 3)) so you can write x macro that will process\n the list. 3rd argument is optional, and it can be one of two values:\n lips.specials.LITERAL, which is the default behavior, or\n lips.specials.SPLICE which causes the value to be unpacked into the expression.\n This can be used for e.g. to make `#(1 2 3)` into (x 1 2 3) that is needed\n by # that defines vectors.'),get:get,".":get,unbind:doc(unbind,"(unbind fn)\n\n Function that removes the weak 'this' binding from a function so you\n can get properties from the actual function object."),type:doc(type,"(type object)\n\n Function that returns the type of an object as string."),debugger:doc("debugger",function(){debugger},'(debugger)\n\n Function that triggers the JavaScript debugger (e.g. the browser devtools)\n using the "debugger;" statement. If a debugger is not running this\n function does nothing.'),in:doc("in",function(e,t){if(e instanceof LSymbol||e instanceof LString||e instanceof LNumber){e=e.valueOf()}return e in unbox(t)},'(in key value)\n\n Function that uses the Javascript "in" operator to check if key is\n a valid property in the value.'),"instance?":doc("instance?",function(e){return is_instance(e)},"(instance? obj)\n\n Checks if object is an instance, created with a new operator"),instanceof:doc("instanceof",function(e,t){return t instanceof unbind(e)},"(instanceof type obj)\n\n Predicate that tests if the obj is an instance of type."),"prototype?":doc("prototype?",is_prototype,"(prototype? obj)\n\n Predicate that tests if value is a valid JavaScript prototype,\n i.e. calling (new) with it will not throw ' is not a constructor'."),"macro?":doc("macro?",function(e){return e instanceof Macro},"(macro? expression)\n\n Predicate that tests if value is a macro."),"continuation?":doc("continuation?",is_continuation,"(continuation? expression)\n\n Predicate that tests if value is a callable continuation."),"function?":doc("function?",is_function,"(function? expression)\n\n Predicate that tests if value is a callable function."),"real?":doc("real?",function(e){if(type(e)!=="number"){return false}if(e instanceof LNumber){return e.isFloat()}return LNumber.isFloat(e)},"(real? number)\n\n Predicate that tests if value is a real number (not complex)."),"number?":doc("number?",function(e){return Number.isNaN(e)||LNumber.isNumber(e)},"(number? expression)\n\n Predicate that tests if value is a number or NaN value."),"string?":doc("string?",function(e){return LString.isString(e)},"(string? expression)\n\n Predicate that tests if value is a string."),"pair?":doc("pair?",is_pair,"(pair? expression)\n\n Predicate that tests if value is a pair or list structure."),"regex?":doc("regex?",function(e){return e instanceof RegExp},"(regex? expression)\n\n Predicate that tests if value is a regular expression."),"null?":doc("null?",function(e){return is_null(e)},"(null? expression)\n\n Predicate that tests if value is null-ish (i.e. undefined, nil, or\n Javascript null)."),"boolean?":doc("boolean?",function(e){return typeof e==="boolean"},"(boolean? expression)\n\n Predicate that tests if value is a boolean (#t or #f)."),"symbol?":doc("symbol?",function(e){return e instanceof LSymbol},"(symbol? expression)\n\n Predicate that tests if value is a LIPS symbol."),"array?":doc("array?",function(e){return e instanceof Array},"(array? expression)\n\n Predicate that tests if value is an array."),"object?":doc("object?",function(e){return!is_nil(e)&&e!==null&&!(e instanceof LCharacter)&&!(e instanceof RegExp)&&!(e instanceof LString)&&!is_pair(e)&&!(e instanceof LNumber)&&_typeof$1(e)==="object"&&!(e instanceof Array)},"(object? expression)\n\n Predicate that tests if value is an plain object (not another LIPS type)."),flatten:doc("flatten",function e(t){typecheck("flatten",t,"pair");return t.flatten()},"(flatten list)\n\n Returns a shallow list from tree structure (pairs)."),"vector-append":doc("vector-append",function(){for(var e=arguments.length,t=new Array(e),r=0;rlist":doc("array->list",function(e){typecheck("array->list",e,"array");return Pair.fromArray(e)},"(array->list array)\n\n Function that converts a JavaScript array to a LIPS cons list."),"tree->array":doc("tree->array",to_array("tree->array",true),"(tree->array list)\n\n Function that converts a LIPS cons tree structure into a JavaScript array."),"list->array":doc("list->array",to_array("list->array"),"(list->array list)\n\n Function that converts a LIPS list into a JavaScript array."),apply:doc("apply",function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;iarray").call(this,a));return t.apply(this,prepare_fn_args(t,n))},"(apply fn list)\n\n Function that calls fn with the list of arguments."),length:doc("length",function e(t){if(!t||is_nil(t)){return 0}if(is_pair(t)){return t.length()}if("length"in t){return t.length}},'(length expression)\n\n Function that returns the length of the object. The object can be a LIPS\n list or any object that has a "length" property. Returns undefined if the\n length could not be found.'),"string->number":doc("string->number",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;typecheck("string->number",e,"string",1);typecheck("string->number",t,"number",2);e=e.valueOf();t=t.valueOf();if(e.match(rational_bare_re)||e.match(rational_re)){return parse_rational(e,t)}else if(e.match(complex_bare_re)||e.match(complex_re)){return parse_complex(e,t)}else{var r=t===10&&!e.match(/e/i)||t===16;if(e.match(int_bare_re)&&r||e.match(int_re)){return parse_integer(e,t)}if(e.match(float_re)){return parse_float(e)}}return false},"(string->number number [radix])\n\n Function that parses a string into a number."),try:doc(new Macro("try",function(r,e){var f=this;var _=e.use_dynamic;e.error;return new Promise(function(t,u){var s,n;if(LSymbol.is(r.cdr.car.car,"catch")){s=r.cdr.car;if(is_pair(r.cdr.cdr)&&LSymbol.is(r.cdr.cdr.car.car,"finally")){n=r.cdr.cdr.car}}else if(LSymbol.is(r.cdr.car.car,"finally")){n=r.cdr.car}if(!(n||s)){throw new Error("try: invalid syntax")}function c(e){t(e);throw new IgnoreException("[CATCH]")}var l=function e(t,r){r(t)};if(n){l=function e(t,r){l=u;i.error=function(e){throw e};unpromise(_evaluate(new Pair(new LSymbol("begin"),n.cdr),i),function(){r(t)})}}var i={env:f,use_dynamic:_,dynamic_env:f,error:function e(t){if(t instanceof IgnoreException){throw t}if(s){var r=f.inherit("try");var n=s.cdr.car.car;if(!(n instanceof LSymbol)){throw new Error("try: invalid syntax: catch require variable name")}r.set(n,t);var i;var a={env:r,use_dynamic:_,dynamic_env:f,error:function e(t){i=true;u(t);throw new IgnoreException("[CATCH]")}};var o=_evaluate(new Pair(new LSymbol("begin"),s.cdr.cdr),a);unpromise(o,function e(t){if(!i){l(t,c)}})}else{l(undefined,function(){u(t)})}}};var e=_evaluate(r.car,i);unpromise(e,function(e){l(e,t)},i.error)})}),"(try expr (catch (e) code))\n (try expr (catch (e) code) (finally code))\n (try expr (finally code))\n\n Macro that executes expr and catches any exceptions thrown. If catch is provided\n it's executed when an error is thrown. If finally is provided it's always\n executed at the end."),raise:doc("raise",function(e){throw e},"(raise obj)\n\n Throws the object verbatim (no wrapping an a new Error)."),throw:doc("throw",function(e){throw new Error(e)},"(throw string)\n\n Throws a new exception."),find:doc("find",function t(r,n){typecheck("find",r,["regex","function"]);typecheck("find",n,["pair","nil"]);if(is_null(n)){return _nil}var e=matcher("find",r);return unpromise(e(n.car),function(e){if(e&&!is_nil(e)){return n.car}return t(r,n.cdr)})},"(find fn list)\n (find regex list)\n\n Higher-order function that finds the first value for which fn return true.\n If called with a regex it will create a matcher function."),"for-each":doc("for-each",function(e){var t;typecheck("for-each",e,"function");for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?t-1:0),a=1;a3?n-3:0),a=3;a3?i-3:0),o=3;oarray")(r);var a=[];var o=matcher("filter",t);return function t(r){function e(e){if(e&&!is_nil(e)){a.push(n)}return t(++r)}if(r===i.length){return Pair.fromArray(a)}var n=i[r];return unpromise(o(n),e)}(0)},"(filter fn list)\n (filter regex list)\n\n Higher-order function that calls `fn` for each element of the list\n and return a new list for only those elements for which fn returns\n a truthy value. If called with a regex it will create a matcher function."),compose:doc(compose,"(compose . fns)\n\n Higher-order function that creates a new function that applies all functions\n from right to left and returns the last value. Reverse of pipe.\n e.g.:\n ((compose (curry + 2) (curry * 3)) 10) ==> (+ 2 (* 3 10)) ==> 32"),pipe:doc(pipe,"(pipe . fns)\n\n Higher-order function that creates a new function that applies all functions\n from left to right and returns the last value. Reverse of compose.\n e.g.:\n ((pipe (curry + 2) (curry * 3)) 10) ==> (* 3 (+ 2 10)) ==> 36"),curry:doc(curry,"(curry fn . args)\n\n Higher-order function that creates a curried version of the function.\n The result function will have partially applied arguments and it\n will keep returning one-argument functions until all arguments are provided,\n then it calls the original function with the accumulated arguments.\n\n e.g.:\n (define (add a b c d) (+ a b c d))\n (define add1 (curry add 1))\n (define add12 (add 2))\n (display (add12 3 4))"),gcd:doc("gcd",function e(){for(var t=arguments.length,r=new Array(t),n=0;nu?a%=u:u%=a}a=abs(s*r[o])/(a+u)}return LNumber(a)},"(lcm n1 n2 ...)\n\n Function that returns the least common multiple of the arguments."),"odd?":doc("odd?",single_math_op(function(e){return LNumber(e).isOdd()}),"(odd? number)\n\n Checks if number is odd."),"even?":doc("even?",single_math_op(function(e){return LNumber(e).isEven()}),"(even? number)\n\n Checks if number is even."),"*":doc("*",reduce_math_op(function(e,t){return LNumber(e).mul(t)},LNumber(1)),"(* . numbers)\n\n Multiplies all numbers passed as arguments. If single value is passed\n it will return that value."),"+":doc("+",reduce_math_op(function(e,t){return LNumber(e).add(t)},LNumber(0)),"(+ . numbers)\n\n Sums all numbers passed as arguments. If single value is passed it will\n return that value."),"-":doc("-",function(){for(var e=arguments.length,t=new Array(e),r=0;r":doc(">",function(){for(var e=arguments.length,t=new Array(e),r=0;r",t,["bigint","float","rational"]);return seq_compare(function(e,t){return LNumber(e).cmp(t)===1},t)},"(> x1 x2 x3 ...)\n\n Function that compares its numerical arguments and checks if they are\n monotonically decreasing, i.e. x1 > x2 and x2 > x3 and so on."),"<":doc("<",function(){for(var e=arguments.length,t=new Array(e),r=0;r=":doc(">=",function(){for(var e=arguments.length,t=new Array(e),r=0;r=",t,["bigint","float","rational"]);return seq_compare(function(e,t){return[0,1].includes(LNumber(e).cmp(t))},t)},"(>= x1 x2 ...)\n\n Function that compares its numerical arguments and checks if they are\n monotonically nonincreasing, i.e. x1 >= x2 and x2 >= x3 and so on."),"eq?":doc("eq?",equal,"(eq? a b)\n\n Function that compares two values if they are identical."),or:doc(new Macro("or",function(e,t){var i=t.use_dynamic,a=t.error;var o=global_env.get("list->array")(e);var u=this;var s=u;if(!o.length){return false}var c;return function t(){function e(e){c=e;if(!is_false(c)){return c}else{return t()}}if(!o.length){if(!is_false(c)){return c}else{return false}}else{var r=o.shift();var n=_evaluate(r,{env:u,dynamic_env:s,use_dynamic:i,error:a});return unpromise(n,e)}}()}),"(or . expressions)\n\n Macro that executes the values one by one and returns the first that is\n a truthy value. If there are no expressions that evaluate to true it\n returns false."),and:doc(new Macro("and",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=t.error;var i=global_env.get("list->array")(e);var a=this;var o=a;if(!i.length){return true}var u;var s={env:a,dynamic_env:o,use_dynamic:r,error:n};return function t(){function e(e){u=e;if(is_false(u)){return u}else{return t()}}if(!i.length){if(!is_false(u)){return u}else{return false}}else{var r=i.shift();return unpromise(_evaluate(r,s),e)}}()}),"(and . expressions)\n\n Macro that evaluates each expression in sequence and if any value returns false\n it will stop and return false. If each value returns true it will return the\n last value. If it's called without arguments it will return true."),"|":doc("|",function(e,t){return LNumber(e).or(t)},"(| a b)\n\n Function that calculates the bitwise or operation."),"&":doc("&",function(e,t){return LNumber(e).and(t)},"(& a b)\n\n Function that calculates the bitwise and operation."),"~":doc("~",function(e){return LNumber(e).neg()},"(~ number)\n\n Function that calculates the bitwise inverse (flip all the bits)."),">>":doc(">>",function(e,t){return LNumber(e).shr(t)},"(>> a b)\n\n Function that right shifts the value a by value b bits."),"<<":doc("<<",function(e,t){return LNumber(e).shl(t)},"(<< a b)\n\n Function that left shifts the value a by value b bits."),not:doc("not",function e(t){return!t},"(not object)\n\n Function that returns the Boolean negation of its argument.")},undefined,"global");var user_env=global_env.inherit("user-env");function set_interaction_env(e,t){e.constant("**internal-env**",t);e.doc("**internal-env**","**internal-env**\n\n Constant used to hide stdin, stdout and stderr so they don't interfere\n with variables with the same name. Constants are an internal type\n of variable that can't be redefined, defining a variable with the same name\n will throw an error.");global_env.set("**interaction-environment**",e)}set_interaction_env(user_env,internal_env);global_env.doc("**interaction-environment**","**interaction-environment**\n\n Internal dynamic, global variable used to find interpreter environment.\n It's used so the read and write functions can locate **internal-env**\n that contains the references to stdin, stdout and stderr.");function set_fs(e){user_env.get("**internal-env**").set("fs",e)}(function(){var e={ceil:"ceiling"};["floor","round","ceil"].forEach(function(t){var r=e[t]?e[t]:t;global_env.set(r,doc(r,function(e){typecheck(r,e,"number");if(e instanceof LNumber){return e[t]()}},"(".concat(r," number)\n\n Function that calculates the ").concat(r," of a number.")))})})();function allPossibleCases(e){if(e.length===1){return e[0]}else{var t=[];var r=allPossibleCases(e.slice(1));for(var n=0;n3&&arguments[3]!==undefined?arguments[3]:null;var i=e?" in expression `".concat(e,"`"):"";if(n!==null){i+=" (argument ".concat(n,")")}if(is_function(r)){return"Invalid type: got ".concat(t).concat(i)}if(r instanceof Array){if(r.length===1){var a=r[0].toLowerCase();r="a"+("aeiou".includes(a)?"n ":" ")+r[0]}else{r=new Intl.ListFormat("en",{style:"long",type:"disjunction"}).format(r)}}return"Expecting ".concat(r," got ").concat(t).concat(i)}function typecheck_number(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;typecheck(e,t,"number",n);var i=t.__type__;var a;if(is_pair(r)){r=r.to_array()}if(r instanceof Array){r=r.map(function(e){return e.valueOf()})}if(r instanceof Array){r=r.map(function(e){return e.valueOf().toLowerCase()});if(r.includes(i)){a=true}}else{r=r.valueOf().toLowerCase()}if(!a&&i!==r){throw new Error(typeErrorMessage(e,i,r,n))}}function typecheck_numbers(r,e,n){e.forEach(function(e,t){typecheck_number(r,e,n,t+1)})}function typecheck_args(r,e,n){e.forEach(function(e,t){typecheck(r,e,n,t+1)})}function typecheck_text_port(e,t,r){typecheck(e,t,r);if(t.__type__===binary_port){throw new Error(typeErrorMessage(e,"binary-port","textual-port"))}}function typecheck(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;e=e.valueOf();var i=type(t).toLowerCase();if(is_function(r)){if(!r(t)){throw new Error(typeErrorMessage(e,i,r,n))}return}var a=false;if(is_pair(r)){r=r.to_array()}if(r instanceof Array){r=r.map(function(e){return e.valueOf()})}if(r instanceof Array){r=r.map(function(e){return e.valueOf().toLowerCase()});if(r.includes(i)){a=true}}else{r=r.valueOf().toLowerCase()}if(!a&&i!==r){throw new Error(typeErrorMessage(e,i,r,n))}}function memoize(r){var n=new WeakMap;return function(e){var t=n.get(e);if(!t){t=r(e)}return t}}type=memoize(type);function type(e){var t=type_constants.get(e);if(t){return t}if(_typeof$1(e)==="object"){for(var r=0,n=Object.entries(type_mapping);r2&&arguments[2]!==undefined?arguments[2]:{},n=r.env,i=r.dynamic_env,a=r.use_dynamic;var o=n===null||n===void 0?void 0:n.new_frame(e,t);var u=i===null||i===void 0?void 0:i.new_frame(e,t);var s=new LambdaContext({env:o,use_dynamic:a,dynamic_env:u});return resolve_promises(e.apply(s,t))}function apply(n,e){var t=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},i=t.env,a=t.dynamic_env,o=t.use_dynamic,r=t.error,u=r===void 0?function(){}:r;e=evaluate_args(e,{env:i,dynamic_env:a,error:u,use_dynamic:o});return unpromise(e,function(e){if(is_raw_lambda(n)){n=unbind(n)}e=prepare_fn_args(n,e);var t=e.slice();var r=call_function(n,t,{env:i,dynamic_env:a,use_dynamic:o});return unpromise(r,function(e){if(is_pair(e)){e.mark_cycles();return quote(e)}return box(e)},u)})}var _p_name__=new WeakMap;var Parameter=function(){function n(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;_classCallCheck(this,n);_defineProperty(this,"__value__",void 0);_defineProperty(this,"__fn__",void 0);_classPrivateFieldInitSpec(this,_p_name__,{writable:true,value:void 0});this.__value__=e;if(t){if(!is_function(t)){throw new Error("Section argument to Parameter need to be function "+"".concat(type(t)," given"))}this.__fn__=t}if(r){_classPrivateFieldSet(this,_p_name__,r)}}_createClass(n,[{key:"__name__",get:function e(){return _classPrivateFieldGet(this,_p_name__)},set:function e(t){_classPrivateFieldSet(this,_p_name__,t);if(this.__fn__){this.__fn__.__name__="fn-".concat(t)}}},{key:"invoke",value:function e(){if(is_function(this.__fn__)){return this.__fn__(this.__value__)}return this.__value__}},{key:"inherit",value:function e(t){return new n(t,this.__fn__,this.__name__)}}]);return n}();var LambdaContext=function(){function t(e){_classCallCheck(this,t);_defineProperty(this,"env",void 0);_defineProperty(this,"dynamic_env",void 0);_defineProperty(this,"use_dynamic",void 0);Object.assign(this,e)}_createClass(t,[{key:"__name__",get:function e(){return this.env.__name__}},{key:"__parent__",get:function e(){return this.env.__parent__}},{key:"get",value:function e(){var t;return(t=this.env).get.apply(t,arguments)}}]);return t}();function search_param(e,t){var r=e.get(t.__name__,{throwError:false});if(is_parameter(r)&&r!==t){return r}var n=user_env.get("**interaction-environment**");while(true){var i=e.get("parent.frame",{throwError:false});e=i(0);if(e===n){break}r=e.get(t.__name__,{throwError:false});if(is_parameter(r)&&r!==t){return r}}return t}var Continuation=function(){function t(e){_classCallCheck(this,t);_defineProperty(this,"__value__",void 0);this.__value__=e}_createClass(t,[{key:"invoke",value:function e(){if(this.__value__===null){throw new Error("Continuations are not implemented yet")}}}]);return t}();function _evaluate(u){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},s=e.env,c=e.dynamic_env,l=e.use_dynamic,t=e.error,f=t===void 0?noop:t,r=_objectWithoutProperties(e,_excluded6);return function(e){try{if(!is_env(c)){c=s===true?user_env:s||user_env}if(l){s=c}else if(s===true){s=user_env}else{s=s||global_env}var t={env:s,dynamic_env:c,use_dynamic:l,error:f};var r;if(is_null(u)){return u}if(u instanceof LSymbol){return s.get(u)}if(!is_pair(u)){return u}var n=u.car;var e=u.cdr;if(is_pair(n)){r=resolve_promises(_evaluate(n,t));if(is_promise(r)){return r.then(function(e){if(!is_callable(e)){throw new Error(type(e)+" "+s.get("repr")(e)+" is not callable while evaluating "+u.toString())}return _evaluate(new Pair(e,u.cdr),t)})}else if(!is_callable(r)){throw new Error(type(r)+" "+s.get("repr")(r)+" is not callable while evaluating "+u.toString())}}if(n instanceof LSymbol){r=s.get(n)}else if(is_function(n)){r=n}var i;if(r instanceof Syntax){i=evaluate_syntax(r,u,t)}else if(r instanceof Macro){i=evaluate_macro(r,e,t)}else if(is_function(r)){i=apply(r,e,t)}else if(r instanceof SyntaxParameter){i=evaluate_syntax(r._syntax,u,t)}else if(is_parameter(r)){var a=search_param(c,r);if(is_null(u.cdr)){i=a.invoke()}else{return unpromise(_evaluate(u.cdr.car,t),function(e){a.__value__=e})}}else if(is_continuation(r)){i=r.invoke()}else if(is_pair(u)){r=n&&n.toString();throw new Error("".concat(type(n)," ").concat(r," is not a function"))}else{return u}var o=s.get(Symbol["for"]("__promise__"),{throwError:false});if(o===true&&is_promise(i)){i=i.then(function(e){if(is_pair(e)&&!r[__data__]){return _evaluate(e,t)}return e});return new QuotedPromise(i)}return i}catch(e){f&&f.call(s,e,u)}}(r)}var compile=exec_collect(function(e){return e});var exec=exec_collect(function(e,t){return t});function exec_with_stacktrace(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.env,n=t.dynamic_env,i=t.use_dynamic;return _evaluate(e,{env:r,dynamic_env:n,use_dynamic:i,error:function e(t,r){if(t&&t.message){if(t.message.match(/^Error:/)){var n=/^(Error:)\s*([^:]+:\s*)/;t.message=t.message.replace(n,"$1 $2")}if(r){if(!(t.__code__ instanceof Array)){t.__code__=[]}t.__code__.push(r.toString(true))}}if(!(t instanceof IgnoreException)){throw t}}})}function exec_collect(h){return function(){var t=_asyncToGenerator(function(f){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},_=e.env,p=e.dynamic_env,d=e.use_dynamic;return _regeneratorRuntime.mark(function e(){var r,n,i,a,o,u,s,c,l;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!is_env(p)){p=_===true?user_env:_||user_env}if(_===true){_=user_env}else{_=_||user_env}r=[];if(!is_pair(f)){t.next=8;break}t.next=6;return exec_with_stacktrace(f,{env:_,dynamic_env:p,use_dynamic:d});case 6:t.t0=t.sent;return t.abrupt("return",[t.t0]);case 8:n=Array.isArray(f)?f:_parse(f);i=false;a=false;t.prev=11;u=_asyncIterator(n);case 13:t.next=15;return u.next();case 15:if(!(i=!(s=t.sent).done)){t.next=31;break}c=s.value;t.next=19;return exec_with_stacktrace(c,{env:_,dynamic_env:p,use_dynamic:d});case 19:l=t.sent;t.t1=r;t.t2=h;t.t3=c;t.next=25;return l;case 25:t.t4=t.sent;t.t5=(0,t.t2)(t.t3,t.t4);t.t1.push.call(t.t1,t.t5);case 28:i=false;t.next=13;break;case 31:t.next=37;break;case 33:t.prev=33;t.t6=t["catch"](11);a=true;o=t.t6;case 37:t.prev=37;t.prev=38;if(!(i&&u["return"]!=null)){t.next=42;break}t.next=42;return u["return"]();case 42:t.prev=42;if(!a){t.next=45;break}throw o;case 45:return t.finish(42);case 46:return t.finish(37);case 47:return t.abrupt("return",r);case 48:case"end":return t.stop()}},e,null,[[11,33,37,47],[38,,42,46]])})()});function e(e){return t.apply(this,arguments)}return e}()}function balanced(e){var t={"[":"]","(":")"};var r;if(typeof e==="string"){try{r=tokenize(e)}catch(e){if(e instanceof Unterminated){return false}throw e}}else{r=e.map(function(e){return e&&e.token?e.token:e})}var n=Object.keys(t);var i=Object.values(t).concat(n);r=r.filter(function(e){return i.includes(e)});var a=new Stack;var o=_createForOfIteratorHelper(r),u;try{for(o.s();!(u=o.n()).done;){var s=u.value;if(n.includes(s)){a.push(s)}else if(!a.is_empty()){var c=a.top();var l=t[c];if(s===l){a.pop()}else{throw new Error("Syntax error: missing closing ".concat(l))}}else{throw new Error("Syntax error: not matched closing ".concat(s))}}}catch(e){o.e(e)}finally{o.f()}return a.is_empty()}function fworker(e){var t="("+e.toString()+")()";var r=window.URL||window.webkitURL;var n;try{n=new Blob([t],{type:"application/javascript"})}catch(e){var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder;n=new i;n.append(t);n=n.getBlob()}return new root.Worker(r.createObjectURL(n))}function is_dev(){return lips.version.match(/^(\{\{VER\}\}|DEV)$/)}function get_current_script(){if(is_node()){return}var e;if(document.currentScript){e=document.currentScript}else{var t=document.querySelectorAll("script");if(!t.length){return}e=t[t.length-1]}var r=e.getAttribute("src");return r}var current_script=get_current_script();function bootstrap(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var t="dist/std.xcb";if(e===""){if(current_script){e=current_script.replace(/[^/]*$/,"std.xcb")}else if(is_dev()){e="https://cdn.jsdelivr.net/gh/jcubic/lips@devel/".concat(t)}else{e="https://cdn.jsdelivr.net/npm/@jcubic/lips@".concat(lips.version,"/").concat(t)}}global_env.set("__dirname",e.replace(/[^/]+$/,""));var r=global_env.get("load");return r.call(user_env,e,global_env)}function Worker(e){this.url=e;var o=this.worker=fworker(function(){var o;var u;self.addEventListener("message",function(e){var r=e.data;var t=r.id;if(r.type!=="RPC"||t===null){return}function n(e){self.postMessage({id:t,type:"RPC",result:e})}function i(e){self.postMessage({id:t,type:"RPC",error:e})}if(r.method==="eval"){if(!u){i("Worker RPC: LIPS not initialized, call init first");return}u.then(function(){var e=r.params[0];var t=r.params[1];o.exec(e,{use_dynamic:t}).then(function(e){e=e.map(function(e){return e&&e.valueOf()});n(e)})["catch"](function(e){i(e)})})}else if(r.method==="init"){var a=r.params[0];if(typeof a!=="string"){i("Worker RPC: url is not a string")}else{importScripts("".concat(a,"/dist/lips.min.js"));o=new lips.Interpreter("worker");u=bootstrap(a);u.then(function(){n(true)})}}})});this.rpc=function(){var n=0;return function e(t,r){var a=++n;return new Promise(function(n,i){o.addEventListener("message",function e(t){var r=t.data;if(r&&r.type==="RPC"&&r.id===a){if(r.error){i(r.error)}else{n(r.result)}o.removeEventListener("message",e)}});o.postMessage({type:"RPC",method:t,id:a,params:r})})}}();this.rpc("init",[e])["catch"](function(e){console.error(e)});this.exec=function(e,t){var r=t.use_dynamic,n=r===void 0?false:r;return this.rpc("eval",[e,n])}}var serialization_map={pair:function e(t){var r=_slicedToArray(t,2),n=r[0],i=r[1];return Pair(n,i)},number:function e(t){if(LString.isString(t)){return LNumber([t,10])}return LNumber(t)},regex:function e(t){var r=_slicedToArray(t,2),n=r[0],i=r[1];return new RegExp(n,i)},nil:function e(){return _nil},symbol:function e(t){if(LString.isString(t)){return LSymbol(t)}else if(Array.isArray(t)){return LSymbol(Symbol["for"](t[0]))}},string:LString,character:LCharacter};var available_class=Object.keys(serialization_map);var class_map={};for(var _i6=0,_Object$entries3=Object.entries(available_class);_i6<_Object$entries3.length;_i6++){var _Object$entries3$_i=_slicedToArray(_Object$entries3[_i6],2),i=_Object$entries3$_i[0],cls=_Object$entries3$_i[1];class_map[cls]=+i}function mangle_name(e){return class_map[e]}function resolve_name(e){return available_class[e]}function serialize(e){return JSON.stringify(e,function(e,t){var r=this[e];if(r){if(r instanceof RegExp){return{"@":mangle_name("regex"),"#":[r.source,r.flags]}}var n=mangle_name(r.constructor.__class__);if(!is_undef(n)){return{"@":n,"#":r.serialize()}}}return t})}function unserialize(e){return JSON.parse(e,function(e,t){if(t&&_typeof$1(t)==="object"){if(!is_undef(t["@"])){var r=resolve_name(t["@"]);if(serialization_map[r]){return serialization_map[r](t["#"])}}}return t})}var cbor=function(){var e={pair:Pair,symbol:LSymbol,number:LNumber,string:LString,character:LCharacter,nil:_nil.constructor,regex:RegExp};function t(e,t){return{deserialize:t,Class:e}}var r=new Encoder;var a={};for(var n=0,i=Object.entries(serialization_map);n1){var n=t.reduce(function(e,t){return e+t.length},0);var i=new Uint8Array(n);var a=0;t.forEach(function(e){i.set(e,a);a+=e.length});return i}else if(t.length){return t[0]}}function encode_magic(){var e=1;var t=new TextEncoder("utf-8");return t.encode("LIPS".concat(e.toString().padStart(3," ")))}var MAGIC_LENGTH=7;function decode_magic(e){var t=new TextDecoder("utf-8");var r=t.decode(e.slice(0,MAGIC_LENGTH));var n=r.substring(0,4);if(n==="LIPS"){var i=r.match(/^(....).*([0-9]+)$/);if(i){return{type:i[1],version:Number(i[2])}}}return{type:"unknown"}}function serialize_bin(e){var t=encode_magic();var r=cbor.encode(e);return merge_uint8_array(t,pack_1(r,{magic:false}))}function unserialize_bin(e){var t=decode_magic(e),r=t.type,n=t.version;if(r==="LIPS"&&n===1){var i=unpack_1(e.slice(MAGIC_LENGTH),{magic:false});return cbor.decode(i)}else{throw new Error("Invalid file format ".concat(r))}}function execError(e){console.error(e.message||e);if(Array.isArray(e.code)){console.error(e.code.map(function(e,t){return"[".concat(t+1,"]: ").concat(e)}))}}function init(){var o=["text/x-lips","text/x-scheme"];var u;function s(e){var t;return(t=e.getAttribute("data-bootstrap"))!==null&&t!==void 0?t:e.getAttribute("bootstrap")}function c(r){return new Promise(function(t){var e=r.getAttribute("src");if(e){return fetch(e).then(function(e){return e.text()}).then(exec).then(t)["catch"](function(e){execError(e);t()})}else{return exec(r.innerHTML).then(t)["catch"](function(e){execError(e);t()})}})}function e(){return new Promise(function(i){var a=Array.from(document.querySelectorAll("script"));return function e(){var t=a.shift();if(!t){i()}else{var r=t.getAttribute("type");if(o.includes(r)){var n=s(t);if(!u&&typeof n==="string"){return bootstrap(n).then(function(){return c(t)}).then(e)}else{return c(t).then(e)}}else if(r&&r.match(/lips|lisp/)){console.warn("Expecting "+o.join(" or ")+" found "+r)}return e()}}()})}if(!window.document){return Promise.resolve()}else if(currentScript){var t=currentScript;var r=s(t);if(typeof r==="string"){return bootstrap(r).then(function(){u=true;return e()})}}return e()}var currentScript=typeof window!=="undefined"&&window.document&&document.currentScript;if(typeof window!=="undefined"){contentLoaded(window,init)}var banner=function(){var e=LString("Fri, 08 Nov 2024 13:26:12 +0000").valueOf();var t=e==="{{"+"DATE}}"?new Date:new Date(e);var r=function e(t){return t.toString().padStart(2,"0")};var n=t.getFullYear();var i=[n,r(t.getMonth()+1),r(t.getDate())].join("-");var a="\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter DEV (".concat(i,") \nCopyright (c) 2018-").concat(n," Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/,"");return a}();read_only(Ahead,"__class__","ahead");read_only(Pair,"__class__","pair");read_only(Nil,"__class__","nil");read_only(Pattern,"__class__","pattern");read_only(Formatter,"__class__","formatter");read_only(Macro,"__class__","macro");read_only(Syntax,"__class__","syntax");read_only(Syntax.Parameter,"__class__","syntax-parameter");read_only(Environment,"__class__","environment");read_only(InputPort,"__class__","input-port");read_only(OutputPort,"__class__","output-port");read_only(BufferedOutputPort,"__class__","output-port");read_only(OutputStringPort,"__class__","output-string-port");read_only(InputStringPort,"__class__","input-string-port");read_only(InputFilePort,"__class__","input-file-port");read_only(OutputFilePort,"__class__","output-file-port");read_only(LipsError,"__class__","lips-error");[LNumber,LComplex,LRational,LFloat,LBigInteger].forEach(function(e){read_only(e,"__class__","number")});read_only(LCharacter,"__class__","character");read_only(LSymbol,"__class__","symbol");read_only(LString,"__class__","string");read_only(QuotedPromise,"__class__","promise");read_only(Parameter,"__class__","parameter");var version="DEV";var date="Fri, 08 Nov 2024 13:26:12 +0000";var parse=compose(uniterate_async,_parse);var lips={version:version,banner:banner,date:date,exec:exec,parse:parse,tokenize:tokenize,evaluate:_evaluate,compile:compile,serialize:serialize,unserialize:unserialize,serialize_bin:serialize_bin,unserialize_bin:unserialize_bin,bootstrap:bootstrap,Environment:Environment,env:user_env,Worker:Worker,Interpreter:Interpreter,balanced_parenthesis:balanced,balancedParenthesis:balanced,balanced:balanced,Macro:Macro,Syntax:Syntax,Pair:Pair,Values:Values,QuotedPromise:QuotedPromise,Error:LipsError,quote:quote,InputPort:InputPort,OutputPort:OutputPort,BufferedOutputPort:BufferedOutputPort,InputFilePort:InputFilePort,OutputFilePort:OutputFilePort,InputStringPort:InputStringPort,OutputStringPort:OutputStringPort,InputByteVectorPort:InputByteVectorPort,OutputByteVectorPort:OutputByteVectorPort,InputBinaryFilePort:InputBinaryFilePort,OutputBinaryFilePort:OutputBinaryFilePort,set_fs:set_fs,Formatter:Formatter,Parser:Parser,Lexer:Lexer,specials:specials,repr:repr,nil:_nil,eof:eof,LSymbol:LSymbol,LNumber:LNumber,LFloat:LFloat,LComplex:LComplex,LRational:LRational,LBigInteger:LBigInteger,LCharacter:LCharacter,LString:LString,Parameter:Parameter,rationalize:rationalize};global_env.set("lips",lips);export{BufferedOutputPort,Environment,LipsError as Error,Formatter,InputBinaryFilePort,InputByteVectorPort,InputFilePort,InputPort,InputStringPort,Interpreter,LBigInteger,LCharacter,LComplex,LFloat,LNumber,LRational,LString,LSymbol,Lexer,Macro,OutputBinaryFilePort,OutputByteVectorPort,OutputFilePort,OutputPort,OutputStringPort,Pair,Parameter,Parser,QuotedPromise,Syntax,Values,Worker,is_directive as _is_directive,balanced,balanced as balancedParenthesis,balanced as balanced_parenthesis,banner,bootstrap,compile,date,user_env as env,eof,_evaluate as evaluate,exec,_nil as nil,parse,quote,rationalize,repr,serialize,serialize_bin,set_fs,specials,tokenize,unserialize,unserialize_bin,version}; \ No newline at end of file + */var hasRequiredLzjbPack;function requireLzjbPack(){if(hasRequiredLzjbPack)return lzjbPack;hasRequiredLzjbPack=1;Object.defineProperty(lzjbPack,"__esModule",{value:true});const p=8,d=6,h=3,m=(1<r-m){t[i++]=e[n++];continue}l=(e[n]+13^e[n+1]-13^e[n+2])&v-1;c=n-f[l]&y;f[l]=n;a=n-c;if(a>=0&&a!=n&&e[n]==e[a]&&e[n+1]==e[a+1]&&e[n+2]==e[a+2]){t[o]|=u;for(s=h;s>p;t[i++]=c;n+=s}else{t[i++]=e[n++]}}console.assert(e.length>=n);return i}function c(e,t,r){t=t|0;var n=0,i=0,a=0,o=0,u=1<<(p-1|0),s=0,c=0;while(n>(p-d|0))+h|0;c=(e[n]<4){r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;s=s-4|0}while(s>0){r[i]=r[a];i=i+1|0;a=a+1|0;s=s-1|0}}}else{r[i]=e[n];i=i+1|0;n=n+1|0}}return i}function e(){const e=new TextEncoder("utf-8");return e.encode(l)}const l="@lzjb";const f=e();function u(...e){if(e.length>1){const r=e.reduce((e,t)=>e+t.length,0);const n=new Uint8Array(r);let t=0;e.forEach(e=>{n.set(e,t);t+=e.length});return n}else if(e.length){return e[0]}}function s(t){const e=Math.ceil(Math.log2(t)/8);const r=new Uint8Array(e);for(let e=0;e=0;e--){r=r*256+t[e]}return r}function t(e,{magic:t=true}={}){const r=new Uint8Array(Math.max(e.length*1.5|0,16*1024));const n=o(e,r);const i=s(e.length);const a=[Uint8Array.of(i.length),i,r.slice(0,n)];if(t){a.unshift(f)}return u(...a)}function r(t,{magic:e=true}={}){if(e){const e=new TextDecoder("utf-8");const s=e.decode(t.slice(0,f.length));if(s!==l){throw new Error("Invalid magic value")}}const r=e?f.length:0;const n=t[r];const i=r+1;const a=r+n+1;const o=_(t.slice(i,a));t=t.slice(a);const u=new Uint8Array(o);c(t,t.length,u);return u}lzjbPack.pack=t;lzjbPack.unpack=r;return lzjbPack}var lzjbPackExports=requireLzjbPack();function e(u,s){return s=s||{},new Promise(function(e,t){var r=new XMLHttpRequest,n=[],i={},a=function e(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:e,headers:{keys:function(){return n},entries:function(){return n.map(function(e){return[e,r.getResponseHeader(e)]})},get:function(e){return r.getResponseHeader(e)},has:function(e){return null!=r.getResponseHeader(e)}}}};for(var o in r.open(s.method||"get",u,!0),r.onload=function(){r.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(e,t){i[t]||n.push(i[t]=t)}),e(a())},r.onerror=t,r.withCredentials="include"==s.credentials,s.headers)r.setRequestHeader(o,s.headers[o]);r.send(s.body||null)})}var _excluded=["token"],_excluded2=["env"],_excluded3=["stderr","stdin","stdout","command_line"],_excluded4=["use_dynamic"],_excluded5=["use_dynamic"],_excluded6=["env","dynamic_env","use_dynamic","error"];function _classPrivateFieldInitSpec(e,t,r){_checkPrivateRedeclaration(e,t),t.set(e,r)}function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _classPrivateFieldGet(e,t){return e.get(_assertClassBrand(e,t))}function _classPrivateFieldSet(e,t,r){return e.set(_assertClassBrand(e,t),r),r}function _assertClassBrand(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function _callSuper(e,t,r){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,r||[],_getPrototypeOf(e).constructor):t.apply(e,r))}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function e(){return!!t})()}function _createForOfIteratorHelper(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=_unsupportedIterableToArray(t))||e){r&&(t=r);var n=0,i=function e(){};return{s:i,n:function e(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,u=!1;return{s:function e(){r=r.call(t)},n:function e(){var t=r.next();return o=t.done,t},e:function e(t){u=!0,a=t},f:function e(){try{o||null==r["return"]||r["return"]()}finally{if(u)throw a}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1?t-1:0),n=1;n0&&arguments[0]!==undefined?arguments[0]:null;var t=user_env&&user_env.get("DEBUG",{throwError:false});if(e===null){return t===true}return(t===null||t===void 0?void 0:t.valueOf())===e.valueOf()}function num_mnemicic_re(e){return e?"(?:#".concat(e,"(?:#[ie])?|#[ie]#").concat(e,")"):"(?:#[ie])?"}function gen_rational_re(e,t){return"".concat(num_mnemicic_re(e),"[+-]?").concat(t,"+/").concat(t,"+")}function gen_complex_re(e,t){return"".concat(num_mnemicic_re(e),"(?:[+-]?(?:").concat(t,"+/").concat(t,"+|nan.0|inf.0|").concat(t,"+))?(?:[+-]i|[+-]?(?:").concat(t,"+/").concat(t,"+|").concat(t,"+|nan.0|inf.0)i)(?=[()[\\]\\s]|$)")}function gen_integer_re(e,t){return"".concat(num_mnemicic_re(e),"[+-]?").concat(t,"+")}var re_re=/^#\/((?:\\\/|[^/]|\[[^\]]*\/[^\]]*\])+)\/([gimyus]*)$/;var float_stre="(?:[-+]?(?:[0-9]+(?:[eE][-+]?[0-9]+)|(?:\\.[0-9]+|[0-9]+\\.[0-9]+)(?:[eE][-+]?[0-9]+)?)|[0-9]+\\.)";var complex_float_stre="(?:#[ie])?(?:[+-]?(?:[0-9][0-9_]*/[0-9][0-9_]*|nan.0|inf.0|".concat(float_stre,"|[+-]?[0-9]+))?(?:").concat(float_stre,"|[+-](?:[0-9]+/[0-9]+|[0-9]+|nan.0|inf.0))i");var float_re=new RegExp("^(#[ie])?".concat(float_stre,"$"),"i");function make_complex_match_re(e,t){var r=e==="x"?"(?!\\+|".concat(t,")"):"(?!\\.|".concat(t,")");var n="";if(e===""){n="(?:[-+]?(?:[0-9]+(?:[eE][-+]?[0-9]+)|(?:\\.[0-9]+|[0-9]+\\.[0-9]+(?![0-9]))(?:[eE][-+]?[0-9]+)?))"}return new RegExp("^((?:(?:".concat(n,"|[-+]?inf.0|[-+]?nan.0|[+-]?").concat(t,"+/").concat(t,"+(?!").concat(t,")|[+-]?").concat(t,"+)").concat(r,")?)(").concat(n,"|[-+]?inf.0|[-+]?nan.0|[+-]?").concat(t,"+/").concat(t,"+|[+-]?").concat(t,"+|[+-])i$"),"i")}var complex_list_re=function(){var a={};[[10,"","[0-9]"],[16,"x","[0-9a-fA-F]"],[8,"o","[0-7]"],[2,"b","[01]"]].forEach(function(e){var t=_slicedToArray(e,3),r=t[0],n=t[1],i=t[2];a[r]=make_complex_match_re(n,i)});return a}();var characters={alarm:"",backspace:"\b",delete:"",escape:"",newline:"\n",null:"\0",return:"\r",space:" ",tab:"\t",dle:"",soh:"",dc1:"",stx:"",dc2:"",etx:"",dc3:"",eot:"",dc4:"",enq:"",nak:"",ack:"",syn:"",bel:"",etb:"",bs:"\b",can:"",ht:"\t",em:"",lf:"\n",sub:"",vt:"\v",esc:"",ff:"\f",fs:"",cr:"\r",gs:"",so:"",rs:"",si:"",us:"",del:""};function ucs2decode(e){var t=[];var r=0;var n=e.length;while(r=55296&&i<=56319&&r1&&arguments[1]!==undefined?arguments[1]:10;var r=num_pre_parse(e);var n=r.number.split("/");var i=LRational({num:LNumber([n[0],r.radix||t]),denom:LNumber([n[1],r.radix||t])});if(r.inexact){return i.valueOf()}else{return i}}function parse_integer(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;var r=num_pre_parse(e);if(r.inexact){return LFloat(parseInt(r.number,r.radix||t))}return LNumber([r.number,r.radix||t])}function parse_character(e){var t=e.match(/#\\x([0-9a-f]+)$/i);var r;if(t){var n=parseInt(t[1],16);r=String.fromCodePoint(n)}else{t=e.match(/#\\([\s\S]+)$/);if(t){r=t[1]}}if(r){return LCharacter(r)}throw new Error("Parse: invalid character")}function parse_complex(e){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;function t(e){var t;if(e==="+"){t=LNumber(1)}else if(e==="-"){t=LNumber(-1)}else if(e.match(int_bare_re)){t=LNumber([e,i])}else if(e.match(rational_bare_re)){var r=e.split("/");t=LRational({num:LNumber([r[0],i]),denom:LNumber([r[1],i])})}else if(e.match(float_re)){var n=parse_float(e);if(a.exact){return n.toRational()}return n}else if(e.match(/nan.0$/)){return LNumber(NaN)}else if(e.match(/inf.0$/)){if(e[0]==="-"){return LNumber(Number.NEGATIVE_INFINITY)}return LNumber(Number.POSITIVE_INFINITY)}else{throw new Error("Internal Parser Error")}if(a.inexact){return LFloat(t.valueOf())}return t}var a=num_pre_parse(e);i=a.radix||i;var r;var n=a.number.match(complex_bare_match_re);if(i!==10&&n){r=n}else{r=a.number.match(complex_list_re[i])}var o,u;u=t(r[2]);if(r[1]){o=t(r[1])}else if(u instanceof LFloat){o=LFloat(0)}else{o=LNumber(0)}if(u.cmp(0)===0&&u.__type__==="bigint"){return o}return LComplex({im:u,re:o})}function is_int(e){return parseInt(e.toString(),10)===e}function parse_big_int(e){var t=e.match(/^(([-+]?[0-9]*)(?:\.([0-9]+))?)e([-+]?[0-9]+)/i);if(t){var r=parseInt(t[4],10);var n;var i=t[1].replace(/[-+]?([0-9]*)\..+$/,"$1").length;var a=t[3]&&t[3].length;if(i0&&(t.exact||!t.number.match(/\./))){return LNumber(a).mul(u)}}}r=LFloat(r);if(t.exact){return r.toRational()}return r}function parse_string(e){e=e.replace(/\\x([0-9a-f]+);/gi,function(e,t){return"\\u"+t.padStart(4,"0")}).replace(/\n/g,"\\n");var t=e.match(/(\\*)(\\x[0-9A-F])/i);if(t&&t[1].length%2===0){throw new Error("Invalid string literal, unclosed ".concat(t[2]))}try{var r=LString(JSON.parse(e));r.freeze();return r}catch(e){var n=e.message.replace(/in JSON /,"").replace(/.*Error: /,"");throw new Error("Invalid string literal: ".concat(n))}}function parse_symbol(e){e.match(/^name/);var t=/(^|.)\|/g;if(e.match(t)){e=e.split("|").filter(Boolean).reduce(function(e,t){var r="";if(t.match(/^\\+$/)){if(t.length>1){var n=Math.floor(t.length/2);r="\\".repeat(n)}if(t.length%2!==0){r+="|"}}else{r=t}return e+r});var r={t:"\t",r:"\r",n:"\n"};e=e.replace(/\\(x[^;]+);/g,function(e,t){return String.fromCharCode(parseInt("0"+t,16))}).replace(/\\([trn])/g,function(e,t){return r[t]})}return new LSymbol(e)}function parse_argument(e){if(constants.hasOwnProperty(e)){return constants[e]}if(e.match(/^"[\s\S]*"$/)){return parse_string(e)}else if(e[0]==="#"){var t=e.match(re_re);if(t){return new RegExp(t[1],t[2])}else if(e.match(char_re)){return parse_character(e)}var r=e.match(/#\\(.+)/);if(r&&ucs2decode(r[1]).length===1){return parse_character(e)}}if(e.match(/[0-9a-f]|[+-]i/i)){if(e.match(int_re)){return parse_integer(e)}else if(e.match(float_re)){return parse_float(e)}else if(e.match(rational_re)){return parse_rational(e)}else if(e.match(complex_re)){return parse_complex(e)}}if(e.match(/^#[iexobd]/)){throw new Error("Invalid numeric constant: "+e)}return parse_symbol(e)}function is_atom_string(e){return!(["(",")","[","]"].includes(e)||specials.names().includes(e))}function is_symbol_string(e){return is_atom_string(e)&&!(e.match(re_re)||e.match(/^"[\s\S]*"$/)||e.match(int_re)||e.match(float_re)||e.match(complex_re)||e.match(rational_re)||e.match(char_re)||["#t","#f","nil"].includes(e))}var string_re=/"(?:\\[\S\s]|[^"])*"?/g;function escape_regex(e){if(typeof e==="string"){var t=/([-\\^$[\]()+{}?*.|])/g;return e.replace(t,"\\$1")}return e}function Stack(){this.data=[]}Stack.prototype.push=function(e){this.data.push(e)};Stack.prototype.top=function(){return this.data[this.data.length-1]};Stack.prototype.pop=function(){return this.data.pop()};Stack.prototype.is_empty=function(){return!this.data.length};function tokens(e){if(e instanceof LString){e=e.valueOf()}var t=new Lexer(e,{whitespace:true});var r=[];while(true){var n=t.peek(true);if(n===eof){break}r.push(n);t.skip()}return r}function multiline_formatter(e){var t=e.token,r=_objectWithoutProperties(e,_excluded);if(t.match(/^"[\s\S]*"$/)&&t.match(/\n/)){var n=new RegExp("^ {1,"+(e.col+1)+"}","mg");t=t.replace(n,"")}return _objectSpread({token:t},r)}function Thunk(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};this.fn=e;this.cont=t}Thunk.prototype.toString=function(){return"#"};function trampoline(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r1&&arguments[1]!==undefined?arguments[1]:false;if(e instanceof LString){e=e.toString()}if(t){return tokens(e)}else{var r=tokens(e).map(function(e){if(e.token==="#\\ "||e.token=="#\\\n"){return e.token}return e.token.trim()}).filter(function(e){return e&&!e.match(/^;/)&&!e.match(/^#\|[\s\S]*\|#$/)});return strip_s_comments(r)}}function strip_s_comments(e){var t=0;var r=null;var n=[];for(var i=0;i0&&arguments[0]!==undefined?arguments[0]:null;if(e instanceof LSymbol){if(e.is_gensym()){return e}e=e.valueOf()}if(is_gensym(e)){return LSymbol(e)}if(e!==null){return r(e,Symbol("#:".concat(e)))}t++;return r(t,Symbol("#:g".concat(t)))}}();function hygienic_begin(e,t){var r=global_env.get("begin");var n=gensym("begin");e.forEach(function(e){e.set(n,r)});return new Pair(n,t)}function QuotedPromise(e){var r=this;var n={pending:true,rejected:false,fulfilled:false,reason:undefined,type:undefined};e=e.then(function(e){n.type=type(e);n.fulfilled=true;n.pending=false;return e});read_only(this,"_promise",e,{hidden:true});if(is_function(e["catch"])){e=e["catch"](function(e){n.rejected=true;n.pending=false;n.reason=e})}Object.keys(n).forEach(function(t){Object.defineProperty(r,"__".concat(t,"__"),{enumerable:true,get:function e(){return n[t]}})});read_only(this,"__promise__",e);this.then=false}QuotedPromise.prototype.then=function(e){return new QuotedPromise(this.valueOf().then(e))};QuotedPromise.prototype["catch"]=function(e){return new QuotedPromise(this.valueOf()["catch"](e))};QuotedPromise.prototype.valueOf=function(){if(!this._promise){throw new Error("QuotedPromise: invalid promise created")}return this._promise};QuotedPromise.prototype.toString=function(){if(this.__pending__){return QuotedPromise.pending_str}if(this.__rejected__){return QuotedPromise.rejected_str}return"#")};QuotedPromise.pending_str="#";QuotedPromise.rejected_str="#";function promise_all(e){if(Array.isArray(e)){return Promise.all(escape_quoted_promises(e)).then(unescape_quoted_promises)}return e}function escape_quoted_promises(e){var t=new Array(e.length),r=e.length;while(r--){var n=e[r];if(n instanceof QuotedPromise){t[r]=new Value(n)}else{t[r]=n}}return t}function unescape_quoted_promises(e){var t=new Array(e.length),r=e.length;while(r--){var n=e[r];if(n instanceof Value){t[r]=n.valueOf()}else{t[r]=n}}return t}var specials={LITERAL:Symbol["for"]("literal"),SPLICE:Symbol["for"]("splice"),SYMBOL:Symbol["for"]("symbol"),names:function e(){return Object.keys(this.__list__)},type:function e(t){try{return this.get(t).type}catch(e){console.log({name:t});console.log(e);return null}},get:function e(t){return this.__list__[t]},off:function e(t){var r=this;var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(Array.isArray(t)){t.forEach(function(e){return r.off(e,n)})}else if(n===null){delete this.__events__[t]}else{this.__events__=this.__events__.filter(function(e){return e!==n})}},on:function e(t,r){var n=this;if(Array.isArray(t)){t.forEach(function(e){return n.on(e,r)})}else if(!this.__events__[t]){this.__events__[t]=[r]}else{this.__events__[t].push(r)}},trigger:function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i",new LSymbol("quote-promise"),specials.LITERAL]];var builtins=defined_specials.map(function(e){return e[0]});Object.freeze(builtins);Object.defineProperty(specials,"__builtins__",{writable:false,value:builtins});defined_specials.forEach(function(e){var t=_slicedToArray(e,3),r=t[0],n=t[1],i=t[2];specials.append(r,n,i)});var Lexer=function(){function v(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.whitespace,i=n===void 0?false:n;_classCallCheck(this,v);read_only(this,"__input__",e.replace(/\r/g,""));var a={};["_i","_whitespace","_col","_newline","_line","_state","_next","_token","_prev_char"].forEach(function(r){Object.defineProperty(t,r,{configurable:false,enumerable:false,get:function e(){return a[r]},set:function e(t){a[r]=t}})});this._whitespace=i;this._i=this._line=this._col=this._newline=0;this._state=this._next=this._token=null;this._prev_char=""}return _createClass(v,[{key:"get",value:function e(t){return this.__internal[t]}},{key:"set",value:function e(t,r){this.__internal[t]=r}},{key:"token",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(t){var r=this._line;if(this._whitespace&&this._token==="\n"){--r}return{token:this._token,col:this._col,offset:this._i,line:r}}return this._token}},{key:"peek",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this._i>=this.__input__.length){return eof}if(this._token){read_only(this,"__token__",this.token(true));return this.token(t)}var r=this.next_token();if(r){this._token=this.__input__.substring(this._i,this._next);if(!this.__token__){read_only(this,"__token__",this.token(true))}return this.token(t)}return eof}},{key:"skip",value:function e(){if(this._next!==null){this._token=null;this._i=this._next}}},{key:"read_line",value:function e(){var t=this.__input__.length;if(this._i>=t){return eof}for(var r=this._i;r=r){return eof}if(t+this._i>=r){return this.read_rest()}var n=this._i+t;var i=this.__input__.substring(this._i,n);var a=i.match(/\n/g);if(a){this._line+=a.length}this._i=n;return i}},{key:"peek_char",value:function e(){if(this._i>=this.__input__.length){return eof}return LCharacter(this.__input__[this._i])}},{key:"read_char",value:function e(){var t=this.peek_char();this.skip_char();return t}},{key:"skip_char",value:function e(){if(this._i1&&arguments[1]!==undefined?arguments[1]:{},n=r.prev_char,i=r["char"],a=r.next_char;var o=_slicedToArray(t,4),u=o[0],s=o[1],c=o[2],l=o[3];if(t.length!==5){throw new Error("Lexer: Invalid rule of length ".concat(t.length))}if(is_string(u)){if(u!==i){return false}}else if(!i.match(u)){return false}if(!match_or_null(s,n)){return false}if(!match_or_null(c,a)){return false}if(l!==this._state){return false}return true}},{key:"next_token",value:function e(){if(this._i>=this.__input__.length){return false}var t=true;e:for(var r=this._i,n=this.__input__.length;r2&&arguments[2]!==undefined?arguments[2]:null;var i=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;if(t.length===0){throw new Error("Lexer: invalid literal rule")}if(t.length===1){return[[t,n,i,null,null]]}var a=[];for(var o=0,u=t.length;o0&&arguments[0]!==undefined?arguments[0]:{},t=e.env,r=e.meta,n=r===void 0?false:r,i=e.formatter,a=i===void 0?multiline_formatter:i;_classCallCheck(this,o);read_only(this,"_formatter",a,{hidden:true});read_only(this,"__env__",t);read_only(this,"_meta",n,{hidden:true});read_only(this,"_refs",[],{hidden:true});read_only(this,"_state",{parentheses:0,fold_case:false},{hidden:true})}return _createClass(o,[{key:"_with_syntax_scope",value:function e(t){var r=get_internal(this.__env__);var n=r.get("stdin");global_env.set("lips",_objectSpread(_objectSpread({},lips),{},{__parser__:this}));r.set("stdin",new ParserInputPort(this,this.__env__));var i=function e(){global_env.set("lips",lips);r.set("stdin",n)};return unpromise(t(),function(e){i();return e},i)}},{key:"parse",value:function e(t){if(t instanceof LString){t=t.toString()}read_only(this,"__lexer__",new Lexer(t))}},{key:"resolve",value:function e(t){return this.__env__&&this.__env__.get(t,{throwError:false})}},{key:"peek",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=this.__lexer__.peek(true);if(!(r===eof)){t.next=4;break}return t.abrupt("return",eof);case 4:if(!this.is_comment(r.token)){t.next=7;break}this.skip();return t.abrupt("continue",0);case 7:if(!is_directive(r.token)){t.next=11;break}this.skip();if(r.token==="#!fold-case"){this._state.fold_case=true}else if(r.token==="#!no-fold-case"){this._state.fold_case=false}return t.abrupt("continue",0);case 11:if(!(r.token==="#;")){t.next=18;break}this.skip();if(!(this.__lexer__.peek()===eof)){t.next=15;break}throw new Error("Lexer: syntax error eof found after comment");case 15:t.next=17;return this._read_object();case 17:return t.abrupt("continue",0);case 18:return t.abrupt("break",21);case 21:r=this._formatter(r);if(this._state.fold_case){r.token=foldcase_string(r.token)}if(!this._meta){t.next=25;break}return t.abrupt("return",r);case 25:return t.abrupt("return",r.token);case 26:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"reset",value:function e(){this._refs.length=0}},{key:"skip",value:function e(){this.__lexer__.skip()}},{key:"read",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.peek();case 2:r=t.sent;this.skip();return t.abrupt("return",r);case 5:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"match_datum_label",value:function e(t){var r=t.match(/^#([0-9]+)=$/);return r&&r[1]}},{key:"match_datum_ref",value:function e(t){var r=t.match(/^#([0-9]+)#$/);return r&&r[1]}},{key:"is_open",value:function e(t){return["(","["].includes(t)}},{key:"is_close",value:function e(t){return[")","]"].includes(t)}},{key:"read_list",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r,n,i,a,o,u;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=_nil,n=r;case 1:t.next=4;return this.peek();case 4:a=t.sent;if(!(a===eof)){t.next=7;break}return t.abrupt("break",31);case 7:if(!this.is_close(a)){t.next=11;break}--this._state.parentheses;this.skip();return t.abrupt("break",31);case 11:if(!(a==="."&&!is_nil(r))){t.next=19;break}this.skip();t.next=15;return this._read_object();case 15:n.cdr=t.sent;i=true;t.next=29;break;case 19:if(!i){t.next=23;break}throw new Error("Parser: syntax error more than one element after dot");case 23:t.next=25;return this._read_object();case 25:o=t.sent;u=new Pair(o,_nil);if(is_nil(r)){r=u}else{n.cdr=u}n=u;case 29:t.next=1;break;case 31:return t.abrupt("return",r);case 32:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"read_value",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.read();case 2:r=t.sent;if(!(r===eof)){t.next=5;break}throw new Error("Parser: Expected token eof found");case 5:return t.abrupt("return",parse_argument(r));case 6:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"is_comment",value:function e(t){return t.match(/^;/)||t.match(/^#\|/)&&t.match(/\|#$/)}},{key:"evaluate",value:function e(t){return _evaluate(t,{env:this.__env__,error:function e(t){throw t}})}},{key:"read_object",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:this.reset();t.next=3;return this._read_object();case 3:r=t.sent;if(r instanceof DatumReference){r=r.valueOf()}if(!this._refs.length){t.next=7;break}return t.abrupt("return",unpromise(this._resolve_object(r),function(e){if(is_pair(e)){e.mark_cycles()}return e}));case 7:return t.abrupt("return",r);case 8:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"balanced",value:function e(){return this._state.parentheses===0}},{key:"ballancing_error",value:function e(t,r){var n=this._state.parentheses;var i;if(n<0){i=new Error("Parser: unexpected parenthesis");i.__code__=[r.toString()+")"]}else{i=new Error("Parser: expected parenthesis but eof found");var a=new RegExp("\\){".concat(n,"}$"));i.__code__=[t.toString().replace(a,"")]}throw i}},{key:"_resolve_object",value:function(){var t=_asyncToGenerator(_regeneratorRuntime.mark(function e(r){var n=this;var i;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!Array.isArray(r)){t.next=2;break}return t.abrupt("return",r.map(function(e){return n._resolve_object(e)}));case 2:if(!is_plain_object(r)){t.next=6;break}i={};Object.keys(r).forEach(function(e){i[e]=n._resolve_object(r[e])});return t.abrupt("return",i);case 6:if(!is_pair(r)){t.next=8;break}return t.abrupt("return",this._resolve_pair(r));case 8:return t.abrupt("return",r);case 9:case"end":return t.stop()}},e,this)}));function e(e){return t.apply(this,arguments)}return e}()},{key:"_resolve_pair",value:function(){var t=_asyncToGenerator(_regeneratorRuntime.mark(function e(r){return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!is_pair(r)){t.next=15;break}if(!(r.car instanceof DatumReference)){t.next=7;break}t.next=4;return r.car.valueOf();case 4:r.car=t.sent;t.next=8;break;case 7:this._resolve_pair(r.car);case 8:if(!(r.cdr instanceof DatumReference)){t.next=14;break}t.next=11;return r.cdr.valueOf();case 11:r.cdr=t.sent;t.next=15;break;case 14:this._resolve_pair(r.cdr);case 15:return t.abrupt("return",r);case 16:case"end":return t.stop()}},e,this)}));function e(e){return t.apply(this,arguments)}return e}()},{key:"_read_object",value:function(){var e=_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r=this;var n,i,a,o,u,s,c,l,f,_,p,d;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.peek();case 2:n=t.sent;if(!(n===eof)){t.next=5;break}return t.abrupt("return",n);case 5:if(!is_special(n)){t.next=51;break}i=specials.get(n);a=is_builtin(n);this.skip();s=is_symbol_extension(n);t.t0=this;t.next=13;return this.peek();case 13:t.t1=t.sent;c=t.t0.is_close.call(t.t0,t.t1);if(!s){t.next=19;break}t.t2=undefined;t.next=22;break;case 19:t.next=21;return this._read_object();case 21:t.t2=t.sent;case 22:l=t.t2;if(!(l===eof)){t.next=25;break}throw new Unterminated("Expecting expression eof found");case 25:if(a){t.next=32;break}u=this.__env__.get(i.symbol);if(!(typeof u==="function")){t.next=32;break}if(is_literal(n)){f=[l]}else if(is_nil(l)){f=[]}else if(is_pair(l)){f=l.to_array(false)}if(!(f||s)){t.next=31;break}return t.abrupt("return",this._with_syntax_scope(function(){return call_function(u,s?[]:f,{env:r.__env__,dynamic_env:r.__env__,use_dynamic:false})}));case 31:throw new Error("Parse Error: Invalid parser extension "+"invocation ".concat(i.symbol));case 32:if(!is_literal(n)){t.next=38;break}if(!c){t.next=35;break}throw new Error("Parse Error: expecting datum");case 35:o=new Pair(i.symbol,new Pair(l,_nil));t.next=39;break;case 38:o=new Pair(i.symbol,l);case 39:if(!a){t.next=41;break}return t.abrupt("return",o);case 41:if(!(u instanceof Macro)){t.next=50;break}t.next=44;return this._with_syntax_scope(function(){return r.evaluate(o)});case 44:_=t.sent;if(!(is_pair(_)||_ instanceof LSymbol)){t.next=47;break}return t.abrupt("return",Pair.fromArray([LSymbol("quote"),_]));case 47:return t.abrupt("return",_);case 50:throw new Error("Parse Error: invalid parser extension: "+i.symbol);case 51:p=this.match_datum_ref(n);if(!(p!==null)){t.next=57;break}this.skip();if(!this._refs[p]){t.next=56;break}return t.abrupt("return",new DatumReference(p,this._refs[p]));case 56:throw new Error("Parse Error: invalid datum label #".concat(p,"#"));case 57:d=this.match_datum_label(n);if(!(d!==null)){t.next=64;break}this.skip();this._refs[d]=this._read_object();return t.abrupt("return",this._refs[d]);case 64:if(!this.is_close(n)){t.next=69;break}--this._state.parentheses;this.skip();t.next=76;break;case 69:if(!this.is_open(n)){t.next=75;break}++this._state.parentheses;this.skip();return t.abrupt("return",this.read_list());case 75:return t.abrupt("return",this.read_value());case 76:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()}])}();var Unterminated=function(e){function t(){_classCallCheck(this,t);return _callSuper(this,t,arguments)}_inherits(t,e);return _createClass(t)}(_wrapNativeSuper(Error));Parser.Unterminated=Unterminated;var DatumReference=function(){function r(e,t){_classCallCheck(this,r);this.name=e;this.data=t}return _createClass(r,[{key:"valueOf",value:function e(){return this.data}}])}();function _parse(e,t){return _parse2.apply(this,arguments)}function _parse2(){_parse2=_wrapAsyncGenerator(_regeneratorRuntime.mark(function e(r,n){var i,a,o;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!n){if(global_env){n=global_env.get("**interaction-environment**",{throwError:false})}else{n=user_env}}if(r instanceof Parser){i=r}else{i=new Parser({env:n});i.parse(r)}case 2:t.next=5;return _awaitAsyncGenerator(i.read_object());case 5:o=t.sent;if(!i.balanced()){i.ballancing_error(o,a)}if(!(o===eof)){t.next=9;break}return t.abrupt("break",14);case 9:a=o;t.next=12;return o;case 12:t.next=2;break;case 14:case"end":return t.stop()}},e)}));return _parse2.apply(this,arguments)}function unpromise(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(e){return e};var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(is_promise(e)){var n=e.then(t);if(r===null){return n}else{return n["catch"](r)}}if(e instanceof Array){return unpromise_array(e,t,r)}if(is_plain_object(e)){return unpromise_object(e,t,r)}return t(e)}function unpromise_array(t,r,e){if(t.find(is_promise)){return unpromise(promise_all(t),function(e){if(Object.isFrozen(t)){Object.freeze(e)}return r(e)},e)}return r(t)}function unpromise_object(t,e,r){var i=Object.keys(t);var n=[],a=[];var o=i.length;while(o--){var u=i[o];var s=t[u];n[o]=s;if(is_promise(s)){a.push(s)}}if(a.length){return unpromise(promise_all(n),function(e){var n={};e.forEach(function(e,t){var r=i[t];n[r]=e});if(Object.isFrozen(t)){Object.freeze(n)}return n},r)}return e(t)}function read_only(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{},i=n.hidden,a=i===void 0?false:i;Object.defineProperty(e,t,{value:r,configurable:true,enumerable:!a})}function uniterate_async(e){return _uniterate_async.apply(this,arguments)}function _uniterate_async(){_uniterate_async=_asyncToGenerator(_regeneratorRuntime.mark(function e(r){var n,i,a,o,u,s,c;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:n=[];i=false;a=false;t.prev=3;u=_asyncIterator(r);case 5:t.next=7;return u.next();case 7:if(!(i=!(s=t.sent).done)){t.next=13;break}c=s.value;n.push(c);case 10:i=false;t.next=5;break;case 13:t.next=19;break;case 15:t.prev=15;t.t0=t["catch"](3);a=true;o=t.t0;case 19:t.prev=19;t.prev=20;if(!(i&&u["return"]!=null)){t.next=24;break}t.next=24;return u["return"]();case 24:t.prev=24;if(!a){t.next=27;break}throw o;case 27:return t.finish(24);case 28:return t.finish(19);case 29:return t.abrupt("return",n);case 30:case"end":return t.stop()}},e,null,[[3,15,19,29],[20,,24,28]])}));return _uniterate_async.apply(this,arguments)}function matcher(e,t){if(t instanceof RegExp){return function(e){return String(e).match(t)}}else if(is_function(t)){return t}throw new Error("Invalid matcher")}function doc(e,t,r,n){if(typeof e!=="string"){t=arguments[0];r=arguments[1];n=arguments[2];e=null}if(r){if(n){t.__doc__=r}else{t.__doc__=trim_lines(r)}}if(e){t.__name__=e}else if(t.name&&!is_lambda(t)){t.__name__=t.name}return t}function trim_lines(e){return e.split("\n").map(function(e){return e.trim()}).join("\n")}function previousSexp(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;var r=e.length;if(t<=0){throw Error("previousSexp: Invalid argument sexp = ".concat(t))}e:while(t--&&r>=0){var n=1;while(n>0){var i=e[--r];if(!i){break e}if(i==="("||i.token==="("){n--}else if(i===")"||i.token===")"){n++}}r--}return e.slice(r+1)}function lineIndent(e){if(!e||!e.length){return 0}var t=e.length;if(e[t-1].token==="\n"){return 0}while(--t){if(e[t].token==="\n"){var r=(e[t+1]||{}).token;if(r){return r.length}}}return 0}function match(e,t){return l(e,t)===t.length;function l(r,n){function e(e,t){var r=_createForOfIteratorHelper(e),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;var a=l(i,t);if(a!==-1){return a}}}catch(e){r.e(e)}finally{r.f()}return-1}function t(){return r[a]===Symbol["for"]("symbol")&&!is_symbol_string(n[u])}function i(){var e=r[a+1];var t=n[u+1];if(e!==undefined&&t!==undefined){return l([e],[t])}}var a=0;var o={};for(var u=0;u0){continue}}else if(t()){return-1}}else if(r[a]instanceof Array){var c=l(r[a],n.slice(u));if(c===-1||c+u>n.length){return-1}u+=c-1;a++;continue}else{return-1}a++}if(r.length!==a){return-1}return n.length}}function Formatter(e){this.__code__=e.replace(/\r/g,"")}Formatter.defaults={offset:0,indent:2,exceptions:{specials:[/^(?:#:)?(?:define(?:-values|-syntax|-macro|-class|-record-type)?|(?:call-with-(?:input-file|output-file|port))|lambda|let-env|try|catch|when|unless|while|syntax-rules|(let|letrec)(-syntax|\*?-values|\*)?)$/],shift:{1:["&","#"]}}};Formatter.match=match;Formatter.prototype._options=function e(t){var r=Formatter.defaults;if(typeof t==="undefined"){return Object.assign({},r)}var n=t&&t.exceptions||{};var i=n.specials||[];var a=n.shift||{1:[]};return _objectSpread(_objectSpread(_objectSpread({},r),t),{},{exceptions:{specials:[].concat(_toConsumableArray(r.exceptions.specials),_toConsumableArray(i)),shift:_objectSpread(_objectSpread({},a),{},{1:[].concat(_toConsumableArray(r.exceptions.shift[1]),_toConsumableArray(a[1]))})}})};Formatter.prototype.indent=function e(t){var r=tokenize(this.__code__,true);return this._indent(r,t)};Formatter.exception_shift=function(a,e){function t(e){if(!e.length){return false}if(e.indexOf(a)!==-1){return true}else{var t=e.filter(function(e){return e instanceof RegExp});if(!t.length){return false}var r=_createForOfIteratorHelper(t),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;if(a.match(i)){return true}}}catch(e){r.e(e)}finally{r.f()}}return false}if(t(e.exceptions.specials)){return e.indent}var r=e.exceptions.shift;for(var n=0,i=Object.entries(r);n0){n.offset=0}if(a.toString()===t.toString()&&balanced(a)){return n.offset+a[0].col}else if(a.length===1){return n.offset+a[0].col+1}else{var s=-1;if(o){var c=Formatter.exception_shift(o.token,n);if(c!==-1){s=c}}if(s===-1){s=Formatter.exception_shift(a[1].token,n)}if(s!==-1){return n.offset+a[0].col+s}else if(a[0].line3&&a[1].line===a[3].line){if(a[1].token==="("||a[1].token==="["){return n.offset+a[1].col}return n.offset+a[3].col}else if(a[0].line===a[1].line){return n.offset+n.indent+a[0].col}else{var l=a.slice(2);for(var f=0;f")};Ahead.prototype.match=function(e){return e.match(this.pattern)};function Pattern(){for(var e=arguments.length,t=new Array(e),r=0;r")};Formatter.Pattern=Pattern;Formatter.Ahead=Ahead;var p_o=/^[[(]$/;var p_e=/^[\])]$/;var not_p=/[^()[\]]/;var not_close=new Ahead(/[^)\]]/);var glob=Symbol["for"]("*");var sexp_or_atom=new Pattern([p_o,glob,p_e],[not_p],"+");var sexp=new Pattern([p_o,glob,p_e],"+");var symbol=new Pattern([Symbol["for"]("symbol")],"?");var symbols=new Pattern([Symbol["for"]("symbol")],"*");var identifiers=[p_o,symbols,p_e];var let_value=new Pattern([p_o,Symbol["for"]("symbol"),glob,p_e],"+");var syntax_rules=keywords_re("syntax-rules");var def_lambda_re=keywords_re("define","lambda","define-macro","syntax-rules");var non_def=/^(?!.*\b(?:[()[\]]|define(?:-macro)?|let(?:\*|rec|-env|-syntax|)?|lambda|syntax-rules)\b).*$/;var let_re=/^(?:#:)?(let(?:\*|rec|-env|-syntax)?)$/;function keywords_re(){for(var e=arguments.length,t=new Array(e),r=0;r0&&!u[e]){u[e]=previousSexp(o,e)}});var s=_createForOfIteratorHelper(i),c;try{for(s.s();!(c=s.n()).done;){var l=_slicedToArray(c.value,3),f=l[0],_=l[1],p=l[2];_=_.valueOf();var d=_>0?u[_]:o;var h=d.filter(function(e){return e.trim()&&!is_special(e)});var m=r(d);var y=match(f,h);var v=n.slice(a).find(function(e){return e.trim()&&!is_special(e)});if(y&&(p instanceof Ahead&&p.match(v)||!p)){var b=a-m;if(n[b]!=="\n"){if(!n[b].trim()){n[b]="\n"}else{n.splice(b,0,"\n");a++}}a+=m;continue e}}}catch(e){s.e(e)}finally{s.f()}}this.__code__=n.join("");return this};Formatter.prototype._spaces=function(e){return" ".repeat(e)};Formatter.prototype.format=function e(t){var r=this.__code__.replace(/[ \t]*\n[ \t]*/g,"\n ");var n=tokenize(r,true);var i=this._options(t);var a=0;var o=0;for(var u=0;u0){n=Math.floor(t()*r);r--;var i=[e[n],e[r]];e[r]=i[0];e[n]=i[1]}return e}function Nil(){}Nil.prototype.toString=function(){return"()"};Nil.prototype.valueOf=function(){return undefined};Nil.prototype.serialize=function(){return 0};Nil.prototype.to_object=function(){return{}};Nil.prototype.append=function(e){return new Pair(e,_nil)};Nil.prototype.to_array=function(){return[]};var _nil=new Nil;function Pair(e,t){if(typeof this!=="undefined"&&this.constructor!==Pair||typeof this==="undefined"){return new Pair(e,t)}this.car=e;this.cdr=t}function to_array(a,o){return function e(t){typecheck(a,t,["pair","nil"]);if(is_nil(t)){return[]}var r=[];var n=t;while(true){if(is_pair(n)){if(n.have_cycles("cdr")){break}var i=n.car;if(o&&is_pair(i)){i=this.get(a).call(this,i)}r.push(i);n=n.cdr}else if(is_nil(n)){break}else{throw new Error("".concat(a,": can't convert improper list"))}}return r}}Pair.prototype.flatten=function(){return Pair.fromArray(flatten(this.to_array()))};Pair.prototype.length=function(){var e=0;var t=this;while(true){if(!t||is_nil(t)||!is_pair(t)||t.have_cycles("cdr")){break}e++;t=t.cdr}return e};Pair.match=function(e,t){if(e instanceof LSymbol){return LSymbol.is(e,t)}else if(is_pair(e)){return Pair.match(e.car,t)||Pair.match(e.cdr,t)}else if(Array.isArray(e)){return e.some(function(e){return Pair.match(e,t)})}else if(is_plain_object(e)){return Object.values(e).some(function(e){return Pair.match(e,t)})}return false};Pair.prototype.find=function(e){return Pair.match(this,e)};Pair.prototype.clone=function(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var n=new Map;function i(e){if(is_pair(e)){if(n.has(e)){return n.get(e)}var t=new Pair;n.set(e,t);if(r){t.car=i(e.car)}else{t.car=e.car}t.cdr=i(e.cdr);t[__cycles__]=e[__cycles__];return t}return e}return i(this)};Pair.prototype.last_pair=function(){var e=this;while(true){if(!is_pair(e.cdr)){return e}if(e.have_cycles("cdr")){break}e=e.cdr}};Pair.prototype.to_array=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var t=[];if(is_pair(this.car)){if(e){t.push(this.car.to_array())}else{t.push(this.car)}}else{t.push(this.car.valueOf())}if(is_pair(this.cdr)){t=t.concat(this.cdr.to_array(e))}return t};Pair.fromArray=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(is_pair(e)||r&&e instanceof Array&&e[__data__]){return e}if(t===false){var n=_nil;for(var i=e.length;i--;){n=new Pair(e[i],n)}return n}if(e.length&&!(e instanceof Array)){e=_toConsumableArray(e)}var a=_nil;var o=e.length;while(o--){var u=e[o];if(u instanceof Array){u=Pair.fromArray(u,t,r)}else if(typeof u==="string"){u=LString(u)}else if(typeof u==="number"&&!Number.isNaN(u)){u=LNumber(u)}a=new Pair(u,a)}return a};Pair.prototype.to_object=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var t=this;var r={};while(true){if(is_pair(t)&&is_pair(t.car)){var n=t.car;var i=n.car;if(i instanceof LSymbol){i=i.__name__}if(i instanceof LString){i=i.valueOf()}var a=n.cdr;if(is_pair(a)){a=a.to_object(e)}if(is_native(a)){if(!e){a=a.valueOf()}}r[i]=a;t=t.cdr}else{break}}return r};Pair.fromPairs=function(e){return e.reduce(function(e,t){return new Pair(new Pair(new LSymbol(t[0]),t[1]),e)},_nil)};Pair.fromObject=function(t){var e=Object.keys(t).map(function(e){return[e,t[e]]});return Pair.fromPairs(e)};Pair.prototype.reduce=function(e){var t=this;var r=_nil;while(true){if(!is_nil(t)){r=e(r,t.car);t=t.cdr}else{break}}return r};Pair.prototype.reverse=function(){if(this.have_cycles()){throw new Error("You can't reverse list that have cycles")}var e=this;var t=_nil;while(!is_nil(e)){var r=e.cdr;e.cdr=t;t=e;e=r}return t};Pair.prototype.transform=function(n){function i(e){if(is_pair(e)){if(e.replace){delete e.replace;return e}var t=n(e.car);if(is_pair(t)){t=i(t)}var r=n(e.cdr);if(is_pair(r)){r=i(r)}return new Pair(t,r)}return e}return i(this)};Pair.prototype.map=function(e){if(typeof this.car!=="undefined"){return new Pair(e(this.car),is_nil(this.cdr)?_nil:this.cdr.map(e))}else{return _nil}};var repr=new Map;function is_plain_object(e){return e&&_typeof$1(e)==="object"&&e.constructor===Object}var props=Object.getOwnPropertyNames(Array.prototype);var array_methods=[];props.forEach(function(e){array_methods.push(Array[e],Array.prototype[e])});function is_array_method(e){e=unbind(e);return array_methods.includes(e)}function is_lips_function(e){return is_function(e)&&(is_lambda(e)||e.__doc__)}function user_repr(e){var r=e.constructor||Object;var n=is_plain_object(e);var i=is_function(e[Symbol.asyncIterator])||is_function(e[Symbol.iterator]);var a;if(repr.has(r)){a=repr.get(r)}else{repr.forEach(function(e,t){t=unbind(t);if(r===t&&(t===Object&&n&&!i||t!==Object)){a=e}})}return a}var str_mapping=new Map;[[true,"#t"],[false,"#f"],[null,"#null"],[undefined,"#void"]].forEach(function(e){var t=_slicedToArray(e,2),r=t[0],n=t[1];str_mapping.set(r,n)});function symbolize(r){if(r&&_typeof$1(r)==="object"){var n={};var e=Object.getOwnPropertySymbols(r);e.forEach(function(e){var t=e.toString().replace(/Symbol\(([^)]+)\)/,"$1");n[t]=toString(r[e])});var t=Object.getOwnPropertyNames(r);t.forEach(function(e){var t=r[e];if(t&&_typeof$1(t)==="object"&&t.constructor===Object){n[e]=symbolize(t)}else{n[e]=toString(t)}});return n}return r}function get_props(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function has_own_function(e,t){return e.hasOwnProperty(t)&&is_function(e.toString)}function function_to_string(e){if(is_native_function(e)){return"#"}var t=e.prototype&&e.prototype.constructor;if(is_function(t)&&is_lambda(t)){if(e[__class__]&&t.hasOwnProperty("__name__")){var r=t.__name__;if(LString.isString(r)){r=r.toString();return"#")}return"#"}}if(e.hasOwnProperty("__name__")){var n=e.__name__;if(_typeof$1(n)==="symbol"){n=symbol_to_string(n)}if(typeof n==="string"){return"#")}}if(has_own_function(e,"toString")){return e.toString()}else if(e.name&&!is_lambda(e)){return"#")}else{return"#"}}var instances=new Map;[[Error,function(e){return e.message}],[Pair,function(e,t){var r=t.quote,n=t.skip_cycles,i=t.pair_args;if(!n){e.mark_cycles()}return e.toString.apply(e,[r].concat(_toConsumableArray(i)))}],[LCharacter,function(e,t){var r=t.quote;if(r){return e.toString()}return e.valueOf()}],[LString,function(e,t){var r=t.quote;e=e.toString();if(r){return JSON.stringify(e).replace(/\\n/g,"\n")}return e}],[RegExp,function(e){return"#"+e.toString()}]].forEach(function(e){var t=_slicedToArray(e,2),r=t[0],n=t[1];instances.set(r,n)});var native_types=[LSymbol,Macro,Values,InputPort,OutputPort,Environment,QuotedPromise];function toString(e,t,r){if(typeof jQuery!=="undefined"&&e instanceof jQuery.fn.init){return"#"}if(str_mapping.has(e)){return str_mapping.get(e)}if(is_prototype(e)){return"#"}if(e){var n=e.constructor;if(instances.has(n)){for(var i=arguments.length,a=new Array(i>3?i-3:0),o=3;o"}if(e===null){return"null"}if(is_function(e)){if(is_function(e.toString)&&e.hasOwnProperty("toString")){return e.toString().valueOf()}return function_to_string(e)}if(_typeof$1(e)==="object"){var l=e.constructor;if(!l){l=Object}var f;if(typeof l.__class__==="string"){f=l.__class__}else{var _=user_repr(e);if(_){if(is_function(_)){return _(e,t)}else{throw new Error("toString: Invalid repr value")}}f=l.name}if(is_function(e.toString)&&e.hasOwnProperty("toString")){return e.toString().valueOf()}if(type(e)==="instance"){if(is_lambda(l)&&l.__name__){f=l.__name__.valueOf();if(_typeof$1(f)==="symbol"){f=f.toString().replace(/^Symbol\((?:#:)?([^\)]+)\)$/,"$1")}}else if(!is_native_function(l)){f="instance"}}if(is_iterator(e,Symbol.iterator)){if(f){return"#")}return"#"}if(is_iterator(e,Symbol.asyncIterator)){if(f){return"#")}return"#"}if(f!==""){return"#<"+f+">"}return"#"}if(typeof e!=="string"){return e.toString()}return e}Pair.prototype.mark_cycles=function(){mark_cycles(this);return this};Pair.prototype.have_cycles=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(!e){return this.have_cycles("car")||this.have_cycles("cdr")}return!!(this[__cycles__]&&this[__cycles__][e])};Pair.prototype.is_cycle=function(){return is_cycle(this)};function is_cycle(e){if(!is_pair(e)){return false}if(e.have_cycles()){return true}return is_cycle(e.car,fn)||is_cycle(e.cdr,fn)}function mark_cycles(e){var t=[];var i=[];var a=[];function o(e){if(!t.includes(e)){t.push(e)}}function u(e,t,r,n){if(is_pair(r)){if(n.includes(r)){if(!a.includes(r)){a.push(r)}if(!e[__cycles__]){e[__cycles__]={}}e[__cycles__][t]=r;if(!i.includes(e)){i.push(e)}return true}}}var s=trampoline(function e(t,r){if(is_pair(t)){delete t[__ref__];delete t[__cycles__];o(t);r.push(t);var n=u(t,"car",t.car,r);var i=u(t,"cdr",t.cdr,r);if(!n){s(t.car,r.slice())}if(!i){return new Thunk(function(){return e(t.cdr,r.slice())})}}});function r(e,t){if(is_pair(e[__cycles__][t])){var r=n.indexOf(e[__cycles__][t]);e[__cycles__][t]="#".concat(r,"#")}}s(e,[]);var n=t.filter(function(e){return a.includes(e)});n.forEach(function(e,t){e[__ref__]="#".concat(t,"=")});i.forEach(function(e){r(e,"car");r(e,"cdr")})}Pair.prototype.toString=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.nested,n=r===void 0?false:r;var i=[];if(this[__ref__]){i.push(this[__ref__]+"(")}else if(!n){i.push("(")}var a;if(this[__cycles__]&&this[__cycles__].car){a=this[__cycles__].car}else{a=toString(this.car,e,true)}if(a!==undefined){i.push(a)}if(is_pair(this.cdr)){if(this[__cycles__]&&this[__cycles__].cdr){i.push(" . ");i.push(this[__cycles__].cdr)}else{if(this.cdr[__ref__]){i.push(" . ")}else{i.push(" ")}var o=this.cdr.toString(e,{nested:true});i.push(o)}}else if(!is_nil(this.cdr)){i=i.concat([" . ",toString(this.cdr,e,true)])}if(!n||this[__ref__]){i.push(")")}return i.join("")};Pair.prototype.set=function(e,t){this[e]=t;if(is_pair(t)){this.mark_cycles()}};Pair.prototype.append=function(e){if(e instanceof Array){return this.append(Pair.fromArray(e))}var t=this;if(t.car===undefined){if(is_pair(e)){this.car=e.car;this.cdr=e.cdr}else{this.car=e}}else if(!is_nil(e)){while(true){if(is_pair(t)&&!is_nil(t.cdr)){t=t.cdr}else{break}}t.cdr=e}return this};Pair.prototype.serialize=function(){return[this.car,this.cdr]};Pair.prototype[Symbol.iterator]=function(){var r=this;return{next:function e(){var t=r;r=t.cdr;if(is_nil(t)){return{value:undefined,done:true}}else{return{value:t.car,done:false}}}}};function abs(e){return e<0?-e:e}function seq_compare(e,t){var r=_toArray(t),n=r[0],i=r.slice(1);while(i.length>0){var a=i,o=_slicedToArray(a,1),u=o[0];if(!e(n,u)){return false}var s=i;var c=_toArray(s);n=c[0];i=c.slice(1)}return true}function equal(e,t){if(is_function(e)){return is_function(t)&&unbind(e)===unbind(t)}else if(e instanceof LNumber){if(!(t instanceof LNumber)){return false}var r;if(e.__type__===t.__type__){if(e.__type__==="complex"){r=e.__im__.__type__===t.__im__.__type__&&e.__re__.__type__===t.__re__.__type__}else{r=true}if(r&&e.cmp(t)===0){if(e.valueOf()===0){return Object.is(e.valueOf(),t.valueOf())}return true}}return false}else if(typeof e==="number"){if(typeof t!=="number"){return false}if(Number.isNaN(e)){return Number.isNaN(t)}if(e===Number.NEGATIVE_INFINITY){return t===Number.NEGATIVE_INFINITY}if(e===Number.POSITIVE_INFINITY){return t===Number.POSITIVE_INFINITY}return equal(LNumber(e),LNumber(t))}else if(e instanceof LCharacter){if(!(t instanceof LCharacter)){return false}return e.__char__===t.__char__}else{return e===t}}function same_atom(e,t){if(type(e)!==type(t)){return false}if(!is_atom(e)){return false}if(e instanceof RegExp){return e.source===t.source}if(e instanceof LString){return e.valueOf()===t.valueOf()}return equal(e,t)}function is_atom(e){return e instanceof LSymbol||LString.isString(e)||is_nil(e)||e===null||e instanceof LCharacter||e instanceof LNumber||e===true||e===false}var truncate=function(){if(Math.trunc){return Math.trunc}else{return function(e){if(e===0){return 0}else if(e<0){return Math.ceil(e)}else{return Math.floor(e)}}}}();function Macro(e,t,r,n){if(typeof this!=="undefined"&&this.constructor!==Macro||typeof this==="undefined"){return new Macro(e,t)}typecheck("Macro",e,"string",1);typecheck("Macro",t,"function",2);if(r){if(n){this.__doc__=r}else{this.__doc__=trim_lines(r)}}this.__name__=e;this.__fn__=t}Macro.defmacro=function(e,t,r,n){var i=new Macro(e,t,r,n);i.__defmacro__=true;return i};Macro.prototype.invoke=function(e,t,r){var n=t.env,i=_objectWithoutProperties(t,_excluded2);var a=_objectSpread(_objectSpread({},i),{},{macro_expand:r});var o=this.__fn__.call(n,e,a,this.__name__);return o};Macro.prototype.toString=function(){return"#")};var macro="define-macro";var recur_guard=-1e4;function macro_expand(c){return function(){var r=_asyncToGenerator(_regeneratorRuntime.mark(function e(r,v){var a,b,n,i,o,g,w,D,x,L,E,S,u,A,s;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:s=function e(){s=_asyncToGenerator(_regeneratorRuntime.mark(function e(r,n,i){var a,o,u,s,c,l,f,_,p,d,h,m,y;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!(is_pair(r)&&r.car instanceof LSymbol)){t.next=50;break}if(!r[__data__]){t.next=3;break}return t.abrupt("return",r);case 3:a=r.car.valueOf();o=i.get(r.car,{throwError:false});u=g(r.car);s=u||w(o,r)||D(o);if(!(s&&is_pair(r.cdr.car))){t.next=28;break}if(!u){t.next=15;break}b=L(r.cdr.car);t.next=12;return S(r.cdr.car,n);case 12:c=t.sent;t.next=17;break;case 15:b=x(r.cdr.car);c=r.cdr.car;case 17:t.t0=Pair;t.t1=r.car;t.t2=Pair;t.t3=c;t.next=23;return A(r.cdr.cdr,n,i);case 23:t.t4=t.sent;t.t5=new t.t2(t.t3,t.t4);return t.abrupt("return",new t.t0(t.t1,t.t5));case 28:if(!E(a,o)){t.next=50;break}l=o instanceof Syntax?r:r.cdr;t.next=32;return o.invoke(l,_objectSpread(_objectSpread({},v),{},{env:i}),true);case 32:f=t.sent;if(!(o instanceof Syntax)){t.next=41;break}_=f,p=_.expr,d=_.scope;if(!is_pair(p)){t.next=40;break}if(!(n!==-1&&n<=1||n")}return"#"};var SyntaxParameter=_createClass(function e(t){_classCallCheck(this,e);read_only(this,"_syntax",t,{hidden:true});read_only(this._syntax,"_param",true,{hidden:true})});Syntax.Parameter=SyntaxParameter;function extract_patterns(e,t,K,J){var r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};var W={"...":{symbols:{},lists:[]},symbols:{}};var Q=r.expansion,X=r.define;log(K);function Z(t,e){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var n=r.ellipsis,i=n===void 0?false:n,a=r.trailing,I=a===void 0?false:a,o=r.pattern_names,u=o===void 0?[]:o;log({code:e,pattern:t});if(is_atom(t)&&!(t instanceof LSymbol)){return same_atom(t,e)}if(t instanceof LSymbol){var s=t.literal();if(K.includes(s)){if(!LSymbol.is(e,s)&&!LSymbol.is(t,e)){return false}var c=Q.ref(s);return!c||c===X||c===global_env}}if(Array.isArray(t)&&Array.isArray(e)){log("<<< a 1");if(t.length===0&&e.length===0){return true}if(LSymbol.is(t[1],J)){if(t[0]instanceof LSymbol){var l=t[0].valueOf();log("<<< a 2 "+i);if(i){var f=e.length-2;var j=f>0?e.slice(0,f):e;var _=Pair.fromArray(j,false);if(!W["..."].symbols[l]){W["..."].symbols[l]=new Pair(_,_nil)}else{W["..."].symbols[l].append(new Pair(_,_nil))}}else{W["..."].symbols[l]=Pair.fromArray(e,false)}}else if(Array.isArray(t[0])){log("<<< a 3");var R=_toConsumableArray(u);var T=_objectSpread(_objectSpread({},r),{},{pattern_names:R,ellipsis:true});if(!e.every(function(e){return Z(t[0],e,T)})){return false}}if(t.length>2){var p=t.slice(2);return Z(p,e.slice(-p.length),r)}return true}var d=Z(t[0],e[0],r);log({first:d,pattern:t[0],code:e[0]});var h=Z(t.slice(1),e.slice(1),r);log({first:d,rest:h});return d&&h}if(is_pair(t)&&is_pair(t.car)&&is_pair(t.car.cdr)&&LSymbol.is(t.car.cdr.car,J)){log(">> 0");if(is_nil(e)){log({pattern:t});if(t.car.car instanceof LSymbol){var m=t.car.car.valueOf();if(W["..."].symbols[m]){throw new Error("syntax: named ellipsis can only "+"appear onces")}W["..."].symbols[m]=e}}}if(is_pair(t)&&is_pair(t.cdr)&&LSymbol.is(t.cdr.car,J)){log(">> 1 (a)");if(!is_nil(t.cdr.cdr)){if(is_pair(t.cdr.cdr)){log(">> 1 (b)");var $=t.cdr.cdr.length();var y=!is_nil(t.last_pair().cdr);if(!is_pair(e)){return false}var v=e.length();var b=e;var M=y?1:1;while(v-M>$){b=b.cdr;v--}var q=b.cdr;b.cdr=_nil;var V=_objectSpread(_objectSpread({},r),{},{trailing:y});if(!Z(t.cdr.cdr,q,V)){return false}}}if(t.car instanceof LSymbol){var g=t.car.__name__;if(W["..."].symbols[g]&&!u.includes(g)&&!i){throw new Error("syntax: named ellipsis can only appear onces")}log(">> 1 (next)");if(is_nil(e)){log(">> 2");if(i){log("NIL");W["..."].symbols[g]=_nil}else{log("NULL");W["..."].symbols[g]=null}}else if(is_pair(e)&&(is_pair(e.car)||is_nil(e.car))){log(">> 3 "+i);if(i){if(W["..."].symbols[g]){var w=W["..."].symbols[g];if(is_nil(w)){w=new Pair(_nil,new Pair(e,_nil))}else{w=w.append(new Pair(e,_nil))}W["..."].symbols[g]=w}else{W["..."].symbols[g]=new Pair(e,_nil)}}else{log(">> 4");W["..."].symbols[g]=new Pair(e,_nil)}}else{log(">> 6");if(is_pair(e)){log(">> 7 "+i);if(!is_pair(e.cdr)&&!is_nil(e.cdr)){log(">> 7 (b)");if(is_nil(t.cdr.cdr)){return false}else if(!W["..."].symbols[g]){W["..."].symbols[g]=new Pair(e.car,_nil);return Z(t.cdr.cdr,e.cdr,r)}}var D=e.last_pair();log({last_pair:D});if(!is_nil(D.cdr)){log(">> 7 (c)");if(is_nil(t.cdr.cdr)){return false}else{log(">> 7 (d)");var x=e.clone();x.last_pair().cdr=_nil;W["..."].symbols[g]=x;return Z(t.cdr.cdr,D.cdr,r)}}u.push(g);if(!W["..."].symbols[g]){log(">> 7 (e)");W["..."].symbols[g]=new Pair(e,_nil)}else{log(">> 7 (f)");var z=W["..."].symbols[g];W["..."].symbols[g]=z.append(new Pair(e,_nil))}log({IIIIII:W["..."].symbols[g]})}else if(t.car instanceof LSymbol&&is_pair(t.cdr)&&LSymbol.is(t.cdr.car,J)){log(">> 8");W["..."].symbols[g]=null;return Z(t.cdr.cdr,e,r)}else{log(">> 9");return false}}return true}else if(is_pair(t.car)){var L=_toConsumableArray(u);if(is_nil(e)){log(">> 10");W["..."].lists.push(_nil);return true}log(">> 11");var E=e;var U=_objectSpread(_objectSpread({},r),{},{pattern_names:L,ellipsis:true});while(is_pair(E)){if(!Z(t.car,E.car,U)){return false}E=E.cdr}return true}if(Array.isArray(t.car)){var L=_toConsumableArray(u);var S=e;var G=_objectSpread(_objectSpread({},r),{},{pattern_names:L,ellipsis:true});while(is_pair(S)){if(!Z(t.car,S.car,G)){return false}S=S.cdr}return true}return false}if(t instanceof LSymbol){if(LSymbol.is(t,J)){throw new Error("syntax: invalid usage of ellipsis")}log(">> 12");var A=t.__name__;if(K.includes(A)){return true}if(i){var F,k;log(W["..."].symbols[A]);(k=(F=W["..."].symbols)[A])!==null&&k!==void 0?k:F[A]=[];W["..."].symbols[A].push(e)}else{W.symbols[A]=e}return true}if(is_pair(t)&&is_pair(e)){log(">> 13");log({a:13,code:e,pattern:t});var C=t.car instanceof LSymbol&&t.cdr instanceof LSymbol;if(I&&C){log(">> 13 (a)");if(!is_nil(e.cdr)){return false}var H=t.car.valueOf();var Y=t.cdr.valueOf();W.symbols[H]=e.car;W.symbols[Y]=_nil;return true}if(is_nil(e.cdr)){log(">> 13 (b)");if(C){if(!Z(t.car,e.car,r)){return false}log(">> 14");var P=t.cdr.valueOf();if(!(P in W.symbols)){W.symbols[P]=_nil}P=t.car.valueOf();if(!(P in W.symbols)){W.symbols[P]=e.car}return true}}log({pattern:t,code:e});if(is_pair(t.cdr)&&is_pair(t.cdr.cdr)&&t.cdr.car instanceof LSymbol&&LSymbol.is(t.cdr.cdr.car,J)&&is_pair(t.cdr.cdr.cdr)&&!LSymbol.is(t.cdr.cdr.cdr.car,J)&&Z(t.car,e.car,r)&&Z(t.cdr.cdr.cdr,e.cdr,_objectSpread(_objectSpread({},r),{},{trailing:true}))){var O=t.cdr.car.__name__;log({pattern:t,code:e,name:O});if(K.includes(O)){return true}W["..."].symbols[O]=null;return true}log("recur");log({pattern:t,code:e});var N=Z(t.car,e.car,r);var B=Z(t.cdr,e.cdr,r);log({$car_code:e.car,$car_pattern:t.car,car:N,$cdr_code:e.cdr,$cdr_pattern:t.cdr,cdr:B});if(N&&B){return true}}else if(is_nil(t)&&(is_nil(e)||e===undefined)){return true}else if(is_pair(t.car)&&LSymbol.is(t.car.car,J)){throw new Error("syntax: invalid usage of ellipsis")}else{return false}}if(Z(e,t)){return W}}function clear_gensyms(e,i){function a(t){if(is_pair(t)){if(!i.length){return t}var e=a(t.car);var r=a(t.cdr);return new Pair(e,r)}else if(t instanceof LSymbol){var n=i.find(function(e){return e.gensym===t});if(n){return LSymbol(n.name)}return t}else{return t}}return a(e)}function transform_syntax(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var O=e.bindings,t=e.expr,N=e.scope,o=e.symbols,l=e.names,B=e.ellipsis;var f={};function u(e){if(e instanceof LSymbol){return true}return["string","symbol"].includes(_typeof$1(e))}function I(e){if(!u(e)){var t=type(e);throw new Error("syntax: internal error, need symbol got ".concat(t))}var r=e.valueOf();if(r===B){throw new Error("syntax: internal error, ellipis not transformed")}var n=_typeof$1(r);if(["string","symbol"].includes(n)){if(r in O.symbols){return O.symbols[r]}else if(n==="string"&&r.match(/\./)){var i=r.split(".");var a=i[0];if(a in O.symbols){return Pair.fromArray([LSymbol("."),O.symbols[a]].concat(i.slice(1).map(function(e){return LString(e)})))}}}if(o.includes(r)){return e}return s(r,e)}function s(e,t){if(!f[e]){var r=N.ref(e);if(_typeof$1(e)==="symbol"&&!r){e=t.literal()}if(f[e]){return f[e]}var n=gensym(e);if(r){var i=N.get(e);N.set(n,i)}else{var a=N.get(e,{throwError:false});if(typeof a!=="undefined"){N.set(n,a)}}l.push({name:e,gensym:n});f[e]=n;if(typeof e==="string"&&e.match(/\./)){var o=e.split(".").filter(Boolean),u=_toArray(o),s=u[0],c=u.slice(1);if(f[s]){hidden_prop(n,"__object__",[f[s]].concat(_toConsumableArray(c)))}}}return f[e]}function j(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:function(){};var i=r.nested;log({bindings:t,expr:e});if(Array.isArray(e)&&!e.length){return e}if(e instanceof LSymbol){var a=e.valueOf();if(is_gensym(e)&&!t[a]);log("[t 1");if(t[a]){if(is_pair(t[a])){var o=t[a],u=o.car,s=o.cdr;if(i){var c=u.car,l=u.cdr;if(!is_nil(l)){n(a,new Pair(l,_nil))}return c}if(!is_nil(s)){n(a,s)}return u}else if(t[a]instanceof Array){n(a,t[a].slice(1));return t[a][0]}}return I(e)}var f=Array.isArray(e);if(is_pair(e)||f){var _=f?e[0]:e.car;var p=f?e[1]:is_pair(e.cdr)&&e.cdr.car;if(_ instanceof LSymbol&&LSymbol.is(p,B)){f?e.slice(2):e.cdr.cdr;log("[t 2");var d=_.valueOf();var h=t[d];if(h===null){return}else if(d in t){log({name:d,binding:t[d]});if(is_pair(h)){log("[t 2 Pair "+i);var m=h.car,y=h.cdr;var v=f?e.slice(2):e.cdr.cdr;if(i){if(!is_nil(y)){log("|| next 1");n(d,y)}if(f&&v.length||!is_nil(v)&&!f){var b=j(v,t,r,n);if(f){return m.concat(b)}else if(is_pair(m)){return m.append(b)}else{log("UNKNOWN")}}return m}else if(is_pair(m)){if(!is_nil(m.cdr)){log("|| next 2");n(d,new Pair(m.cdr,y))}return new Value(m.car)}else if(is_nil(y)){return m}else{var g=e.last_pair();if(g.cdr instanceof LSymbol){log("|| next 3");n(d,h.last_pair());return m}}}else if(h instanceof Array){log("[t 2 Array "+i);if(i){n(d,h.slice(1));return Pair.fromArray(h)}else{var w=h.slice(1);if(w.length){n(d,w)}return h[0]}}else{return h}}}log("[t 3 recur ",e);var D=f?e.slice(1):e.cdr;var x=j(_,t,r,n);var L=j(D,t,r,n);log({head:x,rest:L});if(f){return[x].concat(L)}return new Pair(x,L)}return e}function R(t,r){var e=Object.values(t);var n=Object.getOwnPropertySymbols(t);if(n.length){e.push.apply(e,_toConsumableArray(n.map(function(e){return t[e]})))}return e.length&&e.every(function(e){if(e===null){return!r}return is_pair(e)||is_nil(e)||Array.isArray(e)&&e.length})}function T(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function $(i){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},t=e.disabled;log("traverse>> ",i);var a=Array.isArray(i);if(a&&i.length===0){return i}if(is_pair(i)||a){log(">> 0");var r=a?i[0]:i.car;var n,o;if(a){n=i[1];o=i.slice(2)}else if(is_pair(i.cdr)){n=i.cdr.car;o=i.cdr.cdr}log({first:r,second:n,rest_second:o});if(!t&&is_pair(r)&&LSymbol.is(r.car,B)){return new Pair(r.cdr.car,$(i.cdr))}if(n&&LSymbol.is(n,B)&&!t){log(">> 1");var u=O["..."].symbols;var s=Object.values(u);if(s.length&&s.every(function(e){return e===null})){log(">>> 1 (a)");return $(o,{disabled:t})}var c=T(u);var l=r instanceof LSymbol&&LSymbol.is(o.car,B);if(is_pair(r)||l){log(">>> 1 (b)");if(is_nil(O["..."].lists[0])){if(!l){return $(o,{disabled:t})}log(o);return _nil}var f=r;if(l){log(">>> 1 (c)");f=new Pair(r,new Pair(n,_nil))}log(">> 2");var _;if(c.length){log(">> 2 (a)");var p=_objectSpread({},u);_=a?[]:_nil;var d=function e(){log({bind:p});if(!R(p)){return 1}var n={};var t=function e(t,r){n[t]=r};var r=j(f,p,{nested:true},t);if(r!==undefined){if(r instanceof Value){r.valueOf(),_readOnlyError("car")}if(l){if(a){if(Array.isArray(r)){var i;(i=_).push.apply(i,_toConsumableArray(r))}else{log("ZONK {1}")}}else{if(is_nil(_)){_=r}else{_=_.append(r)}}}else if(a){_.push(r)}else{_=new Pair(r,_)}}p=n};while(true){if(d())break}if(!is_nil(_)&&!l&&!a){_=_.reverse()}if(a){if(o){log({rest_second:o,expr:i});var h=$(o,{disabled:t});return _.concat(h)}return _}if(!is_nil(i.cdr.cdr)&&!LSymbol.is(i.cdr.cdr.car,B)){var m=$(i.cdr.cdr,{disabled:t});return _.append(m)}return _}else{log(">> 3");var y=j(r,u,{nested:true});if(y){if(y instanceof Value){y.valueOf(),_readOnlyError("car")}return new Pair(y,_nil)}return _nil}}else if(r instanceof LSymbol){log(">> 4");if(LSymbol.is(o.car,B)){log(">> 4 (a)")}else{log(">> 4 (b)")}var v=r.__name__;var b=_defineProperty({},v,u[v]);log({bind:b});var g=u[v]===null;var w=a?[]:_nil;var D=function e(){if(!R(b,true)){log({bind:b});return 1}var n={};var t=function e(t,r){n[t]=r};var r=j(i,b,{nested:false},t);log({value:r});if(typeof r!=="undefined"){if(r instanceof Value){r=r.valueOf()}if(a){w.push(r)}else{w=new Pair(r,w)}}b=n};while(true){if(D())break}if(!is_nil(w)&&!a){w=w.reverse()}if(is_pair(i.cdr)){if(is_pair(i.cdr.cdr)||i.cdr.cdr instanceof LSymbol){var x=$(i.cdr.cdr,{disabled:t});log({node:x});if(g){return x}if(is_nil(w)){w=x}else{w.append(x)}log({result:w,node:x})}}log("<<<< 2");log({result:w});return w}}var L=$(r,{disabled:t});var E;var S;if(r instanceof LSymbol){var A=N.get(r,{throwError:false});S=A instanceof Macro&&A.__name__==="syntax-rules"}if(S){if(i.cdr.car instanceof LSymbol){E=new Pair($(i.cdr.car,{disabled:t}),new Pair(i.cdr.cdr.car,$(i.cdr.cdr.cdr,{disabled:t})))}else{E=new Pair(i.cdr.car,$(i.cdr.cdr,{disabled:t}))}log("REST >>>> ",E)}else{E=$(i.cdr,{disabled:t})}log({a:true,car:toString(i.car),cdr:toString(i.cdr),head:toString(L),rest:toString(E)});return new Pair(L,E)}if(i instanceof LSymbol){if(t&&LSymbol.is(i,B)){return i}var F=Object.keys(O["..."].symbols);var k=i.literal();if(F.includes(k)){var C="missing ellipsis symbol next to name `".concat(k,"'");throw new Error("syntax-rules: ".concat(C))}var P=I(i);if(typeof P!=="undefined"){return P}}return i}return $(t,{})}function is_null(e){return is_undef(e)||is_nil(e)||e===null}function is_nil(e){return e===_nil}function is_function(e){return typeof e==="function"&&typeof e.bind==="function"}function is_directive(e){return directives.includes(e)}function is_false(e){return e===false||e===null}function is_string(e){return typeof e==="string"}function is_prototype(e){return e&&_typeof$1(e)==="object"&&e.hasOwnProperty&&e.hasOwnProperty("constructor")&&typeof e.constructor==="function"&&e.constructor.prototype===e}function is_continuation(e){return e instanceof Continuation}function is_context(e){return e instanceof LambdaContext}function is_parameter(e){return e instanceof Parameter}function is_pair(e){return e instanceof Pair}function is_env(e){return e instanceof Environment}function is_callable(e){return is_function(e)||is_continuation(e)||is_parameter(e)||is_macro(e)}function is_macro(e){return e instanceof Macro||e instanceof SyntaxParameter}function is_promise(e){if(e instanceof QuotedPromise){return false}if(e instanceof Promise){return true}return!!e&&is_function(e.then)}function is_undef(e){return typeof e==="undefined"}function get_proto(e){return Object.getPrototypeOf(e)}function is_iterator(e,t){if(has_own_symbol(e,t)||has_own_symbol(get_proto(e),t)){return is_function(e[t])}}function is_instance(e){if(!e){return false}if(_typeof$1(e)!=="object"){return false}if(e.__instance__){e.__instance__=false;return e.__instance__}return false}function self_evaluated(e){var t=_typeof$1(e);return["string","function"].includes(t)||_typeof$1(e)==="symbol"||e instanceof QuotedPromise||e instanceof LSymbol||e instanceof LNumber||e instanceof LString||e instanceof RegExp}function is_native(e){return e instanceof LNumber||e instanceof LString||e instanceof LCharacter}function has_own_symbol(e,t){if(e===null){return false}return _typeof$1(e)==="object"&&t in Object.getOwnPropertySymbols(e)}function box(e){switch(_typeof$1(e)){case"string":return LString(e);case"bigint":return LNumber(e);case"number":if(Number.isNaN(e)){return nan}else{return LNumber(e)}}return e}function map_object(r,n){var e=Object.getOwnPropertyNames(r);var t=Object.getOwnPropertySymbols(r);var i={};e.concat(t).forEach(function(e){var t=n(r[e]);i[e]=t});return i}function unbox(t){var e=[LString,LNumber,LCharacter].some(function(e){return t instanceof e});if(e){return t.valueOf()}if(t instanceof Array){return t.map(unbox)}if(t instanceof QuotedPromise){delete t.then}if(is_plain_object(t)){return map_object(t,unbox)}return t}function patch_value(e,t){if(is_pair(e)){e.mark_cycles();return quote(e)}if(is_function(e)){if(t){return bind(e,t)}}return box(e)}function unbind(e){if(is_bound(e)){return e[__fn__]}return e}function bind(e,t){if(e[Symbol["for"]("__bound__")]){return e}var r=e.bind(t);var n=Object.getOwnPropertyNames(e);var i=_createForOfIteratorHelper(n),a;try{for(i.s();!(a=i.n()).done;){var o=a.value;if(filter_fn_names(o)){try{r[o]=e[o]}catch(e){}}}}catch(e){i.e(e)}finally{i.f()}hidden_prop(r,"__fn__",e);hidden_prop(r,"__context__",t);hidden_prop(r,"__bound__",true);if(is_native_function(e)){hidden_prop(r,"__native__",true)}if(is_plain_object(t)&&is_lambda(e)){hidden_prop(r,"__method__",true)}r.valueOf=function(){return e};return r}function is_object_bound(e){return is_bound(e)&&e[Symbol["for"]("__context__")]===Object}function is_bound(e){return!!(is_function(e)&&e[__fn__])}function lips_context(e){if(is_function(e)){var t=e[__context__];if(t&&(t===lips||t.constructor&&t.constructor.__class__)){return true}}return false}function is_port(e){return e instanceof InputPort||e instanceof OutputPort}function is_port_method(e){if(is_function(e)){if(is_port(e[__context__])){return true}}return false}var __context__=Symbol["for"]("__context__");var __fn__=Symbol["for"]("__fn__");var __data__=Symbol["for"]("__data__");var __ref__=Symbol["for"]("__ref__");var __cycles__=Symbol["for"]("__cycles__");var __class__=Symbol["for"]("__class__");var __method__=Symbol["for"]("__method__");var __prototype__=Symbol["for"]("__prototype__");var __lambda__=Symbol["for"]("__lambda__");var exluded_names=["name","length","caller","callee","arguments","prototype"];function filter_fn_names(e){return!exluded_names.includes(e)}function hidden_prop(e,t,r){Object.defineProperty(e,Symbol["for"](t),{get:function e(){return r},set:function e(){},configurable:false,enumerable:false})}function set_fn_length(t,r){try{Object.defineProperty(t,"length",{get:function e(){return r}});return t}catch(e){var n=new Array(r).fill(0).map(function(e,t){return"a"+t}).join(",");var i=new Function("f","return function(".concat(n,") {\n return f.apply(this, arguments);\n };"));return i(t)}}function is_lambda(e){return e&&e[__lambda__]}function is_method(e){return e&&e[__method__]}function is_raw_lambda(e){return is_lambda(e)&&!e[__prototype__]&&!is_method(e)&&!is_port_method(e)}function is_native_function(e){var t=Symbol["for"]("__native__");return is_function(e)&&e.toString().match(/\{\s*\[native code\]\s*\}/)&&(e.name.match(/^bound /)&&e[t]===true||!e.name.match(/^bound /)&&!e[t])}function let_macro(e){var w;switch(e){case Symbol["for"]("letrec"):w="letrec";break;case Symbol["for"]("let"):w="let";break;case Symbol["for"]("let*"):w="let*";break;default:throw new Error("Invalid let_macro value")}return Macro.defmacro(w,function(t,e){var l=e.dynamic_env;var f=e.error,r=e.macro_expand,_=e.use_dynamic;var p;if(t.car instanceof LSymbol){if(!(is_pair(t.cdr.car)||is_nil(t.cdr.car))){throw new Error("let require list of pairs")}var n;if(is_nil(t.cdr.car)){p=_nil;n=_nil}else{n=t.cdr.car.map(function(e){return e.car});p=t.cdr.car.map(function(e){return e.cdr.car})}return new Pair(Pair.fromArray([LSymbol("letrec"),[[t.car,Pair(LSymbol("lambda"),Pair(n,t.cdr.cdr))]],t.car]),p)}else if(r){return}var d=this;p=global_env.get("list->array")(t.car);var h=d.inherit(w);var m,y;if(w==="let*"){y=h}else if(w==="let"){m=[]}var v=0;function b(){var e=hygienic_begin([h],t.cdr);return _evaluate(e,{env:h,dynamic_env:h,use_dynamic:_,error:f})}function g(e){if(e in h.__env__){throw new Error("Duplicated let variable ".concat(e))}}return function t(){var r=p[v++];l=w==="let*"?h:d;if(!r){if(m&&m.length){var e=m.map(function(e){return e.value});var n=e.filter(is_promise);if(n.length){return promise_all(e).then(function(e){for(var t=0,r=e.length;t1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=t.error;var i=this;var a=this;var o=[];var u=e;while(is_pair(u)){o.push(_evaluate(u.car,{env:i,dynamic_env:a,use_dynamic:r,error:n}));u=u.cdr}var s=o.filter(is_promise).length;if(s){return promise_all(o).then(c.bind(this))}else{return c.call(this,o)}})}function guard_math_call(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2?n-2:0),a=2;a1&&arguments[1]!==undefined?arguments[1]:null;return function(){for(var e=arguments.length,t=new Array(e),r=0;r1?e-1:0),r=1;r=u){return o.apply(n,i)}else{return a}}}();return a.apply(void 0,arguments)}}function limit(n,i){typecheck("limit",i,"function",2);return function(){for(var e=arguments.length,t=new Array(e),r=0;r1){e=e.toLowerCase();if(LCharacter.__names__[e]){t=e;e=LCharacter.__names__[e]}else{throw new Error("Internal: Unknown named character")}}else{t=LCharacter.__rev_names__[e]}Object.defineProperty(this,"__char__",{value:e,enumerable:true});if(t){Object.defineProperty(this,"__name__",{value:t,enumerable:true})}}LCharacter.__names__=characters;LCharacter.__rev_names__={};Object.keys(LCharacter.__names__).forEach(function(e){var t=LCharacter.__names__[e];LCharacter.__rev_names__[t]=e});LCharacter.prototype.toUpperCase=function(){return LCharacter(this.__char__.toUpperCase())};LCharacter.prototype.toLowerCase=function(){return LCharacter(this.__char__.toLowerCase())};LCharacter.prototype.toString=function(){return"#\\"+(this.__name__||this.__char__)};LCharacter.prototype.valueOf=LCharacter.prototype.serialize=function(){return this.__char__};function LString(e){if(typeof this!=="undefined"&&!(this instanceof LString)||typeof this==="undefined"){return new LString(e)}if(e instanceof Array){this.__string__=e.map(function(e,t){typecheck("LString",e,"character",t+1);return e.toString()}).join("")}else{this.__string__=e.valueOf()}}{var ignore=["length","constructor"];var _keys=Object.getOwnPropertyNames(String.prototype).filter(function(e){return!ignore.includes(e)});var wrap=function e(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r0){r.push(this.__string__.substring(0,e))}r.push(t);if(e1&&arguments[1]!==undefined?arguments[1]:false;if(e instanceof LNumber){return e}if(typeof this!=="undefined"&&!(this instanceof LNumber)||typeof this==="undefined"){return new LNumber(e,t)}if(typeof e==="undefined"){throw new Error("Invalid LNumber constructor call")}var r=LNumber.getType(e);if(LNumber.types[r]){return LNumber.types[r](e,t)}var n=e instanceof Array&&LString.isString(e[0])&&LNumber.isNumber(e[1]);if(e instanceof LNumber){return LNumber(e.value)}if(!LNumber.isNumber(e)&&!n){throw new Error("You can't create LNumber from ".concat(type(e)))}if(e===null){e=0}var i;if(n){var a=e,o=_slicedToArray(a,2),u=o[0],s=o[1];if(u instanceof LString){u=u.valueOf()}if(s instanceof LNumber){s=s.valueOf()}var c=u.match(/^([+-])/);var l=false;if(c){u=u.replace(/^[+-]/,"");if(c[1]==="-"){l=true}}}if(Number.isNaN(e)){return LFloat(e)}else if(n&&Number.isNaN(parseInt(u,s))){return nan}else if(typeof BigInt!=="undefined"){if(typeof e!=="bigint"){if(n){var f;switch(s){case 8:f="0o";break;case 16:f="0x";break;case 2:f="0b";break;case 10:f="";break}if(typeof f==="undefined"){var _=BigInt(s);i=_toConsumableArray(u).map(function(e,t){return BigInt(parseInt(e,s))*pow(_,BigInt(t))}).reduce(function(e,t){return e+t})}else{i=BigInt(f+u)}}else{i=BigInt(e)}if(l){i*=BigInt(-1)}}else{i=e}return LBigInteger(i,true)}else if(typeof BN!=="undefined"&&!(e instanceof BN)){if(e instanceof Array){return LBigInteger(_construct(BN,_toConsumableArray(e)))}return LBigInteger(new BN(e))}else if(n){this.constant(parseInt(u,s),"integer")}else{this.constant(e,"integer")}}LNumber.prototype.constant=function(e,t){Object.defineProperty(this,"__value__",{value:e,enumerable:true});Object.defineProperty(this,"__type__",{value:t,enumerable:true})};LNumber.types={float:function e(t){return new LFloat(t)},complex:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!LNumber.isComplex(t)){t={im:0,re:t}}return new LComplex(t,r)},rational:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!LNumber.isRational(t)){t={num:t,denom:1}}return new LRational(t,r)}};LNumber.prototype.serialize=function(){return this.__value__};LNumber.prototype.isNaN=function(){return Number.isNaN(this.__value__)};LNumber.prototype.gcd=function(e){var t=this.abs();e=e.abs();if(e.cmp(t)===1){var r=t;t=e;e=r}while(true){t=t.rem(e);if(t.cmp(0)===0){return e}e=e.rem(t);if(e.cmp(0)===0){return t}}};LNumber.isFloat=function e(t){return t instanceof LFloat||Number(t)===t&&t%1!==0};LNumber.isNumber=function(e){return e instanceof LNumber||LNumber.isNative(e)||LNumber.isBN(e)};LNumber.isComplex=function(e){if(!e){return false}var t=e instanceof LComplex||(LNumber.isNumber(e.im)||LNumber.isRational(e.im)||Number.isNaN(e.im))&&(LNumber.isNumber(e.re)||LNumber.isRational(e.re)||Number.isNaN(e.re));return t};LNumber.isRational=function(e){if(!e){return false}return e instanceof LRational||LNumber.isNumber(e.num)&&LNumber.isNumber(e.denom)};LNumber.isInteger=function(e){if(!(LNumber.isNative(e)||e instanceof LNumber)){return false}if(LNumber.isFloat(e)){return false}if(LNumber.isRational(e)){return false}if(LNumber.isComplex(e)){return false}return true};LNumber.isNative=function(e){return typeof e==="bigint"||typeof e==="number"};LNumber.isBigInteger=function(e){return e instanceof LBigInteger||typeof e==="bigint"||LNumber.isBN(e)};LNumber.isBN=function(e){return typeof BN!=="undefined"&&e instanceof BN};LNumber.getArgsType=function(e,t){if(e instanceof LFloat||t instanceof LFloat){return LFloat}if(e instanceof LBigInteger||t instanceof LBigInteger){return LBigInteger}return LNumber};LNumber.prototype.toString=function(e){if(Number.isNaN(this.__value__)){return"+nan.0"}if(e>=2&&e<36){return this.__value__.toString(e)}return this.__value__.toString()};LNumber.prototype.asType=function(e){var t=LNumber.getType(this);return LNumber.types[t]?LNumber.types[t](e):LNumber(e)};LNumber.prototype.isBigNumber=function(){return typeof this.__value__==="bigint"||typeof BN!=="undefined"&&!(this.value instanceof BN)};["floor","ceil","round"].forEach(function(e){LNumber.prototype[e]=function(){if(this["float"]||LNumber.isFloat(this.__value__)){return LNumber(Math[e](this.__value__))}else{return LNumber(Math[e](this.valueOf()))}}});LNumber.prototype.valueOf=function(){if(LNumber.isNative(this.__value__)){return Number(this.__value__)}else if(LNumber.isBN(this.__value__)){return this.__value__.toNumber()}};var matrix=function(){var e=function e(t,r){return[t,r]};return{bigint:{bigint:e,float:function e(t,r){return[LFloat(t.valueOf()),r]},rational:function e(t,r){return[{num:t,denom:1},r]},complex:function e(t,r){return[{im:0,re:t},r]}},integer:{integer:e,float:function e(t,r){return[LFloat(t.valueOf()),r]},rational:function e(t,r){return[{num:t,denom:1},r]},complex:function e(t,r){return[{im:0,re:t},r]}},float:{bigint:function e(t,r){return[t,r&&LFloat(r.valueOf())]},integer:function e(t,r){return[t,r&&LFloat(r.valueOf())]},float:e,rational:function e(t,r){return[t,r&&LFloat(r.valueOf())]},complex:function e(t,r){return[{re:t,im:LFloat(0)},r]}},complex:{bigint:t("bigint"),integer:t("integer"),float:t("float"),rational:t("rational"),complex:function e(t,r){var n=LNumber.coerce(t.__re__,r.__re__),i=_slicedToArray(n,2),a=i[0],o=i[1];var u=LNumber.coerce(t.__im__,r.__im__),s=_slicedToArray(u,2),c=s[0],l=s[1];return[{im:c,re:a},{im:l,re:o}]}},rational:{bigint:function e(t,r){return[t,r&&{num:r,denom:1}]},integer:function e(t,r){return[t,r&&{num:r,denom:1}]},float:function e(t,r){return[LFloat(t.valueOf()),r]},rational:e,complex:function e(t,r){return[{im:coerce(t.__type__,r.__im__.__type__,0)[0],re:coerce(t.__type__,r.__re__.__type__,t)[0]},{im:coerce(t.__type__,r.__im__.__type__,r.__im__)[0],re:coerce(t.__type__,r.__re__.__type__,r.__re__)[0]}]}}};function t(r){return function(e,t){return[{im:coerce(r,e.__im__.__type__,0,e.__im__)[1],re:coerce(r,e.__re__.__type__,0,e.__re__)[1]},{im:coerce(r,e.__im__.__type__,0,0)[1],re:coerce(r,t.__type__,0,t)[1]}]}}}();function coerce(e,t,r,n){return matrix[e][t](r,n)}LNumber.coerce=function(e,t){var r=LNumber.getType(e);var n=LNumber.getType(t);if(!matrix[r]){throw new Error("LNumber::coerce unknown lhs type ".concat(r))}else if(!matrix[r][n]){throw new Error("LNumber::coerce unknown rhs type ".concat(n))}var i=matrix[r][n](e,t);return i.map(function(e){return LNumber(e,true)})};LNumber.prototype.coerce=function(e){if(!(typeof e==="number"||e instanceof LNumber)){throw new Error("LNumber: you can't coerce ".concat(type(e)))}if(typeof e==="number"){e=LNumber(e)}return LNumber.coerce(this,e)};LNumber.getType=function(e){if(e instanceof LNumber){return e.__type__}if(LNumber.isFloat(e)){return"float"}if(LNumber.isComplex(e)){return"complex"}if(LNumber.isRational(e)){return"rational"}if(typeof e==="number"){return"integer"}if(typeof BigInt!=="undefined"&&typeof e!=="bigint"||typeof BN!=="undefined"&&!(e instanceof BN)){return"bigint"}};LNumber.prototype.isFloat=function(){return!!(LNumber.isFloat(this.__value__)||this["float"])};var mapping={add:"+",sub:"-",mul:"*",div:"/",rem:"%",or:"|",and:"&",neg:"~",shl:">>",shr:"<<"};var rev_mapping={};Object.keys(mapping).forEach(function(t){rev_mapping[mapping[t]]=t;LNumber.prototype[t]=function(e){return this.op(mapping[t],e)}});LNumber._ops={"*":function e(t,r){return t*r},"+":function e(t,r){return t+r},"-":function e(t,r){if(typeof r==="undefined"){return-t}return t-r},"/":function e(t,r){return t/r},"%":function e(t,r){return t%r},"|":function e(t,r){return t|r},"&":function e(t,r){return t&r},"~":function e(t){return~t},">>":function e(t,r){return t>>r},"<<":function e(t,r){return t<1&&arguments[1]!==undefined?arguments[1]:false;if(typeof this!=="undefined"&&!(this instanceof LComplex)||typeof this==="undefined"){return new LComplex(e,t)}if(e instanceof LComplex){return LComplex({im:e.__im__,re:e.__re__})}if(LNumber.isNumber(e)&&t){if(!t){return Number(e)}}else if(!LNumber.isComplex(e)){var r="Invalid constructor call for LComplex expect &(:im :re ) object but got ".concat(toString(e));throw new Error(r)}var n=e.im instanceof LNumber?e.im:LNumber(e.im);var i=e.re instanceof LNumber?e.re:LNumber(e.re);this.constant(n,i)}LComplex.prototype=Object.create(LNumber.prototype);LComplex.prototype.constructor=LComplex;LComplex.prototype.constant=function(e,t){Object.defineProperty(this,"__im__",{value:e,enumerable:true});Object.defineProperty(this,"__re__",{value:t,enumerable:true});Object.defineProperty(this,"__type__",{value:"complex",enumerable:true})};LComplex.prototype.serialize=function(){return{re:this.__re__,im:this.__im__}};LComplex.prototype.toRational=function(e){var t=this.__im__,r=this.__re__;if(LNumber.isFloat(this.__im__)){t=LFloat(this.__im__).toRational(e)}if(LNumber.isFloat(this.__re__)){r=LFloat(this.__re__).toRational(e)}return LComplex({im:t,re:r})};LComplex.prototype.pow=function(e){e.cmp(0);if(e===0){return LNumber(1)}var t=LNumber(Math.atan2(this.__im__.valueOf(),this.__re__.valueOf()));var r=LNumber(this.modulus());if(LNumber.isComplex(e)&&e.__im__.cmp(0)!==0){var n=e.mul(Math.log(r.valueOf())).add(LComplex.i.mul(t).mul(e));if(!LNumber.isComplex(n)){return LFloat(Math.E).pow(n)}var i=LFloat(Math.E).pow(n.__re__.valueOf());return LComplex({re:i.mul(Math.cos(n.__im__.valueOf())),im:i.mul(Math.sin(n.__im__.valueOf()))})}var a=e.__re__.cmp(0)>0;e=e.__re__.valueOf();if(LNumber.isInteger(e)&&a){var o=this;while(--e){o=o.mul(this)}return o}var u=r.pow(e);var s=t.mul(e);return LComplex({re:u.mul(Math.cos(s)),im:u.mul(Math.sin(s))})};LComplex.prototype.add=function(e){return this.complex_op("add",e,function(e,t,r,n){return{re:e.add(t),im:r.add(n)}})};LComplex.prototype.factor=function(){if(this.__im__ instanceof LFloat||this.__im__ instanceof LFloat){var e=this.__re__,t=this.__im__;var r,n;if(e instanceof LFloat){r=e.toRational().mul(e.toRational())}else{r=e.mul(e)}if(t instanceof LFloat){n=t.toRational().mul(t.toRational())}else{n=t.mul(t)}return r.add(n)}else{return this.__re__.mul(this.__re__).add(this.__im__.mul(this.__im__))}};LComplex.prototype.modulus=function(){return this.factor().sqrt()};LComplex.prototype.conjugate=function(){return LComplex({re:this.__re__,im:this.__im__.sub()})};LComplex.prototype.sqrt=function(){var e=this.modulus();var t,r;if(e.cmp(0)===0){t=r=e}else if(this.__re__.cmp(0)===1){t=LFloat(.5).mul(e.add(this.__re__)).sqrt();r=this.__im__.div(t).div(2)}else{r=LFloat(.5).mul(e.sub(this.__re__)).sqrt();if(this.__im__.cmp(0)===-1){r=r.sub()}t=this.__im__.div(r).div(2)}return LComplex({im:r,re:t})};LComplex.prototype.div=function(e){if(LNumber.isNumber(e)&&!LNumber.isComplex(e)){if(!(e instanceof LNumber)){e=LNumber(e)}var t=this.__re__.div(e);var r=this.__im__.div(e);return LComplex({re:t,im:r})}else if(!LNumber.isComplex(e)){throw new Error("[LComplex::div] Invalid value")}if(this.cmp(e)===0){var n=this.coerce(e),i=_slicedToArray(n,2),a=i[0],o=i[1];var u=a.__im__.div(o.__im__);return u.coerce(o.__re__)[0]}var s=this.coerce(e),c=_slicedToArray(s,2),l=c[0],f=c[1];var _=f.factor();var p=f.conjugate();var d=l.mul(p);if(!LNumber.isComplex(d)){return d.div(_)}var h=d.__re__.op("/",_);var m=d.__im__.op("/",_);return LComplex({re:h,im:m})};LComplex.prototype.sub=function(e){return this.complex_op("sub",e,function(e,t,r,n){return{re:e.sub(t),im:r.sub(n)}})};LComplex.prototype.mul=function(e){return this.complex_op("mul",e,function(e,t,r,n){var i={re:e.mul(t).sub(r.mul(n)),im:e.mul(n).add(t.mul(r))};return i})};LComplex.prototype.complex_op=function(e,t,i){var a=this;var r=function e(t,r){var n=i(a.__re__,t,a.__im__,r);if("im"in n&&"re"in n){if(n.im.cmp(0)===0){return n.re}return LComplex(n,true)}return n};if(typeof t==="undefined"){return r()}if(LNumber.isNumber(t)&&!LNumber.isComplex(t)){if(!(t instanceof LNumber)){t=LNumber(t)}var n=t.asType(0);t={__im__:n,__re__:t}}else if(!LNumber.isComplex(t)){throw new Error("[LComplex::".concat(e,"] Invalid value"))}var o=t.__re__ instanceof LNumber?t.__re__:this.__re__.asType(t.__re__);var u=t.__im__ instanceof LNumber?t.__im__:this.__im__.asType(t.__im__);return r(o,u)};LComplex._op={"+":"add","-":"sub","*":"mul","/":"div"};LComplex.prototype._op=function(e,t){var r=LComplex._op[e];return this[r](t)};LComplex.prototype.cmp=function(e){var t=this.coerce(e),r=_slicedToArray(t,2),n=r[0],i=r[1];var a=n.__re__.coerce(i.__re__),o=_slicedToArray(a,2),u=o[0],s=o[1];var c=u.cmp(s);if(c!==0){return c}else{var l=n.__im__.coerce(i.__im__),f=_slicedToArray(l,2),_=f[0],p=f[1];return _.cmp(p)}};LComplex.prototype.valueOf=function(){return[this.__re__,this.__im__].map(function(e){return e.valueOf()})};LComplex.prototype.toString=function(){var e;if(this.__re__.cmp(0)!==0){e=[toString(this.__re__)]}else{e=[]}var t=this.__im__.valueOf();var r=[Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY].includes(t);var n=toString(this.__im__);if(!r&&!Number.isNaN(t)){var i=this.__im__.cmp(0);if(i<0||i===0&&this.__im__._minus){e.push("-")}else{e.push("+")}n=n.replace(/^-/,"")}e.push(n);e.push("i");return e.join("")};function LFloat(e){if(typeof this!=="undefined"&&!(this instanceof LFloat)||typeof this==="undefined"){return new LFloat(e)}if(!LNumber.isNumber(e)){throw new Error("Invalid constructor call for LFloat")}if(e instanceof LNumber){return LFloat(e.valueOf())}if(typeof e==="number"){if(Object.is(e,-0)){Object.defineProperty(this,"_minus",{value:true})}this.constant(e,"float")}}LFloat.prototype=Object.create(LNumber.prototype);LFloat.prototype.constructor=LFloat;LFloat.prototype.toString=function(e){if(this.__value__===Number.NEGATIVE_INFINITY){return"-inf.0"}if(this.__value__===Number.POSITIVE_INFINITY){return"+inf.0"}if(Number.isNaN(this.__value__)){return"+nan.0"}e&&(e=e.valueOf());var t=this.__value__.toString(e);if(!t.match(/e[+-]?[0-9]+$/i)){var r=t.replace(/^-/,"");var n=this.__value__<0?"-":"";if(t.match(/^-?0\.0{3}/)){var i=r.match(/^[.0]+/g)[0].length-1;var a=r.replace(/^[.0]+/,"").replace(/^([0-9a-f])/i,"$1.");return"".concat(n).concat(a,"e-").concat(i.toString(e))}if(t.match(/^-?[0-9a-f]{7,}\.?/i)){var o=r.match(/^[0-9a-f]+/gi)[0].length-1;var u=r.replace(/\./,"").replace(/^([0-9a-f])/i,"$1.").replace(/0+$/,"").replace(/\.$/,".0");return"".concat(n).concat(u,"e+").concat(o.toString(e))}if(!LNumber.isFloat(this.__value__)){var s=t+".0";return this._minus?"-"+s:s}}return t.replace(/^([0-9]+)e/,"$1.0e")};LFloat.prototype._op=function(e,t){if(t instanceof LNumber){t=t.__value__}var r=LNumber._ops[e];if(e==="/"&&this.__value__===0&&t===0){return NaN}return LFloat(r(this.__value__,t))};LFloat.prototype.toRational=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){return toRational(this.__value__.valueOf())}return approxRatio(e.valueOf())(this.__value__.valueOf())};LFloat.prototype.sqrt=function(){var e=this.valueOf();if(this.cmp(0)<0){var t=LFloat(Math.sqrt(-e));return LComplex({re:0,im:t})}return LFloat(Math.sqrt(e))};LFloat.prototype.abs=function(){var e=this.valueOf();if(e<0){e=-e}return LFloat(e)};var toRational=approxRatio(1e-10);function approxRatio(n){return function(e){var t=function e(n,t,r){var i=function e(t,r){return r0){i=simplest_rational2(n,r)}else if(n.cmp(r)<=0){i=r}else if(r.cmp(0)>0){i=simplest_rational2(r,n)}else if(t.cmp(0)<0){i=LNumber(simplest_rational2(n.sub(),r.sub())).sub()}else{i=LNumber(0)}if(LNumber.isFloat(t)||LNumber.isFloat(e)){return LFloat(i)}return i}function simplest_rational2(e,t){var r=LNumber(e).floor();var n=LNumber(t).floor();if(e.cmp(r)<1){return r}else if(r.cmp(n)===0){var i=LNumber(1).div(t.sub(n));var a=LNumber(1).div(e.sub(r));return r.add(LNumber(1).div(simplest_rational2(i,a)))}else{return r.add(LNumber(1))}}function LRational(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(typeof this!=="undefined"&&!(this instanceof LRational)||typeof this==="undefined"){return new LRational(e,t)}if(!LNumber.isRational(e)){throw new Error("Invalid constructor call for LRational")}var r,n;if(e instanceof LRational){r=LNumber(e.__num__);n=LNumber(e.__denom__)}else{r=LNumber(e.num);n=LNumber(e.denom)}if(!t&&n.cmp(0)!==0){var i=r.op("%",n).cmp(0)===0;if(i){return LNumber(r.div(n))}}this.constant(r,n)}LRational.prototype=Object.create(LNumber.prototype);LRational.prototype.constructor=LRational;LRational.prototype.constant=function(e,t){Object.defineProperty(this,"__num__",{value:e,enumerable:true});Object.defineProperty(this,"__denom__",{value:t,enumerable:true});Object.defineProperty(this,"__type__",{value:"rational",enumerable:true})};LRational.prototype.serialize=function(){return{num:this.__num__,denom:this.__denom__}};LRational.prototype.pow=function(e){if(LNumber.isRational(e)){return pow(this.valueOf(),e.valueOf())}var t=e.cmp(0);if(t===0){return LNumber(1)}if(t===-1){e=e.sub();var r=this.__denom__.pow(e);var n=this.__num__.pow(e);return LRational({num:r,denom:n})}var i=this;e=e.valueOf();while(e>1){i=i.mul(this);e--}return i};LRational.prototype.sqrt=function(){var e=this.__num__.sqrt();var t=this.__denom__.sqrt();if(e instanceof LFloat||t instanceof LFloat){return e.div(t)}return LRational({num:e,denom:t})};LRational.prototype.abs=function(){var e=this.__num__;var t=this.__denom__;if(e.cmp(0)===-1){e=e.sub()}if(t.cmp(0)!==1){t=t.sub()}return LRational({num:e,denom:t})};LRational.prototype.cmp=function(e){return LNumber(this.valueOf(),true).cmp(e)};LRational.prototype.toString=function(){var e=this.__num__.gcd(this.__denom__);var t,r;if(e.cmp(1)!==0){t=this.__num__.div(e);if(t instanceof LRational){t=LNumber(t.valueOf(true))}r=this.__denom__.div(e);if(r instanceof LRational){r=LNumber(r.valueOf(true))}}else{t=this.__num__;r=this.__denom__}var n=this.cmp(0)<0;if(n){if(t.abs().cmp(r.abs())===0){return t.toString()}}else if(t.cmp(r)===0){return t.toString()}return t.toString()+"/"+r.toString()};LRational.prototype.valueOf=function(e){if(this.__denom__.cmp(0)===0){if(this.__num__.cmp(0)<0){return Number.NEGATIVE_INFINITY}return Number.POSITIVE_INFINITY}if(e){return LNumber._ops["/"](this.__num__.value,this.__denom__.value)}return LFloat(this.__num__.valueOf()).div(this.__denom__.valueOf())};LRational.prototype.mul=function(e){if(!(e instanceof LNumber)){e=LNumber(e)}if(LNumber.isRational(e)){var t=this.__num__.mul(e.__num__);var r=this.__denom__.mul(e.__denom__);return LRational({num:t,denom:r})}var n=LNumber.coerce(this,e),i=_slicedToArray(n,2),a=i[0],o=i[1];return a.mul(o)};LRational.prototype.div=function(e){if(!(e instanceof LNumber)){e=LNumber(e)}if(LNumber.isRational(e)){var t=this.__num__.mul(e.__denom__);var r=this.__denom__.mul(e.__num__);return LRational({num:t,denom:r})}var n=LNumber.coerce(this,e),i=_slicedToArray(n,2),a=i[0],o=i[1];var u=a.div(o);return u};LRational.prototype._op=function(e,t){return this[rev_mapping[e]](t)};LRational.prototype.sub=function(e){if(typeof e==="undefined"){return this.mul(-1)}if(!(e instanceof LNumber)){e=LNumber(e)}if(LNumber.isRational(e)){var t=e.__num__.sub();var r=e.__denom__;return this.add(LRational({num:t,denom:r}))}if(!(e instanceof LNumber)){e=LNumber(e).sub()}else{e=e.sub()}var n=LNumber.coerce(this,e),i=_slicedToArray(n,2),a=i[0],o=i[1];return a.add(o)};LRational.prototype.add=function(e){if(!(e instanceof LNumber)){e=LNumber(e)}if(LNumber.isRational(e)){var t=this.__denom__;var r=e.__denom__;var n=this.__num__;var i=e.__num__;var a,o;if(t!==r){o=r.mul(n).add(i.mul(t));a=t.mul(r)}else{o=n.add(i);a=t}return LRational({num:o,denom:a})}if(LNumber.isFloat(e)){return LFloat(this.valueOf()).add(e)}var u=LNumber.coerce(this,e),s=_slicedToArray(u,2),c=s[0],l=s[1];return c.add(l)};function LBigInteger(e,t){if(typeof this!=="undefined"&&!(this instanceof LBigInteger)||typeof this==="undefined"){return new LBigInteger(e,t)}if(e instanceof LBigInteger){return LBigInteger(e.__value__,e._native)}if(!LNumber.isBigInteger(e)){throw new Error("Invalid constructor call for LBigInteger")}this.constant(e,"bigint");Object.defineProperty(this,"_native",{value:t})}LBigInteger.prototype=Object.create(LNumber.prototype);LBigInteger.prototype.constructor=LBigInteger;LBigInteger.bn_op={"+":"iadd","-":"isub","*":"imul","/":"idiv","%":"imod","|":"ior","&":"iand","~":"inot","<<":"ishrn",">>":"ishln"};LBigInteger.prototype.serialize=function(){return this.__value__.toString()};LBigInteger.prototype._op=function(e,t){if(typeof t==="undefined"){if(LNumber.isBN(this.__value__)){e=LBigInteger.bn_op[e];return LBigInteger(this.__value__.clone()[e](),false)}return LBigInteger(LNumber._ops[e](this.__value__),true)}if(LNumber.isBN(this.__value__)&&LNumber.isBN(t.__value__)){e=LBigInteger.bn_op[e];return LBigInteger(this.__value__.clone()[e](t),false)}var r=LNumber._ops[e](this.__value__,t.__value__);if(e==="/"){var n=this.op("%",t).cmp(0)===0;if(n){return LNumber(r)}return LRational({num:this,denom:t})}return LBigInteger(r,true)};LBigInteger.prototype.sqrt=function(){var e;var t=this.cmp(0)<0;if(LNumber.isNative(this.__value__)){e=LNumber(Math.sqrt(t?-this.valueOf():this.valueOf()))}else if(LNumber.isBN(this.__value__)){e=t?this.__value__.neg().sqrt():this.__value__.sqrt()}if(t){return LComplex({re:0,im:e})}return e};LNumber.NaN=LNumber(NaN);LComplex.i=LComplex({im:1,re:0});function InputPort(e){var n=this;var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:global_env;if(typeof this!=="undefined"&&!(this instanceof InputPort)||typeof this==="undefined"){return new InputPort(e)}typecheck("InputPort",e,"function");read_only(this,"__type__",text_port);var a;Object.defineProperty(this,"__parser__",{enumerable:true,get:function e(){return a},set:function e(t){typecheck("InputPort::__parser__",t,"parser");a=t}});this._read=e;this._with_parser=this._with_init_parser.bind(this,_asyncToGenerator(_regeneratorRuntime.mark(function e(){var r;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(n.char_ready()){t.next=6;break}t.next=3;return n._read();case 3:r=t.sent;a=new Parser({env:i});a.parse(r);case 6:return t.abrupt("return",n.__parser__);case 7:case"end":return t.stop()}},e)})));this.char_ready=function(){return!!this.__parser__&&this.__parser__.__lexer__.peek()!==eof};this._make_defaults()}InputPort.prototype._make_defaults=function(){this.read=this._with_parser(function(e){return e.read_object()});this.read_line=this._with_parser(function(e){return e.__lexer__.read_line()});this.read_char=this._with_parser(function(e){return e.__lexer__.read_char()});this.read_string=this._with_parser(function(e,t){if(!LNumber.isInteger(t)){var r=LNumber.getType(t);typeErrorMessage("read-string",r,"integer")}return e.__lexer__.read_string(t.valueOf())});this.peek_char=this._with_parser(function(e){return e.__lexer__.peek_char()})};InputPort.prototype._with_init_parser=function(u,s){var c=this;return _asyncToGenerator(_regeneratorRuntime.mark(function e(){var r,n,i,a,o=arguments;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return u.call(c);case 2:r=t.sent;for(n=o.length,i=new Array(n),a=0;a"};function OutputPort(e){if(typeof this!=="undefined"&&!(this instanceof OutputPort)||typeof this==="undefined"){return new OutputPort(e)}typecheck("OutputPort",e,"function");read_only(this,"__type__",text_port);this.write=e}OutputPort.prototype.is_open=function(){return this._closed!==true};OutputPort.prototype.close=function(){Object.defineProperty(this,"_closed",{get:function e(){return true},set:function e(){},configurable:false,enumerable:false});this.write=function(){throw new Error("output-port: port is closed")}};OutputPort.prototype.flush=function(){};OutputPort.prototype.toString=function(){return"#"};var BufferedOutputPort=function(e){function r(e){var t;_classCallCheck(this,r);t=_callSuper(this,r,[function(){var e;return(e=t)._write.apply(e,arguments)}]);typecheck("BufferedOutputPort",e,"function");read_only(t,"_fn",e,{hidden:true});read_only(t,"_buffer",[],{hidden:true});return t}_inherits(r,e);return _createClass(r,[{key:"flush",value:function e(){if(this._buffer.length){this._fn(this._buffer.join(""));this._buffer.length=0}}},{key:"_write",value:function e(){var t=this;for(var r=arguments.length,n=new Array(r),i=0;i"};OutputStringPort.prototype.valueOf=function(){return this.__buffer__.map(function(e){return e.valueOf()}).join("")};function OutputFilePort(e,t){var r=this;if(typeof this!=="undefined"&&!(this instanceof OutputFilePort)||typeof this==="undefined"){return new OutputFilePort(e,t)}typecheck("OutputFilePort",e,"string");read_only(this,"__filename__",e);read_only(this,"_fd",t.valueOf(),{hidden:true});read_only(this,"__type__",text_port);this.write=function(e){if(!LString.isString(e)){e=toString(e)}else{e=e.valueOf()}r.fs().write(r._fd,e,function(e){if(e){throw e}})}}OutputFilePort.prototype=Object.create(OutputPort.prototype);OutputFilePort.prototype.constructor=OutputFilePort;OutputFilePort.prototype.fs=function(){if(!this._fs){this._fs=this.internal("fs")}return this._fs};OutputFilePort.prototype.internal=function(e){return user_env.get("**internal-env**").get(e)};OutputFilePort.prototype.close=function(){var n=this;return new Promise(function(t,r){n.fs().close(n._fd,function(e){if(e){r(e)}else{read_only(n,"_fd",null,{hidden:true});OutputPort.prototype.close.call(n);t()}})})};OutputFilePort.prototype.toString=function(){return"#")};function InputStringPort(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:global_env;if(typeof this!=="undefined"&&!(this instanceof InputStringPort)||typeof this==="undefined"){return new InputStringPort(e)}typecheck("InputStringPort",e,"string");e=e.valueOf();this._with_parser=this._with_init_parser.bind(this,function(){if(!t.__parser__){t.__parser__=new Parser({env:r});t.__parser__.parse(e)}return t.__parser__});read_only(this,"__type__",text_port);this._make_defaults()}InputStringPort.prototype.char_ready=function(){return true};InputStringPort.prototype=Object.create(InputPort.prototype);InputStringPort.prototype.constructor=InputStringPort;InputStringPort.prototype.toString=function(){return"#"};function ParserInputPort(e){if(typeof this!=="undefined"&&!(this instanceof ParserInputPort)||typeof this==="undefined"){return new ParserInputPort(e)}this._with_parser=this._with_init_parser.bind(this,function(){return e});read_only(this,"__type__",text_port);this._make_defaults()}ParserInputPort.prototype.char_ready=function(){return true};ParserInputPort.prototype=Object.create(InputPort.prototype);ParserInputPort.prototype.constructor=ParserInputPort;ParserInputPort.prototype.toString=function(){return"#"};function InputByteVectorPort(e){if(typeof this!=="undefined"&&!(this instanceof InputByteVectorPort)||typeof this==="undefined"){return new InputByteVectorPort(e)}typecheck("InputByteVectorPort",e,"uint8array");read_only(this,"__vector__",e);read_only(this,"__type__",binary_port);var r=0;Object.defineProperty(this,"__index__",{enumerable:true,get:function e(){return r},set:function e(t){typecheck("InputByteVectorPort::__index__",t,"number");if(t instanceof LNumber){t=t.valueOf()}if(typeof t==="bigint"){t=Number(t)}if(Math.floor(t)!==t){throw new Error("InputByteVectorPort::__index__ value is "+"not integer")}r=t}})}InputByteVectorPort.prototype=Object.create(InputPort.prototype);InputByteVectorPort.prototype.constructor=InputByteVectorPort;InputByteVectorPort.prototype.toString=function(){return"#"};InputByteVectorPort.prototype.close=function(){var t=this;read_only(this,"__vector__",_nil);var r=function e(){throw new Error("Input-binary-port: port is closed")};["read_u8","close","peek_u8","read_u8_vector"].forEach(function(e){t[e]=r});this.u8_ready=this.char_ready=function(){return false}};InputByteVectorPort.prototype.u8_ready=function(){return true};InputByteVectorPort.prototype.peek_u8=function(){if(this.__index__>=this.__vector__.length){return eof}return this.__vector__[this.__index__]};InputByteVectorPort.prototype.skip=function(){if(this.__index__<=this.__vector__.length){++this.__index__}};InputByteVectorPort.prototype.read_u8=function(){var e=this.peek_u8();this.skip();return e};InputByteVectorPort.prototype.read_u8_vector=function(e){if(typeof e==="undefined"){e=this.__vector__.length}else if(e>this.__index__+this.__vector__.length){e=this.__index__+this.__vector__.length}if(this.peek_u8()===eof){return eof}return this.__vector__.slice(this.__index__,e)};function OutputByteVectorPort(){if(typeof this!=="undefined"&&!(this instanceof OutputByteVectorPort)||typeof this==="undefined"){return new OutputByteVectorPort}read_only(this,"__type__",binary_port);read_only(this,"_buffer",[],{hidden:true});this.write=function(e){typecheck("write",e,["number","uint8array"]);if(LNumber.isNumber(e)){this._buffer.push(e.valueOf())}else{var t;(t=this._buffer).push.apply(t,_toConsumableArray(Array.from(e)))}};Object.defineProperty(this,"__buffer__",{enumerable:true,get:function e(){return Uint8Array.from(this._buffer)}})}OutputByteVectorPort.prototype=Object.create(OutputPort.prototype);OutputByteVectorPort.prototype.constructor=OutputByteVectorPort;OutputByteVectorPort.prototype.close=function(){OutputPort.prototype.close.call(this);read_only(this,"_buffer",null,{hidden:true})};OutputByteVectorPort.prototype._close_guard=function(){if(this._closed){throw new Error("output-port: binary port is closed")}};OutputByteVectorPort.prototype.write_u8=function(e){typecheck("OutputByteVectorPort::write_u8",e,"number");this.write(e)};OutputByteVectorPort.prototype.write_u8_vector=function(e){typecheck("OutputByteVectorPort::write_u8_vector",e,"uint8array");this.write(e)};OutputByteVectorPort.prototype.toString=function(){return"#"};OutputByteVectorPort.prototype.valueOf=function(){return this.__buffer__};function InputFilePort(e,t){if(typeof this!=="undefined"&&!(this instanceof InputFilePort)||typeof this==="undefined"){return new InputFilePort(e,t)}InputStringPort.call(this,e);typecheck("InputFilePort",t,"string");read_only(this,"__filename__",t)}InputFilePort.prototype=Object.create(InputStringPort.prototype);InputFilePort.prototype.constructor=InputFilePort;InputFilePort.prototype.toString=function(){return"#")};function InputBinaryFilePort(e,t){if(typeof this!=="undefined"&&!(this instanceof InputBinaryFilePort)||typeof this==="undefined"){return new InputBinaryFilePort(e,t)}InputByteVectorPort.call(this,e);typecheck("InputBinaryFilePort",t,"string");read_only(this,"__filename__",t)}InputBinaryFilePort.prototype=Object.create(InputByteVectorPort.prototype);InputBinaryFilePort.prototype.constructor=InputBinaryFilePort;InputBinaryFilePort.prototype.toString=function(){return"#")};function OutputBinaryFilePort(e,t){var i=this;if(typeof this!=="undefined"&&!(this instanceof OutputBinaryFilePort)||typeof this==="undefined"){return new OutputBinaryFilePort(e,t)}typecheck("OutputBinaryFilePort",e,"string");read_only(this,"__filename__",e);read_only(this,"_fd",t.valueOf(),{hidden:true});read_only(this,"__type__",binary_port);var a;this.write=function(e){typecheck("write",e,["number","uint8array"]);var n;if(!a){a=i.internal("fs")}if(LNumber.isNumber(e)){n=new Uint8Array([e.valueOf()])}else{n=new Uint8Array(Array.from(e))}return new Promise(function(t,r){a.write(i._fd,n,function(e){if(e){r(e)}else{t()}})})}}OutputBinaryFilePort.prototype=Object.create(OutputFilePort.prototype);OutputBinaryFilePort.prototype.constructor=OutputBinaryFilePort;OutputBinaryFilePort.prototype.write_u8=function(e){typecheck("OutputByteVectorPort::write_u8",e,"number");this.write(e)};OutputBinaryFilePort.prototype.write_u8_vector=function(e){typecheck("OutputByteVectorPort::write_u8_vector",e,"uint8array");this.write(e)};var binary_port=Symbol["for"]("binary");var text_port=Symbol["for"]("text");var eof=new EOF;function EOF(){}EOF.prototype.toString=function(){return"#"};function Interpreter(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.stderr,i=r.stdin,a=r.stdout,o=r.command_line,u=o===void 0?null:o,s=_objectWithoutProperties(r,_excluded3);if(typeof this!=="undefined"&&!(this instanceof Interpreter)||typeof this==="undefined"){return new Interpreter(e,_objectSpread({stdin:i,stdout:a,stderr:n,command_line:u},s))}if(typeof e==="undefined"){e="anonymous"}this.__env__=user_env.inherit(e,s);this.__parser__=new Parser({env:this.__env__});this.__env__.set("parent.frame",doc("parent.frame",function(){return t.__env__},global_env.__env__["parent.frame"].__doc__));var c="**interaction-environment-defaults**";this.set(c,get_props(s).concat(c));var l=internal_env.inherit("internal-".concat(e));if(is_port(i)){l.set("stdin",i)}if(is_port(n)){l.set("stderr",n)}if(is_port(a)){l.set("stdout",a)}l.set("command-line",u);set_interaction_env(this.__env__,l)}Interpreter.prototype.exec=function(){var t=_asyncToGenerator(function(o){var u=this;var s=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return _regeneratorRuntime.mark(function e(){var r,n,i,a;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=s.use_dynamic,n=r===void 0?false:r,i=s.dynamic_env,a=s.env;typecheck("Interpreter::exec",o,["string","array"],1);typecheck("Interpreter::exec",n,"boolean",2);if(!a){a=u.__env__}if(!i){i=a}global_env.set("**interaction-environment**",u.__env__);if(!Array.isArray(o)){t.next=10;break}return t.abrupt("return",exec(o,{env:a,dynamic_env:i,use_dynamic:n}));case 10:u.__parser__.parse(o);return t.abrupt("return",exec(u.__parser__,{env:a,dynamic_env:i,use_dynamic:n}));case 12:case"end":return t.stop()}},e)})()});return function(e){return t.apply(this,arguments)}}();Interpreter.prototype.get=function(e){var t=this.__env__.get(e);if(is_function(t)){var r=new LambdaContext({env:this.__env__});return t.bind(r)}return t};Interpreter.prototype.set=function(e,t){return this.__env__.set(e,t)};Interpreter.prototype.constant=function(e,t){return this.__env__.constant(e,t)};function LipsError(e,t){this.name="LipsError";this.message=e;this.args=t;this.stack=(new Error).stack}LipsError.prototype=new Error;LipsError.prototype.constructor=LipsError;var IgnoreException=function(e){function t(){_classCallCheck(this,t);return _callSuper(this,t,arguments)}_inherits(t,e);return _createClass(t)}(_wrapNativeSuper(Error));function Environment(e,t,r){if(arguments.length===1){if(_typeof$1(arguments[0])==="object"){e=arguments[0];t=null}else if(typeof arguments[0]==="string"){e={};t=null;r=arguments[0]}}this.__docs__=new Map;this.__env__=e;this.__parent__=t;this.__name__=r||"anonymous"}Environment.prototype.list=function(){return get_props(this.__env__)};Environment.prototype.fs=function(){return this.get("**fs**")};Environment.prototype.unset=function(e){if(e instanceof LSymbol){e=e.valueOf()}if(e instanceof LString){e=e.valueOf()}delete this.__env__[e]};Environment.prototype.inherit=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(_typeof$1(e)==="object"){t=e}if(!e||_typeof$1(e)==="object"){e="child of "+(this.__name__||"unknown")}return new Environment(t||{},this,e)};Environment.prototype.doc=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(e instanceof LSymbol){e=e.__name__}if(e instanceof LString){e=e.valueOf()}if(t){if(!r){t=trim_lines(t)}this.__docs__.set(e,t);return this}if(this.__docs__.has(e)){return this.__docs__.get(e)}if(this.__parent__){return this.__parent__.doc(e)}};Environment.prototype.new_frame=function(e,t){var n=this.inherit("__frame__");n.set("parent.frame",doc("parent.frame",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;e=e.valueOf();var t=n.__parent__;if(!is_env(t)){return _nil}if(e<=0){return t}var r=t.get("parent.frame");return r(e-1)},global_env.__env__["parent.frame"].__doc__));t.callee=e;n.set("arguments",t);return n};Environment.prototype._lookup=function(e){if(e instanceof LSymbol){e=e.__name__}if(e instanceof LString){e=e.valueOf()}if(this.__env__.hasOwnProperty(e)){return Value(this.__env__[e])}if(this.__parent__){return this.__parent__._lookup(e)}};Environment.prototype.toString=function(){return"#"};Environment.prototype.clone=function(){var t=this;var r={};Object.keys(this.__env__).forEach(function(e){r[e]=t.__env__[e]});return new Environment(r,this.__parent__,this.__name__)};Environment.prototype.merge=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"merge";typecheck("Environment::merge",e,"environment");return this.inherit(t,e.__env__)};function Value(e){if(typeof this!=="undefined"&&!(this instanceof Value)||typeof this==="undefined"){return new Value(e)}this.value=e}Value.isUndefined=function(e){return e instanceof Value&&typeof e.value==="undefined"};Value.prototype.valueOf=function(){return this.value};function Values(e){if(!e.length){return}if(e.length===1){return e[0]}if(typeof this!=="undefined"&&!(this instanceof Values)||typeof this==="undefined"){return new Values(e)}this.__values__=e}Values.prototype.toString=function(){return this.__values__.map(function(e){return toString(e)}).join("\n")};Values.prototype.valueOf=function(){return this.__values__};Environment.prototype.get=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};typecheck("Environment::get",e,["symbol","string"]);var r=t.throwError,n=r===void 0?true:r;var i=e;if(i instanceof LSymbol||i instanceof LString){i=i.valueOf()}var a=this._lookup(i);if(a instanceof Value){if(Value.isUndefined(a)){return undefined}return patch_value(a.valueOf())}var o;if(e instanceof LSymbol&&e[LSymbol.object]){o=e[LSymbol.object]}else if(typeof i==="string"){o=i.split(".").filter(Boolean)}if(o&&o.length>0){var u=o,s=_toArray(u),c=s[0],l=s.slice(1);a=this._lookup(c);if(l.length){try{if(a instanceof Value){a=a.valueOf()}else{a=get(root,c);if(is_function(a)){a=unbind(a)}}if(typeof a!=="undefined"){return get.apply(void 0,[a].concat(_toConsumableArray(l)))}}catch(e){throw e}}else if(a instanceof Value){return patch_value(a.valueOf())}a=get(root,i)}if(typeof a!=="undefined"){return a}if(n){throw new Error("Unbound variable `"+i.toString()+"'")}};Environment.prototype.set=function(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;typecheck("Environment::set",e,["string","symbol"]);if(LNumber.isNumber(t)){t=LNumber(t)}if(e instanceof LSymbol){e=e.__name__}if(e instanceof LString){e=e.valueOf()}this.__env__[e]=t;if(r){this.doc(e,r,true)}return this};Environment.prototype.constant=function(t,e){var r=this;if(this.__env__.hasOwnProperty(t)){throw new Error("Environment::constant: ".concat(t," already exists"))}if(arguments.length===1&&is_plain_object(arguments[0])){var n=arguments[0];Object.keys(n).forEach(function(e){r.constant(t,n[e])})}else{Object.defineProperty(this.__env__,t,{value:e,enumerable:true})}return this};Environment.prototype.has=function(e){return this.__env__.hasOwnProperty(e)};Environment.prototype.ref=function(e){var t=this;while(true){if(!t){break}if(t.has(e)){return t}t=t.__parent__}};Environment.prototype.parents=function(){var e=this;var t=[];while(e){t.unshift(e);e=e.__parent__}return t};function quote(e){if(is_promise(e)){return e.then(quote)}if(is_pair(e)||e instanceof LSymbol){e[__data__]=true}return e}var native_lambda=_parse(tokenize('(lambda ()\n "[native code]"\n (throw "Invalid Invocation"))'))[0];var get=doc("get",function e(t){var r;for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=internal(this,"stdin")}typecheck_text_port("peek-char",e,"input-port");return e.peek_char()},"(peek-char port)\n\n This function reads and returns a character from the string\n port, or, if there is no more data in the string port, it\n returns an EOF."),"read-line":doc("read-line",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=internal(this,"stdin")}typecheck_text_port("read-line",e,"input-port");return e.read_line()},"(read-line port)\n\n This function reads and returns the next line from the input\n port."),"read-char":doc("read-char",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=internal(this,"stdin")}typecheck_text_port("read-char",e,"input-port");return e.read_char()},"(read-char port)\n\n This function reads and returns the next character from the\n input port."),read:doc("read",function(){var e=_asyncToGenerator(function(){var i=this;var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;return _regeneratorRuntime.mark(function e(){var r,n;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=i.env;if(a===null){n=internal(r,"stdin")}else{n=a}typecheck_text_port("read",n,"input-port");return t.abrupt("return",n.read.call(r));case 4:case"end":return t.stop()}},e)})()});function t(){return e.apply(this,arguments)}return t}(),"(read [port])\n\n This function, if called with a port, it will parse the next\n item from the port. If called without an input, it will read\n a string from standard input (using the browser's prompt or\n a user defined input method) and parse it. This function can be\n used together with `eval` to evaluate code from port."),pprint:doc("pprint",function e(t){if(is_pair(t)){t=new lips.Formatter(t.toString(true))["break"]().format();global_env.get("display").call(global_env,t)}else{global_env.get("write").call(global_env,t)}global_env.get("newline").call(global_env)},"(pprint expression)\n\n This function will pretty print its input to stdout. If it is called\n with a non-list, it will just call the print function on its\n input."),print:doc("print",function e(){var t=global_env.get("display");var r=global_env.get("newline");var n=this.use_dynamic;var i=global_env;var a=global_env;for(var o=arguments.length,u=new Array(o),s=0;s1?r-1:0),i=1;in.length){throw new Error("Not enough arguments")}var u=0;var s=global_env.get("repr");t=t.replace(a,function(e){var t=e[1];if(t==="~"){return"~"}else if(t==="%"){return"\n"}else{var r=n[u++];if(t==="a"){return s(r)}else{return s(r,true)}}});o=t.match(/~([\S])/);if(o){throw new Error("format: Unrecognized escape sequence ".concat(o[1]))}return t},"(format string n1 n2 ...)\n\n This function accepts a string template and replaces any\n escape sequences in its inputs:\n\n * ~a value as if printed with `display`\n * ~s value as if printed with `write`\n * ~% newline character\n * ~~ literal tilde '~'\n\n If there are missing inputs or other escape characters it\n will error."),newline:doc("newline",function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;var r=global_env.get("display");var n=this.use_dynamic;var i=global_env;var a=global_env;call_function(r,["\n",t],{env:i,dynamic_env:a,use_dynamic:n})},"(newline [port])\n\n Write newline character to standard output or given port"),display:doc("display",function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(r===null){r=internal(this,"stdout")}else{typecheck("display",r,"output-port")}var n=t;if(!(r instanceof OutputBinaryFilePort)){n=global_env.get("repr")(t)}r.write.call(global_env,n)},"(display string [port])\n\n This function outputs the string to the standard output or\n the port if given. No newline."),"display-error":doc("display-error",function e(){var t=internal(this,"stderr");var r=global_env.get("repr");for(var n=arguments.length,i=new Array(n),a=0;a1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=_objectWithoutProperties(t,_excluded4);var i=this;var o=this;var u;var s=_objectSpread(_objectSpread({},n),{},{env:this,dynamic_env:i,use_dynamic:r});var c=_evaluate(e.cdr.car,s);c=resolve_promises(c);function l(t,r,n){if(is_promise(t)){return t.then(function(e){return l(t,e,n)})}if(is_promise(r)){return r.then(function(e){return l(t,e,n)})}if(is_promise(n)){return n.then(function(e){return l(t,r,e)})}o.get("set-obj!").call(o,t,r,n);return n}if(is_pair(e.car)&&LSymbol.is(e.car.car,".")){var f=e.car.cdr.car;var _=e.car.cdr.cdr.car;var p=_evaluate(f,s);var d=_evaluate(_,s);return l(p,d,c)}if(!(e.car instanceof LSymbol)){throw new Error("set! first argument need to be a symbol or "+"dot accessor that evaluate to object.")}var h=e.car.valueOf();u=this.ref(e.car.__name__);return unpromise(c,function(e){if(!u){var t=h.split(".");if(t.length>1){var r=t.pop();var n=t.join(".");var i=a.get(n,{throwError:false});if(i){l(i,r,e);return}}throw new Error("Unbound variable `"+h+"'")}u.set(h,e)})}),"(set! name value)\n\n Macro that can be used to set the value of the variable or slot (mutate it).\n set! searches the scope chain until it finds first non empty slot and sets it."),"unset!":doc(new Macro("set!",function(e){if(!(e.car instanceof LSymbol)){throw new Error("unset! first argument need to be a symbol or "+"dot accessor that evaluate to object.")}var t=e.car;var r=this.ref(t);if(r){delete r.__env__[t.__name__]}}),"(unset! name)\n\n Function to delete the specified name from environment.\n Trying to access the name afterwards will error."),"set-car!":doc("set-car!",function(e,t){typecheck("set-car!",e,"pair");e.car=t},"(set-car! obj value)\n\n Function that sets the car (first item) of the list/pair to specified value.\n The old value is lost."),"set-cdr!":doc("set-cdr!",function(e,t){typecheck("set-cdr!",e,"pair");e.cdr=t},"(set-cdr! obj value)\n\n Function that sets the cdr (tail) of the list/pair to specified value.\n It will destroy the list. The old tail is lost."),"empty?":doc("empty?",function(e){return typeof e==="undefined"||is_nil(e)},"(empty? object)\n\n Function that returns #t if value is nil (an empty list) or undefined."),gensym:doc("gensym",gensym,"(gensym)\n\n Generates a unique symbol that is not bound anywhere,\n to use with macros as meta name."),load:doc("load",function e(c,t){typecheck("load",c,"string");var l=this;if(l.__name__==="__frame__"){l=l.__parent__}if(!(t instanceof Environment)){if(l===global_env){t=l}else{t=this.get("**interaction-environment**")}}var f="@lips";var _=c.startsWith(f);var p="**module-path**";var d=global_env.get(p,{throwError:false});c=c.valueOf();if(!c.match(/.[^.]+$/)){c+=".scm"}var r=c.match(/\.xcb$/);function h(e){if(r){e=unserialize_bin(e)}else{if(type(e)==="buffer"){e=e.toString()}e=e.replace(/^(#!.*)/,function(e,t){if(is_directive(t)){return t}return""});if(e.match(/^\{/)){e=unserialize(e)}}return exec(e,{env:t})}function n(e){return root.fetch(e).then(function(e){return r?e.arrayBuffer():e.text()}).then(function(e){if(r){e=new Uint8Array(e)}return e})}function m(){var e=global_env.get("__dirname");return e.replace(/[^/]+$/,"")}if(is_node()){return new Promise(function(){var r=_asyncToGenerator(_regeneratorRuntime.mark(function e(r,n){var i,a,o,u,s;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.prev=0;t.next=3;return node_ready;case 3:i=nodeRequire("path");a=nodeRequire("fs");o=m();if(_){c=c.replace(f,o)}if(!d){t.next=12;break}d=d.valueOf();if(!c.startsWith("/")){c=i.join(d,c)}t.next=19;break;case 12:if(c.startsWith("/")){t.next=19;break}u=l.get("command-line",{throwError:false});if(!u){t.next=18;break}t.next=17;return u();case 17:s=t.sent;case 18:if(s&&!is_nil(s)){process.cwd();c=i.join(i.dirname(s.car.valueOf()),c)}case 19:global_env.set(p,i.dirname(c));a.readFile(c,function(e,t){if(e){n(e);global_env.set(p,d)}else{try{h(t).then(function(){r();global_env.set(p,d)})["catch"](n)}catch(e){n(e)}}});t.next=26;break;case 23:t.prev=23;t.t0=t["catch"](0);console.error(t.t0);case 26:case"end":return t.stop()}},e,null,[[0,23]])}));return function(e,t){return r.apply(this,arguments)}}())}if(_){var i,a;var o=(i=global_env.get("__dirname",{throwError:false}))!==null&&i!==void 0?i:current_script;(a=o)!==null&&a!==void 0?a:o=current_script;var u=o.replace(/dist\/?[^\/]*$/,"");c=c.replace(f,u)}if(d){d=d.valueOf();if(!c.startsWith("/")){c=d+"/"+c.replace(/^\.?\/?/,"")}}return n(c).then(function(e){global_env.set(p,c.replace(/\/[^/]*$/,""));return h(e)}).then(function(){})["finally"](function(){global_env.set(p,d)})},"(load filename)\n (load filename environment)\n\n Fetches the file (from disk or network) and evaluates its content as LIPS code.\n If the second argument is provided and it's an environment the evaluation\n will happen in that environment."),while:doc(new Macro("while",function(e,t){var r=e.car;var n=_objectSpread(_objectSpread({},t),{},{env:this});var i=new Pair(new LSymbol("begin"),e.cdr);return function t(){return unpromise(_evaluate(r,n),function(e){if(e){return unpromise(_evaluate(i,n),t)}})}()}),"(while cond body)\n\n Creates a loop, it executes cond and body until cond expression is false."),do:doc(new Macro("do",function(){var r=_asyncToGenerator(function(_,e){var p=this;var d=e.use_dynamic,h=e.error;return _regeneratorRuntime.mark(function e(){var u,r,s,c,n,l,f,i,a,o;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:u=p;r=u;s=u.inherit("do");c=_.car;n=_.cdr.car;l=_.cdr.cdr;if(!is_nil(l)){l=new Pair(LSymbol("begin"),l)}f={env:u,dynamic_env:r,use_dynamic:d,error:h};i=c;case 9:if(is_nil(i)){t.next=20;break}a=i.car;t.t0=s;t.t1=a.car;t.next=15;return _evaluate(a.cdr.car,f);case 15:t.t2=t.sent;t.t0.set.call(t.t0,t.t1,t.t2);i=i.cdr;t.next=9;break;case 20:f={env:s,dynamic_env:r,error:h};o=_regeneratorRuntime.mark(function e(){var r,n,i,a,o;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(is_nil(l)){t.next=3;break}t.next=3;return lips.evaluate(l,f);case 3:r=c;n={};case 5:if(is_nil(r)){t.next=15;break}i=r.car;if(is_nil(i.cdr.cdr)){t.next=12;break}t.next=10;return _evaluate(i.cdr.cdr.car,f);case 10:a=t.sent;n[i.car.valueOf()]=a;case 12:r=r.cdr;t.next=5;break;case 15:o=Object.getOwnPropertySymbols(n);f.env=s=u.inherit("do");Object.keys(n).concat(o).forEach(function(e){s.set(e,n[e])});case 18:case"end":return t.stop()}},e)});case 22:t.next=24;return _evaluate(n.car,f);case 24:t.t3=t.sent;if(!(t.t3===false)){t.next=29;break}return t.delegateYield(o(),"t4",27);case 27:t.next=22;break;case 29:if(is_nil(n.cdr)){t.next=33;break}t.next=32;return _evaluate(n.cdr.car,f);case 32:return t.abrupt("return",t.sent);case 33:case"end":return t.stop()}},e)})()});return function(e,t){return r.apply(this,arguments)}}()),"(do (( )) (test return) . body)\n\n Iteration macro that evaluates the expression body in scope of the variables.\n On each loop it changes the variables according to the expression and runs\n test to check if the loop should continue. If test is a single value, the macro\n will return undefined. If the test is a pair of expressions the macro will\n evaluate and return the second expression after the loop exits."),if:doc(new Macro("if",function(r,e){var t=e.error,n=e.use_dynamic;var i=this;var a=this;var o={env:a,dynamic_env:i,use_dynamic:n,error:t};var u=function e(t){if(is_false(t)){return _evaluate(r.cdr.cdr.car,o)}else{return _evaluate(r.cdr.car,o)}};if(is_nil(r)){throw new Error("too few expressions for `if`")}var s=_evaluate(r.car,o);return unpromise(s,u)}),"(if cond true-expr false-expr)\n\n Macro that evaluates cond expression and if the value is true, it\n evaluates and returns true-expression, if not it evaluates and returns\n false-expression."),"let-env":new Macro("let-env",function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=e.dynamic_env,n=e.use_dynamic,i=e.error;typecheck("let-env",t,"pair");var a=_evaluate(t.car,{env:this,dynamic_env:r,error:i,use_dynamic:n});return unpromise(a,function(e){typecheck("let-env",e,"environment");return _evaluate(Pair(LSymbol("begin"),t.cdr),{env:e,dynamic_env:r,error:i})})},"(let-env env . body)\n\n Special macro that evaluates body in context of given environment\n object."),letrec:doc(let_macro(Symbol["for"]("letrec")),"(letrec ((a value-a) (b value-b) ...) . body)\n\n Macro that creates a new environment, then evaluates and assigns values to\n names and then evaluates the body in context of that environment.\n Values are evaluated sequentially and the next value can access the\n previous values/names."),"letrec*":doc(let_macro(Symbol["for"]("letrec")),"(letrec* ((a value-a) (b value-b) ...) . body)\n\n Same as letrec but the order of execution of the binding is guaranteed,\n so you can use recursive code as well as referencing the previous binding.\n\n In LIPS both letrec and letrec* behave the same."),"let*":doc(let_macro(Symbol["for"]("let*")),"(let* ((a value-a) (b value-b) ...) . body)\n\n Macro similar to `let`, but the subsequent bindings after the first\n are evaluated in the environment including the previous let variables,\n so you can define one variable, and use it in the next's definition."),let:doc(let_macro(Symbol["for"]("let")),"(let ((a value-a) (b value-b) ...) . body)\n\n Macro that creates a new environment, then evaluates and assigns values to names,\n and then evaluates the body in context of that environment. Values are evaluated\n sequentially but you can't access previous values/names when the next are\n evaluated. You can only get them in the body of the let expression. (If you want\n to define multiple variables and use them in each other's definitions, use\n `let*`.)"),"begin*":doc(parallel("begin*",function(e){return e.pop()}),"(begin* . body)\n\n This macro is a parallel version of begin. It evaluates each expression\n in the body and if it's a promise it will await it in parallel and return\n the value of the last expression (i.e. it uses Promise.all())."),shuffle:doc("shuffle",function(e){typecheck("shuffle",e,["pair","nil","array"]);var t=global_env.get("random");if(is_nil(e)){return _nil}if(Array.isArray(e)){return shuffle(e.slice(),t)}var r=global_env.get("list->array")(e);r=shuffle(r,t);return global_env.get("array->list")(r)},"(shuffle obj)\n\n Order items in vector or list in random order."),begin:doc(new Macro("begin",function(e,t){var n=_objectSpread(_objectSpread({},t),{},{env:this});var i=global_env.get("list->array")(e);var a;return function t(){if(i.length){var e=i.shift();var r=_evaluate(e,n);return unpromise(r,function(e){a=e;return t()})}else{return a}}()}),"(begin . args)\n\n Macro that runs a list of expressions in order and returns the value\n of the last one. It can be used in places where you can only have a\n single expression, like (if)."),ignore:new Macro("ignore",function(e,t){var r=_objectSpread(_objectSpread({},t),{},{env:this,dynamic_env:this});_evaluate(new Pair(new LSymbol("begin"),e),r)},"(ignore . body)\n\n Macro that will evaluate the expression and swallow any promises that may\n be created. It will discard any value that may be returned by the last body\n expression. The code should have side effects and/or when it's promise\n it should resolve to undefined."),"call/cc":doc(Macro.defmacro("call/cc",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=_objectSpread({env:this},t);return unpromise(_evaluate(e.car,r),function(e){if(is_function(e)){return e(new Continuation(null))}})}),"(call/cc proc)\n\n Call-with-current-continuation.\n\n NOT SUPPORTED BY LIPS RIGHT NOW"),parameterize:doc(new Macro("parameterize",function(t,e){var i=e.dynamic_env;var a=i.inherit("parameterize").new_frame(null,{});var o=_objectSpread(_objectSpread({},e),{},{env:this});var u=t.car;if(!is_pair(u)){var r=type(u);throw new Error("Invalid syntax for parameterize expecting pair got ".concat(r))}function s(){var e=new Pair(new LSymbol("begin"),t.cdr);return _evaluate(e,_objectSpread(_objectSpread({},o),{},{dynamic_env:a}))}return function r(){var e=u.car;var n=e.car.valueOf();return unpromise(_evaluate(e.cdr.car,o),function(e){var t=i.get(n,{throwError:false});if(!is_parameter(t)){throw new Error("Unknown parameter ".concat(n))}a.set(n,t.inherit(e));if(!is_null(u.cdr)){u=u.cdr;return r()}else{return s()}})}()}),"(parameterize ((name value) ...)\n\n Macro that change the dynamic variable created by make-parameter."),"make-parameter":doc(new Macro("make-parameter",function(e,t){t.dynamic_env;var r=_evaluate(e.car,t);var n;if(is_pair(e.cdr.car)){n=_evaluate(e.cdr.car,t)}return new Parameter(r,n)}),"(make-parameter init converter)\n\n Function creates new dynamic variable that can be custimized with parameterize\n macro. The value should be assigned to a variable e.g.:\n\n (define radix (make-parameter 10))\n\n The result value is a procedure that return the value of dynamic variable."),"define-syntax-parameter":doc(new Macro("define-syntax-parameter",function(e,t){var r=e.car;var n=this;if(!(r instanceof LSymbol)){throw new Error("define-syntax-parameter: invalid syntax expecting symbol got ".concat(type(r)))}var i=_evaluate(e.cdr.car,_objectSpread({env:n},t));typecheck("define-syntax-parameter",i,"syntax",2);i.__name__=r.valueOf();if(i.__name__ instanceof LString){i.__name__=i.__name__.valueOf()}var a;if(is_pair(e.cdr.cdr)&&LString.isString(e.cdr.cdr.car)){a=e.cdr.cdr.car.valueOf()}n.set(e.car,new SyntaxParameter(i),a,true)}),"(define-syntax-parameter name syntax [__doc__])\n\n Binds to the transformer obtained by evaluating .\n The transformer provides the default expansion for the syntax parameter,\n and in the absence of syntax-parameterize, is functionally equivalent to\n define-syntax."),"syntax-parameterize":doc(new Macro("syntax-parameterize",function(e,t){var r=global_env.get("list->array")(e.car);var n=this.inherit("syntax-parameterize");while(r.length){var i=r.shift();if(!(is_pair(i)||i.car instanceof LSymbol)){var a="invalid syntax for syntax-parameterize: ".concat(repr(e,true));throw new Error("syntax-parameterize: ".concat(a))}var o=_evaluate(i.cdr.car,_objectSpread(_objectSpread({},t),{},{env:this}));var u=i.car;typecheck("syntax-parameterize",o,["syntax"]);typecheck("syntax-parameterize",u,"symbol");o.__name__=u.valueOf();if(o.__name__ instanceof LString){o.__name__=o.__name__.valueOf()}var s=new SyntaxParameter(o);if(u.is_gensym()){var c=u.literal();var l=this.get(c,{throwError:false});if(l instanceof SyntaxParameter){n.set(c,s)}}n.set(u,s)}var f=hygienic_begin([n,t.dynamic_env],e.cdr);return _evaluate(f,_objectSpread(_objectSpread({},t),{},{env:n}))}),"(syntax-parameterize (bindings) body)\n\n Macro work similar to let-syntax but the the bindnds will be exposed to the user.\n With syntax-parameterize you can define anaphoric macros."),define:doc(Macro.defmacro("define",function(r,e){var n=this;if(is_pair(r.car)&&r.car.car instanceof LSymbol){var t=new Pair(new LSymbol("define"),new Pair(r.car.car,new Pair(new Pair(new LSymbol("lambda"),new Pair(r.car.cdr,r.cdr)))));return t}else if(e.macro_expand){return}e.dynamic_env=this;e.env=n;var i=r.cdr.car;var a;if(is_pair(i)){i=_evaluate(i,e);a=true}else if(i instanceof LSymbol){i=n.get(i)}typecheck("define",r.car,"symbol");return unpromise(i,function(e){if(n.__name__===Syntax.__merge_env__){n=n.__parent__}if(a&&(is_function(e)&&is_lambda(e)||e instanceof Syntax||is_parameter(e))){e.__name__=r.car.valueOf();if(e.__name__ instanceof LString){e.__name__=e.__name__.valueOf()}}var t;if(is_pair(r.cdr.cdr)&&LString.isString(r.cdr.cdr.car)){t=r.cdr.cdr.car.valueOf()}n.set(r.car,e,t,true)})}),'(define name expression)\n (define name expression "doc string")\n (define (function-name . args) . body)\n\n Macro for defining values. It can be used to define variables,\n or functions. If the first argument is list it will create a function\n with name being first element of the list. This form expands to\n `(define function-name (lambda args body))`'),"set-obj!":doc("set-obj!",function(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var i=_typeof$1(e);if(is_null(e)||i!=="object"&&i!=="function"){var a=typeErrorMessage("set-obj!",type(e),["object","function"]);throw new Error(a)}typecheck("set-obj!",t,["string","symbol","number"]);e=unbind(e);t=t.valueOf();if(arguments.length===2){delete e[t]}else if(is_prototype(e)&&is_function(r)){e[t]=unbind(r);e[t][__prototype__]=true}else if(is_function(r)||is_native(r)||is_nil(r)){e[t]=r}else{e[t]=r&&!is_prototype(r)?r.valueOf():r}if(props){var o=e[t];Object.defineProperty(e,t,_objectSpread(_objectSpread({},n),{},{value:o}))}},"(set-obj! obj key value)\n (set-obj! obj key value props)\n\n Function set a property of a JavaScript object. props should be a vector of pairs,\n passed to Object.defineProperty."),"null-environment":doc("null-environment",function(){return global_env.inherit("null")},"(null-environment)\n\n Returns a clean environment with only the standard library."),values:doc("values",function e(){for(var t=arguments.length,r=new Array(t),n=0;n1&&arguments[1]!==undefined?arguments[1]:{},y=e.use_dynamic,v=e.error;var b=this;var g;if(is_pair(m.cdr)&&LString.isString(m.cdr.car)&&!is_nil(m.cdr.cdr)){g=m.cdr.car.valueOf()}function w(){var e=is_context(this)?this:{dynamic_env:b},r=e.dynamic_env;var n=b.inherit("lambda");r=r.inherit("lambda");if(this&&!is_context(this)){if(this&&!this.__instance__){Object.defineProperty(this,"__instance__",{enumerable:false,get:function e(){return true},set:function e(){},configurable:false})}n.set("this",this)}for(var t=arguments.length,i=new Array(t),a=0;a> SYNTAX");log(e);log(v);var n=w.inherit("syntax");var i=n;var a=this;if(a.__name__===Syntax.__merge_env__){var o=Object.getOwnPropertySymbols(a.__env__);o.forEach(function(e){a.__parent__.set(e,a.__env__[e])});a=a.__parent__}var u={env:n,dynamic_env:i,use_dynamic:b,error:g};var s,c,l;if(v.car instanceof LSymbol){s=v.car;l=D(v.cdr.car);c=v.cdr.cdr}else{s="...";l=D(v.car);c=v.cdr}try{while(!is_nil(c)){var f=c.car.car;var _=c.car.cdr.car;log("[[[ RULE");log(f);var p=extract_patterns(f,e,l,s,{expansion:this,define:w});if(p){if(is_debug()){console.log(JSON.stringify(symbolize(p),true,2));console.log("PATTERN: "+f.toString(true));console.log("MACRO: "+e.toString(true))}var d=[];var h=transform_syntax({bindings:p,expr:_,symbols:l,scope:n,lex_scope:a,names:d,ellipsis:s});log("OUPUT>>> ",h);if(h){_=h}var m=a.merge(n,Syntax.__merge_env__);if(r){return{expr:_,scope:m}}var y=_evaluate(_,_objectSpread(_objectSpread({},u),{},{env:m}));return clear_gensyms(y,d)}c=c.cdr}}catch(e){e.message+="\nin macro:\n ".concat(v.toString(true));throw e}throw new Error("syntax-rules: no matching syntax in macro ".concat(e.toString(true)))},w);r.__code__=v;return r},"(syntax-rules () (pattern expression) ...)\n\n Base of hygienic macros, it will return a new syntax expander\n that works like Lisp macros."),quote:doc(new Macro("quote",function(e){return quote(e.car)}),"(quote expression) or 'expression\n\n Macro that returns a single LIPS expression as data (it won't evaluate the\n argument). It will return a list if put in front of LIPS code.\n And if put in front of a symbol it will return the symbol itself, not the value\n bound to that name."),"unquote-splicing":doc("unquote-splicing",function(){throw new Error("You can't call `unquote-splicing` outside of quasiquote")},"(unquote-splicing code) or ,@code\n\n Special form used in the quasiquote macro. It evaluates the expression inside and\n splices the list into quasiquote's result. If it is not the last element of the\n expression, the computed value must be a pair."),unquote:doc("unquote",function(){throw new Error("You can't call `unquote` outside of quasiquote")},"(unquote code) or ,code\n\n Special form used in the quasiquote macro. It evaluates the expression inside and\n substitutes the value into quasiquote's result."),quasiquote:Macro.defmacro("quasiquote",function(e,t){var u=t.use_dynamic,s=t.error;var c=this;var l=c;function a(e){return is_pair(e)||is_plain_object(e)||Array.isArray(e)}function f(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:a;if(is_pair(e)){var n=e.car;var i=e.cdr;if(r(n)){n=t(n)}if(r(i)){i=t(i)}if(is_promise(n)||is_promise(i)){return promise_all([n,i]).then(function(e){var t=_slicedToArray(e,2),r=t[0],n=t[1];return new Pair(r,n)})}else{return new Pair(n,i)}}return e}function o(e,t){if(is_pair(e)){if(!is_nil(t)){e.append(t)}}else{e=new Pair(e,t)}return e}function r(e){return!!e.filter(function(e){return is_pair(e)&&LSymbol.is(e.car,/^(unquote|unquote-splicing)$/)}).length}function _(e,n,i){return e.reduce(function(e,t){if(!is_pair(t)){e.push(t);return e}if(LSymbol.is(t.car,"unquote-splicing")){var r;if(n+11){var t="You can't splice multiple atoms inside list";throw new Error(t)}if(!(is_pair(i.cdr)&&is_nil(r[0]))){return r[0]}}r=r.map(function(e){if(h.has(e)){return e.clone()}else{h.add(e);return e}});var n=m(i.cdr,0,1);if(is_nil(n)&&is_nil(r[0])){return undefined}return unpromise(n,function(e){if(is_nil(r[0])){return e}if(r.length===1){return o(r[0],e)}var t=r.reduce(function(e,t){return o(e,t)});return o(t,e)})})}(i.car.cdr)}var h=new Set;function m(e,t,r){if(is_pair(e)){if(is_pair(e.car)){if(LSymbol.is(e.car.car,"unquote-splicing")){return d(e,t+1,r)}if(LSymbol.is(e.car.car,"unquote")){if(t+2===r&&is_pair(e.car.cdr)&&is_pair(e.car.cdr.car)&&LSymbol.is(e.car.cdr.car.car,"unquote-splicing")){var n=e.car.cdr;return new Pair(new Pair(new LSymbol("unquote"),d(n,t+2,r)),_nil)}else if(is_pair(e.car.cdr)&&!is_nil(e.car.cdr.cdr)){if(is_pair(e.car.cdr.car)){var i=[];return function t(r){if(is_nil(r)){return Pair.fromArray(i)}return unpromise(_evaluate(r.car,{env:c,dynamic_env:l,use_dynamic:u,error:s}),function(e){i.push(e);return t(r.cdr)})}(e.car.cdr)}else{return e.car.cdr}}}}if(LSymbol.is(e.car,"quasiquote")){var a=m(e.cdr,t,r+1);return new Pair(e.car,a)}if(LSymbol.is(e.car,"quote")){return new Pair(e.car,m(e.cdr,t,r))}if(LSymbol.is(e.car,"unquote")){t++;if(tr){throw new Error("You can't call `unquote` outside "+"of quasiquote")}if(is_pair(e.cdr)){if(!is_nil(e.cdr.cdr)){if(is_pair(e.cdr.car)){var o=[];return function t(r){if(is_nil(r)){return Pair.fromArray(o)}return unpromise(_evaluate(r.car,{env:c,dynamic_env:l,use_dynamic:u,error:s}),function(e){o.push(e);return t(r.cdr)})}(e.cdr)}else{return e.cdr}}else{return _evaluate(e.cdr.car,{env:c,dynamic_env:l,error:s})}}else{return e.cdr}}return f(e,function(e){return m(e,t,r)})}else if(is_plain_object(e)){return p(e,t,r)}else if(e instanceof Array){return _(e,t,r)}return e}function n(e){if(is_pair(e)){delete e[__data__];if(!e.have_cycles("car")){n(e.car)}if(!e.have_cycles("cdr")){n(e.cdr)}}}if(is_plain_object(e.car)&&!r(Object.values(e.car))){return quote(e.car)}if(Array.isArray(e.car)&&!r(e.car)){return quote(e.car)}if(is_pair(e.car)&&!e.car.find("unquote")&&!e.car.find("unquote-splicing")&&!e.car.find("quasiquote")){return quote(e.car)}var i=m(e.car,0,1);return unpromise(i,function(e){n(e);return quote(e)})},"(quasiquote list)\n\n Similar macro to `quote` but inside it you can use special expressions (unquote\n x) abbreviated to ,x that will evaluate x and insert its value verbatim or\n (unquote-splicing x) abbreviated to ,@x that will evaluate x and splice the value\n into the result. Best used with macros but it can be used outside."),clone:doc("clone",function e(t){typecheck("clone",t,"pair");return t.clone()},"(clone list)\n\n Function that returns a clone of the list, that does not share any pairs with the\n original, so the clone can be safely mutated without affecting the original."),append:doc("append",function e(){var t;for(var r=arguments.length,n=new Array(r),i=0;iarray")(t).reverse();return global_env.get("array->list")(r)}else if(Array.isArray(t)){return t.reverse()}else{throw new Error(typeErrorMessage("reverse",type(t),"array or pair"))}},"(reverse list)\n\n Function that reverses the list or array. If value is not a list\n or array it will error."),nth:doc("nth",function e(t,r){typecheck("nth",t,"number");typecheck("nth",r,["array","pair"]);if(is_pair(r)){var n=r;var i=0;while(iarray")(r).join(t)},"(join separator list)\n\n Function that returns a string by joining elements of the list using separator."),split:doc("split",function e(t,r){typecheck("split",t,["regex","string"]);typecheck("split",r,"string");return global_env.get("array->list")(r.split(t))},"(split separator string)\n\n Function that creates a list by splitting string by separator which can\n be a string or regular expression."),replace:doc("replace",function e(t,r,n){typecheck("replace",t,["regex","string"]);typecheck("replace",r,["string","function"]);typecheck("replace",n,"string");if(is_function(r)){var i=[];n.replace(t,function(){i.push(r.apply(void 0,arguments))});return unpromise(i,function(e){return n.replace(t,function(){return e.shift()})})}return n.replace(t,r)},"(replace pattern replacement string)\n\n Function that changes pattern to replacement inside string. Pattern can be a\n string or regex and replacement can be function or string. See Javascript\n String.replace()."),match:doc("match",function e(t,r){typecheck("match",t,["regex","string"]);typecheck("match",r,"string");var n=r.match(t);return n?global_env.get("array->list")(n):false},"(match pattern string)\n\n Function that returns a match object from JavaScript as a list or #f if\n no match."),search:doc("search",function e(t,r){typecheck("search",t,["regex","string"]);typecheck("search",r,"string");return r.search(t)},"(search pattern string)\n\n Function that returns the first found index of the pattern inside a string."),repr:doc("repr",function e(t,r){return toString(t,r)},"(repr obj)\n\n Function that returns a LIPS code representation of the object as a string."),"escape-regex":doc("escape-regex",function(e){typecheck("escape-regex",e,"string");return escape_regex(e.valueOf())},"(escape-regex string)\n\n Function that returns a new string where all special operators used in regex,\n are escaped with backslashes so they can be used in the RegExp constructor\n to match a literal string."),env:doc("env",function e(e){e=e||this.env;var t=Object.keys(e.__env__).map(LSymbol);var r;if(t.length){r=Pair.fromArray(t)}else{r=_nil}if(e.__parent__ instanceof Environment){return global_env.get("env").call(this,e.__parent__).append(r)}return r},"(env)\n (env obj)\n\n Function that returns a list of names (functions, macros and variables)\n that are bound in the current environment or one of its parents."),new:doc("new",function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2&&arguments[2]!==undefined?arguments[2]:specials.LITERAL;typecheck("set-special!",e,"string",1);typecheck("set-special!",t,"symbol",2);specials.append(e.valueOf(),t,r)},'(set-special! symbol name [type])\n\n Add a special symbol to the list of transforming operators by the parser.\n e.g.: `(add-special! "#" \'x)` will allow to use `#(1 2 3)` and it will be\n transformed into (x (1 2 3)) so you can write x macro that will process\n the list. 3rd argument is optional, and it can be one of two values:\n lips.specials.LITERAL, which is the default behavior, or\n lips.specials.SPLICE which causes the value to be unpacked into the expression.\n This can be used for e.g. to make `#(1 2 3)` into (x 1 2 3) that is needed\n by # that defines vectors.'),get:get,".":get,unbind:doc(unbind,"(unbind fn)\n\n Function that removes the weak 'this' binding from a function so you\n can get properties from the actual function object."),type:doc(type,"(type object)\n\n Function that returns the type of an object as string."),debugger:doc("debugger",function(){debugger},'(debugger)\n\n Function that triggers the JavaScript debugger (e.g. the browser devtools)\n using the "debugger;" statement. If a debugger is not running this\n function does nothing.'),in:doc("in",function(e,t){if(e instanceof LSymbol||e instanceof LString||e instanceof LNumber){e=e.valueOf()}return e in unbox(t)},'(in key value)\n\n Function that uses the Javascript "in" operator to check if key is\n a valid property in the value.'),"instance?":doc("instance?",function(e){return is_instance(e)},"(instance? obj)\n\n Checks if object is an instance, created with a new operator"),instanceof:doc("instanceof",function(e,t){return t instanceof unbind(e)},"(instanceof type obj)\n\n Predicate that tests if the obj is an instance of type."),"prototype?":doc("prototype?",is_prototype,"(prototype? obj)\n\n Predicate that tests if value is a valid JavaScript prototype,\n i.e. calling (new) with it will not throw ' is not a constructor'."),"macro?":doc("macro?",function(e){return e instanceof Macro},"(macro? expression)\n\n Predicate that tests if value is a macro."),"continuation?":doc("continuation?",is_continuation,"(continuation? expression)\n\n Predicate that tests if value is a callable continuation."),"function?":doc("function?",is_function,"(function? expression)\n\n Predicate that tests if value is a callable function."),"real?":doc("real?",function(e){if(type(e)!=="number"){return false}if(e instanceof LNumber){return e.isFloat()}return LNumber.isFloat(e)},"(real? number)\n\n Predicate that tests if value is a real number (not complex)."),"number?":doc("number?",function(e){return Number.isNaN(e)||LNumber.isNumber(e)},"(number? expression)\n\n Predicate that tests if value is a number or NaN value."),"string?":doc("string?",function(e){return LString.isString(e)},"(string? expression)\n\n Predicate that tests if value is a string."),"pair?":doc("pair?",is_pair,"(pair? expression)\n\n Predicate that tests if value is a pair or list structure."),"regex?":doc("regex?",function(e){return e instanceof RegExp},"(regex? expression)\n\n Predicate that tests if value is a regular expression."),"null?":doc("null?",function(e){return is_null(e)},"(null? expression)\n\n Predicate that tests if value is null-ish (i.e. undefined, nil, or\n Javascript null)."),"boolean?":doc("boolean?",function(e){return typeof e==="boolean"},"(boolean? expression)\n\n Predicate that tests if value is a boolean (#t or #f)."),"symbol?":doc("symbol?",function(e){return e instanceof LSymbol},"(symbol? expression)\n\n Predicate that tests if value is a LIPS symbol."),"array?":doc("array?",function(e){return e instanceof Array},"(array? expression)\n\n Predicate that tests if value is an array."),"object?":doc("object?",function(e){return!is_nil(e)&&e!==null&&!(e instanceof LCharacter)&&!(e instanceof RegExp)&&!(e instanceof LString)&&!is_pair(e)&&!(e instanceof LNumber)&&_typeof$1(e)==="object"&&!(e instanceof Array)},"(object? expression)\n\n Predicate that tests if value is an plain object (not another LIPS type)."),flatten:doc("flatten",function e(t){typecheck("flatten",t,"pair");return t.flatten()},"(flatten list)\n\n Returns a shallow list from tree structure (pairs)."),"vector-append":doc("vector-append",function(){for(var e=arguments.length,t=new Array(e),r=0;rlist":doc("array->list",function(e){typecheck("array->list",e,"array");return Pair.fromArray(e)},"(array->list array)\n\n Function that converts a JavaScript array to a LIPS cons list."),"tree->array":doc("tree->array",to_array("tree->array",true),"(tree->array list)\n\n Function that converts a LIPS cons tree structure into a JavaScript array."),"list->array":doc("list->array",to_array("list->array"),"(list->array list)\n\n Function that converts a LIPS list into a JavaScript array."),apply:doc("apply",function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;iarray").call(this,a));return t.apply(this,prepare_fn_args(t,n))},"(apply fn list)\n\n Function that calls fn with the list of arguments."),length:doc("length",function e(t){if(!t||is_nil(t)){return 0}if(is_pair(t)){return t.length()}if("length"in t){return t.length}},'(length expression)\n\n Function that returns the length of the object. The object can be a LIPS\n list or any object that has a "length" property. Returns undefined if the\n length could not be found.'),"string->number":doc("string->number",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;typecheck("string->number",e,"string",1);typecheck("string->number",t,"number",2);e=e.valueOf();t=t.valueOf();if(e.match(rational_bare_re)||e.match(rational_re)){return parse_rational(e,t)}else if(e.match(complex_bare_re)||e.match(complex_re)){return parse_complex(e,t)}else{var r=t===10&&!e.match(/e/i)||t===16;if(e.match(int_bare_re)&&r||e.match(int_re)){return parse_integer(e,t)}if(e.match(float_re)){return parse_float(e)}}return false},"(string->number number [radix])\n\n Function that parses a string into a number."),try:doc(new Macro("try",function(r,e){var f=this;var _=e.use_dynamic;e.error;return new Promise(function(t,u){var s,n;if(LSymbol.is(r.cdr.car.car,"catch")){s=r.cdr.car;if(is_pair(r.cdr.cdr)&&LSymbol.is(r.cdr.cdr.car.car,"finally")){n=r.cdr.cdr.car}}else if(LSymbol.is(r.cdr.car.car,"finally")){n=r.cdr.car}if(!(n||s)){throw new Error("try: invalid syntax")}function c(e){t(e);throw new IgnoreException("[CATCH]")}var l=function e(t,r){r(t)};if(n){l=function e(t,r){l=u;i.error=function(e){throw e};unpromise(_evaluate(new Pair(new LSymbol("begin"),n.cdr),i),function(){r(t)})}}var i={env:f,use_dynamic:_,dynamic_env:f,error:function e(t){if(t instanceof IgnoreException){throw t}if(s){var r=f.inherit("try");var n=s.cdr.car.car;if(!(n instanceof LSymbol)){throw new Error("try: invalid syntax: catch require variable name")}r.set(n,t);var i;var a={env:r,use_dynamic:_,dynamic_env:f,error:function e(t){i=true;u(t);throw new IgnoreException("[CATCH]")}};var o=_evaluate(new Pair(new LSymbol("begin"),s.cdr.cdr),a);unpromise(o,function e(t){if(!i){l(t,c)}})}else{l(undefined,function(){u(t)})}}};var e=_evaluate(r.car,i);unpromise(e,function(e){l(e,t)},i.error)})}),"(try expr (catch (e) code))\n (try expr (catch (e) code) (finally code))\n (try expr (finally code))\n\n Macro that executes expr and catches any exceptions thrown. If catch is provided\n it's executed when an error is thrown. If finally is provided it's always\n executed at the end."),raise:doc("raise",function(e){throw e},"(raise obj)\n\n Throws the object verbatim (no wrapping an a new Error)."),throw:doc("throw",function(e){throw new Error(e)},"(throw string)\n\n Throws a new exception."),find:doc("find",function t(r,n){typecheck("find",r,["regex","function"]);typecheck("find",n,["pair","nil"]);if(is_null(n)){return _nil}var e=matcher("find",r);return unpromise(e(n.car),function(e){if(e&&!is_nil(e)){return n.car}return t(r,n.cdr)})},"(find fn list)\n (find regex list)\n\n Higher-order function that finds the first value for which fn return true.\n If called with a regex it will create a matcher function."),"for-each":doc("for-each",function(e){var t;typecheck("for-each",e,"function");for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?t-1:0),a=1;a3?n-3:0),a=3;a3?i-3:0),o=3;oarray")(r);var a=[];var o=matcher("filter",t);return function t(r){function e(e){if(e&&!is_nil(e)){a.push(n)}return t(++r)}if(r===i.length){return Pair.fromArray(a)}var n=i[r];return unpromise(o(n),e)}(0)},"(filter fn list)\n (filter regex list)\n\n Higher-order function that calls `fn` for each element of the list\n and return a new list for only those elements for which fn returns\n a truthy value. If called with a regex it will create a matcher function."),compose:doc(compose,"(compose . fns)\n\n Higher-order function that creates a new function that applies all functions\n from right to left and returns the last value. Reverse of pipe.\n e.g.:\n ((compose (curry + 2) (curry * 3)) 10) ==> (+ 2 (* 3 10)) ==> 32"),pipe:doc(pipe,"(pipe . fns)\n\n Higher-order function that creates a new function that applies all functions\n from left to right and returns the last value. Reverse of compose.\n e.g.:\n ((pipe (curry + 2) (curry * 3)) 10) ==> (* 3 (+ 2 10)) ==> 36"),curry:doc(curry,"(curry fn . args)\n\n Higher-order function that creates a curried version of the function.\n The result function will have partially applied arguments and it\n will keep returning one-argument functions until all arguments are provided,\n then it calls the original function with the accumulated arguments.\n\n e.g.:\n (define (add a b c d) (+ a b c d))\n (define add1 (curry add 1))\n (define add12 (add 2))\n (display (add12 3 4))"),gcd:doc("gcd",function e(){for(var t=arguments.length,r=new Array(t),n=0;nu?a%=u:u%=a}a=abs(s*r[o])/(a+u)}return LNumber(a)},"(lcm n1 n2 ...)\n\n Function that returns the least common multiple of the arguments."),"odd?":doc("odd?",single_math_op(function(e){return LNumber(e).isOdd()}),"(odd? number)\n\n Checks if number is odd."),"even?":doc("even?",single_math_op(function(e){return LNumber(e).isEven()}),"(even? number)\n\n Checks if number is even."),"*":doc("*",reduce_math_op(function(e,t){return LNumber(e).mul(t)},LNumber(1)),"(* . numbers)\n\n Multiplies all numbers passed as arguments. If single value is passed\n it will return that value."),"+":doc("+",reduce_math_op(function(e,t){return LNumber(e).add(t)},LNumber(0)),"(+ . numbers)\n\n Sums all numbers passed as arguments. If single value is passed it will\n return that value."),"-":doc("-",function(){for(var e=arguments.length,t=new Array(e),r=0;r":doc(">",function(){for(var e=arguments.length,t=new Array(e),r=0;r",t,["bigint","float","rational"]);return seq_compare(function(e,t){return LNumber(e).cmp(t)===1},t)},"(> x1 x2 x3 ...)\n\n Function that compares its numerical arguments and checks if they are\n monotonically decreasing, i.e. x1 > x2 and x2 > x3 and so on."),"<":doc("<",function(){for(var e=arguments.length,t=new Array(e),r=0;r=":doc(">=",function(){for(var e=arguments.length,t=new Array(e),r=0;r=",t,["bigint","float","rational"]);return seq_compare(function(e,t){return[0,1].includes(LNumber(e).cmp(t))},t)},"(>= x1 x2 ...)\n\n Function that compares its numerical arguments and checks if they are\n monotonically nonincreasing, i.e. x1 >= x2 and x2 >= x3 and so on."),"eq?":doc("eq?",equal,"(eq? a b)\n\n Function that compares two values if they are identical."),or:doc(new Macro("or",function(e,t){var i=t.use_dynamic,a=t.error;var o=global_env.get("list->array")(e);var u=this;var s=u;if(!o.length){return false}var c;return function t(){function e(e){c=e;if(!is_false(c)){return c}else{return t()}}if(!o.length){if(!is_false(c)){return c}else{return false}}else{var r=o.shift();var n=_evaluate(r,{env:u,dynamic_env:s,use_dynamic:i,error:a});return unpromise(n,e)}}()}),"(or . expressions)\n\n Macro that executes the values one by one and returns the first that is\n a truthy value. If there are no expressions that evaluate to true it\n returns false."),and:doc(new Macro("and",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=t.error;var i=global_env.get("list->array")(e);var a=this;var o=a;if(!i.length){return true}var u;var s={env:a,dynamic_env:o,use_dynamic:r,error:n};return function t(){function e(e){u=e;if(is_false(u)){return u}else{return t()}}if(!i.length){if(!is_false(u)){return u}else{return false}}else{var r=i.shift();return unpromise(_evaluate(r,s),e)}}()}),"(and . expressions)\n\n Macro that evaluates each expression in sequence and if any value returns false\n it will stop and return false. If each value returns true it will return the\n last value. If it's called without arguments it will return true."),"|":doc("|",function(e,t){return LNumber(e).or(t)},"(| a b)\n\n Function that calculates the bitwise or operation."),"&":doc("&",function(e,t){return LNumber(e).and(t)},"(& a b)\n\n Function that calculates the bitwise and operation."),"~":doc("~",function(e){return LNumber(e).neg()},"(~ number)\n\n Function that calculates the bitwise inverse (flip all the bits)."),">>":doc(">>",function(e,t){return LNumber(e).shr(t)},"(>> a b)\n\n Function that right shifts the value a by value b bits."),"<<":doc("<<",function(e,t){return LNumber(e).shl(t)},"(<< a b)\n\n Function that left shifts the value a by value b bits."),not:doc("not",function e(t){return!t},"(not object)\n\n Function that returns the Boolean negation of its argument.")},undefined,"global");var user_env=global_env.inherit("user-env");function set_interaction_env(e,t){e.constant("**internal-env**",t);e.doc("**internal-env**","**internal-env**\n\n Constant used to hide stdin, stdout and stderr so they don't interfere\n with variables with the same name. Constants are an internal type\n of variable that can't be redefined, defining a variable with the same name\n will throw an error.");global_env.set("**interaction-environment**",e)}set_interaction_env(user_env,internal_env);global_env.doc("**interaction-environment**","**interaction-environment**\n\n Internal dynamic, global variable used to find interpreter environment.\n It's used so the read and write functions can locate **internal-env**\n that contains the references to stdin, stdout and stderr.");function set_fs(e){user_env.get("**internal-env**").set("fs",e)}(function(){var e={ceil:"ceiling"};["floor","round","ceil"].forEach(function(t){var r=e[t]?e[t]:t;global_env.set(r,doc(r,function(e){typecheck(r,e,"number");if(e instanceof LNumber){return e[t]()}},"(".concat(r," number)\n\n Function that calculates the ").concat(r," of a number.")))})})();function allPossibleCases(e){if(e.length===1){return e[0]}else{var t=[];var r=allPossibleCases(e.slice(1));for(var n=0;n3&&arguments[3]!==undefined?arguments[3]:null;var i=e?" in expression `".concat(e,"`"):"";if(n!==null){i+=" (argument ".concat(n,")")}if(is_function(r)){return"Invalid type: got ".concat(t).concat(i)}if(r instanceof Array){if(r.length===1){var a=r[0].toLowerCase();r="a"+("aeiou".includes(a)?"n ":" ")+r[0]}else{r=new Intl.ListFormat("en",{style:"long",type:"disjunction"}).format(r)}}return"Expecting ".concat(r," got ").concat(t).concat(i)}function typecheck_number(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;typecheck(e,t,"number",n);var i=t.__type__;var a;if(is_pair(r)){r=r.to_array()}if(r instanceof Array){r=r.map(function(e){return e.valueOf()})}if(r instanceof Array){r=r.map(function(e){return e.valueOf().toLowerCase()});if(r.includes(i)){a=true}}else{r=r.valueOf().toLowerCase()}if(!a&&i!==r){throw new Error(typeErrorMessage(e,i,r,n))}}function typecheck_numbers(r,e,n){e.forEach(function(e,t){typecheck_number(r,e,n,t+1)})}function typecheck_args(r,e,n){e.forEach(function(e,t){typecheck(r,e,n,t+1)})}function typecheck_text_port(e,t,r){typecheck(e,t,r);if(t.__type__===binary_port){throw new Error(typeErrorMessage(e,"binary-port","textual-port"))}}function typecheck(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;e=e.valueOf();var i=type(t).toLowerCase();if(is_function(r)){if(!r(t)){throw new Error(typeErrorMessage(e,i,r,n))}return}var a=false;if(is_pair(r)){r=r.to_array()}if(r instanceof Array){r=r.map(function(e){return e.valueOf()})}if(r instanceof Array){r=r.map(function(e){return e.valueOf().toLowerCase()});if(r.includes(i)){a=true}}else{r=r.valueOf().toLowerCase()}if(!a&&i!==r){throw new Error(typeErrorMessage(e,i,r,n))}}function memoize(r){var n=new WeakMap;return function(e){var t=n.get(e);if(!t){t=r(e)}return t}}type=memoize(type);function type(e){var t=type_constants.get(e);if(t){return t}if(_typeof$1(e)==="object"){for(var r=0,n=Object.entries(type_mapping);r2&&arguments[2]!==undefined?arguments[2]:{},n=r.env,i=r.dynamic_env,a=r.use_dynamic;var o=n===null||n===void 0?void 0:n.new_frame(e,t);var u=i===null||i===void 0?void 0:i.new_frame(e,t);var s=new LambdaContext({env:o,use_dynamic:a,dynamic_env:u});return resolve_promises(e.apply(s,t))}function apply(n,e){var t=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},i=t.env,a=t.dynamic_env,o=t.use_dynamic,r=t.error,u=r===void 0?function(){}:r;e=evaluate_args(e,{env:i,dynamic_env:a,error:u,use_dynamic:o});return unpromise(e,function(e){if(is_raw_lambda(n)){n=unbind(n)}e=prepare_fn_args(n,e);var t=e.slice();var r=call_function(n,t,{env:i,dynamic_env:a,use_dynamic:o});return unpromise(r,function(e){if(is_pair(e)){e.mark_cycles();return quote(e)}return box(e)},u)})}var _p_name__=new WeakMap;var Parameter=function(){function n(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;_classCallCheck(this,n);_defineProperty(this,"__value__",void 0);_defineProperty(this,"__fn__",void 0);_classPrivateFieldInitSpec(this,_p_name__,void 0);this.__value__=e;if(t){if(!is_function(t)){throw new Error("Section argument to Parameter need to be function "+"".concat(type(t)," given"))}this.__fn__=t}if(r){_classPrivateFieldSet(_p_name__,this,r)}}return _createClass(n,[{key:"__name__",get:function e(){return _classPrivateFieldGet(_p_name__,this)},set:function e(t){_classPrivateFieldSet(_p_name__,this,t);if(this.__fn__){this.__fn__.__name__="fn-".concat(t)}}},{key:"invoke",value:function e(){if(is_function(this.__fn__)){return this.__fn__(this.__value__)}return this.__value__}},{key:"inherit",value:function e(t){return new n(t,this.__fn__,this.__name__)}}])}();var LambdaContext=function(){function t(e){_classCallCheck(this,t);_defineProperty(this,"env",void 0);_defineProperty(this,"dynamic_env",void 0);_defineProperty(this,"use_dynamic",void 0);Object.assign(this,e)}return _createClass(t,[{key:"__name__",get:function e(){return this.env.__name__}},{key:"__parent__",get:function e(){return this.env.__parent__}},{key:"get",value:function e(){var t;return(t=this.env).get.apply(t,arguments)}}])}();function search_param(e,t){var r=e.get(t.__name__,{throwError:false});if(is_parameter(r)&&r!==t){return r}var n=user_env.get("**interaction-environment**");while(true){var i=e.get("parent.frame",{throwError:false});e=i(0);if(e===n){break}r=e.get(t.__name__,{throwError:false});if(is_parameter(r)&&r!==t){return r}}return t}var Continuation=function(){function t(e){_classCallCheck(this,t);_defineProperty(this,"__value__",void 0);this.__value__=e}return _createClass(t,[{key:"invoke",value:function e(){if(this.__value__===null){throw new Error("Continuations are not implemented yet")}}}])}();function _evaluate(u){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},s=e.env,c=e.dynamic_env,l=e.use_dynamic,t=e.error,f=t===void 0?noop:t,r=_objectWithoutProperties(e,_excluded6);return function(e){try{if(!is_env(c)){c=s===true?user_env:s||user_env}if(l){s=c}else if(s===true){s=user_env}else{s=s||global_env}var t={env:s,dynamic_env:c,use_dynamic:l,error:f};var r;if(is_null(u)){return u}if(u instanceof LSymbol){return s.get(u)}if(!is_pair(u)){return u}var n=u.car;var e=u.cdr;if(is_pair(n)){r=resolve_promises(_evaluate(n,t));if(is_promise(r)){return r.then(function(e){if(!is_callable(e)){throw new Error(type(e)+" "+s.get("repr")(e)+" is not callable while evaluating "+u.toString())}return _evaluate(new Pair(e,u.cdr),t)})}else if(!is_callable(r)){throw new Error(type(r)+" "+s.get("repr")(r)+" is not callable while evaluating "+u.toString())}}if(n instanceof LSymbol){r=s.get(n)}else if(is_function(n)){r=n}var i;if(r instanceof Syntax){i=evaluate_syntax(r,u,t)}else if(r instanceof Macro){i=evaluate_macro(r,e,t)}else if(is_function(r)){i=apply(r,e,t)}else if(r instanceof SyntaxParameter){i=evaluate_syntax(r._syntax,u,t)}else if(is_parameter(r)){var a=search_param(c,r);if(is_null(u.cdr)){i=a.invoke()}else{return unpromise(_evaluate(u.cdr.car,t),function(e){a.__value__=e})}}else if(is_continuation(r)){i=r.invoke()}else if(is_pair(u)){r=n&&n.toString();throw new Error("".concat(type(n)," ").concat(r," is not a function"))}else{return u}var o=s.get(Symbol["for"]("__promise__"),{throwError:false});if(o===true&&is_promise(i)){i=i.then(function(e){if(is_pair(e)&&!r[__data__]){return _evaluate(e,t)}return e});return new QuotedPromise(i)}return i}catch(e){f&&f.call(s,e,u)}}(r)}var compile=exec_collect(function(e){return e});var exec=exec_collect(function(e,t){return t});function exec_with_stacktrace(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.env,n=t.dynamic_env,i=t.use_dynamic;return _evaluate(e,{env:r,dynamic_env:n,use_dynamic:i,error:function e(t,r){if(t&&t.message){if(t.message.match(/^Error:/)){var n=/^(Error:)\s*([^:]+:\s*)/;t.message=t.message.replace(n,"$1 $2")}if(r){if(!(t.__code__ instanceof Array)){t.__code__=[]}t.__code__.push(r.toString(true))}}if(!(t instanceof IgnoreException)){throw t}}})}function exec_collect(h){return function(){var t=_asyncToGenerator(function(f){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},_=e.env,p=e.dynamic_env,d=e.use_dynamic;return _regeneratorRuntime.mark(function e(){var r,n,i,a,o,u,s,c,l;return _regeneratorRuntime.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!is_env(p)){p=_===true?user_env:_||user_env}if(_===true){_=user_env}else{_=_||user_env}r=[];if(!is_pair(f)){t.next=8;break}t.next=6;return exec_with_stacktrace(f,{env:_,dynamic_env:p,use_dynamic:d});case 6:t.t0=t.sent;return t.abrupt("return",[t.t0]);case 8:n=Array.isArray(f)?f:_parse(f);i=false;a=false;t.prev=11;u=_asyncIterator(n);case 13:t.next=15;return u.next();case 15:if(!(i=!(s=t.sent).done)){t.next=31;break}c=s.value;t.next=19;return exec_with_stacktrace(c,{env:_,dynamic_env:p,use_dynamic:d});case 19:l=t.sent;t.t1=r;t.t2=h;t.t3=c;t.next=25;return l;case 25:t.t4=t.sent;t.t5=(0,t.t2)(t.t3,t.t4);t.t1.push.call(t.t1,t.t5);case 28:i=false;t.next=13;break;case 31:t.next=37;break;case 33:t.prev=33;t.t6=t["catch"](11);a=true;o=t.t6;case 37:t.prev=37;t.prev=38;if(!(i&&u["return"]!=null)){t.next=42;break}t.next=42;return u["return"]();case 42:t.prev=42;if(!a){t.next=45;break}throw o;case 45:return t.finish(42);case 46:return t.finish(37);case 47:return t.abrupt("return",r);case 48:case"end":return t.stop()}},e,null,[[11,33,37,47],[38,,42,46]])})()});function e(e){return t.apply(this,arguments)}return e}()}function balanced(e){var t={"[":"]","(":")"};var r;if(typeof e==="string"){try{r=tokenize(e)}catch(e){if(e instanceof Unterminated){return false}throw e}}else{r=e.map(function(e){return e&&e.token?e.token:e})}var n=Object.keys(t);var i=Object.values(t).concat(n);r=r.filter(function(e){return i.includes(e)});var a=new Stack;var o=_createForOfIteratorHelper(r),u;try{for(o.s();!(u=o.n()).done;){var s=u.value;if(n.includes(s)){a.push(s)}else if(!a.is_empty()){var c=a.top();var l=t[c];if(s===l){a.pop()}else{throw new Error("Syntax error: missing closing ".concat(l))}}else{throw new Error("Syntax error: not matched closing ".concat(s))}}}catch(e){o.e(e)}finally{o.f()}return a.is_empty()}function fworker(e){var t="("+e.toString()+")()";var r=window.URL||window.webkitURL;var n;try{n=new Blob([t],{type:"application/javascript"})}catch(e){var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder;n=new i;n.append(t);n=n.getBlob()}return new root.Worker(r.createObjectURL(n))}function is_dev(){return lips.version.match(/^(\{\{VER\}\}|DEV)$/)}function get_current_script(){if(is_node()){return}var e;if(document.currentScript){e=document.currentScript}else{var t=document.querySelectorAll("script");if(!t.length){return}e=t[t.length-1]}var r=e.getAttribute("src");return r}var current_script=get_current_script();function bootstrap(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var t="dist/std.xcb";if(e===""){if(current_script){e=current_script.replace(/[^/]*$/,"std.xcb")}else if(is_dev()){e="https://cdn.jsdelivr.net/gh/jcubic/lips@devel/".concat(t)}else{e="https://cdn.jsdelivr.net/npm/@jcubic/lips@".concat(lips.version,"/").concat(t)}}global_env.set("__dirname",e.replace(/[^/]+$/,""));var r=global_env.get("load");return r.call(user_env,e,global_env)}function Worker(e){this.url=e;var o=this.worker=fworker(function(){var o;var u;self.addEventListener("message",function(e){var r=e.data;var t=r.id;if(r.type!=="RPC"||t===null){return}function n(e){self.postMessage({id:t,type:"RPC",result:e})}function i(e){self.postMessage({id:t,type:"RPC",error:e})}if(r.method==="eval"){if(!u){i("Worker RPC: LIPS not initialized, call init first");return}u.then(function(){var e=r.params[0];var t=r.params[1];o.exec(e,{use_dynamic:t}).then(function(e){e=e.map(function(e){return e&&e.valueOf()});n(e)})["catch"](function(e){i(e)})})}else if(r.method==="init"){var a=r.params[0];if(typeof a!=="string"){i("Worker RPC: url is not a string")}else{importScripts("".concat(a,"/dist/lips.min.js"));o=new lips.Interpreter("worker");u=bootstrap(a);u.then(function(){n(true)})}}})});this.rpc=function(){var n=0;return function e(t,r){var a=++n;return new Promise(function(n,i){o.addEventListener("message",function e(t){var r=t.data;if(r&&r.type==="RPC"&&r.id===a){if(r.error){i(r.error)}else{n(r.result)}o.removeEventListener("message",e)}});o.postMessage({type:"RPC",method:t,id:a,params:r})})}}();this.rpc("init",[e])["catch"](function(e){console.error(e)});this.exec=function(e,t){var r=t.use_dynamic,n=r===void 0?false:r;return this.rpc("eval",[e,n])}}var serialization_map={pair:function e(t){var r=_slicedToArray(t,2),n=r[0],i=r[1];return Pair(n,i)},number:function e(t){if(LString.isString(t)){return LNumber([t,10])}return LNumber(t)},regex:function e(t){var r=_slicedToArray(t,2),n=r[0],i=r[1];return new RegExp(n,i)},nil:function e(){return _nil},symbol:function e(t){if(LString.isString(t)){return LSymbol(t)}else if(Array.isArray(t)){return LSymbol(Symbol["for"](t[0]))}},string:LString,character:LCharacter};var available_class=Object.keys(serialization_map);var class_map={};for(var _i6=0,_Object$entries3=Object.entries(available_class);_i6<_Object$entries3.length;_i6++){var _Object$entries3$_i=_slicedToArray(_Object$entries3[_i6],2),i=_Object$entries3$_i[0],cls=_Object$entries3$_i[1];class_map[cls]=+i}function mangle_name(e){return class_map[e]}function resolve_name(e){return available_class[e]}function serialize(e){return JSON.stringify(e,function(e,t){var r=this[e];if(r){if(r instanceof RegExp){return{"@":mangle_name("regex"),"#":[r.source,r.flags]}}var n=mangle_name(r.constructor.__class__);if(!is_undef(n)){return{"@":n,"#":r.serialize()}}}return t})}function unserialize(e){return JSON.parse(e,function(e,t){if(t&&_typeof$1(t)==="object"){if(!is_undef(t["@"])){var r=resolve_name(t["@"]);if(serialization_map[r]){return serialization_map[r](t["#"])}}}return t})}var cbor=function(){var e={pair:Pair,symbol:LSymbol,number:LNumber,string:LString,character:LCharacter,nil:_nil.constructor,regex:RegExp};function t(e,t){return{deserialize:t,Class:e}}var r=new Encoder;var a={};for(var n=0,i=Object.entries(serialization_map);n1){var n=t.reduce(function(e,t){return e+t.length},0);var i=new Uint8Array(n);var a=0;t.forEach(function(e){i.set(e,a);a+=e.length});return i}else if(t.length){return t[0]}}function encode_magic(){var e=1;var t=new TextEncoder("utf-8");return t.encode("LIPS".concat(e.toString().padStart(3," ")))}var MAGIC_LENGTH=7;function decode_magic(e){var t=new TextDecoder("utf-8");var r=t.decode(e.slice(0,MAGIC_LENGTH));var n=r.substring(0,4);if(n==="LIPS"){var i=r.match(/^(....).*([0-9]+)$/);if(i){return{type:i[1],version:Number(i[2])}}}return{type:"unknown"}}function serialize_bin(e){var t=encode_magic();var r=cbor.encode(e);return merge_uint8_array(t,lzjbPackExports.pack(r,{magic:false}))}function unserialize_bin(e){var t=decode_magic(e),r=t.type,n=t.version;if(r==="LIPS"&&n===1){var i=lzjbPackExports.unpack(e.slice(MAGIC_LENGTH),{magic:false});return cbor.decode(i)}else{throw new Error("Invalid file format ".concat(r))}}function execError(e){console.error(e.message||e);if(Array.isArray(e.code)){console.error(e.code.map(function(e,t){return"[".concat(t+1,"]: ").concat(e)}))}}function init(){var o=["text/x-lips","text/x-scheme"];var u;function s(e){var t;return(t=e.getAttribute("data-bootstrap"))!==null&&t!==void 0?t:e.getAttribute("bootstrap")}function c(r){return new Promise(function(t){var e=r.getAttribute("src");if(e){return fetch(e).then(function(e){return e.text()}).then(exec).then(t)["catch"](function(e){execError(e);t()})}else{return exec(r.innerHTML).then(t)["catch"](function(e){execError(e);t()})}})}function e(){return new Promise(function(i){var a=Array.from(document.querySelectorAll("script"));return function e(){var t=a.shift();if(!t){i()}else{var r=t.getAttribute("type");if(o.includes(r)){var n=s(t);if(!u&&typeof n==="string"){return bootstrap(n).then(function(){return c(t)}).then(e)}else{return c(t).then(e)}}else if(r&&r.match(/lips|lisp/)){console.warn("Expecting "+o.join(" or ")+" found "+r)}return e()}}()})}if(!window.document){return Promise.resolve()}else if(currentScript){var t=currentScript;var r=s(t);if(typeof r==="string"){return bootstrap(r).then(function(){u=true;return e()})}}return e()}var currentScript=typeof window!=="undefined"&&window.document&&document.currentScript;if(typeof window!=="undefined"){contentLoaded(window,init)}var banner=function(){var e=LString("Fri, 08 Nov 2024 13:38:41 +0000").valueOf();var t=e==="{{"+"DATE}}"?new Date:new Date(e);var r=function e(t){return t.toString().padStart(2,"0")};var n=t.getFullYear();var i=[n,r(t.getMonth()+1),r(t.getDate())].join("-");var a="\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter 1.0.0-beta.20 (".concat(i,") \nCopyright (c) 2018-").concat(n," Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/,"");return a}();read_only(Ahead,"__class__","ahead");read_only(Pair,"__class__","pair");read_only(Nil,"__class__","nil");read_only(Pattern,"__class__","pattern");read_only(Formatter,"__class__","formatter");read_only(Macro,"__class__","macro");read_only(Syntax,"__class__","syntax");read_only(Syntax.Parameter,"__class__","syntax-parameter");read_only(Environment,"__class__","environment");read_only(InputPort,"__class__","input-port");read_only(OutputPort,"__class__","output-port");read_only(BufferedOutputPort,"__class__","output-port");read_only(OutputStringPort,"__class__","output-string-port");read_only(InputStringPort,"__class__","input-string-port");read_only(InputFilePort,"__class__","input-file-port");read_only(OutputFilePort,"__class__","output-file-port");read_only(LipsError,"__class__","lips-error");[LNumber,LComplex,LRational,LFloat,LBigInteger].forEach(function(e){read_only(e,"__class__","number")});read_only(LCharacter,"__class__","character");read_only(LSymbol,"__class__","symbol");read_only(LString,"__class__","string");read_only(QuotedPromise,"__class__","promise");read_only(Parameter,"__class__","parameter");var version="1.0.0-beta.20";var date="Fri, 08 Nov 2024 13:38:41 +0000";var parse=compose(uniterate_async,_parse);var lips={version:version,banner:banner,date:date,exec:exec,parse:parse,tokenize:tokenize,evaluate:_evaluate,compile:compile,serialize:serialize,unserialize:unserialize,serialize_bin:serialize_bin,unserialize_bin:unserialize_bin,bootstrap:bootstrap,Environment:Environment,env:user_env,Worker:Worker,Interpreter:Interpreter,balanced_parenthesis:balanced,balancedParenthesis:balanced,balanced:balanced,Macro:Macro,Syntax:Syntax,Pair:Pair,Values:Values,QuotedPromise:QuotedPromise,Error:LipsError,quote:quote,InputPort:InputPort,OutputPort:OutputPort,BufferedOutputPort:BufferedOutputPort,InputFilePort:InputFilePort,OutputFilePort:OutputFilePort,InputStringPort:InputStringPort,OutputStringPort:OutputStringPort,InputByteVectorPort:InputByteVectorPort,OutputByteVectorPort:OutputByteVectorPort,InputBinaryFilePort:InputBinaryFilePort,OutputBinaryFilePort:OutputBinaryFilePort,set_fs:set_fs,Formatter:Formatter,Parser:Parser,Lexer:Lexer,specials:specials,repr:repr,nil:_nil,eof:eof,LSymbol:LSymbol,LNumber:LNumber,LFloat:LFloat,LComplex:LComplex,LRational:LRational,LBigInteger:LBigInteger,LCharacter:LCharacter,LString:LString,Parameter:Parameter,rationalize:rationalize};global_env.set("lips",lips);export{BufferedOutputPort,Environment,LipsError as Error,Formatter,InputBinaryFilePort,InputByteVectorPort,InputFilePort,InputPort,InputStringPort,Interpreter,LBigInteger,LCharacter,LComplex,LFloat,LNumber,LRational,LString,LSymbol,Lexer,Macro,OutputBinaryFilePort,OutputByteVectorPort,OutputFilePort,OutputPort,OutputStringPort,Pair,Parameter,Parser,QuotedPromise,Syntax,Values,Worker,is_directive as _is_directive,balanced,balanced as balancedParenthesis,balanced as balanced_parenthesis,banner,bootstrap,compile,date,user_env as env,eof,_evaluate as evaluate,exec,_nil as nil,parse,quote,rationalize,repr,serialize,serialize_bin,set_fs,specials,tokenize,unserialize,unserialize_bin,version}; \ No newline at end of file diff --git a/dist/lips.js b/dist/lips.js index c20afd7c..507b813b 100644 --- a/dist/lips.js +++ b/dist/lips.js @@ -4,7 +4,7 @@ * | | \ \ | | | || . \/ __> | | * | | > \ | |_ | || _/\__ \ | | * | | / ^ \ |___||_||_| <___/ | | - * \_\ /_/ \_\ /_/ v. DEV + * \_\ /_/ \_\ /_/ v. 1.0.0-beta.20 * * LIPS is Pretty Simple - Scheme based Powerful LISP in JavaScript * @@ -31,7 +31,7 @@ * Copyright (c) 2014-present, Facebook, Inc. * released under MIT license * - * build: Fri, 08 Nov 2024 13:26:12 +0000 + * build: Fri, 08 Nov 2024 13:38:41 +0000 */ (function (global, factory) { @@ -41,57 +41,6 @@ })(this, (function (exports) { 'use strict'; var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null; - function _classApplyDescriptorGet(receiver, descriptor) { - if (descriptor.get) { - return descriptor.get.call(receiver); - } - return descriptor.value; - } - - function _classExtractFieldDescriptor(receiver, privateMap, action) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to " + action + " private field on non-instance"); - } - return privateMap.get(receiver); - } - - function _classPrivateFieldGet(receiver, privateMap) { - var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); - return _classApplyDescriptorGet(receiver, descriptor); - } - - function _classApplyDescriptorSet(receiver, descriptor, value) { - if (descriptor.set) { - descriptor.set.call(receiver, value); - } else { - if (!descriptor.writable) { - throw new TypeError("attempted to set read only private field"); - } - descriptor.value = value; - } - } - - function _classPrivateFieldSet(receiver, privateMap, value) { - var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); - _classApplyDescriptorSet(receiver, descriptor, value); - return value; - } - - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; - } - - function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return _setPrototypeOf(o, p); - } - function _isNativeReflectConstruct$1() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); @@ -101,6 +50,12 @@ })(); } + function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t; + }, _setPrototypeOf(t, e); + } + function _construct(t, e, r) { if (_isNativeReflectConstruct$1()) return Reflect.construct.apply(null, arguments); var o = [null]; @@ -109,39 +64,38 @@ return r && _setPrototypeOf(p, r.prototype), p; } - function _readOnlyError(name) { - throw new TypeError("\"" + name + "\" is read-only"); + function _readOnlyError(r) { + throw new TypeError('"' + r + '" is read-only'); } - function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; } - function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } - function _arrayLikeToArray$1(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; + function _arrayLikeToArray$1(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; } - function _unsupportedIterableToArray$1(o, minLen) { - if (!o) return; - if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); + function _unsupportedIterableToArray$1(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray$1(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; + } } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - function _toArray(arr) { - return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableRest(); + function _toArray(r) { + return _arrayWithHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$1(r) || _nonIterableRest(); } function _typeof$1(o) { @@ -154,109 +108,95 @@ }, _typeof$1(o); } - function _possibleConstructorReturn(self, call) { - if (call && (_typeof$1(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return _assertThisInitialized(self); + function _assertThisInitialized(e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e; } - function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); + function _possibleConstructorReturn(t, e) { + if (e && ("object" == _typeof$1(e) || "function" == typeof e)) return e; + if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); + return _assertThisInitialized(t); } - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { + function _getPrototypeOf(t) { + return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { + return t.__proto__ || Object.getPrototypeOf(t); + }, _getPrototypeOf(t); + } + + function _inherits(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); + t.prototype = Object.create(e && e.prototype, { constructor: { - value: subClass, - writable: true, - configurable: true + value: t, + writable: !0, + configurable: !0 } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) _setPrototypeOf(subClass, superClass); + }), Object.defineProperty(t, "prototype", { + writable: !1 + }), e && _setPrototypeOf(t, e); } - function _isNativeFunction(fn) { + function _isNativeFunction(t) { try { - return Function.toString.call(fn).indexOf("[native code]") !== -1; - } catch (e) { - return typeof fn === "function"; + return -1 !== Function.toString.call(t).indexOf("[native code]"); + } catch (n) { + return "function" == typeof t; } } - function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !_isNativeFunction(Class)) return Class; - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - _cache.set(Class, Wrapper); + function _wrapNativeSuper(t) { + var r = "function" == typeof Map ? new Map() : void 0; + return _wrapNativeSuper = function _wrapNativeSuper(t) { + if (null === t || !_isNativeFunction(t)) return t; + if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== r) { + if (r.has(t)) return r.get(t); + r.set(t, Wrapper); } function Wrapper() { - return _construct(Class, arguments, _getPrototypeOf(this).constructor); + return _construct(t, arguments, _getPrototypeOf(this).constructor); } - Wrapper.prototype = Object.create(Class.prototype, { + return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, - enumerable: false, - writable: true, - configurable: true + enumerable: !1, + writable: !0, + configurable: !0 } - }); - return _setPrototypeOf(Wrapper, Class); - }; - return _wrapNativeSuper(Class); + }), _setPrototypeOf(Wrapper, t); + }, _wrapNativeSuper(t); } - function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + function asyncGeneratorStep(n, t, e, r, o, a, c) { try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); + var i = n[a](c), + u = i.value; + } catch (n) { + return void e(n); } + i.done ? t(u) : Promise.resolve(u).then(r, o); } - function _asyncToGenerator(fn) { + function _asyncToGenerator(n) { return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + var t = this, + e = arguments; + return new Promise(function (r, o) { + var a = n.apply(t, e); + function _next(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + function _throw(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } - _next(undefined); + _next(void 0); }); }; } - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function toPrimitive(t, r) { @@ -272,69 +212,50 @@ function toPropertyKey(t) { var i = toPrimitive(t, "string"); - return "symbol" == _typeof$1(i) ? i : String(i); + return "symbol" == _typeof$1(i) ? i : i + ""; } - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor); - } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o); + } + } + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", { + writable: !1 + }), e; } - function _defineProperty(obj, key, value) { - key = toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; + function _defineProperty(e, r, t) { + return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; } - function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - return target; + function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (e.includes(n)) continue; + t[n] = r[n]; + } + return t; } - function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = _objectWithoutPropertiesLoose(source, excluded); - var key, i; + function _objectWithoutProperties(e, t) { + if (null == e) return {}; + var o, + r, + i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } + var s = Object.getOwnPropertySymbols(e); + for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } - return target; + return i; } function _iterableToArrayLimit(r, l) { @@ -365,30 +286,35 @@ } } - function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest(); + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray$1(r, e) || _nonIterableRest(); } - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); + function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return _arrayLikeToArray$1(r); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread(); + function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$1(r) || _nonIterableSpread(); } - function _OverloadYield(t, e) { - this.v = t, this.k = e; + function _OverloadYield(e, d) { + this.v = e, this.k = d; } function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); } + function _wrapAsyncGenerator(e) { + return function () { + return new AsyncGenerator(e.apply(this, arguments)); + }; + } function AsyncGenerator(e) { var r, t; function resume(r, t) { @@ -452,12 +378,6 @@ return this._invoke("return", e); }; - function _wrapAsyncGenerator(fn) { - return function () { - return new AsyncGenerator(fn.apply(this, arguments)); - }; - } - function getDefaultExportFromCjs (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; } @@ -466,346 +386,365 @@ var _typeof = {exports: {}}; - (function (module) { - function _typeof(o) { - "@babel/helpers - typeof"; + var hasRequired_typeof; - return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); - } - module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; - } (_typeof)); + function require_typeof () { + if (hasRequired_typeof) return _typeof.exports; + hasRequired_typeof = 1; + (function (module) { + function _typeof(o) { + "@babel/helpers - typeof"; - var _typeofExports = _typeof.exports; + return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); + } + module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (_typeof)); + return _typeof.exports; + } - (function (module) { - var _typeof = _typeofExports["default"]; - function _regeneratorRuntime() { - module.exports = _regeneratorRuntime = function _regeneratorRuntime() { - return e; - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - var t, - e = {}, - r = Object.prototype, - n = r.hasOwnProperty, - o = Object.defineProperty || function (t, e, r) { - t[e] = r.value; - }, - i = "function" == typeof Symbol ? Symbol : {}, - a = i.iterator || "@@iterator", - c = i.asyncIterator || "@@asyncIterator", - u = i.toStringTag || "@@toStringTag"; - function define(t, e, r) { - return Object.defineProperty(t, e, { - value: r, - enumerable: !0, - configurable: !0, - writable: !0 - }), t[e]; - } - try { - define({}, ""); - } catch (t) { - define = function define(t, e, r) { - return t[e] = r; - }; - } - function wrap(t, e, r, n) { - var i = e && e.prototype instanceof Generator ? e : Generator, - a = Object.create(i.prototype), - c = new Context(n || []); - return o(a, "_invoke", { - value: makeInvokeMethod(t, r, c) - }), a; - } - function tryCatch(t, e, r) { - try { - return { - type: "normal", - arg: t.call(e, r) - }; - } catch (t) { - return { - type: "throw", - arg: t - }; - } - } - e.wrap = wrap; - var h = "suspendedStart", - l = "suspendedYield", - f = "executing", - s = "completed", - y = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var p = {}; - define(p, a, function () { - return this; - }); - var d = Object.getPrototypeOf, - v = d && d(d(values([]))); - v && v !== r && n.call(v, a) && (p = v); - var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); - function defineIteratorMethods(t) { - ["next", "throw", "return"].forEach(function (e) { - define(t, e, function (t) { - return this._invoke(e, t); - }); - }); - } - function AsyncIterator(t, e) { - function invoke(r, o, i, a) { - var c = tryCatch(t[r], t, o); - if ("throw" !== c.type) { - var u = c.arg, - h = u.value; - return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { - invoke("next", t, i, a); - }, function (t) { - invoke("throw", t, i, a); - }) : e.resolve(h).then(function (t) { - u.value = t, i(u); - }, function (t) { - return invoke("throw", t, i, a); - }); - } - a(c.arg); - } - var r; - o(this, "_invoke", { - value: function value(t, n) { - function callInvokeWithMethodAndArg() { - return new e(function (e, r) { - invoke(t, n, e, r); - }); - } - return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(e, r, n) { - var o = h; - return function (i, a) { - if (o === f) throw new Error("Generator is already running"); - if (o === s) { - if ("throw" === i) throw a; - return { - value: t, - done: !0 - }; - } - for (n.method = i, n.arg = a;;) { - var c = n.delegate; - if (c) { - var u = maybeInvokeDelegate(c, n); - if (u) { - if (u === y) continue; - return u; - } - } - if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { - if (o === h) throw o = s, n.arg; - n.dispatchException(n.arg); - } else "return" === n.method && n.abrupt("return", n.arg); - o = f; - var p = tryCatch(e, r, n); - if ("normal" === p.type) { - if (o = n.done ? s : l, p.arg === y) continue; - return { - value: p.arg, - done: n.done - }; - } - "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); - } - }; - } - function maybeInvokeDelegate(e, r) { - var n = r.method, - o = e.iterator[n]; - if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; - var i = tryCatch(o, e.iterator, r.arg); - if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; - var a = i.arg; - return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); - } - function pushTryEntry(t) { - var e = { - tryLoc: t[0] - }; - 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); - } - function resetTryEntry(t) { - var e = t.completion || {}; - e.type = "normal", delete e.arg, t.completion = e; - } - function Context(t) { - this.tryEntries = [{ - tryLoc: "root" - }], t.forEach(pushTryEntry, this), this.reset(!0); - } - function values(e) { - if (e || "" === e) { - var r = e[a]; - if (r) return r.call(e); - if ("function" == typeof e.next) return e; - if (!isNaN(e.length)) { - var o = -1, - i = function next() { - for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; - return next.value = t, next.done = !0, next; - }; - return i.next = i; - } - } - throw new TypeError(_typeof(e) + " is not iterable"); - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), o(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { - var e = "function" == typeof t && t.constructor; - return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); - }, e.mark = function (t) { - return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; - }, e.awrap = function (t) { - return { - __await: t - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { - return this; - }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { - void 0 === i && (i = Promise); - var a = new AsyncIterator(wrap(t, r, n, o), i); - return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { - return t.done ? t.value : a.next(); - }); - }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { - return this; - }), define(g, "toString", function () { - return "[object Generator]"; - }), e.keys = function (t) { - var e = Object(t), - r = []; - for (var n in e) r.push(n); - return r.reverse(), function next() { - for (; r.length;) { - var t = r.pop(); - if (t in e) return next.value = t, next.done = !1, next; - } - return next.done = !0, next; - }; - }, e.values = values, Context.prototype = { - constructor: Context, - reset: function reset(e) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); - }, - stop: function stop() { - this.done = !0; - var t = this.tryEntries[0].completion; - if ("throw" === t.type) throw t.arg; - return this.rval; - }, - dispatchException: function dispatchException(e) { - if (this.done) throw e; - var r = this; - function handle(n, o) { - return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; - } - for (var o = this.tryEntries.length - 1; o >= 0; --o) { - var i = this.tryEntries[o], - a = i.completion; - if ("root" === i.tryLoc) return handle("end"); - if (i.tryLoc <= this.prev) { - var c = n.call(i, "catchLoc"), - u = n.call(i, "finallyLoc"); - if (c && u) { - if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); - if (this.prev < i.finallyLoc) return handle(i.finallyLoc); - } else if (c) { - if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); - } else { - if (!u) throw new Error("try statement without catch or finally"); - if (this.prev < i.finallyLoc) return handle(i.finallyLoc); - } - } - } - }, - abrupt: function abrupt(t, e) { - for (var r = this.tryEntries.length - 1; r >= 0; --r) { - var o = this.tryEntries[r]; - if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { - var i = o; - break; - } - } - i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); - var a = i ? i.completion : {}; - return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); - }, - complete: function complete(t, e) { - if ("throw" === t.type) throw t.arg; - return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; - }, - finish: function finish(t) { - for (var e = this.tryEntries.length - 1; e >= 0; --e) { - var r = this.tryEntries[e]; - if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; - } - }, - "catch": function _catch(t) { - for (var e = this.tryEntries.length - 1; e >= 0; --e) { - var r = this.tryEntries[e]; - if (r.tryLoc === t) { - var n = r.completion; - if ("throw" === n.type) { - var o = n.arg; - resetTryEntry(r); - } - return o; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(e, r, n) { - return this.delegate = { - iterator: values(e), - resultName: r, - nextLoc: n - }, "next" === this.method && (this.arg = t), y; - } - }, e; - } - module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; - } (regeneratorRuntime$1)); + var hasRequiredRegeneratorRuntime; + + function requireRegeneratorRuntime () { + if (hasRequiredRegeneratorRuntime) return regeneratorRuntime$1.exports; + hasRequiredRegeneratorRuntime = 1; + (function (module) { + var _typeof = require_typeof()["default"]; + function _regeneratorRuntime() { + module.exports = _regeneratorRuntime = function _regeneratorRuntime() { + return e; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + var t, + e = {}, + r = Object.prototype, + n = r.hasOwnProperty, + o = Object.defineProperty || function (t, e, r) { + t[e] = r.value; + }, + i = "function" == typeof Symbol ? Symbol : {}, + a = i.iterator || "@@iterator", + c = i.asyncIterator || "@@asyncIterator", + u = i.toStringTag || "@@toStringTag"; + function define(t, e, r) { + return Object.defineProperty(t, e, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }), t[e]; + } + try { + define({}, ""); + } catch (t) { + define = function define(t, e, r) { + return t[e] = r; + }; + } + function wrap(t, e, r, n) { + var i = e && e.prototype instanceof Generator ? e : Generator, + a = Object.create(i.prototype), + c = new Context(n || []); + return o(a, "_invoke", { + value: makeInvokeMethod(t, r, c) + }), a; + } + function tryCatch(t, e, r) { + try { + return { + type: "normal", + arg: t.call(e, r) + }; + } catch (t) { + return { + type: "throw", + arg: t + }; + } + } + e.wrap = wrap; + var h = "suspendedStart", + l = "suspendedYield", + f = "executing", + s = "completed", + y = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var p = {}; + define(p, a, function () { + return this; + }); + var d = Object.getPrototypeOf, + v = d && d(d(values([]))); + v && v !== r && n.call(v, a) && (p = v); + var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); + function defineIteratorMethods(t) { + ["next", "throw", "return"].forEach(function (e) { + define(t, e, function (t) { + return this._invoke(e, t); + }); + }); + } + function AsyncIterator(t, e) { + function invoke(r, o, i, a) { + var c = tryCatch(t[r], t, o); + if ("throw" !== c.type) { + var u = c.arg, + h = u.value; + return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { + invoke("next", t, i, a); + }, function (t) { + invoke("throw", t, i, a); + }) : e.resolve(h).then(function (t) { + u.value = t, i(u); + }, function (t) { + return invoke("throw", t, i, a); + }); + } + a(c.arg); + } + var r; + o(this, "_invoke", { + value: function value(t, n) { + function callInvokeWithMethodAndArg() { + return new e(function (e, r) { + invoke(t, n, e, r); + }); + } + return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(e, r, n) { + var o = h; + return function (i, a) { + if (o === f) throw Error("Generator is already running"); + if (o === s) { + if ("throw" === i) throw a; + return { + value: t, + done: !0 + }; + } + for (n.method = i, n.arg = a;;) { + var c = n.delegate; + if (c) { + var u = maybeInvokeDelegate(c, n); + if (u) { + if (u === y) continue; + return u; + } + } + if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { + if (o === h) throw o = s, n.arg; + n.dispatchException(n.arg); + } else "return" === n.method && n.abrupt("return", n.arg); + o = f; + var p = tryCatch(e, r, n); + if ("normal" === p.type) { + if (o = n.done ? s : l, p.arg === y) continue; + return { + value: p.arg, + done: n.done + }; + } + "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); + } + }; + } + function maybeInvokeDelegate(e, r) { + var n = r.method, + o = e.iterator[n]; + if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; + var i = tryCatch(o, e.iterator, r.arg); + if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; + var a = i.arg; + return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); + } + function pushTryEntry(t) { + var e = { + tryLoc: t[0] + }; + 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); + } + function resetTryEntry(t) { + var e = t.completion || {}; + e.type = "normal", delete e.arg, t.completion = e; + } + function Context(t) { + this.tryEntries = [{ + tryLoc: "root" + }], t.forEach(pushTryEntry, this), this.reset(!0); + } + function values(e) { + if (e || "" === e) { + var r = e[a]; + if (r) return r.call(e); + if ("function" == typeof e.next) return e; + if (!isNaN(e.length)) { + var o = -1, + i = function next() { + for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; + return next.value = t, next.done = !0, next; + }; + return i.next = i; + } + } + throw new TypeError(_typeof(e) + " is not iterable"); + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), o(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { + var e = "function" == typeof t && t.constructor; + return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); + }, e.mark = function (t) { + return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; + }, e.awrap = function (t) { + return { + __await: t + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { + return this; + }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { + void 0 === i && (i = Promise); + var a = new AsyncIterator(wrap(t, r, n, o), i); + return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { + return t.done ? t.value : a.next(); + }); + }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { + return this; + }), define(g, "toString", function () { + return "[object Generator]"; + }), e.keys = function (t) { + var e = Object(t), + r = []; + for (var n in e) r.push(n); + return r.reverse(), function next() { + for (; r.length;) { + var t = r.pop(); + if (t in e) return next.value = t, next.done = !1, next; + } + return next.done = !0, next; + }; + }, e.values = values, Context.prototype = { + constructor: Context, + reset: function reset(e) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); + }, + stop: function stop() { + this.done = !0; + var t = this.tryEntries[0].completion; + if ("throw" === t.type) throw t.arg; + return this.rval; + }, + dispatchException: function dispatchException(e) { + if (this.done) throw e; + var r = this; + function handle(n, o) { + return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; + } + for (var o = this.tryEntries.length - 1; o >= 0; --o) { + var i = this.tryEntries[o], + a = i.completion; + if ("root" === i.tryLoc) return handle("end"); + if (i.tryLoc <= this.prev) { + var c = n.call(i, "catchLoc"), + u = n.call(i, "finallyLoc"); + if (c && u) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } else if (c) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + } else { + if (!u) throw Error("try statement without catch or finally"); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } + } + } + }, + abrupt: function abrupt(t, e) { + for (var r = this.tryEntries.length - 1; r >= 0; --r) { + var o = this.tryEntries[r]; + if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { + var i = o; + break; + } + } + i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); + var a = i ? i.completion : {}; + return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); + }, + complete: function complete(t, e) { + if ("throw" === t.type) throw t.arg; + return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; + }, + finish: function finish(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; + } + }, + "catch": function _catch(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.tryLoc === t) { + var n = r.completion; + if ("throw" === n.type) { + var o = n.arg; + resetTryEntry(r); + } + return o; + } + } + throw Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(e, r, n) { + return this.delegate = { + iterator: values(e), + resultName: r, + nextLoc: n + }, "next" === this.method && (this.arg = t), y; + } + }, e; + } + module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (regeneratorRuntime$1)); + return regeneratorRuntime$1.exports; + } - var regeneratorRuntimeExports = regeneratorRuntime$1.exports; + var regenerator; + var hasRequiredRegenerator; - // TODO(Babel 8): Remove this file. + function requireRegenerator () { + if (hasRequiredRegenerator) return regenerator; + hasRequiredRegenerator = 1; + // TODO(Babel 8): Remove this file. - var runtime = regeneratorRuntimeExports(); - var regenerator = runtime; + var runtime = requireRegeneratorRuntime()(); + regenerator = runtime; - // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= - try { - regeneratorRuntime = runtime; - } catch (accidentalStrictMode) { - if (typeof globalThis === "object") { - globalThis.regeneratorRuntime = runtime; - } else { - Function("r", "regeneratorRuntime = r")(runtime); - } + // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= + try { + regeneratorRuntime = runtime; + } catch (accidentalStrictMode) { + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); + } + } + return regenerator; } - var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator); + var regeneratorExports = requireRegenerator(); + var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regeneratorExports); let decoder; try { @@ -820,6 +759,9 @@ const BUNDLED_STRINGS_ID = 0xdff9; const PACKED_REFERENCE_TAG_ID = 6; const STOP_CODE = {}; + let maxArraySize = 112810000; // This is the maximum array size in V8. We would potentially detect and set it higher + // for JSC, but this is pretty large and should be sufficient for most use cases + let maxMapSize = 16810000; // JavaScript has a fixed maximum map size of about 16710000, but JS itself enforces this, let currentDecoder = {}; let currentStructures; let srcString; @@ -1092,6 +1034,7 @@ let array = []; let value, i = 0; while ((value = read()) != STOP_CODE) { + if (i >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`) array[i++] = value; } return majorType == 4 ? array : majorType == 3 ? array.join('') : Buffer.concat(array) @@ -1099,8 +1042,19 @@ let key; if (currentDecoder.mapsAsObjects) { let object = {}; - if (currentDecoder.keyMap) while((key = read()) != STOP_CODE) object[safeKey(currentDecoder.decodeKey(key))] = read(); - else while ((key = read()) != STOP_CODE) object[safeKey(key)] = read(); + let i = 0; + if (currentDecoder.keyMap) { + while((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`) + object[safeKey(currentDecoder.decodeKey(key))] = read(); + } + } + else { + while ((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) throw new Error(`Property count exceeds ${maxMapSize}`) + object[safeKey(key)] = read(); + } + } return object } else { if (restoreMapsAsObject) { @@ -1108,8 +1062,24 @@ restoreMapsAsObject = false; } let map = new Map(); - if (currentDecoder.keyMap) while((key = read()) != STOP_CODE) map.set(currentDecoder.decodeKey(key), read()); - else while ((key = read()) != STOP_CODE) map.set(key, read()); + if (currentDecoder.keyMap) { + let i = 0; + while((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) { + throw new Error(`Map size exceeds ${maxMapSize}`); + } + map.set(currentDecoder.decodeKey(key), read()); + } + } + else { + let i = 0; + while ((key = read()) != STOP_CODE) { + if (i++ >= maxMapSize) { + throw new Error(`Map size exceeds ${maxMapSize}`); + } + map.set(key, read()); + } + } return map } case 7: @@ -1140,12 +1110,14 @@ } return readFixedString(token) case 4: // array + if (token >= maxArraySize) throw new Error(`Array length exceeds ${maxArraySize}`) let array = new Array(token); //if (currentDecoder.keyMap) for (let i = 0; i < token; i++) array[i] = currentDecoder.decodeKey(read()) //else for (let i = 0; i < token; i++) array[i] = read(); return array case 5: // map + if (token >= maxMapSize) throw new Error(`Map size exceeds ${maxArraySize}`) if (currentDecoder.mapsAsObjects) { let object = {}; if (currentDecoder.keyMap) for (let i = 0; i < token; i++) object[safeKey(currentDecoder.decodeKey(read()))] = read(); @@ -1247,6 +1219,7 @@ } const validName = /^[a-zA-Z_$][a-zA-Z\d_$]*$/; function createStructureReader(structure) { + if (!structure) throw new Error('Structure is required in record definition'); function readObject() { // get the array size from the header let length = src[position$1++]; @@ -1302,7 +1275,8 @@ function safeKey(key) { // protect against prototype pollution if (typeof key === 'string') return key === '__proto__' ? '__proto_' : key - if (typeof key !== 'object') return key.toString() + if (typeof key === 'number' || typeof key === 'boolean' || typeof key === 'bigint') return key.toString(); + if (key == null) return key + ''; // protect against expensive (DoS) string conversions throw new Error('Invalid property name type ' + typeof key); } @@ -1570,7 +1544,7 @@ // bigint extension let value = BigInt(0); for (let i = 0, l = buffer.byteLength; i < l; i++) { - value = BigInt(buffer[i]) + value << BigInt(8); + value = BigInt(buffer[i]) + (value << BigInt(8)); } return value }; @@ -1685,6 +1659,7 @@ referenceMap.id = 0; } let id = referenceMap.id++; + let startingPosition = position$1; let token = src[position$1]; let target; // TODO: handle Maps, Sets, and other types that can cycle; this is complicated, because you potentially need to read @@ -1697,8 +1672,20 @@ let refEntry = { target }; // a placeholder object referenceMap.set(id, refEntry); let targetProperties = read(); // read the next value as the target object to id - if (refEntry.used) // there is a cycle, so we have to assign properties to original target + if (refEntry.used) {// there is a cycle, so we have to assign properties to original target + if (Object.getPrototypeOf(target) !== Object.getPrototypeOf(targetProperties)) { + // this means that the returned target does not match the targetProperties, so we need rerun the read to + // have the correctly create instance be assigned as a reference, then we do the copy the properties back to the + // target + // reset the position so that the read can be repeated + position$1 = startingPosition; + // the returned instance is our new target for references + target = targetProperties; + referenceMap.set(id, { target }); + targetProperties = read(); + } return Object.assign(target, targetProperties) + } refEntry.target = targetProperties; // the placeholder wasn't used, replace with the deserialized one return targetProperties // no cycle, can just use the returned read object }; @@ -1780,7 +1767,7 @@ for (let littleEndian = 0; littleEndian < 2; littleEndian++) { if (!littleEndian && bytesPerElement == 1) continue - let sizeShift = bytesPerElement == 2 ? 1 : bytesPerElement == 4 ? 2 : 3; + let sizeShift = bytesPerElement == 2 ? 1 : bytesPerElement == 4 ? 2 : bytesPerElement == 8 ? 3 : 0; currentExtensions[littleEndian ? tag : (tag - 4)] = (bytesPerElement == 1 || littleEndian == isLittleEndianMachine$1) ? (buffer) => { if (!TypedArray) throw new Error('Could not find typed array for code ' + tag) @@ -1790,7 +1777,7 @@ bytesPerElement === 2 && !(buffer.byteOffset & 1) || bytesPerElement === 4 && !(buffer.byteOffset & 3) || bytesPerElement === 8 && !(buffer.byteOffset & 7)) - return new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength); + return new TypedArray(buffer.buffer, buffer.byteOffset, buffer.byteLength >> sizeShift); } // we have to slice/copy here to get a new ArrayBuffer, if we are not word/byte aligned return new TypedArray(Uint8Array.prototype.slice.call(buffer, 0).buffer) @@ -2379,7 +2366,7 @@ } let constructor = value.constructor; if (constructor === Object) { - writeObject(value, true); + writeObject(value); } else if (constructor === Array) { length = value.length; if (length < 0x18) { @@ -2474,8 +2461,8 @@ return encode(json) } - // no extension found, write as object - writeObject(value, !value.hasOwnProperty); // if it doesn't have hasOwnProperty, don't do hasOwnProperty checks + // no extension found, write as a plain object + writeObject(value); } } } else if (type === 'boolean') { @@ -2495,7 +2482,19 @@ target[position++] = 0xfb; targetView.setFloat64(position, Number(value)); } else { - throw new RangeError(value + ' was too large to fit in CBOR 64-bit integer format, set largeBigIntToFloat to convert to float-64') + if (value >= BigInt(0)) + target[position++] = 0xc2; // tag 2 + else { + target[position++] = 0xc3; // tag 2 + value = BigInt(-1) - value; + } + let bytes = []; + while (value) { + bytes.push(Number(value & BigInt(0xff))); + value >>= BigInt(8); + } + writeBuffer(new Uint8Array(bytes.reverse()), makeRoom); + return; } } position += 8; @@ -2537,19 +2536,19 @@ } } } : - (object, safePrototype) => { + (object) => { target[position++] = 0xb9; // always use map 16, so we can preallocate and set the length afterwards let objectOffset = position - start; position += 2; let size = 0; - if (encoder.keyMap) { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + if (encoder.keyMap) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { encode(encoder.encodeKey(key)); encode(object[key]); size++; } } else { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { encode(key); encode(object[key]); size++; @@ -2558,7 +2557,7 @@ target[objectOffset++ + start] = size >> 8; target[objectOffset + start] = size & 0xff; } : - (object, safePrototype) => { + (object, skipValues) => { let nextTransition, transition = structures.transitions || (structures.transitions = Object.create(null)); let newTransitions = 0; let length = 0; @@ -2577,7 +2576,7 @@ transition = nextTransition; } } else { - for (let key in object) if (safePrototype || object.hasOwnProperty(key)) { + for (let key in object) if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) { nextTransition = transition[key]; if (!nextTransition) { if (transition[RECORD_SYMBOL] & 0x100000) {// this indicates it is a brancheable/extendable terminal node, so we will use this record id and extend it @@ -2637,9 +2636,9 @@ writeArrayHeader(length + 2); encode(0xe000 + recordId); encode(keys); - if (safePrototype === null) return; // special exit for iterator + if (skipValues) return; // special exit for iterator for (let key in object) - if (safePrototype || object.hasOwnProperty(key)) + if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) encode(object[key]); return } @@ -2649,9 +2648,9 @@ } else { writeArrayHeader(length); } - if (safePrototype === null) return; // special exit for iterator + if (skipValues) return; // special exit for iterator for (let key in object) - if (safePrototype || object.hasOwnProperty(key)) + if (typeof object.hasOwnProperty !== 'function' || object.hasOwnProperty(key)) encode(object[key]); }; const makeRoom = (end) => { @@ -2689,7 +2688,7 @@ if (constructor === Object) { let useRecords = encoder.useRecords !== false; if (useRecords) - writeObject(object, null); // write the record identifier + writeObject(object, true); // write the record identifier else writeEntityLength(Object.keys(object).length, 0xa0); for (let key in object) { @@ -2714,7 +2713,7 @@ yield* tryEncode(value, iterateProperties, 'element'); } else encode(value); } - } else if (object[Symbol.iterator]) { + } else if (object[Symbol.iterator] && !object.buffer) { // iterator, but exclude typed arrays target[position++] = 0x9f; // start indefinite array for (let value of object) { if (value && (typeof value === 'object' || position - start > chunkThreshold)) { @@ -3134,289 +3133,299 @@ * build: Wed, 27 Oct 2021 10:43:10 GMT */ - Object.defineProperty(lzjbPack, '__esModule', { value: true }); + var hasRequiredLzjbPack; - /* - * source https://github.com/copy/jslzjb-k - * Based on jslzjb: https://code.google.com/p/jslzjb/ - * Heavily modified for speed - */ - // Constants was used for compress/decompress function. - const - /** @const */ NBBY = 8, - /** @const */ MATCH_BITS = 6, - /** @const */ MATCH_MIN = 3, - /** @const */ MATCH_MAX = ((1 << MATCH_BITS) + (MATCH_MIN - 1)), - /** @const */ OFFSET_MASK = ((1 << (16 - MATCH_BITS)) - 1), - /** @const */ LEMPEL_SIZE = 256; + function requireLzjbPack () { + if (hasRequiredLzjbPack) return lzjbPack; + hasRequiredLzjbPack = 1; - /** - * Because of weak of javascript's natural, many compression algorithm - * become useless in javascript implementation. The main problem is - * performance, even the simple Huffman, LZ77/78 algorithm will take many - * many time to operate. We use LZJB algorithm to do that, it suprisingly - * fulfills our requirement to compress string fastly and efficiently. - * - * Our implementation is based on - * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ - * usr/src/uts/common/os/compress.c - * It is licensed under CDDL. - * - * Compress byte array using fast and efficient algorithm. - * - * @param {Uint8Array} sstart The buffer to compress - * @param {Uint8Array} dstart The buffer to write into - * @return {number} compressed length (number of bytes written to the - * output buffer). May be bigger than the size of the - * output buffer, in which case some bytes are lost - */ - function compress(sstart, dstart) { - var slen = 0, - src = 0, - dst = 0, - cpy = 0, - copymap = 0, - copymask = 1 << (NBBY - 1), - mlen = 0, - offset = 0, - hp = 0, - lempel = new Int32Array(LEMPEL_SIZE), - i = 0; + Object.defineProperty(lzjbPack, '__esModule', { value: true }); - // Initialize lempel array. - for(i = 0; i < LEMPEL_SIZE; i++) { - lempel[i] = -858993460; - } + /* + * source https://github.com/copy/jslzjb-k + * Based on jslzjb: https://code.google.com/p/jslzjb/ + * Heavily modified for speed + */ + // Constants was used for compress/decompress function. + const + /** @const */ NBBY = 8, + /** @const */ MATCH_BITS = 6, + /** @const */ MATCH_MIN = 3, + /** @const */ MATCH_MAX = ((1 << MATCH_BITS) + (MATCH_MIN - 1)), + /** @const */ OFFSET_MASK = ((1 << (16 - MATCH_BITS)) - 1), + /** @const */ LEMPEL_SIZE = 256; - slen = sstart.length; + /** + * Because of weak of javascript's natural, many compression algorithm + * become useless in javascript implementation. The main problem is + * performance, even the simple Huffman, LZ77/78 algorithm will take many + * many time to operate. We use LZJB algorithm to do that, it suprisingly + * fulfills our requirement to compress string fastly and efficiently. + * + * Our implementation is based on + * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ + * usr/src/uts/common/os/compress.c + * It is licensed under CDDL. + * + * Compress byte array using fast and efficient algorithm. + * + * @param {Uint8Array} sstart The buffer to compress + * @param {Uint8Array} dstart The buffer to write into + * @return {number} compressed length (number of bytes written to the + * output buffer). May be bigger than the size of the + * output buffer, in which case some bytes are lost + */ + function compress(sstart, dstart) { + var slen = 0, + src = 0, + dst = 0, + cpy = 0, + copymap = 0, + copymask = 1 << (NBBY - 1), + mlen = 0, + offset = 0, + hp = 0, + lempel = new Int32Array(LEMPEL_SIZE), + i = 0; - while (src < slen) { - if ((copymask <<= 1) == (1 << NBBY)) { - copymask = 1; - copymap = dst; - dstart[dst++] = 0; - } + // Initialize lempel array. + for(i = 0; i < LEMPEL_SIZE; i++) { + lempel[i] = -858993460; + } - if (src > slen - MATCH_MAX) { - dstart[dst++] = sstart[src++]; - continue; - } + slen = sstart.length; - hp = ((sstart[src] + 13) ^ - (sstart[src + 1] - 13) ^ - sstart[src + 2]) & - (LEMPEL_SIZE - 1); + while (src < slen) { + if ((copymask <<= 1) == (1 << NBBY)) { + copymask = 1; + copymap = dst; + dstart[dst++] = 0; + } - offset = (src - lempel[hp]) & OFFSET_MASK; - lempel[hp] = src; - cpy = src - offset; + if (src > slen - MATCH_MAX) { + dstart[dst++] = sstart[src++]; + continue; + } - if (cpy >= 0 && cpy != src && - sstart[src] == sstart[cpy] && - sstart[src + 1] == sstart[cpy + 1] && - sstart[src + 2] == sstart[cpy + 2]) { - dstart[copymap] |= copymask; - for (mlen = MATCH_MIN; mlen < MATCH_MAX; mlen++) - if (sstart[src + mlen] != sstart[cpy + mlen]) - break; - dstart[dst++] = ((mlen - MATCH_MIN) << (NBBY - MATCH_BITS)) | - (offset >> NBBY); - dstart[dst++] = offset; - src += mlen; - } else { - dstart[dst++] = sstart[src++]; - } - } + hp = ((sstart[src] + 13) ^ + (sstart[src + 1] - 13) ^ + sstart[src + 2]) & + (LEMPEL_SIZE - 1); - console.assert(sstart.length >= src); + offset = (src - lempel[hp]) & OFFSET_MASK; + lempel[hp] = src; + cpy = src - offset; - return dst; - } + if (cpy >= 0 && cpy != src && + sstart[src] == sstart[cpy] && + sstart[src + 1] == sstart[cpy + 1] && + sstart[src + 2] == sstart[cpy + 2]) { + dstart[copymap] |= copymask; + for (mlen = MATCH_MIN; mlen < MATCH_MAX; mlen++) + if (sstart[src + mlen] != sstart[cpy + mlen]) + break; + dstart[dst++] = ((mlen - MATCH_MIN) << (NBBY - MATCH_BITS)) | + (offset >> NBBY); + dstart[dst++] = offset; + src += mlen; + } else { + dstart[dst++] = sstart[src++]; + } + } - /** - * Our implementation is based on - * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ - * usr/src/uts/common/os/compress.c - * It is licensed under CDDL. - * - * Decompress byte array using fast and efficient algorithm. - * - * @param {Uint8Array} sstart The buffer to decompress - * @param {number} slen compressed length - * @param {Uint8Array} dstart The buffer to write into - * @return {number} decompressed length - */ - function decompress(sstart, slen, dstart) { - slen = slen | 0; + console.assert(sstart.length >= src); - var src = 0, - dst = 0, - cpy = 0, - copymap = 0, - copymask = 1 << (NBBY - 1 | 0), - mlen = 0, - offset = 0; + return dst; + } - //var avg_mlen = []; + /** + * Our implementation is based on + * http://src.opensolaris.org/source/raw/onnv/onnv-gate/ + * usr/src/uts/common/os/compress.c + * It is licensed under CDDL. + * + * Decompress byte array using fast and efficient algorithm. + * + * @param {Uint8Array} sstart The buffer to decompress + * @param {number} slen compressed length + * @param {Uint8Array} dstart The buffer to write into + * @return {number} decompressed length + */ + function decompress(sstart, slen, dstart) { + slen = slen | 0; - while (src < slen) { - if ((copymask <<= 1) === (1 << NBBY)) { - copymask = 1; - copymap = sstart[src]; - src = src + 1 | 0; - } + var src = 0, + dst = 0, + cpy = 0, + copymap = 0, + copymask = 1 << (NBBY - 1 | 0), + mlen = 0, + offset = 0; - if (copymap & copymask) { - mlen = (sstart[src] >> (NBBY - MATCH_BITS | 0)) + MATCH_MIN | 0; - offset = ((sstart[src] << NBBY) | sstart[src + 1 | 0]) & OFFSET_MASK; - src = src + 2 | 0; + //var avg_mlen = []; - cpy = dst - offset | 0; - //if (cpy >= 0) - { - //console.log(mlen); - //avg_mlen.push(mlen); + while (src < slen) { + if ((copymask <<= 1) === (1 << NBBY)) { + copymask = 1; + copymap = sstart[src]; + src = src + 1 | 0; + } - //dstart.set(dstart.subarray(cpy, cpy + mlen | 0), dst); - //dst = dst + mlen | 0; - //cpy = cpy + mlen | 0; + if (copymap & copymask) { + mlen = (sstart[src] >> (NBBY - MATCH_BITS | 0)) + MATCH_MIN | 0; + offset = ((sstart[src] << NBBY) | sstart[src + 1 | 0]) & OFFSET_MASK; + src = src + 2 | 0; - //mlen = mlen - 1 | 0; - while (mlen > 4) { - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + cpy = dst - offset | 0; + //if (cpy >= 0) + { + //console.log(mlen); + //avg_mlen.push(mlen); - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + //dstart.set(dstart.subarray(cpy, cpy + mlen | 0), dst); + //dst = dst + mlen | 0; + //cpy = cpy + mlen | 0; - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + //mlen = mlen - 1 | 0; + while (mlen > 4) { + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - mlen = mlen - 4 | 0; - } + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - while (mlen > 0) { - dstart[dst] = dstart[cpy]; - dst = dst + 1 | 0; - cpy = cpy + 1 | 0; - mlen = mlen - 1 | 0; - } - } - //else - //{ - // /* - // * offset before start of destination buffer - // * indicates corrupt source data - // */ - // console.warn("possibly corrupt data"); - // return dstart; - //} - } else { - dstart[dst] = sstart[src]; - dst = dst + 1 | 0; - src = src + 1 | 0; - } - } + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; - //console.log(avg_mlen.reduce(function(a, x) { return a + x; }, 0) / avg_mlen.length); + mlen = mlen - 4 | 0; + } - //console.assert(dstart.length >= dst); - //console.assert(sstart.length >= src); + while (mlen > 0) { + dstart[dst] = dstart[cpy]; + dst = dst + 1 | 0; + cpy = cpy + 1 | 0; + mlen = mlen - 1 | 0; + } + } + //else + //{ + // /* + // * offset before start of destination buffer + // * indicates corrupt source data + // */ + // console.warn("possibly corrupt data"); + // return dstart; + //} + } else { + dstart[dst] = sstart[src]; + dst = dst + 1 | 0; + src = src + 1 | 0; + } + } - return dst; - } + //console.log(avg_mlen.reduce(function(a, x) { return a + x; }, 0) / avg_mlen.length); + //console.assert(dstart.length >= dst); + //console.assert(sstart.length >= src); - function encode_magic$1() { - const encoder = new TextEncoder('utf-8'); - return encoder.encode(MAGIC_STRING); - } + return dst; + } - const MAGIC_STRING = '@lzjb'; - const MAGIC = encode_magic$1(); - function merge_uint8_array$1(...args) { - if (args.length > 1) { - const len = args.reduce((acc, arr) => acc + arr.length, 0); - const result = new Uint8Array(len); - let offset = 0; - args.forEach(item => { - result.set(item, offset); - offset += item.length; - }); - return result; - } else if (args.length) { - return args[0]; - } - } + function encode_magic() { + const encoder = new TextEncoder('utf-8'); + return encoder.encode(MAGIC_STRING); + } - function number_to_bytes(number) { - const len = Math.ceil(Math.log2(number) / 8); - const byteArray = new Uint8Array(len); + const MAGIC_STRING = '@lzjb'; + const MAGIC = encode_magic(); - for (let index = 0; index < byteArray.length; index ++ ) { - const byte = number & 0xff; - byteArray[index] = byte; - number = (number - byte) / 256; - } + function merge_uint8_array(...args) { + if (args.length > 1) { + const len = args.reduce((acc, arr) => acc + arr.length, 0); + const result = new Uint8Array(len); + let offset = 0; + args.forEach(item => { + result.set(item, offset); + offset += item.length; + }); + return result; + } else if (args.length) { + return args[0]; + } + } - return byteArray; - } + function number_to_bytes(number) { + const len = Math.ceil(Math.log2(number) / 8); + const byteArray = new Uint8Array(len); - function bytes_to_number(byteArray) { - let result = 0; - for (let i = byteArray.length - 1; i >= 0; i--) { - result = (result * 256) + byteArray[i]; - } + for (let index = 0; index < byteArray.length; index ++ ) { + const byte = number & 0xff; + byteArray[index] = byte; + number = (number - byte) / 256; + } - return result; - } + return byteArray; + } - function pack(input, { magic = true } = {}) { - const out = new Uint8Array(Math.max(input.length * 1.5 | 0, 16 * 1024)); - const len = compress(input, out); - const len_array = number_to_bytes(input.length); - const payload = [ - Uint8Array.of(len_array.length), - len_array, - out.slice(0, len) - ]; - if (magic) { - payload.unshift(MAGIC); - } - return merge_uint8_array$1(...payload); - } + function bytes_to_number(byteArray) { + let result = 0; + for (let i = byteArray.length - 1; i >= 0; i--) { + result = (result * 256) + byteArray[i]; + } - function unpack(input, { magic = true } = {}) { - if (magic) { - const decoder = new TextDecoder('utf-8'); - const magic_prefix = decoder.decode(input.slice(0, MAGIC.length)); - if (magic_prefix !== MAGIC_STRING) { - throw new Error('Invalid magic value'); - } - } - const magic_length = magic ? MAGIC.length : 0; - const size = input[magic_length]; - const start = magic_length + 1; - const end = magic_length + size + 1; - const len = bytes_to_number(input.slice(start, end)); - input = input.slice(end); - const out = new Uint8Array(len); - decompress(input, input.length, out); - return out; + return result; + } + + function pack(input, { magic = true } = {}) { + const out = new Uint8Array(Math.max(input.length * 1.5 | 0, 16 * 1024)); + const len = compress(input, out); + const len_array = number_to_bytes(input.length); + const payload = [ + Uint8Array.of(len_array.length), + len_array, + out.slice(0, len) + ]; + if (magic) { + payload.unshift(MAGIC); + } + return merge_uint8_array(...payload); + } + + function unpack(input, { magic = true } = {}) { + if (magic) { + const decoder = new TextDecoder('utf-8'); + const magic_prefix = decoder.decode(input.slice(0, MAGIC.length)); + if (magic_prefix !== MAGIC_STRING) { + throw new Error('Invalid magic value'); + } + } + const magic_length = magic ? MAGIC.length : 0; + const size = input[magic_length]; + const start = magic_length + 1; + const end = magic_length + size + 1; + const len = bytes_to_number(input.slice(start, end)); + input = input.slice(end); + const out = new Uint8Array(len); + decompress(input, input.length, out); + return out; + } + + lzjbPack.pack = pack; + lzjbPack.unpack = unpack; + return lzjbPack; } - var pack_1 = lzjbPack.pack = pack; - var unpack_1 = lzjbPack.unpack = unpack; + var lzjbPackExports = requireLzjbPack(); - function unfetch(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return {ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+","+t:t;}),t(a());},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null);})} + function e(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u={},a=function e(){return {ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:e,headers:{keys:function(){return o},entries:function(){return o.map(function(e){return [e,s.getResponseHeader(e)]})},get:function(e){return s.getResponseHeader(e)},has:function(e){return null!=s.getResponseHeader(e)}}}};for(var i in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(e,n){u[n]||o.push(u[n]=n);}),t(a());},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(i,n.headers[i]);s.send(n.body||null);})} /* * TODO: consider using exec in env.eval or use different maybe_async code @@ -3428,13 +3437,16 @@ _excluded4 = ["use_dynamic"], _excluded5 = ["use_dynamic"], _excluded6 = ["env", "dynamic_env", "use_dynamic", "error"]; - function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } - function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } + function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); } + function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); } + function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); } + function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; } + function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } + function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n3 = 0, F = function F() {}; return { s: F, n: function n() { return _n3 >= r.length ? { done: !0 } : { done: !1, value: r[_n3++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } + function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } + function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); } @@ -3443,7 +3455,7 @@ /* c8 ignore next 3 */ if (!root.fetch) { - root.fetch = unfetch; + root.fetch = e; } // ------------------------------------------------------------------------- @@ -3483,30 +3495,30 @@ add = modern ? 'addEventListener' : 'attachEvent', rem = modern ? 'removeEventListener' : 'detachEvent', pre = modern ? '' : 'on', - init = function init(e) { + _init = function init(e) { if (e.type == 'readystatechange' && doc.readyState != 'complete') return; - (e.type == 'load' ? win : doc)[rem](pre + e.type, init, false); + (e.type == 'load' ? win : doc)[rem](pre + e.type, _init, false); if (!done && (done = true)) fn.call(win, e.type || e); }, - poll = function poll() { + _poll = function poll() { try { root.doScroll('left'); } catch (e) { - setTimeout(poll, 50); + setTimeout(_poll, 50); return; } - init('poll'); + _init('poll'); }; if (doc.readyState == 'complete') fn.call(win, 'lazy');else { if (!modern && root.doScroll) { try { top = !win.frameElement; } catch (e) {} - if (top) poll(); + if (top) _poll(); } - doc[add](pre + 'DOMContentLoaded', init, false); - doc[add](pre + 'readystatechange', init, false); - win[add](pre + 'load', init, false); + doc[add](pre + 'DOMContentLoaded', _init, false); + doc[add](pre + 'readystatechange', _init, false); + win[add](pre + 'load', _init, false); } } // ------------------------------------------------------------------------- @@ -4510,7 +4522,7 @@ this._state = this._next = this._token = null; this._prev_char = ''; } - _createClass(Lexer, [{ + return _createClass(Lexer, [{ key: "get", value: function get(name) { return this.__internal[name]; @@ -4759,7 +4771,6 @@ } } }]); - return Lexer; }(); // ---------------------------------------------------------------------- // TODO: cache the rules creation or whole list // ---------------------------------------------------------------------- @@ -4935,7 +4946,7 @@ hidden: true }); } - _createClass(Parser, [{ + return _createClass(Parser, [{ key: "_with_syntax_scope", value: function _with_syntax_scope(fn) { // expose parser and change stdin so parser extension can use current-input @@ -4973,7 +4984,7 @@ }, { key: "peek", value: function () { - var _peek = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { + var _peek = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() { var token; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { @@ -5057,7 +5068,7 @@ }, { key: "read", value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() { + var _read = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() { var token; return _regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5104,7 +5115,7 @@ }, { key: "read_list", value: function () { - var _read_list = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { + var _read_list = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { var head, prev, dot, token, node, cur; return _regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -5178,7 +5189,7 @@ }, { key: "read_value", value: function () { - var _read_value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { + var _read_value = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { var token; return _regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { @@ -5224,7 +5235,7 @@ }, { key: "read_object", value: function () { - var _read_object2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { + var _read_object2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { var object; return _regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { @@ -5285,7 +5296,7 @@ }, { key: "_resolve_object", value: function () { - var _resolve_object2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(object) { + var _resolve_object2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(object) { var _this5 = this; var result; return _regeneratorRuntime.wrap(function _callee6$(_context6) { @@ -5330,7 +5341,7 @@ }, { key: "_resolve_pair", value: function () { - var _resolve_pair2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(pair) { + var _resolve_pair2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(pair) { return _regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: @@ -5379,7 +5390,7 @@ }, { key: "_read_object", value: function () { - var _read_object3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() { + var _read_object3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8() { var _this6 = this; var token, special, builtin, expr, extension, is_symbol, was_close_paren, object, args, result, ref, ref_label; return _regeneratorRuntime.wrap(function _callee8$(_context8) { @@ -5562,16 +5573,15 @@ return _read_object; }() }]); - return Parser; }(); var Unterminated = /*#__PURE__*/function (_Error) { - _inherits(Unterminated, _Error); function Unterminated() { _classCallCheck(this, Unterminated); return _callSuper(this, Unterminated, arguments); } + _inherits(Unterminated, _Error); return _createClass(Unterminated); - }( /*#__PURE__*/_wrapNativeSuper(Error)); + }(/*#__PURE__*/_wrapNativeSuper(Error)); Parser.Unterminated = Unterminated; // ---------------------------------------------------------------------- // :: Parser helper that handles circular list structures @@ -5583,13 +5593,12 @@ this.name = name; this.data = data; } - _createClass(DatumReference, [{ + return _createClass(DatumReference, [{ key: "valueOf", value: function valueOf() { return this.data; } }]); - return DatumReference; }(); // ---------------------------------------------------------------------- // :: Tokens are the array of strings from tokenizer // :: the return value is an array of lips code created out of Pair class. @@ -5601,7 +5610,7 @@ return _parse2.apply(this, arguments); } // ---------------------------------------------------------------------- function _parse2() { - _parse2 = _wrapAsyncGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(arg, env) { + _parse2 = _wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(arg, env) { var parser, prev, expr; return _regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { @@ -5733,7 +5742,7 @@ // :: Function that return matcher function that match string against string // ---------------------------------------------------------------------- function _uniterate_async() { - _uniterate_async = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(object) { + _uniterate_async = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee22(object) { var result, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, item; return _regeneratorRuntime.wrap(function _callee22$(_context23) { while (1) switch (_context23.prev = _context23.next) { @@ -7817,7 +7826,7 @@ var toString = Object.prototype.toString; var arrayTypeStr = '[object Array]'; var result = []; - var nodes = mutable && array || array.slice(); + var nodes = array.slice(); var node; if (!array.length) { return result; @@ -8786,13 +8795,13 @@ var recur_guard = -10000; function macro_expand(single) { return /*#__PURE__*/function () { - var _ref21 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(code, args) { + var _ref21 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee12(code, args) { var env, bindings, let_macros, lambda, define, is_let_macro, is_procedure, is_lambda, proc_bindings, let_binding, is_macro, expand_let_binding, _expand_let_binding, traverse, _traverse; return _regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) switch (_context12.prev = _context12.next) { case 0: _traverse = function _traverse3() { - _traverse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(node, n, env) { + _traverse = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee11(node, n, env) { var name, value, is_let, is_binding, second, code, result, _result, expr, scope, car, cdr, pair; return _regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { @@ -8938,7 +8947,7 @@ return _traverse.apply(this, arguments); }; _expand_let_binding = function _expand_let_binding3() { - _expand_let_binding = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(node, n) { + _expand_let_binding = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10(node, n) { var pair; return _regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { @@ -10985,7 +10994,7 @@ }; // ------------------------------------------------------------------------- LNumber.types = { - "float": function float(n) { + "float": function _float2(n) { return new LFloat(n); }, complex: function complex(n) { @@ -11927,13 +11936,13 @@ function approxRatio(eps) { return function (n) { var gcde = function gcde(e, x, y) { - var _gcd = function _gcd(a, b) { - return b < e ? a : _gcd(b, a % b); + var _gcd2 = function _gcd(a, b) { + return b < e ? a : _gcd2(b, a % b); }; if (Number.isNaN(x) || Number.isNaN(y)) { return NaN; } - return _gcd(Math.abs(x), Math.abs(y)); + return _gcd2(Math.abs(x), Math.abs(y)); }, c = gcde(eps ? eps : 1 / 10000, 1, n); return LRational({ @@ -12340,7 +12349,7 @@ } }); this._read = read; - this._with_parser = this._with_init_parser.bind(this, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14() { + this._with_parser = this._with_init_parser.bind(this, /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee14() { var line; return _regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) switch (_context14.prev = _context14.next) { @@ -12393,7 +12402,7 @@ }; InputPort.prototype._with_init_parser = function (make_parser, fn) { var self = this; - return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15() { + return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee15() { var parser, _len17, args, @@ -12471,7 +12480,6 @@ }; // ------------------------------------------------------------------------- var BufferedOutputPort = /*#__PURE__*/function (_OutputPort) { - _inherits(BufferedOutputPort, _OutputPort); function BufferedOutputPort(fn) { var _this12; _classCallCheck(this, BufferedOutputPort); @@ -12480,15 +12488,16 @@ return (_this13 = _this12)._write.apply(_this13, arguments); }]); typecheck('BufferedOutputPort', fn, 'function'); - read_only(_assertThisInitialized(_this12), '_fn', fn, { + read_only(_this12, '_fn', fn, { hidden: true }); - read_only(_assertThisInitialized(_this12), '_buffer', [], { + read_only(_this12, '_buffer', [], { hidden: true }); return _this12; } - _createClass(BufferedOutputPort, [{ + _inherits(BufferedOutputPort, _OutputPort); + return _createClass(BufferedOutputPort, [{ key: "flush", value: function flush() { if (this._buffer.length) { @@ -12515,7 +12524,6 @@ } } }]); - return BufferedOutputPort; }(OutputPort); // ------------------------------------------------------------------------- function OutputStringPort(toString) { var _this15 = this; @@ -12986,13 +12994,13 @@ // :: of body expression #163 // ------------------------------------------------------------------------- var IgnoreException = /*#__PURE__*/function (_Error2) { - _inherits(IgnoreException, _Error2); function IgnoreException() { _classCallCheck(this, IgnoreException); return _callSuper(this, IgnoreException, arguments); } + _inherits(IgnoreException, _Error2); return _createClass(IgnoreException); - }( /*#__PURE__*/_wrapNativeSuper(Error)); // ------------------------------------------------------------------------- + }(/*#__PURE__*/_wrapNativeSuper(Error)); // ------------------------------------------------------------------------- // :: Environment constructor (parent and name arguments are optional) // ------------------------------------------------------------------------- function Environment(obj, parent, name) { @@ -13382,8 +13390,8 @@ return Promise.resolve(prompt('')); }), // those will be compiled by babel regex plugin - 'letter-unicode-regex': /(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])/, - 'numeral-unicode-regex': /(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/, + 'letter-unicode-regex': /(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])/, + 'numeral-unicode-regex': /(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDD40-\uDD49\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDED0-\uDEE3\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59\uDFF0-\uDFF9]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD818[\uDD30-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDD70-\uDD79\uDE80-\uDE96]|\uD833[\uDCF0-\uDCF9]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9\uDDF1-\uDDFA]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/, 'space-unicode-regex': /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/ }, undefined, 'internal'); // ---------------------------------------------------------------------- @@ -13789,8 +13797,8 @@ return __dirname.replace(/[^/]+$/, ''); } if (is_node()) { - return new Promise( /*#__PURE__*/function () { - var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(resolve, reject) { + return new Promise(/*#__PURE__*/function () { + var _ref31 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee18(resolve, reject) { var _path, _fs, root_dir, cmd, _args20; return _regeneratorRuntime.wrap(function _callee18$(_context18) { while (1) switch (_context18.prev = _context18.next) { @@ -15981,7 +15989,7 @@ } // ------------------------------------------------------------------------- /* c8 ignore next 15 */ function _node_specific() { - _node_specific = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23() { + _node_specific = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee23() { var _yield$import, createRequire, moduleURL, __dirname__, __filename__; return _regeneratorRuntime.wrap(function _callee23$(_context24) { while (1) switch (_context24.prev = _context24.next) { @@ -15991,7 +15999,7 @@ case 2: _yield$import = _context24.sent; createRequire = _yield$import.createRequire; - nodeRequire = createRequire((typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src || new URL('lips.js', document.baseURI).href))); + nodeRequire = createRequire((typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('lips.js', document.baseURI).href))); _context24.next = 7; return import('fs'); case 7: @@ -16003,7 +16011,7 @@ global_env.set('global', global); global_env.set('self', global); global_env.set('window', undefined); - moduleURL = new URL((typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src || new URL('lips.js', document.baseURI).href))); // using name __direname and __filename breaks after transpilation + moduleURL = new URL((typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('lips.js', document.baseURI).href))); // using name __direname and __filename breaks after transpilation __dirname__ = path.dirname(moduleURL.pathname); __filename__ = path.basename(moduleURL.pathname); global_env.set('__dirname', __dirname__); @@ -16264,7 +16272,7 @@ return _promise.apply(this, arguments); } function _promise() { - _promise = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(node) { + _promise = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee20(node) { var pair; return _regeneratorRuntime.wrap(function _callee20$(_context21) { while (1) switch (_context21.prev = _context21.next) { @@ -16493,10 +16501,7 @@ _classCallCheck(this, Parameter); _defineProperty(this, "__value__", void 0); _defineProperty(this, "__fn__", void 0); - _classPrivateFieldInitSpec(this, _p_name__, { - writable: true, - value: void 0 - }); + _classPrivateFieldInitSpec(this, _p_name__, void 0); this.__value__ = init; if (fn) { if (!is_function(fn)) { @@ -16505,16 +16510,16 @@ this.__fn__ = fn; } if (name) { - _classPrivateFieldSet(this, _p_name__, name); + _classPrivateFieldSet(_p_name__, this, name); } } - _createClass(Parameter, [{ + return _createClass(Parameter, [{ key: "__name__", get: function get() { - return _classPrivateFieldGet(this, _p_name__); + return _classPrivateFieldGet(_p_name__, this); }, set: function set(name) { - _classPrivateFieldSet(this, _p_name__, name); + _classPrivateFieldSet(_p_name__, this, name); if (this.__fn__) { this.__fn__.__name__ = "fn-".concat(name); } @@ -16533,7 +16538,6 @@ return new Parameter(value, this.__fn__, this.__name__); } }]); - return Parameter; }(); // ------------------------------------------------------------------------- var LambdaContext = /*#__PURE__*/function () { function LambdaContext(payload) { @@ -16543,7 +16547,7 @@ _defineProperty(this, "use_dynamic", void 0); Object.assign(this, payload); } - _createClass(LambdaContext, [{ + return _createClass(LambdaContext, [{ key: "__name__", get: function get() { return this.env.__name__; @@ -16560,7 +16564,6 @@ return (_this$env = this.env).get.apply(_this$env, arguments); } }]); - return LambdaContext; }(); // ------------------------------------------------------------------------- function search_param(env, param) { var candidate = env.get(param.__name__, { @@ -16597,7 +16600,7 @@ _defineProperty(this, "__value__", void 0); this.__value__ = k; } - _createClass(Continuation, [{ + return _createClass(Continuation, [{ key: "invoke", value: function invoke() { if (this.__value__ === null) { @@ -16605,7 +16608,6 @@ } } }]); - return Continuation; }(); // ------------------------------------------------------------------------- function _evaluate(code) { var _ref47 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, @@ -17291,7 +17293,7 @@ function serialize_bin(obj) { var magic = encode_magic(); var payload = cbor.encode(obj); - return merge_uint8_array(magic, pack_1(payload, { + return merge_uint8_array(magic, lzjbPackExports.pack(payload, { magic: false })); } @@ -17302,7 +17304,7 @@ type = _decode_magic.type, version = _decode_magic.version; if (type === 'LIPS' && version === 1) { - var arr = unpack_1(data.slice(MAGIC_LENGTH), { + var arr = lzjbPackExports.unpack(data.slice(MAGIC_LENGTH), { magic: false }); return cbor.decode(arr); @@ -17396,17 +17398,17 @@ // ------------------------------------------------------------------------- var banner = function () { // Rollup tree-shaking is removing the variable if it's normal string because - // obviously 'Fri, 08 Nov 2024 13:26:12 +0000' == '{{' + 'DATE}}'; can be removed + // obviously 'Fri, 08 Nov 2024 13:38:41 +0000' == '{{' + 'DATE}}'; can be removed // but disabling Tree-shaking is adding lot of not used code so we use this // hack instead - var date = LString('Fri, 08 Nov 2024 13:26:12 +0000').valueOf(); + var date = LString('Fri, 08 Nov 2024 13:38:41 +0000').valueOf(); var _date = date === '{{' + 'DATE}}' ? new Date() : new Date(date); var _format = function _format(x) { return x.toString().padStart(2, '0'); }; var _year = _date.getFullYear(); var _build = [_year, _format(_date.getMonth() + 1), _format(_date.getDate())].join('-'); - var banner = "\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter DEV (".concat(_build, ") \nCopyright (c) 2018-").concat(_year, " Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/, ''); + var banner = "\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter 1.0.0-beta.20 (".concat(_build, ") \nCopyright (c) 2018-").concat(_year, " Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/, ''); return banner; }(); // ------------------------------------------------------------------------- @@ -17438,8 +17440,8 @@ read_only(QuotedPromise, '__class__', 'promise'); read_only(Parameter, '__class__', 'parameter'); // ------------------------------------------------------------------------- - var version = 'DEV'; - var date = 'Fri, 08 Nov 2024 13:26:12 +0000'; + var version = '1.0.0-beta.20'; + var date = 'Fri, 08 Nov 2024 13:38:41 +0000'; // unwrap async generator into Promise var parse = compose(uniterate_async, _parse); diff --git a/dist/lips.min.js b/dist/lips.min.js index b8e54dbb..24855b53 100644 --- a/dist/lips.min.js +++ b/dist/lips.min.js @@ -4,7 +4,7 @@ * | | \ \ | | | || . \/ __> | | * | | > \ | |_ | || _/\__ \ | | * | | / ^ \ |___||_||_| <___/ | | - * \_\ /_/ \_\ /_/ v. DEV + * \_\ /_/ \_\ /_/ v. 1.0.0-beta.20 * * LIPS is Pretty Simple - Scheme based Powerful LISP in JavaScript * @@ -31,9 +31,9 @@ * Copyright (c) 2014-present, Facebook, Inc. * released under MIT license * - * build: Fri, 08 Nov 2024 13:26:12 +0000 + * build: Fri, 08 Nov 2024 13:38:41 +0000 */ -(function(e,t){typeof exports==="object"&&typeof module!=="undefined"?t(exports):typeof define==="function"&&define.amd?define(["exports"],t):(e=typeof globalThis!=="undefined"?globalThis:e||self,t(e.lips={}))})(this,function(e){"use strict";var c=typeof document!=="undefined"?document.currentScript:null;function n(e,t){if(t.get){return t.get.call(e)}return t.value}function i(e,t,r){if(!t.has(e)){throw new TypeError("attempted to "+r+" private field on non-instance")}return t.get(e)}function t(e,t){var r=i(e,t,"get");return n(e,r)}function u(e,t,r){if(t.set){t.set.call(e,r)}else{if(!t.writable){throw new TypeError("attempted to set read only private field")}t.value=r}}function f(e,t,r){var n=i(e,t,"set");u(e,n,r);return r}function I(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function P(e,t){P=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,r){t.__proto__=r;return t};return P(e,t)}function N(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(N=function e(){return!!t})()}function T(e,t,r){if(N())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var i=new(e.bind.apply(e,n));return r&&P(i,r.prototype),i}function U(e){throw new TypeError('"'+e+'" is read-only')}function r(e){if(Array.isArray(e))return e}function L(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function M(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r=0)continue;r[i]=e[i]}return r}function _e(e,t){if(e==null)return{};var r=he(e,t);var n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}function pe(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,u,o=[],s=!0,c=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(o.push(n.value),o.length!==t);s=!0);}catch(e){c=!0,i=e}finally{try{if(!s&&null!=r["return"]&&(u=r["return"](),Object(u)!==u))return}finally{if(c)throw i}}return o}}function b(e,t){return r(e)||pe(e,t)||R(e,t)||z()}function de(e){if(Array.isArray(e))return M(e)}function ve(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ee(e){return de(e)||L(e)||R(e)||ve()}function ye(e,t){this.v=e,this.k=t}function me(e){return new ye(e,0)}function ge(u){var a,o;function s(r,e){try{var n=u[r](e),i=n.value,a=i instanceof ye;Promise.resolve(a?i.v:i).then(function(e){if(a){var t="return"===r?"return":"next";if(!i.k||e.done)return s(t,e);e=u[t](e).value}c(n.done?"return":"normal",e)},function(e){s("throw",e)})}catch(e){c("throw",e)}}function c(e,t){switch(e){case"return":a.resolve({value:t,done:!0});break;case"throw":a.reject(t);break;default:a.resolve({value:t,done:!1})}(a=a.next)?s(a.key,a.arg):o=null}this._invoke=function(n,i){return new Promise(function(e,t){var r={key:n,arg:i,resolve:e,reject:t,next:null};o?o=o.next=r:(a=o=r,s(n,i))})},"function"!=typeof u["return"]&&(this["return"]=void 0)}ge.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},ge.prototype.next=function(e){return this._invoke("next",e)},ge.prototype["throw"]=function(e){return this._invoke("throw",e)},ge.prototype["return"]=function(e){return this._invoke("return",e)};function be(e){return function(){return new ge(e.apply(this,arguments))}}function we(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e["default"]:e}var De={exports:{}};var xe={exports:{}};(function(t){function r(e){"@babel/helpers - typeof";return t.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t.exports.__esModule=true,t.exports["default"]=t.exports,r(e)}t.exports=r,t.exports.__esModule=true,t.exports["default"]=t.exports})(xe);var Ee=xe.exports;(function(B){var I=Ee["default"];function P(){B.exports=P=function e(){return u},B.exports.__esModule=true,B.exports["default"]=B.exports;var c,u={},e=Object.prototype,f=e.hasOwnProperty,l=Object.defineProperty||function(e,t,r){e[t]=r.value},t="function"==typeof Symbol?Symbol:{},i=t.iterator||"@@iterator",r=t.asyncIterator||"@@asyncIterator",n=t.toStringTag||"@@toStringTag";function a(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{a({},"")}catch(c){a=function e(t,r,n){return t[r]=n}}function o(e,t,r,n){var i=t&&t.prototype instanceof s?t:s,a=Object.create(i.prototype),u=new S(n||[]);return l(a,"_invoke",{value:A(e,r,u)}),a}function h(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}u.wrap=o;var _="suspendedStart",p="suspendedYield",d="executing",v="completed",y={};function s(){}function m(){}function g(){}var b={};a(b,i,function(){return this});var w=Object.getPrototypeOf,D=w&&w(w(j([])));D&&D!==e&&f.call(D,i)&&(b=D);var x=g.prototype=s.prototype=Object.create(b);function E(e){["next","throw","return"].forEach(function(t){a(e,t,function(e){return this._invoke(t,e)})})}function F(o,s){function c(e,t,r,n){var i=h(o[e],o,t);if("throw"!==i.type){var a=i.arg,u=a.value;return u&&"object"==I(u)&&f.call(u,"__await")?s.resolve(u.__await).then(function(e){c("next",e,r,n)},function(e){c("throw",e,r,n)}):s.resolve(u).then(function(e){a.value=e,r(a)},function(e){return c("throw",e,r,n)})}n(i.arg)}var i;l(this,"_invoke",{value:function e(r,n){function t(){return new s(function(e,t){c(r,n,e,t)})}return i=i?i.then(t,t):t()}})}function A(a,u,o){var s=_;return function(e,t){if(s===d)throw new Error("Generator is already running");if(s===v){if("throw"===e)throw t;return{value:c,done:!0}}for(o.method=e,o.arg=t;;){var r=o.delegate;if(r){var n=k(r,o);if(n){if(n===y)continue;return n}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(s===_)throw s=v,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);s=d;var i=h(a,u,o);if("normal"===i.type){if(s=o.done?v:p,i.arg===y)continue;return{value:i.arg,done:o.done}}"throw"===i.type&&(s=v,o.method="throw",o.arg=i.arg)}}}function k(e,t){var r=t.method,n=e.iterator[r];if(n===c)return t.delegate=null,"throw"===r&&e.iterator["return"]&&(t.method="return",t.arg=c,k(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var i=h(n,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,y;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=c),t.delegate=null,y):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,y)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function j(t){if(t||""===t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,n=function e(){for(;++r=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return t("end");if(a.tryLoc<=this.prev){var o=f.call(a,"catchLoc"),s=f.call(a,"finallyLoc");if(o&&s){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&f.call(i,"finallyLoc")&&this.prev=0;--r){var n=this.tryEntries[r];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),C(n),y}},catch:function e(t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var a=i.arg;C(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function e(t,r,n){return this.delegate={iterator:j(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=c),y}},u}B.exports=P,B.exports.__esModule=true,B.exports["default"]=B.exports})(De);var Fe=De.exports;var Ae=Fe();var ke=Ae;try{regeneratorRuntime=Ae}catch(e){if(typeof globalThis==="object"){globalThis.regeneratorRuntime=Ae}else{Function("r","regeneratorRuntime = r")(Ae)}}var O=we(ke);let Oe;try{Oe=new TextDecoder}catch(e){}let v;let Ce;let y=0;const Se=105;const je=57342;const Be=57343;const Ie=57337;const Pe=6;const Ne={};let p={};let Te;let Le;let Me=0;let Re=0;let qe;let Ue;let ze=[];let Ve=[];let $e;let Ye;let Je;let Ke={useRecords:false,mapsAsObjects:true};let We=false;let Ge=2;try{new Function("")}catch(e){Ge=Infinity}class He{constructor(r){if(r){if((r.keyMap||r._keyMap)&&!r.useRecords){r.useRecords=false;r.mapsAsObjects=true}if(r.useRecords===false&&r.mapsAsObjects===undefined)r.mapsAsObjects=true;if(r.getStructures)r.getShared=r.getStructures;if(r.getShared&&!r.structures)(r.structures=[]).uninitialized=true;if(r.keyMap){this.mapKey=new Map;for(let[e,t]of Object.entries(r.keyMap))this.mapKey.set(t,e)}}Object.assign(this,r)}decodeKey(e){return this.keyMap?this.mapKey.get(e)||e:e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(r){if(!this._keyMap)return r;let n=new Map;for(let[e,t]of Object.entries(r))n.set(this._keyMap.hasOwnProperty(e)?this._keyMap[e]:e,t);return n}decodeKeys(e){if(!this._keyMap||e.constructor.name!="Map")return e;if(!this._mapKey){this._mapKey=new Map;for(let[e,t]of Object.entries(this._keyMap))this._mapKey.set(t,e)}let r={};e.forEach((e,t)=>r[et(this._mapKey.has(t)?this._mapKey.get(t):t)]=e);return r}mapDecode(e,t){let r=this.decode(e);if(this._keyMap){switch(r.constructor.name){case"Array":return r.map(e=>this.decodeKeys(e))}}return r}decode(t,e){if(v){return Et(()=>{Ft();return this?this.decode(t,e):He.prototype.decode.call(Ke,t,e)})}Ce=e>-1?e:t.length;y=0;Re=0;Le=null;qe=null;v=t;try{Ye=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(e){v=null;if(t instanceof Uint8Array)throw e;throw new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof He){p=this;$e=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues);if(this.structures){Te=this.structures;return Qe()}else if(!Te||Te.length>0){Te=[]}}else{p=Ke;if(!Te||Te.length>0)Te=[];$e=null}return Qe()}decodeMultiple(r,n){let i,a=0;try{let e=r.length;We=true;let t=this?this.decode(r,e):Ot.decode(r,e);if(n){if(n(t)===false){return}while(y=qe.postBundlePosition){let e=new Error("Unexpected bundle position");e.incomplete=true;throw e}y=qe.postBundlePosition;qe=null}if(y==Ce){Te=null;v=null;if(Ue)Ue=null}else if(y>Ce){let e=new Error("Unexpected end of CBOR data");e.incomplete=true;throw e}else if(!We){throw new Error("Data read, but end of buffer not reached")}return e}catch(e){Ft();if(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")){e.incomplete=true}throw e}}function a(){let n=v[y++];let i=n>>5;n=n&31;if(n>23){switch(n){case 24:n=v[y++];break;case 25:if(i==7){return ct()}n=Ye.getUint16(y);y+=2;break;case 26:if(i==7){let t=Ye.getFloat32(y);if(p.useFloat32>2){let e=kt[(v[y]&127)<<1|v[y+1]>>7];y+=4;return(e*t+(t>0?.5:-.5)>>0)/e}y+=4;return t}n=Ye.getUint32(y);y+=4;break;case 27:if(i==7){let e=Ye.getFloat64(y);y+=8;return e}if(i>1){if(Ye.getUint32(y)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");n=Ye.getUint32(y+4)}else if(p.int64AsNumber){n=Ye.getUint32(y)*4294967296;n+=Ye.getUint32(y+4)}else n=Ye.getBigUint64(y);y+=8;break;case 31:switch(i){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let e=[];let t,r=0;while((t=a())!=Ne){e[r++]=t}return i==4?e:i==3?e.join(""):Buffer.concat(e);case 5:let n;if(p.mapsAsObjects){let e={};if(p.keyMap)while((n=a())!=Ne)e[et(p.decodeKey(n))]=a();else while((n=a())!=Ne)e[et(n)]=a();return e}else{if(Je){p.mapsAsObjects=true;Je=false}let e=new Map;if(p.keyMap)while((n=a())!=Ne)e.set(p.decodeKey(n),a());else while((n=a())!=Ne)e.set(n,a());return e}case 7:return Ne;default:throw new Error("Invalid major type for indefinite length "+i)}default:throw new Error("Unknown token "+n)}}switch(i){case 0:return n;case 1:return~n;case 2:return ut(n);case 3:if(Re>=y){return Le.slice(y-Me,(y+=n)-Me)}if(Re==0&&Ce<140&&n<32){let e=n<16?at(n):it(n);if(e!=null)return e}return tt(n);case 4:let t=new Array(n);for(let e=0;e=Ie){let e=Te[n&8191];if(e){if(!e.read)e.read=Xe(e);return e.read()}if(n<65536){if(n==Be){let e=Dt();let t=a();let r=a();lt(t,r);let n={};if(p.keyMap)for(let t=2;t23){switch(t){case 24:t=v[y++];break;case 25:t=Ye.getUint16(y);y+=2;break;case 26:t=Ye.getUint32(y);y+=4;break;default:throw new Error("Expected array header, but got "+v[y-1])}}let r=this.compiledReader;while(r){if(r.propertyCount===t)return r(a);r=r.next}if(this.slowReads++>=Ge){let e=this.length==t?this:this.slice(0,t);r=p.keyMap?new Function("r","return {"+e.map(e=>p.decodeKey(e)).map(e=>Ze.test(e)?et(e)+":r()":"["+JSON.stringify(e)+"]:r()").join(",")+"}"):new Function("r","return {"+e.map(e=>Ze.test(e)?et(e)+":r()":"["+JSON.stringify(e)+"]:r()").join(",")+"}");if(this.compiledReader)r.next=this.compiledReader;r.propertyCount=t;this.compiledReader=r;return r(a)}let n={};if(p.keyMap)for(let e=0;e64&&Oe)return Oe.decode(v.subarray(y,y+=e));const r=y+e;const n=[];t="";while(y65535){e-=65536;n.push(e>>>10&1023|55296);e=56320|e&1023}n.push(e)}else{n.push(i)}if(n.length>=4096){t+=nt.apply(String,n);n.length=0}}if(n.length>0){t+=nt.apply(String,n)}return t}let nt=String.fromCharCode;function it(t){let r=y;let n=new Array(t);for(let e=0;e0){y=r;return}n[e]=i}return nt.apply(String,n)}function at(d){if(d<4){if(d<2){if(d===0)return"";else{let e=v[y++];if((e&128)>1){y-=1;return}return nt(e)}}else{let e=v[y++];let t=v[y++];if((e&128)>0||(t&128)>0){y-=2;return}if(d<3)return nt(e,t);let r=v[y++];if((r&128)>0){y-=3;return}return nt(e,t,r)}}else{let l=v[y++];let h=v[y++];let _=v[y++];let p=v[y++];if((l&128)>0||(h&128)>0||(_&128)>0||(p&128)>0){y-=4;return}if(d<6){if(d===4)return nt(l,h,_,p);else{let e=v[y++];if((e&128)>0){y-=5;return}return nt(l,h,_,p,e)}}else if(d<8){let e=v[y++];let t=v[y++];if((e&128)>0||(t&128)>0){y-=6;return}if(d<7)return nt(l,h,_,p,e,t);let r=v[y++];if((r&128)>0){y-=7;return}return nt(l,h,_,p,e,t,r)}else{let o=v[y++];let s=v[y++];let c=v[y++];let f=v[y++];if((o&128)>0||(s&128)>0||(c&128)>0||(f&128)>0){y-=8;return}if(d<10){if(d===8)return nt(l,h,_,p,o,s,c,f);else{let e=v[y++];if((e&128)>0){y-=9;return}return nt(l,h,_,p,o,s,c,f,e)}}else if(d<12){let e=v[y++];let t=v[y++];if((e&128)>0||(t&128)>0){y-=10;return}if(d<11)return nt(l,h,_,p,o,s,c,f,e,t);let r=v[y++];if((r&128)>0){y-=11;return}return nt(l,h,_,p,o,s,c,f,e,t,r)}else{let n=v[y++];let i=v[y++];let a=v[y++];let u=v[y++];if((n&128)>0||(i&128)>0||(a&128)>0||(u&128)>0){y-=12;return}if(d<14){if(d===12)return nt(l,h,_,p,o,s,c,f,n,i,a,u);else{let e=v[y++];if((e&128)>0){y-=13;return}return nt(l,h,_,p,o,s,c,f,n,i,a,u,e)}}else{let e=v[y++];let t=v[y++];if((e&128)>0||(t&128)>0){y-=14;return}if(d<15)return nt(l,h,_,p,o,s,c,f,n,i,a,u,e,t);let r=v[y++];if((r&128)>0){y-=15;return}return nt(l,h,_,p,o,s,c,f,n,i,a,u,e,t,r)}}}}}function ut(e){return p.copyBuffers?Uint8Array.prototype.slice.call(v,y,y+=e):v.subarray(y,y+=e)}let ot=new Float32Array(1);let st=new Uint8Array(ot.buffer,0,4);function ct(){let t=v[y++];let r=v[y++];let e=(t&127)>>2;if(e===31){if(r||t&3)return NaN;return t&128?-Infinity:Infinity}if(e===0){let e=((t&3)<<8|r)/(1<<24);return t&128?-e:e}st[3]=t&128|(e>>1)+56;st[2]=(t&7)<<5|r>>3;st[1]=r<<5;st[0]=0;return ot[0]}new Array(4096);class ft{constructor(e,t){this.value=e;this.tag=t}}ze[0]=e=>{return new Date(e)};ze[1]=e=>{return new Date(Math.round(e*1e3))};ze[2]=r=>{let n=BigInt(0);for(let e=0,t=r.byteLength;e{return BigInt(-1)-ze[2](e)};ze[4]=e=>{return+(e[1]+"e"+e[0])};ze[5]=e=>{return e[1]*Math.exp(e[0]*Math.log(2))};const lt=(e,t)=>{e=e-57344;let r=Te[e];if(r&&r.isShared){(Te.restoreStructures||(Te.restoreStructures=[]))[e]=r}Te[e]=t;t.read=Xe(t)};ze[Se]=r=>{let e=r.length;let n=r[1];lt(r[0],n);let i={};for(let t=2;t{if(qe)return qe[0].slice(qe.position0,qe.position0+=e);return new ft(e,14)};ze[15]=e=>{if(qe)return qe[1].slice(qe.position1,qe.position1+=e);return new ft(e,15)};let ht={Error:Error,RegExp:RegExp};ze[27]=e=>{return(ht[e[0]]||Error)(e[1],e[2])};const _t=e=>{if(v[y++]!=132){let e=new Error("Packed values structure must be followed by a 4 element array");if(v.length{if(!$e){if(p.getShared)xt();else return new ft(e,Pe)}if(typeof e=="number")return $e[16+(e>=0?2*e:-2*e-1)];let t=new Error("No support for non-integer packed references yet");if(e===undefined)t.incomplete=true;throw t};ze[28]=e=>{if(!Ue){Ue=new Map;Ue.id=0}let t=Ue.id++;let r=v[y];let n;if(r>>5==4)n=[];else n={};let i={target:n};Ue.set(t,i);let a=e();if(i.used)return Object.assign(n,a);i.target=a;return a};ze[28].handlesRead=true;ze[29]=e=>{let t=Ue.get(e);t.used=true;return t.target};ze[258]=e=>new Set(e);(ze[259]=e=>{if(p.mapsAsObjects){p.mapsAsObjects=false;Je=true}return e()}).handlesRead=true;function pt(e,t){if(typeof e==="string")return e+t;if(e instanceof Array)return e.concat(t);return Object.assign({},e,t)}function dt(){if(!$e){if(p.getShared)xt();else throw new Error("No packed values available")}return $e}const vt=1399353956;Ve.push((e,t)=>{if(e>=225&&e<=255)return pt(dt().prefixes[e-224],t);if(e>=28704&&e<=32767)return pt(dt().prefixes[e-28672],t);if(e>=1879052288&&e<=2147483647)return pt(dt().prefixes[e-1879048192],t);if(e>=216&&e<=223)return pt(t,dt().suffixes[e-216]);if(e>=27647&&e<=28671)return pt(t,dt().suffixes[e-27639]);if(e>=1811940352&&e<=1879048191)return pt(t,dt().suffixes[e-1811939328]);if(e==vt){return{packedValues:$e,structures:Te.slice(0),version:t}}if(e==55799)return t});const yt=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;const mt=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array=="undefined"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array=="undefined"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array];const gt=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e{if(!o)throw new Error("Could not find typed array for code "+s);if(!p.copyBuffers){if(t===1||t===2&&!(e.byteOffset&1)||t===4&&!(e.byteOffset&3)||t===8&&!(e.byteOffset&7))return new o(e.buffer,e.byteOffset,e.byteLength)}return new o(Uint8Array.prototype.slice.call(e,0).buffer)}:e=>{if(!o)throw new Error("Could not find typed array for code "+s);let t=new DataView(e.buffer,e.byteOffset,e.byteLength);let r=e.length>>a;let n=new o(r);let i=t[c];for(let e=0;e23){switch(e){case 24:e=v[y++];break;case 25:e=Ye.getUint16(y);y+=2;break;case 26:e=Ye.getUint32(y);y+=4;break}}return e}function xt(){if(p.getShared){let e=Et(()=>{v=null;return p.getShared()})||{};let t=e.structures||[];p.sharedVersion=e.version;$e=p.sharedValues=e.packedValues;if(Te===true)p.structures=Te=t;else Te.splice.apply(Te,[0,t.length].concat(t))}}function Et(e){let t=Ce;let r=y;let n=Me;let i=Re;let a=Le;let u=Ue;let o=qe;let s=new Uint8Array(v.slice(0,Ce));let c=Te;let f=p;let l=We;let h=e();Ce=t;y=r;Me=n;Re=i;Le=a;Ue=u;qe=o;v=s;We=l;Te=c;p=f;Ye=new DataView(v.buffer,v.byteOffset,v.byteLength);return h}function Ft(){v=null;Ue=null;Te=null}function At(e){ze[e.tag]=e.decode}const kt=new Array(147);for(let e=0;e<256;e++){kt[e]=+("1e"+Math.floor(45.15-e*.30103))}let Ot=new He({useRecords:false});Ot.decode;Ot.decodeMultiple;let Ct;try{Ct=new TextEncoder}catch(e){}let St,jt;const Bt=typeof globalThis==="object"&&globalThis.Buffer;const It=typeof Bt!=="undefined";const Pt=It?Bt.allocUnsafeSlow:Uint8Array;const Nt=It?Bt:Uint8Array;const Tt=256;const Lt=It?4294967296:2144337920;let Mt;let C;let S;let j=0;let Rt;let qt=null;const Ut=61440;const zt=/[\u0080-\uFFFF]/;const Vt=Symbol("record-id");class $t extends He{constructor(r){super(r);this.offset=0;let s;let u;let f;let l;let n;r=r||{};let c=Nt.prototype.utf8Write?function(e,t,r){return C.utf8Write(e,t,r)}:Ct&&Ct.encodeInto?function(e,t){return Ct.encodeInto(e,C.subarray(t)).written}:false;let a=this;let e=r.structures||r.saveStructures;let h=r.maxSharedStructures;if(h==null)h=e?128:0;if(h>8190)throw new Error("Maximum maxSharedStructure is 8190");let i=r.sequential;if(i){h=0}if(!this.structures)this.structures=[];if(this.saveStructures)this.saveShared=this.saveStructures;let _,p,o=r.sharedValues;let d;if(o){d=Object.create(null);for(let e=0,t=o.length;ethis.encodeKeys(e));break}}return this.encode(e,t)};this.encode=function(t,e){if(!C){C=new Pt(8192);S=new DataView(C.buffer,0,8192);j=0}Rt=C.length-10;if(Rt-j<2048){C=new Pt(C.length);S=new DataView(C.buffer,0,C.length);Rt=C.length-10;j=0}else if(e===ir)j=j+7&2147483640;s=j;if(a.useSelfDescribedHeader){S.setUint32(j,3654940416);j+=3}n=a.structuredClone?new Map:null;if(a.bundleStrings&&typeof t!=="string"){qt=[];qt.size=Infinity}else qt=null;u=a.structures;if(u){if(u.uninitialized){let e=a.getShared()||{};a.structures=u=e.structures||[];a.sharedVersion=e.version;let r=a.sharedValues=e.packedValues;if(r){d={};for(let e=0,t=r.length;eh&&!i)e=h;if(!u.transitions){u.transitions=Object.create(null);for(let a=0;a0){C[j++]=216;C[j++]=51;Kt(4);let r=e.values;g(r);Kt(0);Kt(0);p=Object.create(d||null);for(let e=0,t=r.length;eRt)w(j);a.offset=j;let e=er(C.subarray(s,j),n.idsToInsert);n=null;return e}if(e&ir){C.start=s;C.end=j;return C}return C.subarray(s,j)}finally{if(u){if(m<10)m++;if(u.length>h)u.length=h;if(y>1e4){u.transitions=null;m=0;y=0;if(v.length>0)v=[]}else if(v.length>0&&!i){for(let e=0,t=v.length;eh){a.structures=a.structures.slice(0,h)}let e=C.subarray(s,j);if(a.updateSharedData()===false)return a.encode(t);return e}if(e&ar)j=s}};this.findCommonStringsToPack=()=>{_=new Map;if(!d)d=Object.create(null);return e=>{let r=e&&e.threshold||4;let n=this.pack?e.maxPrivatePackedValues||16:0;if(!o)o=this.sharedValues=[];for(let[e,t]of _){if(t.count>r){d[e]=n++;o.push(e);f=true}}while(this.saveShared&&this.updateSharedData()===false){}_=null}};const g=u=>{if(j>Rt)C=w(j);var e=typeof u;var o;if(e==="string"){if(p){let e=p[u];if(e>=0){if(e<16)C[j++]=e+224;else{C[j++]=198;if(e&1)g(15-e>>1);else g(e-16>>1)}return}else if(_&&!r.pack){let e=_.get(u);if(e)e.count++;else _.set(u,{count:1})}}let i=u.length;if(qt&&i>=4&&i<1024){if((qt.size+=i)>Ut){let e;let t=(qt[0]?qt[0].length*3+qt[1].length:0)+10;if(j+t>Rt)C=w(j+t);C[j++]=217;C[j++]=223;C[j++]=249;C[j++]=qt.position?132:130;C[j++]=26;e=j-s;j+=4;if(qt.position){tr(s,g)}qt=["",""];qt.size=0;qt.position=e}let e=zt.test(u);qt[e?0:1]+=u;C[j++]=e?206:207;g(i);return}let a;if(i<32){a=1}else if(i<256){a=2}else if(i<65536){a=3}else{a=5}let e=i*3;if(j+e>Rt)C=w(j+e);if(i<64||!c){let e,t,r,n=j+a;for(e=0;e>6|192;C[n++]=t&63|128}else if((t&64512)===55296&&((r=u.charCodeAt(e+1))&64512)===56320){t=65536+((t&1023)<<10)+(r&1023);e++;C[n++]=t>>18|240;C[n++]=t>>12&63|128;C[n++]=t>>6&63|128;C[n++]=t&63|128}else{C[n++]=t>>12|224;C[n++]=t>>6&63|128;C[n++]=t&63|128}}o=n-j-a}else{o=c(u,j+a,e)}if(o<24){C[j++]=96|o}else if(o<256){if(a<2){C.copyWithin(j+2,j+1,j+1+o)}C[j++]=120;C[j++]=o}else if(o<65536){if(a<3){C.copyWithin(j+3,j+2,j+2+o)}C[j++]=121;C[j++]=o>>8;C[j++]=o&255}else{if(a<5){C.copyWithin(j+5,j+3,j+3+o)}C[j++]=122;S.setUint32(j,o);j+=4}j+=o}else if(e==="number"){if(!this.alwaysUseFloat&&u>>>0===u){if(u<24){C[j++]=u}else if(u<256){C[j++]=24;C[j++]=u}else if(u<65536){C[j++]=25;C[j++]=u>>8;C[j++]=u&255}else{C[j++]=26;S.setUint32(j,u);j+=4}}else if(!this.alwaysUseFloat&&u>>0===u){if(u>=-24){C[j++]=31-u}else if(u>=-256){C[j++]=56;C[j++]=~u}else if(u>=-65536){C[j++]=57;S.setUint16(j,~u);j+=2}else{C[j++]=58;S.setUint32(j,~u);j+=4}}else{let t;if((t=this.useFloat32)>0&&u<4294967296&&u>=-2147483648){C[j++]=250;S.setFloat32(j,u);let e;if(t<4||(e=u*kt[(C[j]&127)<<1|C[j+1]>>7])>>0===e){j+=4;return}else j--}C[j++]=251;S.setFloat64(j,u);j+=8}}else if(e==="object"){if(!u)C[j++]=246;else{if(n){let t=n.get(u);if(t){C[j++]=216;C[j++]=29;C[j++]=25;if(!t.references){let e=n.idsToInsert||(n.idsToInsert=[]);t.references=[];e.push(t)}t.references.push(j-s);j+=2;return}else n.set(u,{offset:j-s})}let e=u.constructor;if(e===Object){b(u,true)}else if(e===Array){o=u.length;if(o<24){C[j++]=128|o}else{Kt(o)}for(let e=0;e>8;C[j++]=o&255}else{C[j++]=186;S.setUint32(j,o);j+=4}if(a.keyMap){for(let[e,t]of u){g(a.encodeKey(e));g(t)}}else{for(let[e,t]of u){g(e);g(t)}}}else{for(let r=0,e=St.length;r>8;C[j++]=t&255}else if(t>-1){C[j++]=218;S.setUint32(j,t);j+=4}e.encode.call(this,u,g,w);return}}if(u[Symbol.iterator]){if(Mt){let e=new Error("Iterable should be serialized as iterator");e.iteratorNotHandled=true;throw e}C[j++]=159;for(let e of u){g(e)}C[j++]=255;return}if(u[Symbol.asyncIterator]||Gt(u)){let e=new Error("Iterable/blob should be serialized as iterator");e.iteratorNotHandled=true;throw e}if(this.useToJSON&&u.toJSON){const t=u.toJSON();if(t!==u)return g(t)}b(u,!u.hasOwnProperty)}}}else if(e==="boolean"){C[j++]=u?245:244}else if(e==="bigint"){if(u=0){C[j++]=27;S.setBigUint64(j,u)}else if(u>-(BigInt(1)<{let t=Object.keys(e);let r=Object.values(e);let n=t.length;if(n<24){C[j++]=160|n}else if(n<256){C[j++]=184;C[j++]=n}else if(n<65536){C[j++]=185;C[j++]=n>>8;C[j++]=n&255}else{C[j++]=186;S.setUint32(j,n);j+=4}if(a.keyMap){for(let e=0;e{C[j++]=185;let e=j-s;j+=2;let n=0;if(a.keyMap){for(let e in t)if(r||t.hasOwnProperty(e)){g(a.encodeKey(e));g(t[e]);n++}}else{for(let e in t)if(r||t.hasOwnProperty(e)){g(e);g(t[e]);n++}}C[e+++s]=n>>8;C[e+s]=n&255}:(t,r)=>{let n,i=l.transitions||(l.transitions=Object.create(null));let a=0;let u=0;let o;let s;if(this.keyMap){s=Object.keys(t).map(e=>this.encodeKey(e));u=s.length;for(let t=0;t>8|224;C[j++]=c&255}else{if(!s)s=i.__keys__||(i.__keys__=Object.keys(t));if(o===undefined){c=l.nextId++;if(!c){c=0;l.nextId=1}if(c>=Tt){l.nextId=(c=h)+1}}else{c=o}l[c]=s;if(c>8|224;C[j++]=c&255;i=l.transitions;for(let e=0;e=Tt-h)v.shift()[Vt]=undefined;v.push(i);Kt(u+2);g(57344+c);g(s);if(r===null)return;for(let e in t)if(r||t.hasOwnProperty(e))g(t[e]);return}}if(u<24){C[j++]=128|u}else{Kt(u)}if(r===null)return;for(let e in t)if(r||t.hasOwnProperty(e))g(t[e])};const w=e=>{let t;if(e>16777216){if(e-s>Lt)throw new Error("Encoded buffer would be larger than maximum buffer size");t=Math.min(Lt,Math.round(Math.max((e-s)*(e>67108864?1.25:2),4194304)/4096)*4096)}else t=(Math.max(e-s<<2,C.length-1)>>12)+1<<12;let r=new Pt(t);S=new DataView(r.buffer,0,t);if(C.copy)C.copy(r,0,s,e);else r.set(C.slice(s,e));j-=s;s=0;Rt=r.length-10;return C=r};let D=100;let x=1e3;this.encodeAsIterable=function(e,t){return k(e,t,E)};this.encodeAsAsyncIterable=function(e,t){return k(e,t,O)};function*E(n,i,e){let t=n.constructor;if(t===Object){let r=a.useRecords!==false;if(r)b(n,null);else Yt(Object.keys(n).length,160);for(let t in n){let e=n[t];if(!r)g(t);if(e&&typeof e==="object"){if(i[t])yield*E(e,i[t]);else yield*F(e,i,t)}else g(e)}}else if(t===Array){let e=n.length;Kt(e);for(let t=0;tD)){if(i.element)yield*E(e,i.element);else yield*F(e,i,"element")}else g(e)}}else if(n[Symbol.iterator]){C[j++]=159;for(let e of n){if(e&&(typeof e==="object"||j-s>D)){if(i.element)yield*E(e,i.element);else yield*F(e,i,"element")}else g(e)}C[j++]=255}else if(Gt(n)){Yt(n.size,64);yield C.subarray(s,j);yield n;A()}else if(n[Symbol.asyncIterator]){C[j++]=159;yield C.subarray(s,j);yield n;A();C[j++]=255}else{g(n)}if(e&&j>s)yield C.subarray(s,j);else if(j-s>D){yield C.subarray(s,j);A()}}function*F(t,r,n){let i=j-s;try{g(t);if(j-s>D){yield C.subarray(s,j);A()}}catch(e){if(e.iteratorNotHandled){r[n]={};j=s+i;yield*E.call(this,t,r[n])}else throw e}}function A(){D=x;a.encode(null,ur)}function k(e,t,r){if(t&&t.chunkThreshold)D=x=t.chunkThreshold;else D=100;if(e&&typeof e==="object"){a.encode(null,ur);return r(e,a.iterateProperties||(a.iterateProperties={}),true)}return[a.encode(e)]}async function*O(e,t){for(let r of E(e,t,true)){let e=r.constructor;if(e===Nt||e===Uint8Array)yield r;else if(Gt(r)){let e=r.stream().getReader();let t;while(!(t=await e.read()).done){yield t.value}}else if(r[Symbol.asyncIterator]){for await(let e of r){A();if(e)yield*O(e,t.async||(t.async={}));else yield a.encode(e)}}else{yield r}}}}useBuffer(e){C=e;S=new DataView(C.buffer,C.byteOffset,C.byteLength);j=0}clearSharedData(){if(this.structures)this.structures=[];if(this.sharedValues)this.sharedValues=undefined}updateSharedData(){let t=this.sharedVersion||0;this.sharedVersion=t+1;let e=this.structures.slice(0);let r=new Jt(e,this.sharedValues,this.sharedVersion);let n=this.saveShared(r,e=>(e&&e.version||0)==t);if(n===false){r=this.getShared()||{};this.structures=r.structures||[];this.sharedValues=r.packedValues;this.sharedVersion=r.version;this.structures.nextId=this.structures.length}else{e.forEach((e,t)=>this.structures[t]=e)}return n}}function Yt(e,t){if(e<24)C[j++]=t|e;else if(e<256){C[j++]=t|24;C[j++]=e}else if(e<65536){C[j++]=t|25;C[j++]=e>>8;C[j++]=e&255}else{C[j++]=t|26;S.setUint32(j,e);j+=4}}class Jt{constructor(e,t,r){this.structures=e;this.packedValues=t;this.version=r}}function Kt(e){if(e<24)C[j++]=128|e;else if(e<256){C[j++]=152;C[j++]=e}else if(e<65536){C[j++]=153;C[j++]=e>>8;C[j++]=e&255}else{C[j++]=154;S.setUint32(j,e);j+=4}}const Wt=typeof Blob==="undefined"?function(){}:Blob;function Gt(e){if(e instanceof Wt)return true;let t=e[Symbol.toStringTag];return t==="Blob"||t==="File"}function Ht(r,n){switch(typeof r){case"string":if(r.length>3){if(n.objectMap[r]>-1||n.values.length>=n.maxValues)return;let e=n.get(r);if(e){if(++e.count==2){n.values.push(r)}}else{n.set(r,{count:1});if(n.samplingPackedValues){let e=n.samplingPackedValues.get(r);if(e)e.count++;else n.samplingPackedValues.set(r,{count:1})}}}break;case"object":if(r){if(r instanceof Array){for(let e=0,t=r.length;e=0&&r<4294967296){C[j++]=26;S.setUint32(j,r);j+=4}else{C[j++]=251;S.setFloat64(j,r);j+=8}}},{tag:258,encode(e,t){let r=Array.from(e);t(r)}},{tag:27,encode(e,t){t([e.name,e.message])}},{tag:27,encode(e,t){t(["RegExp",e.source,e.flags])}},{getTag(e){return e.tag},encode(e,t){t(e.value)}},{encode(e,t,r){Xt(e,r)}},{getTag(e){if(e.constructor===Uint8Array){if(this.tagUint8Array||It&&this.tagUint8Array!==false)return 64}},encode(e,t,r){Xt(e,r)}},Zt(68,1),Zt(69,2),Zt(70,4),Zt(71,8),Zt(72,1),Zt(77,2),Zt(78,4),Zt(79,8),Zt(85,4),Zt(86,8),{encode(t,n){let e=t.packedValues||[];let r=t.structures||[];if(e.values.length>0){C[j++]=216;C[j++]=51;Kt(4);let r=e.values;n(r);Kt(0);Kt(0);packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let e=0,t=r.length;e1)e-=4;return{tag:e,encode:function e(t,r){let n=t.byteLength;let i=t.byteOffset||0;let a=t.buffer||t;r(It?Bt.from(a,i,n):new Uint8Array(a,i,n))}}}function Xt(e,t){let r=e.byteLength;if(r<24){C[j++]=64+r}else if(r<256){C[j++]=88;C[j++]=r}else if(r<65536){C[j++]=89;C[j++]=r>>8;C[j++]=r&255}else{C[j++]=90;S.setUint32(j,r);j+=4}if(j+r>=C.length){t(j+r)}C.set(e.buffer?e:new Uint8Array(e),j);j+=r}function er(n,e){let r;let i=e.length*2;let a=n.length-i;e.sort((e,t)=>e.offset>t.offset?1:-1);for(let r=0;r>8;n[e]=r&255}}while(r=e.pop()){let e=r.offset;n.copyWithin(e+i,e,a);i-=2;let t=e+i;n[t++]=216;n[t++]=28;a=e}return n}function tr(e,t){S.setUint32(qt.position+e,j-qt.position-e+1);let r=qt;qt=null;t(r[0]);t(r[1])}function rr(e){if(e.Class){if(!e.encode)throw new Error("Extension has no encode function");jt.unshift(e.Class);St.unshift(e)}At(e)}let nr=new $t({useRecords:false});nr.encode;nr.encodeAsIterable;nr.encodeAsAsyncIterable;const ir=512;const ar=1024;const ur=2048;var or={}; +(function(e,t){typeof exports==="object"&&typeof module!=="undefined"?t(exports):typeof define==="function"&&define.amd?define(["exports"],t):(e=typeof globalThis!=="undefined"?globalThis:e||self,t(e.lips={}))})(this,function(e){"use strict";var c=typeof document!=="undefined"?document.currentScript:null;function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(u=function e(){return!!t})()}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}function I(e,t,r){if(u())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var i=new(e.bind.apply(e,n));return r&&f(i,r.prototype),i}function U(e){throw new TypeError('"'+e+'" is read-only')}function r(e){if(Array.isArray(e))return e}function t(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return t("end");if(a.tryLoc<=this.prev){var o=f.call(a,"catchLoc"),s=f.call(a,"finallyLoc");if(o&&s){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&f.call(i,"finallyLoc")&&this.prev=0;--r){var n=this.tryEntries[r];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),C(n),y}},catch:function e(t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc===t){var i=n.completion;if("throw"===i.type){var a=i.arg;C(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function e(t,r,n){return this.delegate={iterator:j(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=c),y}},u}B.exports=P,B.exports.__esModule=true,B.exports["default"]=B.exports})(ye);return ye.exports}var xe;var Ee;function Fe(){if(Ee)return xe;Ee=1;var t=De()();xe=t;try{regeneratorRuntime=t}catch(e){if(typeof globalThis==="object"){globalThis.regeneratorRuntime=t}else{Function("r","regeneratorRuntime = r")(t)}}return xe}var Ae=Fe();var O=ve(Ae);let ke;try{ke=new TextDecoder}catch(e){}let v;let Oe;let y=0;const Ce=105;const Se=57342;const je=57343;const Be=57337;const Ie=6;const Pe={};let Ne=11281e4;let Te=1681e4;let p={};let Le;let Me;let Re=0;let qe=0;let Ue;let ze;let $e=[];let Ve=[];let Ye;let Je;let Ke;let We={useRecords:false,mapsAsObjects:true};let He=false;let Ge=2;try{new Function("")}catch(e){Ge=Infinity}class Qe{constructor(r){if(r){if((r.keyMap||r._keyMap)&&!r.useRecords){r.useRecords=false;r.mapsAsObjects=true}if(r.useRecords===false&&r.mapsAsObjects===undefined)r.mapsAsObjects=true;if(r.getStructures)r.getShared=r.getStructures;if(r.getShared&&!r.structures)(r.structures=[]).uninitialized=true;if(r.keyMap){this.mapKey=new Map;for(let[e,t]of Object.entries(r.keyMap))this.mapKey.set(t,e)}}Object.assign(this,r)}decodeKey(e){return this.keyMap?this.mapKey.get(e)||e:e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(r){if(!this._keyMap)return r;let n=new Map;for(let[e,t]of Object.entries(r))n.set(this._keyMap.hasOwnProperty(e)?this._keyMap[e]:e,t);return n}decodeKeys(e){if(!this._keyMap||e.constructor.name!="Map")return e;if(!this._mapKey){this._mapKey=new Map;for(let[e,t]of Object.entries(this._keyMap))this._mapKey.set(t,e)}let r={};e.forEach((e,t)=>r[tt(this._mapKey.has(t)?this._mapKey.get(t):t)]=e);return r}mapDecode(e,t){let r=this.decode(e);if(this._keyMap){switch(r.constructor.name){case"Array":return r.map(e=>this.decodeKeys(e))}}return r}decode(t,e){if(v){return Ft(()=>{At();return this?this.decode(t,e):Qe.prototype.decode.call(We,t,e)})}Oe=e>-1?e:t.length;y=0;qe=0;Me=null;Ue=null;v=t;try{Je=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(e){v=null;if(t instanceof Uint8Array)throw e;throw new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof Qe){p=this;Ye=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues);if(this.structures){Le=this.structures;return Ze()}else if(!Le||Le.length>0){Le=[]}}else{p=We;if(!Le||Le.length>0)Le=[];Ye=null}return Ze()}decodeMultiple(r,n){let i,a=0;try{let e=r.length;He=true;let t=this?this.decode(r,e):Ct.decode(r,e);if(n){if(n(t)===false){return}while(y=Ue.postBundlePosition){let e=new Error("Unexpected bundle position");e.incomplete=true;throw e}y=Ue.postBundlePosition;Ue=null}if(y==Oe){Le=null;v=null;if(ze)ze=null}else if(y>Oe){let e=new Error("Unexpected end of CBOR data");e.incomplete=true;throw e}else if(!He){throw new Error("Data read, but end of buffer not reached")}return e}catch(e){At();if(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")){e.incomplete=true}throw e}}function a(){let n=v[y++];let i=n>>5;n=n&31;if(n>23){switch(n){case 24:n=v[y++];break;case 25:if(i==7){return ft()}n=Je.getUint16(y);y+=2;break;case 26:if(i==7){let t=Je.getFloat32(y);if(p.useFloat32>2){let e=Ot[(v[y]&127)<<1|v[y+1]>>7];y+=4;return(e*t+(t>0?.5:-.5)>>0)/e}y+=4;return t}n=Je.getUint32(y);y+=4;break;case 27:if(i==7){let e=Je.getFloat64(y);y+=8;return e}if(i>1){if(Je.getUint32(y)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");n=Je.getUint32(y+4)}else if(p.int64AsNumber){n=Je.getUint32(y)*4294967296;n+=Je.getUint32(y+4)}else n=Je.getBigUint64(y);y+=8;break;case 31:switch(i){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let e=[];let t,r=0;while((t=a())!=Pe){if(r>=Ne)throw new Error(`Array length exceeds ${Ne}`);e[r++]=t}return i==4?e:i==3?e.join(""):Buffer.concat(e);case 5:let n;if(p.mapsAsObjects){let e={};let t=0;if(p.keyMap){while((n=a())!=Pe){if(t++>=Te)throw new Error(`Property count exceeds ${Te}`);e[tt(p.decodeKey(n))]=a()}}else{while((n=a())!=Pe){if(t++>=Te)throw new Error(`Property count exceeds ${Te}`);e[tt(n)]=a()}}return e}else{if(Ke){p.mapsAsObjects=true;Ke=false}let t=new Map;if(p.keyMap){let e=0;while((n=a())!=Pe){if(e++>=Te){throw new Error(`Map size exceeds ${Te}`)}t.set(p.decodeKey(n),a())}}else{let e=0;while((n=a())!=Pe){if(e++>=Te){throw new Error(`Map size exceeds ${Te}`)}t.set(n,a())}}return t}case 7:return Pe;default:throw new Error("Invalid major type for indefinite length "+i)}default:throw new Error("Unknown token "+n)}}switch(i){case 0:return n;case 1:return~n;case 2:return ot(n);case 3:if(qe>=y){return Me.slice(y-Re,(y+=n)-Re)}if(qe==0&&Oe<140&&n<32){let e=n<16?ut(n):at(n);if(e!=null)return e}return rt(n);case 4:if(n>=Ne)throw new Error(`Array length exceeds ${Ne}`);let t=new Array(n);for(let e=0;e=Te)throw new Error(`Map size exceeds ${Ne}`);if(p.mapsAsObjects){let t={};if(p.keyMap)for(let e=0;e=Be){let e=Le[n&8191];if(e){if(!e.read)e.read=et(e);return e.read()}if(n<65536){if(n==je){let e=xt();let t=a();let r=a();ht(t,r);let n={};if(p.keyMap)for(let t=2;t23){switch(t){case 24:t=v[y++];break;case 25:t=Je.getUint16(y);y+=2;break;case 26:t=Je.getUint32(y);y+=4;break;default:throw new Error("Expected array header, but got "+v[y-1])}}let r=this.compiledReader;while(r){if(r.propertyCount===t)return r(a);r=r.next}if(this.slowReads++>=Ge){let e=this.length==t?this:this.slice(0,t);r=p.keyMap?new Function("r","return {"+e.map(e=>p.decodeKey(e)).map(e=>Xe.test(e)?tt(e)+":r()":"["+JSON.stringify(e)+"]:r()").join(",")+"}"):new Function("r","return {"+e.map(e=>Xe.test(e)?tt(e)+":r()":"["+JSON.stringify(e)+"]:r()").join(",")+"}");if(this.compiledReader)r.next=this.compiledReader;r.propertyCount=t;this.compiledReader=r;return r(a)}let n={};if(p.keyMap)for(let e=0;e64&&ke)return ke.decode(v.subarray(y,y+=e));const r=y+e;const n=[];t="";while(y65535){e-=65536;n.push(e>>>10&1023|55296);e=56320|e&1023}n.push(e)}else{n.push(i)}if(n.length>=4096){t+=it.apply(String,n);n.length=0}}if(n.length>0){t+=it.apply(String,n)}return t}let it=String.fromCharCode;function at(t){let r=y;let n=new Array(t);for(let e=0;e0){y=r;return}n[e]=i}return it.apply(String,n)}function ut(d){if(d<4){if(d<2){if(d===0)return"";else{let e=v[y++];if((e&128)>1){y-=1;return}return it(e)}}else{let e=v[y++];let t=v[y++];if((e&128)>0||(t&128)>0){y-=2;return}if(d<3)return it(e,t);let r=v[y++];if((r&128)>0){y-=3;return}return it(e,t,r)}}else{let l=v[y++];let h=v[y++];let _=v[y++];let p=v[y++];if((l&128)>0||(h&128)>0||(_&128)>0||(p&128)>0){y-=4;return}if(d<6){if(d===4)return it(l,h,_,p);else{let e=v[y++];if((e&128)>0){y-=5;return}return it(l,h,_,p,e)}}else if(d<8){let e=v[y++];let t=v[y++];if((e&128)>0||(t&128)>0){y-=6;return}if(d<7)return it(l,h,_,p,e,t);let r=v[y++];if((r&128)>0){y-=7;return}return it(l,h,_,p,e,t,r)}else{let o=v[y++];let s=v[y++];let c=v[y++];let f=v[y++];if((o&128)>0||(s&128)>0||(c&128)>0||(f&128)>0){y-=8;return}if(d<10){if(d===8)return it(l,h,_,p,o,s,c,f);else{let e=v[y++];if((e&128)>0){y-=9;return}return it(l,h,_,p,o,s,c,f,e)}}else if(d<12){let e=v[y++];let t=v[y++];if((e&128)>0||(t&128)>0){y-=10;return}if(d<11)return it(l,h,_,p,o,s,c,f,e,t);let r=v[y++];if((r&128)>0){y-=11;return}return it(l,h,_,p,o,s,c,f,e,t,r)}else{let n=v[y++];let i=v[y++];let a=v[y++];let u=v[y++];if((n&128)>0||(i&128)>0||(a&128)>0||(u&128)>0){y-=12;return}if(d<14){if(d===12)return it(l,h,_,p,o,s,c,f,n,i,a,u);else{let e=v[y++];if((e&128)>0){y-=13;return}return it(l,h,_,p,o,s,c,f,n,i,a,u,e)}}else{let e=v[y++];let t=v[y++];if((e&128)>0||(t&128)>0){y-=14;return}if(d<15)return it(l,h,_,p,o,s,c,f,n,i,a,u,e,t);let r=v[y++];if((r&128)>0){y-=15;return}return it(l,h,_,p,o,s,c,f,n,i,a,u,e,t,r)}}}}}function ot(e){return p.copyBuffers?Uint8Array.prototype.slice.call(v,y,y+=e):v.subarray(y,y+=e)}let st=new Float32Array(1);let ct=new Uint8Array(st.buffer,0,4);function ft(){let t=v[y++];let r=v[y++];let e=(t&127)>>2;if(e===31){if(r||t&3)return NaN;return t&128?-Infinity:Infinity}if(e===0){let e=((t&3)<<8|r)/(1<<24);return t&128?-e:e}ct[3]=t&128|(e>>1)+56;ct[2]=(t&7)<<5|r>>3;ct[1]=r<<5;ct[0]=0;return st[0]}new Array(4096);class lt{constructor(e,t){this.value=e;this.tag=t}}$e[0]=e=>{return new Date(e)};$e[1]=e=>{return new Date(Math.round(e*1e3))};$e[2]=r=>{let n=BigInt(0);for(let e=0,t=r.byteLength;e{return BigInt(-1)-$e[2](e)};$e[4]=e=>{return+(e[1]+"e"+e[0])};$e[5]=e=>{return e[1]*Math.exp(e[0]*Math.log(2))};const ht=(e,t)=>{e=e-57344;let r=Le[e];if(r&&r.isShared){(Le.restoreStructures||(Le.restoreStructures=[]))[e]=r}Le[e]=t;t.read=et(t)};$e[Ce]=r=>{let e=r.length;let n=r[1];ht(r[0],n);let i={};for(let t=2;t{if(Ue)return Ue[0].slice(Ue.position0,Ue.position0+=e);return new lt(e,14)};$e[15]=e=>{if(Ue)return Ue[1].slice(Ue.position1,Ue.position1+=e);return new lt(e,15)};let _t={Error:Error,RegExp:RegExp};$e[27]=e=>{return(_t[e[0]]||Error)(e[1],e[2])};const pt=e=>{if(v[y++]!=132){let e=new Error("Packed values structure must be followed by a 4 element array");if(v.length{if(!Ye){if(p.getShared)Et();else return new lt(e,Ie)}if(typeof e=="number")return Ye[16+(e>=0?2*e:-2*e-1)];let t=new Error("No support for non-integer packed references yet");if(e===undefined)t.incomplete=true;throw t};$e[28]=e=>{if(!ze){ze=new Map;ze.id=0}let t=ze.id++;let r=y;let n=v[y];let i;if(n>>5==4)i=[];else i={};let a={target:i};ze.set(t,a);let u=e();if(a.used){if(Object.getPrototypeOf(i)!==Object.getPrototypeOf(u)){y=r;i=u;ze.set(t,{target:i});u=e()}return Object.assign(i,u)}a.target=u;return u};$e[28].handlesRead=true;$e[29]=e=>{let t=ze.get(e);t.used=true;return t.target};$e[258]=e=>new Set(e);($e[259]=e=>{if(p.mapsAsObjects){p.mapsAsObjects=false;Ke=true}return e()}).handlesRead=true;function dt(e,t){if(typeof e==="string")return e+t;if(e instanceof Array)return e.concat(t);return Object.assign({},e,t)}function vt(){if(!Ye){if(p.getShared)Et();else throw new Error("No packed values available")}return Ye}const yt=1399353956;Ve.push((e,t)=>{if(e>=225&&e<=255)return dt(vt().prefixes[e-224],t);if(e>=28704&&e<=32767)return dt(vt().prefixes[e-28672],t);if(e>=1879052288&&e<=2147483647)return dt(vt().prefixes[e-1879048192],t);if(e>=216&&e<=223)return dt(t,vt().suffixes[e-216]);if(e>=27647&&e<=28671)return dt(t,vt().suffixes[e-27639]);if(e>=1811940352&&e<=1879048191)return dt(t,vt().suffixes[e-1811939328]);if(e==yt){return{packedValues:Ye,structures:Le.slice(0),version:t}}if(e==55799)return t});const mt=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;const gt=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array=="undefined"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array=="undefined"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array];const bt=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e{if(!o)throw new Error("Could not find typed array for code "+s);if(!p.copyBuffers){if(t===1||t===2&&!(e.byteOffset&1)||t===4&&!(e.byteOffset&3)||t===8&&!(e.byteOffset&7))return new o(e.buffer,e.byteOffset,e.byteLength>>a)}return new o(Uint8Array.prototype.slice.call(e,0).buffer)}:e=>{if(!o)throw new Error("Could not find typed array for code "+s);let t=new DataView(e.buffer,e.byteOffset,e.byteLength);let r=e.length>>a;let n=new o(r);let i=t[c];for(let e=0;e23){switch(e){case 24:e=v[y++];break;case 25:e=Je.getUint16(y);y+=2;break;case 26:e=Je.getUint32(y);y+=4;break}}return e}function Et(){if(p.getShared){let e=Ft(()=>{v=null;return p.getShared()})||{};let t=e.structures||[];p.sharedVersion=e.version;Ye=p.sharedValues=e.packedValues;if(Le===true)p.structures=Le=t;else Le.splice.apply(Le,[0,t.length].concat(t))}}function Ft(e){let t=Oe;let r=y;let n=Re;let i=qe;let a=Me;let u=ze;let o=Ue;let s=new Uint8Array(v.slice(0,Oe));let c=Le;let f=p;let l=He;let h=e();Oe=t;y=r;Re=n;qe=i;Me=a;ze=u;Ue=o;v=s;He=l;Le=c;p=f;Je=new DataView(v.buffer,v.byteOffset,v.byteLength);return h}function At(){v=null;ze=null;Le=null}function kt(e){$e[e.tag]=e.decode}const Ot=new Array(147);for(let e=0;e<256;e++){Ot[e]=+("1e"+Math.floor(45.15-e*.30103))}let Ct=new Qe({useRecords:false});Ct.decode;Ct.decodeMultiple;let St;try{St=new TextEncoder}catch(e){}let jt,Bt;const It=typeof globalThis==="object"&&globalThis.Buffer;const Pt=typeof It!=="undefined";const Nt=Pt?It.allocUnsafeSlow:Uint8Array;const Tt=Pt?It:Uint8Array;const Lt=256;const Mt=Pt?4294967296:2144337920;let Rt;let C;let S;let j=0;let qt;let Ut=null;const zt=61440;const $t=/[\u0080-\uFFFF]/;const Vt=Symbol("record-id");class Yt extends Qe{constructor(r){super(r);this.offset=0;let s;let u;let c;let f;let n;r=r||{};let l=Tt.prototype.utf8Write?function(e,t,r){return C.utf8Write(e,t,r)}:St&&St.encodeInto?function(e,t){return St.encodeInto(e,C.subarray(t)).written}:false;let a=this;let e=r.structures||r.saveStructures;let h=r.maxSharedStructures;if(h==null)h=e?128:0;if(h>8190)throw new Error("Maximum maxSharedStructure is 8190");let i=r.sequential;if(i){h=0}if(!this.structures)this.structures=[];if(this.saveStructures)this.saveShared=this.saveStructures;let _,p,o=r.sharedValues;let d;if(o){d=Object.create(null);for(let e=0,t=o.length;ethis.encodeKeys(e));break}}return this.encode(e,t)};this.encode=function(t,e){if(!C){C=new Nt(8192);S=new DataView(C.buffer,0,8192);j=0}qt=C.length-10;if(qt-j<2048){C=new Nt(C.length);S=new DataView(C.buffer,0,C.length);qt=C.length-10;j=0}else if(e===ar)j=j+7&2147483640;s=j;if(a.useSelfDescribedHeader){S.setUint32(j,3654940416);j+=3}n=a.structuredClone?new Map:null;if(a.bundleStrings&&typeof t!=="string"){Ut=[];Ut.size=Infinity}else Ut=null;u=a.structures;if(u){if(u.uninitialized){let e=a.getShared()||{};a.structures=u=e.structures||[];a.sharedVersion=e.version;let r=a.sharedValues=e.packedValues;if(r){d={};for(let e=0,t=r.length;eh&&!i)e=h;if(!u.transitions){u.transitions=Object.create(null);for(let a=0;a0){C[j++]=216;C[j++]=51;Wt(4);let r=e.values;g(r);Wt(0);Wt(0);p=Object.create(d||null);for(let e=0,t=r.length;eqt)w(j);a.offset=j;let e=tr(C.subarray(s,j),n.idsToInsert);n=null;return e}if(e&ar){C.start=s;C.end=j;return C}return C.subarray(s,j)}finally{if(u){if(m<10)m++;if(u.length>h)u.length=h;if(y>1e4){u.transitions=null;m=0;y=0;if(v.length>0)v=[]}else if(v.length>0&&!i){for(let e=0,t=v.length;eh){a.structures=a.structures.slice(0,h)}let e=C.subarray(s,j);if(a.updateSharedData()===false)return a.encode(t);return e}if(e&ur)j=s}};this.findCommonStringsToPack=()=>{_=new Map;if(!d)d=Object.create(null);return e=>{let r=e&&e.threshold||4;let n=this.pack?e.maxPrivatePackedValues||16:0;if(!o)o=this.sharedValues=[];for(let[e,t]of _){if(t.count>r){d[e]=n++;o.push(e);c=true}}while(this.saveShared&&this.updateSharedData()===false){}_=null}};const g=u=>{if(j>qt)C=w(j);var e=typeof u;var o;if(e==="string"){if(p){let e=p[u];if(e>=0){if(e<16)C[j++]=e+224;else{C[j++]=198;if(e&1)g(15-e>>1);else g(e-16>>1)}return}else if(_&&!r.pack){let e=_.get(u);if(e)e.count++;else _.set(u,{count:1})}}let i=u.length;if(Ut&&i>=4&&i<1024){if((Ut.size+=i)>zt){let e;let t=(Ut[0]?Ut[0].length*3+Ut[1].length:0)+10;if(j+t>qt)C=w(j+t);C[j++]=217;C[j++]=223;C[j++]=249;C[j++]=Ut.position?132:130;C[j++]=26;e=j-s;j+=4;if(Ut.position){rr(s,g)}Ut=["",""];Ut.size=0;Ut.position=e}let e=$t.test(u);Ut[e?0:1]+=u;C[j++]=e?206:207;g(i);return}let a;if(i<32){a=1}else if(i<256){a=2}else if(i<65536){a=3}else{a=5}let e=i*3;if(j+e>qt)C=w(j+e);if(i<64||!l){let e,t,r,n=j+a;for(e=0;e>6|192;C[n++]=t&63|128}else if((t&64512)===55296&&((r=u.charCodeAt(e+1))&64512)===56320){t=65536+((t&1023)<<10)+(r&1023);e++;C[n++]=t>>18|240;C[n++]=t>>12&63|128;C[n++]=t>>6&63|128;C[n++]=t&63|128}else{C[n++]=t>>12|224;C[n++]=t>>6&63|128;C[n++]=t&63|128}}o=n-j-a}else{o=l(u,j+a,e)}if(o<24){C[j++]=96|o}else if(o<256){if(a<2){C.copyWithin(j+2,j+1,j+1+o)}C[j++]=120;C[j++]=o}else if(o<65536){if(a<3){C.copyWithin(j+3,j+2,j+2+o)}C[j++]=121;C[j++]=o>>8;C[j++]=o&255}else{if(a<5){C.copyWithin(j+5,j+3,j+3+o)}C[j++]=122;S.setUint32(j,o);j+=4}j+=o}else if(e==="number"){if(!this.alwaysUseFloat&&u>>>0===u){if(u<24){C[j++]=u}else if(u<256){C[j++]=24;C[j++]=u}else if(u<65536){C[j++]=25;C[j++]=u>>8;C[j++]=u&255}else{C[j++]=26;S.setUint32(j,u);j+=4}}else if(!this.alwaysUseFloat&&u>>0===u){if(u>=-24){C[j++]=31-u}else if(u>=-256){C[j++]=56;C[j++]=~u}else if(u>=-65536){C[j++]=57;S.setUint16(j,~u);j+=2}else{C[j++]=58;S.setUint32(j,~u);j+=4}}else{let t;if((t=this.useFloat32)>0&&u<4294967296&&u>=-2147483648){C[j++]=250;S.setFloat32(j,u);let e;if(t<4||(e=u*Ot[(C[j]&127)<<1|C[j+1]>>7])>>0===e){j+=4;return}else j--}C[j++]=251;S.setFloat64(j,u);j+=8}}else if(e==="object"){if(!u)C[j++]=246;else{if(n){let t=n.get(u);if(t){C[j++]=216;C[j++]=29;C[j++]=25;if(!t.references){let e=n.idsToInsert||(n.idsToInsert=[]);t.references=[];e.push(t)}t.references.push(j-s);j+=2;return}else n.set(u,{offset:j-s})}let e=u.constructor;if(e===Object){b(u)}else if(e===Array){o=u.length;if(o<24){C[j++]=128|o}else{Wt(o)}for(let e=0;e>8;C[j++]=o&255}else{C[j++]=186;S.setUint32(j,o);j+=4}if(a.keyMap){for(let[e,t]of u){g(a.encodeKey(e));g(t)}}else{for(let[e,t]of u){g(e);g(t)}}}else{for(let r=0,e=jt.length;r>8;C[j++]=t&255}else if(t>-1){C[j++]=218;S.setUint32(j,t);j+=4}e.encode.call(this,u,g,w);return}}if(u[Symbol.iterator]){if(Rt){let e=new Error("Iterable should be serialized as iterator");e.iteratorNotHandled=true;throw e}C[j++]=159;for(let e of u){g(e)}C[j++]=255;return}if(u[Symbol.asyncIterator]||Gt(u)){let e=new Error("Iterable/blob should be serialized as iterator");e.iteratorNotHandled=true;throw e}if(this.useToJSON&&u.toJSON){const t=u.toJSON();if(t!==u)return g(t)}b(u)}}}else if(e==="boolean"){C[j++]=u?245:244}else if(e==="bigint"){if(u=0){C[j++]=27;S.setBigUint64(j,u)}else if(u>-(BigInt(1)<=BigInt(0))C[j++]=194;else{C[j++]=195;u=BigInt(-1)-u}let e=[];while(u){e.push(Number(u&BigInt(255)));u>>=BigInt(8)}er(new Uint8Array(e.reverse()),w);return}}j+=8}else if(e==="undefined"){C[j++]=247}else{throw new Error("Unknown type: "+e)}};const b=this.useRecords===false?this.variableMapSize?e=>{let t=Object.keys(e);let r=Object.values(e);let n=t.length;if(n<24){C[j++]=160|n}else if(n<256){C[j++]=184;C[j++]=n}else if(n<65536){C[j++]=185;C[j++]=n>>8;C[j++]=n&255}else{C[j++]=186;S.setUint32(j,n);j+=4}if(a.keyMap){for(let e=0;e{C[j++]=185;let e=j-s;j+=2;let r=0;if(a.keyMap){for(let e in t)if(typeof t.hasOwnProperty!=="function"||t.hasOwnProperty(e)){g(a.encodeKey(e));g(t[e]);r++}}else{for(let e in t)if(typeof t.hasOwnProperty!=="function"||t.hasOwnProperty(e)){g(e);g(t[e]);r++}}C[e+++s]=r>>8;C[e+s]=r&255}:(t,e)=>{let r,n=f.transitions||(f.transitions=Object.create(null));let i=0;let a=0;let u;let o;if(this.keyMap){o=Object.keys(t).map(e=>this.encodeKey(e));a=o.length;for(let t=0;t>8|224;C[j++]=s&255}else{if(!o)o=n.__keys__||(n.__keys__=Object.keys(t));if(u===undefined){s=f.nextId++;if(!s){s=0;f.nextId=1}if(s>=Lt){f.nextId=(s=h)+1}}else{s=u}f[s]=o;if(s>8|224;C[j++]=s&255;n=f.transitions;for(let e=0;e=Lt-h)v.shift()[Vt]=undefined;v.push(n);Wt(a+2);g(57344+s);g(o);if(e)return;for(let e in t)if(typeof t.hasOwnProperty!=="function"||t.hasOwnProperty(e))g(t[e]);return}}if(a<24){C[j++]=128|a}else{Wt(a)}if(e)return;for(let e in t)if(typeof t.hasOwnProperty!=="function"||t.hasOwnProperty(e))g(t[e])};const w=e=>{let t;if(e>16777216){if(e-s>Mt)throw new Error("Encoded buffer would be larger than maximum buffer size");t=Math.min(Mt,Math.round(Math.max((e-s)*(e>67108864?1.25:2),4194304)/4096)*4096)}else t=(Math.max(e-s<<2,C.length-1)>>12)+1<<12;let r=new Nt(t);S=new DataView(r.buffer,0,t);if(C.copy)C.copy(r,0,s,e);else r.set(C.slice(s,e));j-=s;s=0;qt=r.length-10;return C=r};let D=100;let x=1e3;this.encodeAsIterable=function(e,t){return k(e,t,E)};this.encodeAsAsyncIterable=function(e,t){return k(e,t,O)};function*E(n,i,e){let t=n.constructor;if(t===Object){let r=a.useRecords!==false;if(r)b(n,true);else Jt(Object.keys(n).length,160);for(let t in n){let e=n[t];if(!r)g(t);if(e&&typeof e==="object"){if(i[t])yield*E(e,i[t]);else yield*F(e,i,t)}else g(e)}}else if(t===Array){let e=n.length;Wt(e);for(let t=0;tD)){if(i.element)yield*E(e,i.element);else yield*F(e,i,"element")}else g(e)}}else if(n[Symbol.iterator]&&!n.buffer){C[j++]=159;for(let e of n){if(e&&(typeof e==="object"||j-s>D)){if(i.element)yield*E(e,i.element);else yield*F(e,i,"element")}else g(e)}C[j++]=255}else if(Gt(n)){Jt(n.size,64);yield C.subarray(s,j);yield n;A()}else if(n[Symbol.asyncIterator]){C[j++]=159;yield C.subarray(s,j);yield n;A();C[j++]=255}else{g(n)}if(e&&j>s)yield C.subarray(s,j);else if(j-s>D){yield C.subarray(s,j);A()}}function*F(t,r,n){let i=j-s;try{g(t);if(j-s>D){yield C.subarray(s,j);A()}}catch(e){if(e.iteratorNotHandled){r[n]={};j=s+i;yield*E.call(this,t,r[n])}else throw e}}function A(){D=x;a.encode(null,or)}function k(e,t,r){if(t&&t.chunkThreshold)D=x=t.chunkThreshold;else D=100;if(e&&typeof e==="object"){a.encode(null,or);return r(e,a.iterateProperties||(a.iterateProperties={}),true)}return[a.encode(e)]}async function*O(e,t){for(let r of E(e,t,true)){let e=r.constructor;if(e===Tt||e===Uint8Array)yield r;else if(Gt(r)){let e=r.stream().getReader();let t;while(!(t=await e.read()).done){yield t.value}}else if(r[Symbol.asyncIterator]){for await(let e of r){A();if(e)yield*O(e,t.async||(t.async={}));else yield a.encode(e)}}else{yield r}}}}useBuffer(e){C=e;S=new DataView(C.buffer,C.byteOffset,C.byteLength);j=0}clearSharedData(){if(this.structures)this.structures=[];if(this.sharedValues)this.sharedValues=undefined}updateSharedData(){let t=this.sharedVersion||0;this.sharedVersion=t+1;let e=this.structures.slice(0);let r=new Kt(e,this.sharedValues,this.sharedVersion);let n=this.saveShared(r,e=>(e&&e.version||0)==t);if(n===false){r=this.getShared()||{};this.structures=r.structures||[];this.sharedValues=r.packedValues;this.sharedVersion=r.version;this.structures.nextId=this.structures.length}else{e.forEach((e,t)=>this.structures[t]=e)}return n}}function Jt(e,t){if(e<24)C[j++]=t|e;else if(e<256){C[j++]=t|24;C[j++]=e}else if(e<65536){C[j++]=t|25;C[j++]=e>>8;C[j++]=e&255}else{C[j++]=t|26;S.setUint32(j,e);j+=4}}class Kt{constructor(e,t,r){this.structures=e;this.packedValues=t;this.version=r}}function Wt(e){if(e<24)C[j++]=128|e;else if(e<256){C[j++]=152;C[j++]=e}else if(e<65536){C[j++]=153;C[j++]=e>>8;C[j++]=e&255}else{C[j++]=154;S.setUint32(j,e);j+=4}}const Ht=typeof Blob==="undefined"?function(){}:Blob;function Gt(e){if(e instanceof Ht)return true;let t=e[Symbol.toStringTag];return t==="Blob"||t==="File"}function Qt(r,n){switch(typeof r){case"string":if(r.length>3){if(n.objectMap[r]>-1||n.values.length>=n.maxValues)return;let e=n.get(r);if(e){if(++e.count==2){n.values.push(r)}}else{n.set(r,{count:1});if(n.samplingPackedValues){let e=n.samplingPackedValues.get(r);if(e)e.count++;else n.samplingPackedValues.set(r,{count:1})}}}break;case"object":if(r){if(r instanceof Array){for(let e=0,t=r.length;e=0&&r<4294967296){C[j++]=26;S.setUint32(j,r);j+=4}else{C[j++]=251;S.setFloat64(j,r);j+=8}}},{tag:258,encode(e,t){let r=Array.from(e);t(r)}},{tag:27,encode(e,t){t([e.name,e.message])}},{tag:27,encode(e,t){t(["RegExp",e.source,e.flags])}},{getTag(e){return e.tag},encode(e,t){t(e.value)}},{encode(e,t,r){er(e,r)}},{getTag(e){if(e.constructor===Uint8Array){if(this.tagUint8Array||Pt&&this.tagUint8Array!==false)return 64}},encode(e,t,r){er(e,r)}},Xt(68,1),Xt(69,2),Xt(70,4),Xt(71,8),Xt(72,1),Xt(77,2),Xt(78,4),Xt(79,8),Xt(85,4),Xt(86,8),{encode(t,n){let e=t.packedValues||[];let r=t.structures||[];if(e.values.length>0){C[j++]=216;C[j++]=51;Wt(4);let r=e.values;n(r);Wt(0);Wt(0);packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let e=0,t=r.length;e1)e-=4;return{tag:e,encode:function e(t,r){let n=t.byteLength;let i=t.byteOffset||0;let a=t.buffer||t;r(Pt?It.from(a,i,n):new Uint8Array(a,i,n))}}}function er(e,t){let r=e.byteLength;if(r<24){C[j++]=64+r}else if(r<256){C[j++]=88;C[j++]=r}else if(r<65536){C[j++]=89;C[j++]=r>>8;C[j++]=r&255}else{C[j++]=90;S.setUint32(j,r);j+=4}if(j+r>=C.length){t(j+r)}C.set(e.buffer?e:new Uint8Array(e),j);j+=r}function tr(n,e){let r;let i=e.length*2;let a=n.length-i;e.sort((e,t)=>e.offset>t.offset?1:-1);for(let r=0;r>8;n[e]=r&255}}while(r=e.pop()){let e=r.offset;n.copyWithin(e+i,e,a);i-=2;let t=e+i;n[t++]=216;n[t++]=28;a=e}return n}function rr(e,t){S.setUint32(Ut.position+e,j-Ut.position-e+1);let r=Ut;Ut=null;t(r[0]);t(r[1])}function nr(e){if(e.Class){if(!e.encode)throw new Error("Extension has no encode function");Bt.unshift(e.Class);jt.unshift(e)}kt(e)}let ir=new Yt({useRecords:false});ir.encode;ir.encodeAsIterable;ir.encodeAsAsyncIterable;const ar=512;const ur=1024;const or=2048;var sr={}; /**@license * * No Dependency fast and small LZJB Compression for Browser and Node @@ -42,4 +42,4 @@ * Released under BSD-3-Clause License * * build: Wed, 27 Oct 2021 10:43:10 GMT - */Object.defineProperty(or,"__esModule",{value:true});const sr=8,cr=6,fr=3,lr=(1<r-lr){t[i++]=e[n++];continue}f=(e[n]+13^e[n+1]-13^e[n+2])&_r-1;c=n-l[f]&hr;l[f]=n;a=n-c;if(a>=0&&a!=n&&e[n]==e[a]&&e[n+1]==e[a+1]&&e[n+2]==e[a+2]){t[u]|=o;for(s=fr;s>sr;t[i++]=c;n+=s}else{t[i++]=e[n++]}}console.assert(e.length>=n);return i}function dr(e,t,r){t=t|0;var n=0,i=0,a=0,u=0,o=1<<(sr-1|0),s=0,c=0;while(n>(sr-cr|0))+fr|0;c=(e[n]<4){r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;s=s-4|0}while(s>0){r[i]=r[a];i=i+1|0;a=a+1|0;s=s-1|0}}}else{r[i]=e[n];i=i+1|0;n=n+1|0}}return i}function vr(){const e=new TextEncoder("utf-8");return e.encode(yr)}const yr="@lzjb";const mr=vr();function gr(...e){if(e.length>1){const r=e.reduce((e,t)=>e+t.length,0);const n=new Uint8Array(r);let t=0;e.forEach(e=>{n.set(e,t);t+=e.length});return n}else if(e.length){return e[0]}}function br(t){const e=Math.ceil(Math.log2(t)/8);const r=new Uint8Array(e);for(let e=0;e=0;e--){r=r*256+t[e]}return r}function Dr(e,{magic:t=true}={}){const r=new Uint8Array(Math.max(e.length*1.5|0,16*1024));const n=pr(e,r);const i=br(e.length);const a=[Uint8Array.of(i.length),i,r.slice(0,n)];if(t){a.unshift(mr)}return gr(...a)}function xr(t,{magic:e=true}={}){if(e){const e=new TextDecoder("utf-8");const s=e.decode(t.slice(0,mr.length));if(s!==yr){throw new Error("Invalid magic value")}}const r=e?mr.length:0;const n=t[r];const i=r+1;const a=r+n+1;const u=wr(t.slice(i,a));t=t.slice(a);const o=new Uint8Array(u);dr(t,t.length,o);return o}var Er=or.pack=Dr;var Fr=or.unpack=xr;function Ar(s,c){return c=c||{},new Promise(function(e,t){var r=new XMLHttpRequest,n=[],i=[],a={},u=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:u,headers:{keys:function(){return n},entries:function(){return i},get:function(e){return a[e.toLowerCase()]},has:function(e){return e.toLowerCase()in a}}}};for(var o in r.open(c.method||"get",s,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,r){n.push(t=t.toLowerCase()),i.push([t,r]),a[t]=a[t]?a[t]+","+r:r}),e(u())},r.onerror=t,r.withCredentials="include"==c.credentials,c.headers)r.setRequestHeader(o,c.headers[o]);r.send(c.body||null)})}var kr=["token"],Or=["env"],Cr=["stderr","stdin","stdout","command_line"],Sr=["use_dynamic"],jr=["use_dynamic"],Br=["env","dynamic_env","use_dynamic","error"];function Ir(e,t,r){Pr(e,t);t.set(e,r)}function Pr(e,t){if(t.has(e)){throw new TypeError("Cannot initialize the same private elements twice on an object")}}function Nr(e,t,r){return t=Y(t),$(e,Tr()?Reflect.construct(t,r||[],Y(e).constructor):t.apply(e,r))}function Tr(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(Tr=function e(){return!!t})()}function Lr(t,e){var r=typeof Symbol!=="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Mr(t))||e&&t&&typeof t.length==="number"){if(r)t=r;var n=0;var i=function e(){};return{s:i,n:function e(){if(n>=t.length)return{done:true};return{done:false,value:t[n++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a=true,u=false,o;return{s:function e(){r=r.call(t)},n:function e(){var t=r.next();a=t.done;return t},e:function e(t){u=true;o=t},f:function e(){try{if(!a&&r["return"]!=null)r["return"]()}finally{if(u)throw o}}}}function Mr(e,t){if(!e)return;if(typeof e==="string")return Rr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor)r=e.constructor.name;if(r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Rr(e,t)}function Rr(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r1?t-1:0),n=1;n0&&arguments[0]!==undefined?arguments[0]:null;var t=Co&&Co.get("DEBUG",{throwError:false});if(e===null){return t===true}return(t===null||t===void 0?void 0:t.valueOf())===e.valueOf()}function Zr(e){return e?"(?:#".concat(e,"(?:#[ie])?|#[ie]#").concat(e,")"):"(?:#[ie])?"}function Xr(e,t){return"".concat(Zr(e),"[+-]?").concat(t,"+/").concat(t,"+")}function en(e,t){return"".concat(Zr(e),"(?:[+-]?(?:").concat(t,"+/").concat(t,"+|nan.0|inf.0|").concat(t,"+))?(?:[+-]i|[+-]?(?:").concat(t,"+/").concat(t,"+|").concat(t,"+|nan.0|inf.0)i)(?=[()[\\]\\s]|$)")}function tn(e,t){return"".concat(Zr(e),"[+-]?").concat(t,"+")}var rn=/^#\/((?:\\\/|[^/]|\[[^\]]*\/[^\]]*\])+)\/([gimyus]*)$/;var nn="(?:[-+]?(?:[0-9]+(?:[eE][-+]?[0-9]+)|(?:\\.[0-9]+|[0-9]+\\.[0-9]+)(?:[eE][-+]?[0-9]+)?)|[0-9]+\\.)";var an="(?:#[ie])?(?:[+-]?(?:[0-9][0-9_]*/[0-9][0-9_]*|nan.0|inf.0|".concat(nn,"|[+-]?[0-9]+))?(?:").concat(nn,"|[+-](?:[0-9]+/[0-9]+|[0-9]+|nan.0|inf.0))i");var un=new RegExp("^(#[ie])?".concat(nn,"$"),"i");function on(e,t){var r=e==="x"?"(?!\\+|".concat(t,")"):"(?!\\.|".concat(t,")");var n="";if(e===""){n="(?:[-+]?(?:[0-9]+(?:[eE][-+]?[0-9]+)|(?:\\.[0-9]+|[0-9]+\\.[0-9]+(?![0-9]))(?:[eE][-+]?[0-9]+)?))"}return new RegExp("^((?:(?:".concat(n,"|[-+]?inf.0|[-+]?nan.0|[+-]?").concat(t,"+/").concat(t,"+(?!").concat(t,")|[+-]?").concat(t,"+)").concat(r,")?)(").concat(n,"|[-+]?inf.0|[-+]?nan.0|[+-]?").concat(t,"+/").concat(t,"+|[+-]?").concat(t,"+|[+-])i$"),"i")}var sn=function(){var a={};[[10,"","[0-9]"],[16,"x","[0-9a-fA-F]"],[8,"o","[0-7]"],[2,"b","[01]"]].forEach(function(e){var t=b(e,3),r=t[0],n=t[1],i=t[2];a[r]=on(n,i)});return a}();var cn={alarm:"",backspace:"\b",delete:"",escape:"",newline:"\n",null:"\0",return:"\r",space:" ",tab:"\t",dle:"",soh:"",dc1:"",stx:"",dc2:"",etx:"",dc3:"",eot:"",dc4:"",enq:"",nak:"",ack:"",syn:"",bel:"",etb:"",bs:"\b",can:"",ht:"\t",em:"",lf:"\n",sub:"",vt:"\v",esc:"",ff:"\f",fs:"",cr:"\r",gs:"",so:"",rs:"",si:"",us:"",del:""};function ln(e){var t=[];var r=0;var n=e.length;while(r=55296&&i<=56319&&r1&&arguments[1]!==undefined?arguments[1]:10;var r=Fn(e);var n=r.number.split("/");var i=w({num:B([n[0],r.radix||t]),denom:B([n[1],r.radix||t])});if(r.inexact){return i.valueOf()}else{return i}}function kn(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;var r=Fn(e);if(r.inexact){return g(parseInt(r.number,r.radix||t))}return B([r.number,r.radix||t])}function On(e){var t=e.match(/#\\x([0-9a-f]+)$/i);var r;if(t){var n=parseInt(t[1],16);r=String.fromCodePoint(n)}else{t=e.match(/#\\([\s\S]+)$/);if(t){r=t[1]}}if(r){return h(r)}throw new Error("Parse: invalid character")}function Cn(e){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;function t(e){var t;if(e==="+"){t=B(1)}else if(e==="-"){t=B(-1)}else if(e.match(bn)){t=B([e,i])}else if(e.match(wn)){var r=e.split("/");t=w({num:B([r[0],i]),denom:B([r[1],i])})}else if(e.match(un)){var n=In(e);if(a.exact){return n.toRational()}return n}else if(e.match(/nan.0$/)){return B(NaN)}else if(e.match(/inf.0$/)){if(e[0]==="-"){return B(Number.NEGATIVE_INFINITY)}return B(Number.POSITIVE_INFINITY)}else{throw new Error("Internal Parser Error")}if(a.inexact){return g(t.valueOf())}return t}var a=Fn(e);i=a.radix||i;var r;var n=a.number.match(xn);if(i!==10&&n){r=n}else{r=a.number.match(sn[i])}var u,o;o=t(r[2]);if(r[1]){u=t(r[1])}else if(o instanceof g){u=g(0)}else{u=B(0)}if(o.cmp(0)===0&&o.__type__==="bigint"){return u}return m({im:o,re:u})}function Sn(e){return parseInt(e.toString(),10)===e}function jn(e){var t=e.match(/^(([-+]?[0-9]*)(?:\.([0-9]+))?)e([-+]?[0-9]+)/i);if(t){var r=parseInt(t[4],10);var n;var i=t[1].replace(/[-+]?([0-9]*)\..+$/,"$1").length;var a=t[3]&&t[3].length;if(i0&&(t.exact||!t.number.match(/\./))){return B(a).mul(o)}}}r=g(r);if(t.exact){return r.toRational()}return r}function Pn(e){e=e.replace(/\\x([0-9a-f]+);/gi,function(e,t){return"\\u"+t.padStart(4,"0")}).replace(/\n/g,"\\n");var t=e.match(/(\\*)(\\x[0-9A-F])/i);if(t&&t[1].length%2===0){throw new Error("Invalid string literal, unclosed ".concat(t[2]))}try{var r=x(JSON.parse(e));r.freeze();return r}catch(e){var n=e.message.replace(/in JSON /,"").replace(/.*Error: /,"");throw new Error("Invalid string literal: ".concat(n))}}function Nn(e){e.match(/^name/);var t=/(^|.)\|/g;if(e.match(t)){e=e.split("|").filter(Boolean).reduce(function(e,t){var r="";if(t.match(/^\\+$/)){if(t.length>1){var n=Math.floor(t.length/2);r="\\".repeat(n)}if(t.length%2!==0){r+="|"}}else{r=t}return e+r});var r={t:"\t",r:"\r",n:"\n"};e=e.replace(/\\(x[^;]+);/g,function(e,t){return String.fromCharCode(parseInt("0"+t,16))}).replace(/\\([trn])/g,function(e,t){return r[t]})}return new ne(e)}function Tn(e){if(Oo.hasOwnProperty(e)){return Oo[e]}if(e.match(/^"[\s\S]*"$/)){return Pn(e)}else if(e[0]==="#"){var t=e.match(rn);if(t){return new RegExp(t[1],t[2])}else if(e.match(pn)){return On(e)}var r=e.match(/#\\(.+)/);if(r&&ln(r[1]).length===1){return On(e)}}if(e.match(/[0-9a-f]|[+-]i/i)){if(e.match(gn)){return kn(e)}else if(e.match(un)){return In(e)}else if(e.match(mn)){return An(e)}else if(e.match(yn)){return Cn(e)}}if(e.match(/^#[iexobd]/)){throw new Error("Invalid numeric constant: "+e)}return Nn(e)}function Ln(e){return!(["(",")","[","]"].includes(e)||ii.names().includes(e))}function Mn(e){return Ln(e)&&!(e.match(rn)||e.match(/^"[\s\S]*"$/)||e.match(gn)||e.match(un)||e.match(yn)||e.match(mn)||e.match(pn)||["#t","#f","nil"].includes(e))}var Rn=/"(?:\\[\S\s]|[^"])*"?/g;function qn(e){if(typeof e==="string"){var t=/([-\\^$[\]()+{}?*.|])/g;return e.replace(t,"\\$1")}return e}function Un(){this.data=[]}Un.prototype.push=function(e){this.data.push(e)};Un.prototype.top=function(){return this.data[this.data.length-1]};Un.prototype.pop=function(){return this.data.pop()};Un.prototype.is_empty=function(){return!this.data.length};function zn(e){if(e instanceof x){e=e.valueOf()}var t=new o(e,{whitespace:true});var r=[];while(true){var n=t.peek(true);if(n===ho){break}r.push(n);t.skip()}return r}function Vn(e){var t=e.token,r=_e(e,kr);if(t.match(/^"[\s\S]*"$/)&&t.match(/\n/)){var n=new RegExp("^ {1,"+(e.col+1)+"}","mg");t=t.replace(n,"")}return te({token:t},r)}function $n(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};this.fn=e;this.cont=t}$n.prototype.toString=function(){return"#"};function Yn(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r1&&arguments[1]!==undefined?arguments[1]:false;if(e instanceof x){e=e.toString()}if(t){return zn(e)}else{var r=zn(e).map(function(e){if(e.token==="#\\ "||e.token=="#\\\n"){return e.token}return e.token.trim()}).filter(function(e){return e&&!e.match(/^;/)&&!e.match(/^#\|[\s\S]*\|#$/)});return Wn(r)}}function Wn(e){var t=0;var r=null;var n=[];for(var i=0;i0&&arguments[0]!==undefined?arguments[0]:null;if(e instanceof ne){if(e.is_gensym()){return e}e=e.valueOf()}if(Qn(e)){return ne(e)}if(e!==null){return r(e,Symbol("#:".concat(e)))}t++;return r(t,Symbol("#:g".concat(t)))}}();function Xn(e,t){var r=se.get("begin");var n=Zn("begin");e.forEach(function(e){e.set(n,r)});return new ae(n,t)}function ei(e){var r=this;var n={pending:true,rejected:false,fulfilled:false,reason:undefined,type:undefined};e=e.then(function(e){n.type=Ko(e);n.fulfilled=true;n.pending=false;return e});s(this,"_promise",e,{hidden:true});if(d(e["catch"])){e=e["catch"](function(e){n.rejected=true;n.pending=false;n.reason=e})}Object.keys(n).forEach(function(t){Object.defineProperty(r,"__".concat(t,"__"),{enumerable:true,get:function e(){return n[t]}})});s(this,"__promise__",e);this.then=false}ei.prototype.then=function(e){return new ei(this.valueOf().then(e))};ei.prototype["catch"]=function(e){return new ei(this.valueOf()["catch"](e))};ei.prototype.valueOf=function(){if(!this._promise){throw new Error("QuotedPromise: invalid promise created")}return this._promise};ei.prototype.toString=function(){if(this.__pending__){return ei.pending_str}if(this.__rejected__){return ei.rejected_str}return"#")};ei.pending_str="#";ei.rejected_str="#";function ti(e){if(Array.isArray(e)){return Promise.all(ri(e)).then(ni)}return e}function ri(e){var t=new Array(e.length),r=e.length;while(r--){var n=e[r];if(n instanceof ei){t[r]=new mo(n)}else{t[r]=n}}return t}function ni(e){var t=new Array(e.length),r=e.length;while(r--){var n=e[r];if(n instanceof mo){t[r]=n.valueOf()}else{t[r]=n}}return t}var ii={LITERAL:Symbol["for"]("literal"),SPLICE:Symbol["for"]("splice"),SYMBOL:Symbol["for"]("symbol"),names:function e(){return Object.keys(this.__list__)},type:function e(t){try{return this.get(t).type}catch(e){console.log({name:t});console.log(e);return null}},get:function e(t){return this.__list__[t]},off:function e(t){var r=this;var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(Array.isArray(t)){t.forEach(function(e){return r.off(e,n)})}else if(n===null){delete this.__events__[t]}else{this.__events__=this.__events__.filter(function(e){return e!==n})}},on:function e(t,r){var n=this;if(Array.isArray(t)){t.forEach(function(e){return n.on(e,r)})}else if(!this.__events__[t]){this.__events__[t]=[r]}else{this.__events__[t].push(r)}},trigger:function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i",new ne("quote-promise"),ii.LITERAL]];var fi=ci.map(function(e){return e[0]});Object.freeze(fi);Object.defineProperty(ii,"__builtins__",{writable:false,value:fi});ci.forEach(function(e){var t=b(e,3),r=t[0],n=t[1],i=t[2];ii.append(r,n,i)});var o=function(){function m(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.whitespace,i=n===void 0?false:n;Q(this,m);s(this,"__input__",e.replace(/\r/g,""));var a={};["_i","_whitespace","_col","_newline","_line","_state","_next","_token","_prev_char"].forEach(function(r){Object.defineProperty(t,r,{configurable:false,enumerable:false,get:function e(){return a[r]},set:function e(t){a[r]=t}})});this._whitespace=i;this._i=this._line=this._col=this._newline=0;this._state=this._next=this._token=null;this._prev_char=""}fe(m,[{key:"get",value:function e(t){return this.__internal[t]}},{key:"set",value:function e(t,r){this.__internal[t]=r}},{key:"token",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(t){var r=this._line;if(this._whitespace&&this._token==="\n"){--r}return{token:this._token,col:this._col,offset:this._i,line:r}}return this._token}},{key:"peek",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this._i>=this.__input__.length){return ho}if(this._token){s(this,"__token__",this.token(true));return this.token(t)}var r=this.next_token();if(r){this._token=this.__input__.substring(this._i,this._next);if(!this.__token__){s(this,"__token__",this.token(true))}return this.token(t)}return ho}},{key:"skip",value:function e(){if(this._next!==null){this._token=null;this._i=this._next}}},{key:"read_line",value:function e(){var t=this.__input__.length;if(this._i>=t){return ho}for(var r=this._i;r=r){return ho}if(t+this._i>=r){return this.read_rest()}var n=this._i+t;var i=this.__input__.substring(this._i,n);var a=i.match(/\n/g);if(a){this._line+=a.length}this._i=n;return i}},{key:"peek_char",value:function e(){if(this._i>=this.__input__.length){return ho}return h(this.__input__[this._i])}},{key:"read_char",value:function e(){var t=this.peek_char();this.skip_char();return t}},{key:"skip_char",value:function e(){if(this._i1&&arguments[1]!==undefined?arguments[1]:{},n=r.prev_char,i=r["char"],a=r.next_char;var u=b(t,4),o=u[0],s=u[1],c=u[2],f=u[3];if(t.length!==5){throw new Error("Lexer: Invalid rule of length ".concat(t.length))}if(Pa(o)){if(o!==i){return false}}else if(!i.match(o)){return false}if(!pi(s,n)){return false}if(!pi(c,a)){return false}if(f!==this._state){return false}return true}},{key:"next_token",value:function e(){if(this._i>=this.__input__.length){return false}var t=true;e:for(var r=this._i,n=this.__input__.length;r2&&arguments[2]!==undefined?arguments[2]:null;var i=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;if(t.length===0){throw new Error("Lexer: invalid literal rule")}if(t.length===1){return[[t,n,i,null,null]]}var a=[];for(var u=0,o=t.length;u0&&arguments[0]!==undefined?arguments[0]:{},t=e.env,r=e.meta,n=r===void 0?false:r,i=e.formatter,a=i===void 0?Vn:i;Q(this,u);s(this,"_formatter",a,{hidden:true});s(this,"__env__",t);s(this,"_meta",n,{hidden:true});s(this,"_refs",[],{hidden:true});s(this,"_state",{parentheses:0,fold_case:false},{hidden:true})}fe(u,[{key:"_with_syntax_scope",value:function e(t){var r=xo(this.__env__);var n=r.get("stdin");se.set("lips",te(te({},Vs),{},{__parser__:this}));r.set("stdin",new io(this,this.__env__));var i=function e(){se.set("lips",Vs);r.set("stdin",n)};return D(t(),function(e){i();return e},i)}},{key:"parse",value:function e(t){if(t instanceof x){t=t.toString()}s(this,"__lexer__",new o(t))}},{key:"resolve",value:function e(t){return this.__env__&&this.__env__.get(t,{throwError:false})}},{key:"peek",value:function(){var e=H(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=this.__lexer__.peek(true);if(!(r===ho)){t.next=4;break}return t.abrupt("return",ho);case 4:if(!this.is_comment(r.token)){t.next=7;break}this.skip();return t.abrupt("continue",0);case 7:if(!Ba(r.token)){t.next=11;break}this.skip();if(r.token==="#!fold-case"){this._state.fold_case=true}else if(r.token==="#!no-fold-case"){this._state.fold_case=false}return t.abrupt("continue",0);case 11:if(!(r.token==="#;")){t.next=18;break}this.skip();if(!(this.__lexer__.peek()===ho)){t.next=15;break}throw new Error("Lexer: syntax error eof found after comment");case 15:t.next=17;return this._read_object();case 17:return t.abrupt("continue",0);case 18:return t.abrupt("break",21);case 21:r=this._formatter(r);if(this._state.fold_case){r.token=Gi(r.token)}if(!this._meta){t.next=25;break}return t.abrupt("return",r);case 25:return t.abrupt("return",r.token);case 26:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"reset",value:function e(){this._refs.length=0}},{key:"skip",value:function e(){this.__lexer__.skip()}},{key:"read",value:function(){var e=H(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.peek();case 2:r=t.sent;this.skip();return t.abrupt("return",r);case 5:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"match_datum_label",value:function e(t){var r=t.match(/^#([0-9]+)=$/);return r&&r[1]}},{key:"match_datum_ref",value:function e(t){var r=t.match(/^#([0-9]+)#$/);return r&&r[1]}},{key:"is_open",value:function e(t){return["(","["].includes(t)}},{key:"is_close",value:function e(t){return[")","]"].includes(t)}},{key:"read_list",value:function(){var e=H(O.mark(function e(){var r,n,i,a,u,o;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=ie,n=r;case 1:t.next=4;return this.peek();case 4:a=t.sent;if(!(a===ho)){t.next=7;break}return t.abrupt("break",31);case 7:if(!this.is_close(a)){t.next=11;break}--this._state.parentheses;this.skip();return t.abrupt("break",31);case 11:if(!(a==="."&&!ue(r))){t.next=19;break}this.skip();t.next=15;return this._read_object();case 15:n.cdr=t.sent;i=true;t.next=29;break;case 19:if(!i){t.next=23;break}throw new Error("Parser: syntax error more than one element after dot");case 23:t.next=25;return this._read_object();case 25:u=t.sent;o=new ae(u,ie);if(ue(r)){r=o}else{n.cdr=o}n=o;case 29:t.next=1;break;case 31:return t.abrupt("return",r);case 32:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"read_value",value:function(){var e=H(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.read();case 2:r=t.sent;if(!(r===ho)){t.next=5;break}throw new Error("Parser: Expected token eof found");case 5:return t.abrupt("return",Tn(r));case 6:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"is_comment",value:function e(t){return t.match(/^;/)||t.match(/^#\|/)&&t.match(/\|#$/)}},{key:"evaluate",value:function e(t){return k(t,{env:this.__env__,error:function e(t){throw t}})}},{key:"read_object",value:function(){var e=H(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:this.reset();t.next=3;return this._read_object();case 3:r=t.sent;if(r instanceof yi){r=r.valueOf()}if(!this._refs.length){t.next=7;break}return t.abrupt("return",D(this._resolve_object(r),function(e){if(oe(e)){e.mark_cycles()}return e}));case 7:return t.abrupt("return",r);case 8:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"balanced",value:function e(){return this._state.parentheses===0}},{key:"ballancing_error",value:function e(t,r){var n=this._state.parentheses;var i;if(n<0){i=new Error("Parser: unexpected parenthesis");i.__code__=[r.toString()+")"]}else{i=new Error("Parser: expected parenthesis but eof found");var a=new RegExp("\\){".concat(n,"}$"));i.__code__=[t.toString().replace(a,"")]}throw i}},{key:"_resolve_object",value:function(){var t=H(O.mark(function e(r){var n=this;var i;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!Array.isArray(r)){t.next=2;break}return t.abrupt("return",r.map(function(e){return n._resolve_object(e)}));case 2:if(!ta(r)){t.next=6;break}i={};Object.keys(r).forEach(function(e){i[e]=n._resolve_object(r[e])});return t.abrupt("return",i);case 6:if(!oe(r)){t.next=8;break}return t.abrupt("return",this._resolve_pair(r));case 8:return t.abrupt("return",r);case 9:case"end":return t.stop()}},e,this)}));function e(e){return t.apply(this,arguments)}return e}()},{key:"_resolve_pair",value:function(){var t=H(O.mark(function e(r){return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!oe(r)){t.next=15;break}if(!(r.car instanceof yi)){t.next=7;break}t.next=4;return r.car.valueOf();case 4:r.car=t.sent;t.next=8;break;case 7:this._resolve_pair(r.car);case 8:if(!(r.cdr instanceof yi)){t.next=14;break}t.next=11;return r.cdr.valueOf();case 11:r.cdr=t.sent;t.next=15;break;case 14:this._resolve_pair(r.cdr);case 15:return t.abrupt("return",r);case 16:case"end":return t.stop()}},e,this)}));function e(e){return t.apply(this,arguments)}return e}()},{key:"_read_object",value:function(){var e=H(O.mark(function e(){var r=this;var n,i,a,u,o,s,c,f,l,h,_,p;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.peek();case 2:n=t.sent;if(!(n===ho)){t.next=5;break}return t.abrupt("return",n);case 5:if(!ai(n)){t.next=51;break}i=ii.get(n);a=ui(n);this.skip();s=si(n);t.t0=this;t.next=13;return this.peek();case 13:t.t1=t.sent;c=t.t0.is_close.call(t.t0,t.t1);if(!s){t.next=19;break}t.t2=undefined;t.next=22;break;case 19:t.next=21;return this._read_object();case 21:t.t2=t.sent;case 22:f=t.t2;if(!(f===ho)){t.next=25;break}throw new vi("Expecting expression eof found");case 25:if(a){t.next=32;break}o=this.__env__.get(i.symbol);if(!(typeof o==="function")){t.next=32;break}if(oi(n)){l=[f]}else if(ue(f)){l=[]}else if(oe(f)){l=f.to_array(false)}if(!(l||s)){t.next=31;break}return t.abrupt("return",this._with_syntax_scope(function(){return Xo(o,s?[]:l,{env:r.__env__,dynamic_env:r.__env__,use_dynamic:false})}));case 31:throw new Error("Parse Error: Invalid parser extension "+"invocation ".concat(i.symbol));case 32:if(!oi(n)){t.next=38;break}if(!c){t.next=35;break}throw new Error("Parse Error: expecting datum");case 35:u=new ae(i.symbol,new ae(f,ie));t.next=39;break;case 38:u=new ae(i.symbol,f);case 39:if(!a){t.next=41;break}return t.abrupt("return",u);case 41:if(!(o instanceof q)){t.next=50;break}t.next=44;return this._with_syntax_scope(function(){return r.evaluate(u)});case 44:h=t.sent;if(!(oe(h)||h instanceof ne)){t.next=47;break}return t.abrupt("return",ae.fromArray([ne("quote"),h]));case 47:return t.abrupt("return",h);case 50:throw new Error("Parse Error: invalid parser extension: "+i.symbol);case 51:_=this.match_datum_ref(n);if(!(_!==null)){t.next=57;break}this.skip();if(!this._refs[_]){t.next=56;break}return t.abrupt("return",new yi(_,this._refs[_]));case 56:throw new Error("Parse Error: invalid datum label #".concat(_,"#"));case 57:p=this.match_datum_label(n);if(!(p!==null)){t.next=64;break}this.skip();this._refs[p]=this._read_object();return t.abrupt("return",this._refs[p]);case 64:if(!this.is_close(n)){t.next=69;break}--this._state.parentheses;this.skip();t.next=76;break;case 69:if(!this.is_open(n)){t.next=75;break}++this._state.parentheses;this.skip();return t.abrupt("return",this.read_list());case 75:return t.abrupt("return",this.read_value());case 76:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()}]);return u}();var vi=function(e){J(t,e);function t(){Q(this,t);return Nr(this,t,arguments)}return fe(t)}(W(Error));di.Unterminated=vi;var yi=function(){function r(e,t){Q(this,r);this.name=e;this.data=t}fe(r,[{key:"valueOf",value:function e(){return this.data}}]);return r}();function mi(e,t){return gi.apply(this,arguments)}function gi(){gi=be(O.mark(function e(r,n){var i,a,u;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!n){if(se){n=se.get("**interaction-environment**",{throwError:false})}else{n=Co}}if(r instanceof di){i=r}else{i=new di({env:n});i.parse(r)}case 2:t.next=5;return me(i.read_object());case 5:u=t.sent;if(!i.balanced()){i.ballancing_error(u,a)}if(!(u===ho)){t.next=9;break}return t.abrupt("break",14);case 9:a=u;t.next=12;return u;case 12:t.next=2;break;case 14:case"end":return t.stop()}},e)}));return gi.apply(this,arguments)}function D(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(e){return e};var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(za(e)){var n=e.then(t);if(r===null){return n}else{return n["catch"](r)}}if(e instanceof Array){return bi(e,t,r)}if(ta(e)){return wi(e,t,r)}return t(e)}function bi(t,r,e){if(t.find(za)){return D(ti(t),function(e){if(Object.isFrozen(t)){Object.freeze(e)}return r(e)},e)}return r(t)}function wi(t,e,r){var i=Object.keys(t);var n=[],a=[];var u=i.length;while(u--){var o=i[u];var s=t[o];n[u]=s;if(za(s)){a.push(s)}}if(a.length){return D(ti(n),function(e){var n={};e.forEach(function(e,t){var r=i[t];n[r]=e});if(Object.isFrozen(t)){Object.freeze(n)}return n},r)}return e(t)}function s(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{},i=n.hidden,a=i===void 0?false:i;Object.defineProperty(e,t,{value:r,configurable:true,enumerable:!a})}function Di(e){return xi.apply(this,arguments)}function xi(){xi=H(O.mark(function e(r){var n,i,a,u,o,s,c;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:n=[];i=false;a=false;t.prev=3;o=Ur(r);case 5:t.next=7;return o.next();case 7:if(!(i=!(s=t.sent).done)){t.next=13;break}c=s.value;n.push(c);case 10:i=false;t.next=5;break;case 13:t.next=19;break;case 15:t.prev=15;t.t0=t["catch"](3);a=true;u=t.t0;case 19:t.prev=19;t.prev=20;if(!(i&&o["return"]!=null)){t.next=24;break}t.next=24;return o["return"]();case 24:t.prev=24;if(!a){t.next=27;break}throw u;case 27:return t.finish(24);case 28:return t.finish(19);case 29:return t.abrupt("return",n);case 30:case"end":return t.stop()}},e,null,[[3,15,19,29],[20,,24,28]])}));return xi.apply(this,arguments)}function Ei(e,t){if(t instanceof RegExp){return function(e){return String(e).match(t)}}else if(d(t)){return t}throw new Error("Invalid matcher")}function l(e,t,r,n){if(typeof e!=="string"){t=arguments[0];r=arguments[1];n=arguments[2];e=null}if(r){if(n){t.__doc__=r}else{t.__doc__=Fi(r)}}if(e){t.__name__=e}else if(t.name&&!bu(t)){t.__name__=t.name}return t}function Fi(e){return e.split("\n").map(function(e){return e.trim()}).join("\n")}function Ai(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;var r=e.length;if(t<=0){throw Error("previousSexp: Invalid argument sexp = ".concat(t))}e:while(t--&&r>=0){var n=1;while(n>0){var i=e[--r];if(!i){break e}if(i==="("||i.token==="("){n--}else if(i===")"||i.token===")"){n++}}r--}return e.slice(r+1)}function ki(e){if(!e||!e.length){return 0}var t=e.length;if(e[t-1].token==="\n"){return 0}while(--t){if(e[t].token==="\n"){var r=(e[t+1]||{}).token;if(r){return r.length}}}return 0}function Oi(e,t){return f(e,t)===t.length;function f(r,n){function e(e,t){var r=Lr(e),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;var a=f(i,t);if(a!==-1){return a}}}catch(e){r.e(e)}finally{r.f()}return-1}function t(){return r[a]===Symbol["for"]("symbol")&&!Mn(n[o])}function i(){var e=r[a+1];var t=n[o+1];if(e!==undefined&&t!==undefined){return f([e],[t])}}var a=0;var u={};for(var o=0;o0){continue}}else if(t()){return-1}}else if(r[a]instanceof Array){var c=f(r[a],n.slice(o));if(c===-1||c+o>n.length){return-1}o+=c-1;a++;continue}else{return-1}a++}if(r.length!==a){return-1}return n.length}}function Ci(e){this.__code__=e.replace(/\r/g,"")}Ci.defaults={offset:0,indent:2,exceptions:{specials:[/^(?:#:)?(?:define(?:-values|-syntax|-macro|-class|-record-type)?|(?:call-with-(?:input-file|output-file|port))|lambda|let-env|try|catch|when|unless|while|syntax-rules|(let|letrec)(-syntax|\*?-values|\*)?)$/],shift:{1:["&","#"]}}};Ci.match=Oi;Ci.prototype._options=function e(t){var r=Ci.defaults;if(typeof t==="undefined"){return Object.assign({},r)}var n=t&&t.exceptions||{};var i=n.specials||[];var a=n.shift||{1:[]};return te(te(te({},r),t),{},{exceptions:{specials:[].concat(ee(r.exceptions.specials),ee(i)),shift:te(te({},a),{},{1:[].concat(ee(r.exceptions.shift[1]),ee(a[1]))})}})};Ci.prototype.indent=function e(t){var r=Kn(this.__code__,true);return this._indent(r,t)};Ci.exception_shift=function(a,e){function t(e){if(!e.length){return false}if(e.indexOf(a)!==-1){return true}else{var t=e.filter(function(e){return e instanceof RegExp});if(!t.length){return false}var r=Lr(t),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;if(a.match(i)){return true}}}catch(e){r.e(e)}finally{r.f()}}return false}if(t(e.exceptions.specials)){return e.indent}var r=e.exceptions.shift;for(var n=0,i=Object.entries(r);n0){n.offset=0}if(a.toString()===t.toString()&&fs(a)){return n.offset+a[0].col}else if(a.length===1){return n.offset+a[0].col+1}else{var s=-1;if(u){var c=Ci.exception_shift(u.token,n);if(c!==-1){s=c}}if(s===-1){s=Ci.exception_shift(a[1].token,n)}if(s!==-1){return n.offset+a[0].col+s}else if(a[0].line3&&a[1].line===a[3].line){if(a[1].token==="("||a[1].token==="["){return n.offset+a[1].col}return n.offset+a[3].col}else if(a[0].line===a[1].line){return n.offset+n.indent+a[0].col}else{var f=a.slice(2);for(var l=0;l")};Si.prototype.match=function(e){return e.match(this.pattern)};function ji(){for(var e=arguments.length,t=new Array(e),r=0;r")};Ci.Pattern=ji;Ci.Ahead=Si;var Bi=/^[[(]$/;var Ii=/^[\])]$/;var Pi=/[^()[\]]/;var Ni=new Si(/[^)\]]/);var Ti=Symbol["for"]("*");var Li=new ji([Bi,Ti,Ii],[Pi],"+");var Mi=new ji([Bi,Ti,Ii],"+");var Ri=new ji([Symbol["for"]("symbol")],"?");var qi=new ji([Symbol["for"]("symbol")],"*");var Ui=[Bi,qi,Ii];var zi=new ji([Bi,Symbol["for"]("symbol"),Ti,Ii],"+");var Vi=Ki("syntax-rules");var $i=Ki("define","lambda","define-macro","syntax-rules");var Yi=/^(?!.*\b(?:[()[\]]|define(?:-macro)?|let(?:\*|rec|-env|-syntax|)?|lambda|syntax-rules)\b).*$/;var Ji=/^(?:#:)?(let(?:\*|rec|-env|-syntax)?)$/;function Ki(){for(var e=arguments.length,t=new Array(e),r=0;r0&&!o[e]){o[e]=Ai(u,e)}});var s=Lr(i),c;try{for(s.s();!(c=s.n()).done;){var f=b(c.value,3),l=f[0],h=f[1],_=f[2];h=h.valueOf();var p=h>0?o[h]:u;var d=p.filter(function(e){return e.trim()&&!ai(e)});var v=r(p);var y=Oi(l,d);var m=n.slice(a).find(function(e){return e.trim()&&!ai(e)});if(y&&(_ instanceof Si&&_.match(m)||!_)){var g=a-v;if(n[g]!=="\n"){if(!n[g].trim()){n[g]="\n"}else{n.splice(g,0,"\n");a++}}a+=v;continue e}}}catch(e){s.e(e)}finally{s.f()}}this.__code__=n.join("");return this};Ci.prototype._spaces=function(e){return" ".repeat(e)};Ci.prototype.format=function e(t){var r=this.__code__.replace(/[ \t]*\n[ \t]*/g,"\n ");var n=Kn(r,true);var i=this._options(t);var a=0;var u=0;for(var o=0;o0){n=Math.floor(t()*r);r--;var i=[e[n],e[r]];e[r]=i[0];e[n]=i[1]}return e}function Zi(){}Zi.prototype.toString=function(){return"()"};Zi.prototype.valueOf=function(){return undefined};Zi.prototype.serialize=function(){return 0};Zi.prototype.to_object=function(){return{}};Zi.prototype.append=function(e){return new ae(e,ie)};Zi.prototype.to_array=function(){return[]};var ie=new Zi;function ae(e,t){if(typeof this!=="undefined"&&this.constructor!==ae||typeof this==="undefined"){return new ae(e,t)}this.car=e;this.cdr=t}function Xi(a,u){return function e(t){A(a,t,["pair","nil"]);if(ue(t)){return[]}var r=[];var n=t;while(true){if(oe(n)){if(n.have_cycles("cdr")){break}var i=n.car;if(u&&oe(i)){i=this.get(a).call(this,i)}r.push(i);n=n.cdr}else if(ue(n)){break}else{throw new Error("".concat(a,": can't convert improper list"))}}return r}}ae.prototype.flatten=function(){return ae.fromArray(Hi(this.to_array()))};ae.prototype.length=function(){var e=0;var t=this;while(true){if(!t||ue(t)||!oe(t)||t.have_cycles("cdr")){break}e++;t=t.cdr}return e};ae.match=function(e,t){if(e instanceof ne){return ne.is(e,t)}else if(oe(e)){return ae.match(e.car,t)||ae.match(e.cdr,t)}else if(Array.isArray(e)){return e.some(function(e){return ae.match(e,t)})}else if(ta(e)){return Object.values(e).some(function(e){return ae.match(e,t)})}return false};ae.prototype.find=function(e){return ae.match(this,e)};ae.prototype.clone=function(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var n=new Map;function i(e){if(oe(e)){if(n.has(e)){return n.get(e)}var t=new ae;n.set(e,t);if(r){t.car=i(e.car)}else{t.car=e.car}t.cdr=i(e.cdr);t[lu]=e[lu];return t}return e}return i(this)};ae.prototype.last_pair=function(){var e=this;while(true){if(!oe(e.cdr)){return e}if(e.have_cycles("cdr")){break}e=e.cdr}};ae.prototype.to_array=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var t=[];if(oe(this.car)){if(e){t.push(this.car.to_array())}else{t.push(this.car)}}else{t.push(this.car.valueOf())}if(oe(this.cdr)){t=t.concat(this.cdr.to_array(e))}return t};ae.fromArray=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(oe(e)||r&&e instanceof Array&&e[cu]){return e}if(t===false){var n=ie;for(var i=e.length;i--;){n=new ae(e[i],n)}return n}if(e.length&&!(e instanceof Array)){e=ee(e)}var a=ie;var u=e.length;while(u--){var o=e[u];if(o instanceof Array){o=ae.fromArray(o,t,r)}else if(typeof o==="string"){o=x(o)}else if(typeof o==="number"&&!Number.isNaN(o)){o=B(o)}a=new ae(o,a)}return a};ae.prototype.to_object=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var t=this;var r={};while(true){if(oe(t)&&oe(t.car)){var n=t.car;var i=n.car;if(i instanceof ne){i=i.__name__}if(i instanceof x){i=i.valueOf()}var a=n.cdr;if(oe(a)){a=a.to_object(e)}if(Wa(a)){if(!e){a=a.valueOf()}}r[i]=a;t=t.cdr}else{break}}return r};ae.fromPairs=function(e){return e.reduce(function(e,t){return new ae(new ae(new ne(t[0]),t[1]),e)},ie)};ae.fromObject=function(t){var e=Object.keys(t).map(function(e){return[e,t[e]]});return ae.fromPairs(e)};ae.prototype.reduce=function(e){var t=this;var r=ie;while(true){if(!ue(t)){r=e(r,t.car);t=t.cdr}else{break}}return r};ae.prototype.reverse=function(){if(this.have_cycles()){throw new Error("You can't reverse list that have cycles")}var e=this;var t=ie;while(!ue(e)){var r=e.cdr;e.cdr=t;t=e;e=r}return t};ae.prototype.transform=function(n){function i(e){if(oe(e)){if(e.replace){delete e.replace;return e}var t=n(e.car);if(oe(t)){t=i(t)}var r=n(e.cdr);if(oe(r)){r=i(r)}return new ae(t,r)}return e}return i(this)};ae.prototype.map=function(e){if(typeof this.car!=="undefined"){return new ae(e(this.car),ue(this.cdr)?ie:this.cdr.map(e))}else{return ie}};var ea=new Map;function ta(e){return e&&_(e)==="object"&&e.constructor===Object}var ra=Object.getOwnPropertyNames(Array.prototype);var na=[];ra.forEach(function(e){na.push(Array[e],Array.prototype[e])});function ia(e){e=eu(e);return na.includes(e)}function aa(e){return d(e)&&(bu(e)||e.__doc__)}function ua(e){var r=e.constructor||Object;var n=ta(e);var i=d(e[Symbol.asyncIterator])||d(e[Symbol.iterator]);var a;if(ea.has(r)){a=ea.get(r)}else{ea.forEach(function(e,t){t=eu(t);if(r===t&&(t===Object&&n&&!i||t!==Object)){a=e}})}return a}var oa=new Map;[[true,"#t"],[false,"#f"],[null,"#null"],[undefined,"#void"]].forEach(function(e){var t=b(e,2),r=t[0],n=t[1];oa.set(r,n)});function sa(r){if(r&&_(r)==="object"){var n={};var e=Object.getOwnPropertySymbols(r);e.forEach(function(e){var t=e.toString().replace(/Symbol\(([^)]+)\)/,"$1");n[t]=pa(r[e])});var t=Object.getOwnPropertyNames(r);t.forEach(function(e){var t=r[e];if(t&&_(t)==="object"&&t.constructor===Object){n[e]=sa(t)}else{n[e]=pa(t)}});return n}return r}function ca(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function fa(e,t){return e.hasOwnProperty(t)&&d(e.toString)}function la(e){if(xu(e)){return"#"}var t=e.prototype&&e.prototype.constructor;if(d(t)&&bu(t)){if(e[hu]&&t.hasOwnProperty("__name__")){var r=t.__name__;if(x.isString(r)){r=r.toString();return"#")}return"#"}}if(e.hasOwnProperty("__name__")){var n=e.__name__;if(_(n)==="symbol"){n=Hn(n)}if(typeof n==="string"){return"#")}}if(fa(e,"toString")){return e.toString()}else if(e.name&&!bu(e)){return"#")}else{return"#"}}var ha=new Map;[[Error,function(e){return e.message}],[ae,function(e,t){var r=t.quote,n=t.skip_cycles,i=t.pair_args;if(!n){e.mark_cycles()}return e.toString.apply(e,[r].concat(ee(i)))}],[h,function(e,t){var r=t.quote;if(r){return e.toString()}return e.valueOf()}],[x,function(e,t){var r=t.quote;e=e.toString();if(r){return JSON.stringify(e).replace(/\\n/g,"\n")}return e}],[RegExp,function(e){return"#"+e.toString()}]].forEach(function(e){var t=b(e,2),r=t[0],n=t[1];ha.set(r,n)});var _a=[ne,q,go,Zu,Xu,F,ei];function pa(e,t,r){if(typeof jQuery!=="undefined"&&e instanceof jQuery.fn.init){return"#"}if(oa.has(e)){return oa.get(e)}if(Na(e)){return"#"}if(e){var n=e.constructor;if(ha.has(n)){for(var i=arguments.length,a=new Array(i>3?i-3:0),u=3;u"}if(e===null){return"null"}if(d(e)){if(d(e.toString)&&e.hasOwnProperty("toString")){return e.toString().valueOf()}return la(e)}if(_(e)==="object"){var f=e.constructor;if(!f){f=Object}var l;if(typeof f.__class__==="string"){l=f.__class__}else{var h=ua(e);if(h){if(d(h)){return h(e,t)}else{throw new Error("toString: Invalid repr value")}}l=f.name}if(d(e.toString)&&e.hasOwnProperty("toString")){return e.toString().valueOf()}if(Ko(e)==="instance"){if(bu(f)&&f.__name__){l=f.__name__.valueOf();if(_(l)==="symbol"){l=l.toString().replace(/^Symbol\((?:#:)?([^\)]+)\)$/,"$1")}}else if(!xu(f)){l="instance"}}if(Ya(e,Symbol.iterator)){if(l){return"#")}return"#"}if(Ya(e,Symbol.asyncIterator)){if(l){return"#")}return"#"}if(l!==""){return"#<"+l+">"}return"#"}if(typeof e!=="string"){return e.toString()}return e}ae.prototype.mark_cycles=function(){va(this);return this};ae.prototype.have_cycles=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(!e){return this.have_cycles("car")||this.have_cycles("cdr")}return!!(this[lu]&&this[lu][e])};ae.prototype.is_cycle=function(){return da(this)};function da(e){if(!oe(e)){return false}if(e.have_cycles()){return true}return da(e.car,fn)||da(e.cdr,fn)}function va(e){var t=[];var i=[];var a=[];function u(e){if(!t.includes(e)){t.push(e)}}function o(e,t,r,n){if(oe(r)){if(n.includes(r)){if(!a.includes(r)){a.push(r)}if(!e[lu]){e[lu]={}}e[lu][t]=r;if(!i.includes(e)){i.push(e)}return true}}}var s=Yn(function e(t,r){if(oe(t)){delete t[fu];delete t[lu];u(t);r.push(t);var n=o(t,"car",t.car,r);var i=o(t,"cdr",t.cdr,r);if(!n){s(t.car,r.slice())}if(!i){return new $n(function(){return e(t.cdr,r.slice())})}}});function r(e,t){if(oe(e[lu][t])){var r=n.indexOf(e[lu][t]);e[lu][t]="#".concat(r,"#")}}s(e,[]);var n=t.filter(function(e){return a.includes(e)});n.forEach(function(e,t){e[fu]="#".concat(t,"=")});i.forEach(function(e){r(e,"car");r(e,"cdr")})}ae.prototype.toString=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.nested,n=r===void 0?false:r;var i=[];if(this[fu]){i.push(this[fu]+"(")}else if(!n){i.push("(")}var a;if(this[lu]&&this[lu].car){a=this[lu].car}else{a=pa(this.car,e,true)}if(a!==undefined){i.push(a)}if(oe(this.cdr)){if(this[lu]&&this[lu].cdr){i.push(" . ");i.push(this[lu].cdr)}else{if(this.cdr[fu]){i.push(" . ")}else{i.push(" ")}var u=this.cdr.toString(e,{nested:true});i.push(u)}}else if(!ue(this.cdr)){i=i.concat([" . ",pa(this.cdr,e,true)])}if(!n||this[fu]){i.push(")")}return i.join("")};ae.prototype.set=function(e,t){this[e]=t;if(oe(t)){this.mark_cycles()}};ae.prototype.append=function(e){if(e instanceof Array){return this.append(ae.fromArray(e))}var t=this;if(t.car===undefined){if(oe(e)){this.car=e.car;this.cdr=e.cdr}else{this.car=e}}else if(!ue(e)){while(true){if(oe(t)&&!ue(t.cdr)){t=t.cdr}else{break}}t.cdr=e}return this};ae.prototype.serialize=function(){return[this.car,this.cdr]};ae.prototype[Symbol.iterator]=function(){var r=this;return{next:function e(){var t=r;r=t.cdr;if(ue(t)){return{value:undefined,done:true}}else{return{value:t.car,done:false}}}}};function ya(e){return e<0?-e:e}function ma(e,t){var r=V(t),n=r[0],i=r.slice(1);while(i.length>0){var a=i,u=b(a,1),o=u[0];if(!e(n,o)){return false}var s=i;var c=V(s);n=c[0];i=c.slice(1)}return true}function ga(e,t){if(d(e)){return d(t)&&eu(e)===eu(t)}else if(e instanceof B){if(!(t instanceof B)){return false}var r;if(e.__type__===t.__type__){if(e.__type__==="complex"){r=e.__im__.__type__===t.__im__.__type__&&e.__re__.__type__===t.__re__.__type__}else{r=true}if(r&&e.cmp(t)===0){if(e.valueOf()===0){return Object.is(e.valueOf(),t.valueOf())}return true}}return false}else if(typeof e==="number"){if(typeof t!=="number"){return false}if(Number.isNaN(e)){return Number.isNaN(t)}if(e===Number.NEGATIVE_INFINITY){return t===Number.NEGATIVE_INFINITY}if(e===Number.POSITIVE_INFINITY){return t===Number.POSITIVE_INFINITY}return ga(B(e),B(t))}else if(e instanceof h){if(!(t instanceof h)){return false}return e.__char__===t.__char__}else{return e===t}}function ba(e,t){if(Ko(e)!==Ko(t)){return false}if(!wa(e)){return false}if(e instanceof RegExp){return e.source===t.source}if(e instanceof x){return e.valueOf()===t.valueOf()}return ga(e,t)}function wa(e){return e instanceof ne||x.isString(e)||ue(e)||e===null||e instanceof h||e instanceof B||e===true||e===false}var Da=function(){if(Math.trunc){return Math.trunc}else{return function(e){if(e===0){return 0}else if(e<0){return Math.ceil(e)}else{return Math.floor(e)}}}}();function q(e,t,r,n){if(typeof this!=="undefined"&&this.constructor!==q||typeof this==="undefined"){return new q(e,t)}A("Macro",e,"string",1);A("Macro",t,"function",2);if(r){if(n){this.__doc__=r}else{this.__doc__=Fi(r)}}this.__name__=e;this.__fn__=t}q.defmacro=function(e,t,r,n){var i=new q(e,t,r,n);i.__defmacro__=true;return i};q.prototype.invoke=function(e,t,r){var n=t.env,i=_e(t,Or);var a=te(te({},i),{},{macro_expand:r});var u=this.__fn__.call(n,e,a,this.__name__);return u};q.prototype.toString=function(){return"#")};var xa="define-macro";var Ea=-1e4;function Fa(c){return function(){var r=H(O.mark(function e(r,m){var a,g,n,i,u,b,w,D,x,E,F,A,o,k,s;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:s=function e(){s=H(O.mark(function e(r,n,i){var a,u,o,s,c,f,l,h,_,p,d,v,y;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!(oe(r)&&r.car instanceof ne)){t.next=50;break}if(!r[cu]){t.next=3;break}return t.abrupt("return",r);case 3:a=r.car.valueOf();u=i.get(r.car,{throwError:false});o=b(r.car);s=o||w(u,r)||D(u);if(!(s&&oe(r.cdr.car))){t.next=28;break}if(!o){t.next=15;break}g=E(r.cdr.car);t.next=12;return A(r.cdr.car,n);case 12:c=t.sent;t.next=17;break;case 15:g=x(r.cdr.car);c=r.cdr.car;case 17:t.t0=ae;t.t1=r.car;t.t2=ae;t.t3=c;t.next=23;return k(r.cdr.cdr,n,i);case 23:t.t4=t.sent;t.t5=new t.t2(t.t3,t.t4);return t.abrupt("return",new t.t0(t.t1,t.t5));case 28:if(!F(a,u)){t.next=50;break}f=u instanceof Aa?r:r.cdr;t.next=32;return u.invoke(f,te(te({},m),{},{env:i}),true);case 32:l=t.sent;if(!(u instanceof Aa)){t.next=41;break}h=l,_=h.expr,p=h.scope;if(!oe(_)){t.next=40;break}if(!(n!==-1&&n<=1||n")}return"#"};var ka=fe(function e(t){Q(this,e);s(this,"_syntax",t,{hidden:true});s(this._syntax,"_param",true,{hidden:true})});Aa.Parameter=ka;function Oa(e,t,W,G){var r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};var H={"...":{symbols:{},lists:[]},symbols:{}};var Q=r.expansion,Z=r.define;re(W);function X(t,e){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var n=r.ellipsis,i=n===void 0?false:n,a=r.trailing,N=a===void 0?false:a,u=r.pattern_names,o=u===void 0?[]:u;re({code:e,pattern:t});if(wa(t)&&!(t instanceof ne)){return ba(t,e)}if(t instanceof ne){var s=t.literal();if(W.includes(s)){if(!ne.is(e,s)&&!ne.is(t,e)){return false}var c=Q.ref(s);return!c||c===Z||c===se}}if(Array.isArray(t)&&Array.isArray(e)){re("<<< a 1");if(t.length===0&&e.length===0){return true}if(ne.is(t[1],G)){if(t[0]instanceof ne){var f=t[0].valueOf();re("<<< a 2 "+i);if(i){var l=e.length-2;var T=l>0?e.slice(0,l):e;var h=ae.fromArray(T,false);if(!H["..."].symbols[f]){H["..."].symbols[f]=new ae(h,ie)}else{H["..."].symbols[f].append(new ae(h,ie))}}else{H["..."].symbols[f]=ae.fromArray(e,false)}}else if(Array.isArray(t[0])){re("<<< a 3");var L=ee(o);var M=te(te({},r),{},{pattern_names:L,ellipsis:true});if(!e.every(function(e){return X(t[0],e,M)})){return false}}if(t.length>2){var _=t.slice(2);return X(_,e.slice(-_.length),r)}return true}var p=X(t[0],e[0],r);re({first:p,pattern:t[0],code:e[0]});var d=X(t.slice(1),e.slice(1),r);re({first:p,rest:d});return p&&d}if(oe(t)&&oe(t.car)&&oe(t.car.cdr)&&ne.is(t.car.cdr.car,G)){re(">> 0");if(ue(e)){re({pattern:t});if(t.car.car instanceof ne){var v=t.car.car.valueOf();if(H["..."].symbols[v]){throw new Error("syntax: named ellipsis can only "+"appear onces")}H["..."].symbols[v]=e}}}if(oe(t)&&oe(t.cdr)&&ne.is(t.cdr.car,G)){re(">> 1 (a)");if(!ue(t.cdr.cdr)){if(oe(t.cdr.cdr)){re(">> 1 (b)");var R=t.cdr.cdr.length();var y=!ue(t.last_pair().cdr);if(!oe(e)){return false}var m=e.length();var g=e;var q=y?1:1;while(m-q>R){g=g.cdr;m--}var U=g.cdr;g.cdr=ie;var z=te(te({},r),{},{trailing:y});if(!X(t.cdr.cdr,U,z)){return false}}}if(t.car instanceof ne){var b=t.car.__name__;if(H["..."].symbols[b]&&!o.includes(b)&&!i){throw new Error("syntax: named ellipsis can only appear onces")}re(">> 1 (next)");if(ue(e)){re(">> 2");if(i){re("NIL");H["..."].symbols[b]=ie}else{re("NULL");H["..."].symbols[b]=null}}else if(oe(e)&&(oe(e.car)||ue(e.car))){re(">> 3 "+i);if(i){if(H["..."].symbols[b]){var w=H["..."].symbols[b];if(ue(w)){w=new ae(ie,new ae(e,ie))}else{w=w.append(new ae(e,ie))}H["..."].symbols[b]=w}else{H["..."].symbols[b]=new ae(e,ie)}}else{re(">> 4");H["..."].symbols[b]=new ae(e,ie)}}else{re(">> 6");if(oe(e)){re(">> 7 "+i);if(!oe(e.cdr)&&!ue(e.cdr)){re(">> 7 (b)");if(ue(t.cdr.cdr)){return false}else if(!H["..."].symbols[b]){H["..."].symbols[b]=new ae(e.car,ie);return X(t.cdr.cdr,e.cdr,r)}}var D=e.last_pair();re({last_pair:D});if(!ue(D.cdr)){re(">> 7 (c)");if(ue(t.cdr.cdr)){return false}else{re(">> 7 (d)");var x=e.clone();x.last_pair().cdr=ie;H["..."].symbols[b]=x;return X(t.cdr.cdr,D.cdr,r)}}o.push(b);if(!H["..."].symbols[b]){re(">> 7 (e)");H["..."].symbols[b]=new ae(e,ie)}else{re(">> 7 (f)");var V=H["..."].symbols[b];H["..."].symbols[b]=V.append(new ae(e,ie))}re({IIIIII:H["..."].symbols[b]})}else if(t.car instanceof ne&&oe(t.cdr)&&ne.is(t.cdr.car,G)){re(">> 8");H["..."].symbols[b]=null;return X(t.cdr.cdr,e,r)}else{re(">> 9");return false}}return true}else if(oe(t.car)){var E=ee(o);if(ue(e)){re(">> 10");H["..."].lists.push(ie);return true}re(">> 11");var F=e;var $=te(te({},r),{},{pattern_names:E,ellipsis:true});while(oe(F)){if(!X(t.car,F.car,$)){return false}F=F.cdr}return true}if(Array.isArray(t.car)){var E=ee(o);var A=e;var Y=te(te({},r),{},{pattern_names:E,ellipsis:true});while(oe(A)){if(!X(t.car,A.car,Y)){return false}A=A.cdr}return true}return false}if(t instanceof ne){if(ne.is(t,G)){throw new Error("syntax: invalid usage of ellipsis")}re(">> 12");var k=t.__name__;if(W.includes(k)){return true}if(i){var O,C;re(H["..."].symbols[k]);(C=(O=H["..."].symbols)[k])!==null&&C!==void 0?C:O[k]=[];H["..."].symbols[k].push(e)}else{H.symbols[k]=e}return true}if(oe(t)&&oe(e)){re(">> 13");re({a:13,code:e,pattern:t});var S=t.car instanceof ne&&t.cdr instanceof ne;if(N&&S){re(">> 13 (a)");if(!ue(e.cdr)){return false}var J=t.car.valueOf();var K=t.cdr.valueOf();H.symbols[J]=e.car;H.symbols[K]=ie;return true}if(ue(e.cdr)){re(">> 13 (b)");if(S){if(!X(t.car,e.car,r)){return false}re(">> 14");var j=t.cdr.valueOf();if(!(j in H.symbols)){H.symbols[j]=ie}j=t.car.valueOf();if(!(j in H.symbols)){H.symbols[j]=e.car}return true}}re({pattern:t,code:e});if(oe(t.cdr)&&oe(t.cdr.cdr)&&t.cdr.car instanceof ne&&ne.is(t.cdr.cdr.car,G)&&oe(t.cdr.cdr.cdr)&&!ne.is(t.cdr.cdr.cdr.car,G)&&X(t.car,e.car,r)&&X(t.cdr.cdr.cdr,e.cdr,te(te({},r),{},{trailing:true}))){var B=t.cdr.car.__name__;re({pattern:t,code:e,name:B});if(W.includes(B)){return true}H["..."].symbols[B]=null;return true}re("recur");re({pattern:t,code:e});var I=X(t.car,e.car,r);var P=X(t.cdr,e.cdr,r);re({$car_code:e.car,$car_pattern:t.car,car:I,$cdr_code:e.cdr,$cdr_pattern:t.cdr,cdr:P});if(I&&P){return true}}else if(ue(t)&&(ue(e)||e===undefined)){return true}else if(oe(t.car)&&ne.is(t.car.car,G)){throw new Error("syntax: invalid usage of ellipsis")}else{return false}}if(X(e,t)){return H}}function Ca(e,i){function a(t){if(oe(t)){if(!i.length){return t}var e=a(t.car);var r=a(t.cdr);return new ae(e,r)}else if(t instanceof ne){var n=i.find(function(e){return e.gensym===t});if(n){return ne(n.name)}return t}else{return t}}return a(e)}function Sa(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var B=e.bindings,t=e.expr,I=e.scope,u=e.symbols,f=e.names,P=e.ellipsis;var l={};function o(e){if(e instanceof ne){return true}return["string","symbol"].includes(_(e))}function N(e){if(!o(e)){var t=Ko(e);throw new Error("syntax: internal error, need symbol got ".concat(t))}var r=e.valueOf();if(r===P){throw new Error("syntax: internal error, ellipis not transformed")}var n=_(r);if(["string","symbol"].includes(n)){if(r in B.symbols){return B.symbols[r]}else if(n==="string"&&r.match(/\./)){var i=r.split(".");var a=i[0];if(a in B.symbols){return ae.fromArray([ne("."),B.symbols[a]].concat(i.slice(1).map(function(e){return x(e)})))}}}if(u.includes(r)){return e}return s(r,e)}function s(e,t){if(!l[e]){var r=I.ref(e);if(_(e)==="symbol"&&!r){e=t.literal()}if(l[e]){return l[e]}var n=Zn(e);if(r){var i=I.get(e);I.set(n,i)}else{var a=I.get(e,{throwError:false});if(typeof a!=="undefined"){I.set(n,a)}}f.push({name:e,gensym:n});l[e]=n;if(typeof e==="string"&&e.match(/\./)){var u=e.split(".").filter(Boolean),o=V(u),s=o[0],c=o.slice(1);if(l[s]){mu(n,"__object__",[l[s]].concat(ee(c)))}}}return l[e]}function T(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:function(){};var i=r.nested;re({bindings:t,expr:e});if(Array.isArray(e)&&!e.length){return e}if(e instanceof ne){var a=e.valueOf();if(Qn(e)&&!t[a]);re("[t 1");if(t[a]){if(oe(t[a])){var u=t[a],o=u.car,s=u.cdr;if(i){var c=o.car,f=o.cdr;if(!ue(f)){n(a,new ae(f,ie))}return c}if(!ue(s)){n(a,s)}return o}else if(t[a]instanceof Array){n(a,t[a].slice(1));return t[a][0]}}return N(e)}var l=Array.isArray(e);if(oe(e)||l){var h=l?e[0]:e.car;var _=l?e[1]:oe(e.cdr)&&e.cdr.car;if(h instanceof ne&&ne.is(_,P)){l?e.slice(2):e.cdr.cdr;re("[t 2");var p=h.valueOf();var d=t[p];if(d===null){return}else if(p in t){re({name:p,binding:t[p]});if(oe(d)){re("[t 2 Pair "+i);var v=d.car,y=d.cdr;var m=l?e.slice(2):e.cdr.cdr;if(i){if(!ue(y)){re("|| next 1");n(p,y)}if(l&&m.length||!ue(m)&&!l){var g=T(m,t,r,n);if(l){return v.concat(g)}else if(oe(v)){return v.append(g)}else{re("UNKNOWN")}}return v}else if(oe(v)){if(!ue(v.cdr)){re("|| next 2");n(p,new ae(v.cdr,y))}return new mo(v.car)}else if(ue(y)){return v}else{var b=e.last_pair();if(b.cdr instanceof ne){re("|| next 3");n(p,d.last_pair());return v}}}else if(d instanceof Array){re("[t 2 Array "+i);if(i){n(p,d.slice(1));return ae.fromArray(d)}else{var w=d.slice(1);if(w.length){n(p,w)}return d[0]}}else{return d}}}re("[t 3 recur ",e);var D=l?e.slice(1):e.cdr;var x=T(h,t,r,n);var E=T(D,t,r,n);re({head:x,rest:E});if(l){return[x].concat(E)}return new ae(x,E)}return e}function L(t,r){var e=Object.values(t);var n=Object.getOwnPropertySymbols(t);if(n.length){e.push.apply(e,ee(n.map(function(e){return t[e]})))}return e.length&&e.every(function(e){if(e===null){return!r}return oe(e)||ue(e)||Array.isArray(e)&&e.length})}function M(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function R(i){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},t=e.disabled;re("traverse>> ",i);var a=Array.isArray(i);if(a&&i.length===0){return i}if(oe(i)||a){re(">> 0");var r=a?i[0]:i.car;var n,u;if(a){n=i[1];u=i.slice(2)}else if(oe(i.cdr)){n=i.cdr.car;u=i.cdr.cdr}re({first:r,second:n,rest_second:u});if(!t&&oe(r)&&ne.is(r.car,P)){return new ae(r.cdr.car,R(i.cdr))}if(n&&ne.is(n,P)&&!t){re(">> 1");var o=B["..."].symbols;var s=Object.values(o);if(s.length&&s.every(function(e){return e===null})){re(">>> 1 (a)");return R(u,{disabled:t})}var c=M(o);var f=r instanceof ne&&ne.is(u.car,P);if(oe(r)||f){re(">>> 1 (b)");if(ue(B["..."].lists[0])){if(!f){return R(u,{disabled:t})}re(u);return ie}var l=r;if(f){re(">>> 1 (c)");l=new ae(r,new ae(n,ie))}re(">> 2");var h;if(c.length){re(">> 2 (a)");var _=te({},o);h=a?[]:ie;var p=function e(){re({bind:_});if(!L(_)){return 1}var n={};var t=function e(t,r){n[t]=r};var r=T(l,_,{nested:true},t);if(r!==undefined){if(r instanceof mo){r.valueOf(),U("car")}if(f){if(a){if(Array.isArray(r)){var i;(i=h).push.apply(i,ee(r))}else{re("ZONK {1}")}}else{if(ue(h)){h=r}else{h=h.append(r)}}}else if(a){h.push(r)}else{h=new ae(r,h)}}_=n};while(true){if(p())break}if(!ue(h)&&!f&&!a){h=h.reverse()}if(a){if(u){re({rest_second:u,expr:i});var d=R(u,{disabled:t});return h.concat(d)}return h}if(!ue(i.cdr.cdr)&&!ne.is(i.cdr.cdr.car,P)){var v=R(i.cdr.cdr,{disabled:t});return h.append(v)}return h}else{re(">> 3");var y=T(r,o,{nested:true});if(y){if(y instanceof mo){y.valueOf(),U("car")}return new ae(y,ie)}return ie}}else if(r instanceof ne){re(">> 4");if(ne.is(u.car,P)){re(">> 4 (a)")}else{re(">> 4 (b)")}var m=r.__name__;var g=le({},m,o[m]);re({bind:g});var b=o[m]===null;var w=a?[]:ie;var D=function e(){if(!L(g,true)){re({bind:g});return 1}var n={};var t=function e(t,r){n[t]=r};var r=T(i,g,{nested:false},t);re({value:r});if(typeof r!=="undefined"){if(r instanceof mo){r=r.valueOf()}if(a){w.push(r)}else{w=new ae(r,w)}}g=n};while(true){if(D())break}if(!ue(w)&&!a){w=w.reverse()}if(oe(i.cdr)){if(oe(i.cdr.cdr)||i.cdr.cdr instanceof ne){var x=R(i.cdr.cdr,{disabled:t});re({node:x});if(b){return x}if(ue(w)){w=x}else{w.append(x)}re({result:w,node:x})}}re("<<<< 2");re({result:w});return w}}var E=R(r,{disabled:t});var F;var A;if(r instanceof ne){var k=I.get(r,{throwError:false});A=k instanceof q&&k.__name__==="syntax-rules"}if(A){if(i.cdr.car instanceof ne){F=new ae(R(i.cdr.car,{disabled:t}),new ae(i.cdr.cdr.car,R(i.cdr.cdr.cdr,{disabled:t})))}else{F=new ae(i.cdr.car,R(i.cdr.cdr,{disabled:t}))}re("REST >>>> ",F)}else{F=R(i.cdr,{disabled:t})}re({a:true,car:pa(i.car),cdr:pa(i.cdr),head:pa(E),rest:pa(F)});return new ae(E,F)}if(i instanceof ne){if(t&&ne.is(i,P)){return i}var O=Object.keys(B["..."].symbols);var C=i.literal();if(O.includes(C)){var S="missing ellipsis symbol next to name `".concat(C,"'");throw new Error("syntax-rules: ".concat(S))}var j=N(i);if(typeof j!=="undefined"){return j}}return i}return R(t,{})}function ja(e){return Va(e)||ue(e)||e===null}function ue(e){return e===ie}function d(e){return typeof e==="function"&&typeof e.bind==="function"}function Ba(e){return hi.includes(e)}function Ia(e){return e===false||e===null}function Pa(e){return typeof e==="string"}function Na(e){return e&&_(e)==="object"&&e.hasOwnProperty&&e.hasOwnProperty("constructor")&&typeof e.constructor==="function"&&e.constructor.prototype===e}function Ta(e){return e instanceof as}function La(e){return e instanceof ns}function Ma(e){return e instanceof rs}function oe(e){return e instanceof ae}function Ra(e){return e instanceof F}function qa(e){return d(e)||Ta(e)||Ma(e)||Ua(e)}function Ua(e){return e instanceof q||e instanceof ka}function za(e){if(e instanceof ei){return false}if(e instanceof Promise){return true}return!!e&&d(e.then)}function Va(e){return typeof e==="undefined"}function $a(e){return Object.getPrototypeOf(e)}function Ya(e,t){if(Ga(e,t)||Ga($a(e),t)){return d(e[t])}}function Ja(e){if(!e){return false}if(_(e)!=="object"){return false}if(e.__instance__){e.__instance__=false;return e.__instance__}return false}function Ka(e){var t=_(e);return["string","function"].includes(t)||_(e)==="symbol"||e instanceof ei||e instanceof ne||e instanceof B||e instanceof x||e instanceof RegExp}function Wa(e){return e instanceof B||e instanceof x||e instanceof h}function Ga(e,t){if(e===null){return false}return _(e)==="object"&&t in Object.getOwnPropertySymbols(e)}function Ha(e){switch(_(e)){case"string":return x(e);case"bigint":return B(e);case"number":if(Number.isNaN(e)){return ko}else{return B(e)}}return e}function Qa(r,n){var e=Object.getOwnPropertyNames(r);var t=Object.getOwnPropertySymbols(r);var i={};e.concat(t).forEach(function(e){var t=n(r[e]);i[e]=t});return i}function Za(t){var e=[x,B,h].some(function(e){return t instanceof e});if(e){return t.valueOf()}if(t instanceof Array){return t.map(Za)}if(t instanceof ei){delete t.then}if(ta(t)){return Qa(t,Za)}return t}function Xa(e,t){if(oe(e)){e.mark_cycles();return bo(e)}if(d(e)){if(t){return tu(e,t)}}return Ha(e)}function eu(e){if(nu(e)){return e[su]}return e}function tu(e,t){if(e[Symbol["for"]("__bound__")]){return e}var r=e.bind(t);var n=Object.getOwnPropertyNames(e);var i=Lr(n),a;try{for(i.s();!(a=i.n()).done;){var u=a.value;if(yu(u)){try{r[u]=e[u]}catch(e){}}}}catch(e){i.e(e)}finally{i.f()}mu(r,"__fn__",e);mu(r,"__context__",t);mu(r,"__bound__",true);if(xu(e)){mu(r,"__native__",true)}if(ta(t)&&bu(e)){mu(r,"__method__",true)}r.valueOf=function(){return e};return r}function ru(e){return nu(e)&&e[Symbol["for"]("__context__")]===Object}function nu(e){return!!(d(e)&&e[su])}function iu(e){if(d(e)){var t=e[ou];if(t&&(t===Vs||t.constructor&&t.constructor.__class__)){return true}}return false}function au(e){return e instanceof Zu||e instanceof Xu}function uu(e){if(d(e)){if(au(e[ou])){return true}}return false}var ou=Symbol["for"]("__context__");var su=Symbol["for"]("__fn__");var cu=Symbol["for"]("__data__");var fu=Symbol["for"]("__ref__");var lu=Symbol["for"]("__cycles__");var hu=Symbol["for"]("__class__");var _u=Symbol["for"]("__method__");var pu=Symbol["for"]("__prototype__");var du=Symbol["for"]("__lambda__");var vu=["name","length","caller","callee","arguments","prototype"];function yu(e){return!vu.includes(e)}function mu(e,t,r){Object.defineProperty(e,Symbol["for"](t),{get:function e(){return r},set:function e(){},configurable:false,enumerable:false})}function gu(t,r){try{Object.defineProperty(t,"length",{get:function e(){return r}});return t}catch(e){var n=new Array(r).fill(0).map(function(e,t){return"a"+t}).join(",");var i=new Function("f","return function(".concat(n,") {\n return f.apply(this, arguments);\n };"));return i(t)}}function bu(e){return e&&e[du]}function wu(e){return e&&e[_u]}function Du(e){return bu(e)&&!e[pu]&&!wu(e)&&!uu(e)}function xu(e){var t=Symbol["for"]("__native__");return d(e)&&e.toString().match(/\{\s*\[native code\]\s*\}/)&&(e.name.match(/^bound /)&&e[t]===true||!e.name.match(/^bound /)&&!e[t])}function Eu(e){var w;switch(e){case Symbol["for"]("letrec"):w="letrec";break;case Symbol["for"]("let"):w="let";break;case Symbol["for"]("let*"):w="let*";break;default:throw new Error("Invalid let_macro value")}return q.defmacro(w,function(t,e){var f=e.dynamic_env;var l=e.error,r=e.macro_expand,h=e.use_dynamic;var _;if(t.car instanceof ne){if(!(oe(t.cdr.car)||ue(t.cdr.car))){throw new Error("let require list of pairs")}var n;if(ue(t.cdr.car)){_=ie;n=ie}else{n=t.cdr.car.map(function(e){return e.car});_=t.cdr.car.map(function(e){return e.cdr.car})}return new ae(ae.fromArray([ne("letrec"),[[t.car,ae(ne("lambda"),ae(n,t.cdr.cdr))]],t.car]),_)}else if(r){return}var p=this;_=se.get("list->array")(t.car);var d=p.inherit(w);var v,y;if(w==="let*"){y=d}else if(w==="let"){v=[]}var m=0;function g(){var e=Xn([d],t.cdr);return k(e,{env:d,dynamic_env:d,use_dynamic:h,error:l})}function b(e){if(e in d.__env__){throw new Error("Duplicated let variable ".concat(e))}}return function t(){var r=_[m++];f=w==="let*"?d:p;if(!r){if(v&&v.length){var e=v.map(function(e){return e.value});var n=e.filter(za);if(n.length){return ti(e).then(function(e){for(var t=0,r=e.length;t1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=t.error;var i=this;var a=this;var u=[];var o=e;while(oe(o)){u.push(k(o.car,{env:i,dynamic_env:a,use_dynamic:r,error:n}));o=o.cdr}var s=u.filter(za).length;if(s){return ti(u).then(c.bind(this))}else{return c.call(this,u)}})}function Au(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2?n-2:0),a=2;a1&&arguments[1]!==undefined?arguments[1]:null;return function(){for(var e=arguments.length,t=new Array(e),r=0;r1?e-1:0),r=1;r=o){return u.apply(n,i)}else{return a}}}();return a.apply(void 0,arguments)}}function Nu(n,i){A("limit",i,"function",2);return function(){for(var e=arguments.length,t=new Array(e),r=0;r1){e=e.toLowerCase();if(h.__names__[e]){t=e;e=h.__names__[e]}else{throw new Error("Internal: Unknown named character")}}else{t=h.__rev_names__[e]}Object.defineProperty(this,"__char__",{value:e,enumerable:true});if(t){Object.defineProperty(this,"__name__",{value:t,enumerable:true})}}h.__names__=cn;h.__rev_names__={};Object.keys(h.__names__).forEach(function(e){var t=h.__names__[e];h.__rev_names__[t]=e});h.prototype.toUpperCase=function(){return h(this.__char__.toUpperCase())};h.prototype.toLowerCase=function(){return h(this.__char__.toLowerCase())};h.prototype.toString=function(){return"#\\"+(this.__name__||this.__char__)};h.prototype.valueOf=h.prototype.serialize=function(){return this.__char__};function x(e){if(typeof this!=="undefined"&&!(this instanceof x)||typeof this==="undefined"){return new x(e)}if(e instanceof Array){this.__string__=e.map(function(e,t){A("LString",e,"character",t+1);return e.toString()}).join("")}else{this.__string__=e.valueOf()}}{var Tu=["length","constructor"];var Lu=Object.getOwnPropertyNames(String.prototype).filter(function(e){return!Tu.includes(e)});var Mu=function e(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r0){r.push(this.__string__.substring(0,e))}r.push(t);if(e1&&arguments[1]!==undefined?arguments[1]:false;if(e instanceof B){return e}if(typeof this!=="undefined"&&!(this instanceof B)||typeof this==="undefined"){return new B(e,t)}if(typeof e==="undefined"){throw new Error("Invalid LNumber constructor call")}var r=B.getType(e);if(B.types[r]){return B.types[r](e,t)}var n=e instanceof Array&&x.isString(e[0])&&B.isNumber(e[1]);if(e instanceof B){return B(e.value)}if(!B.isNumber(e)&&!n){throw new Error("You can't create LNumber from ".concat(Ko(e)))}if(e===null){e=0}var i;if(n){var a=e,u=b(a,2),o=u[0],s=u[1];if(o instanceof x){o=o.valueOf()}if(s instanceof B){s=s.valueOf()}var c=o.match(/^([+-])/);var f=false;if(c){o=o.replace(/^[+-]/,"");if(c[1]==="-"){f=true}}}if(Number.isNaN(e)){return g(e)}else if(n&&Number.isNaN(parseInt(o,s))){return ko}else if(typeof BigInt!=="undefined"){if(typeof e!=="bigint"){if(n){var l;switch(s){case 8:l="0o";break;case 16:l="0x";break;case 2:l="0b";break;case 10:l="";break}if(typeof l==="undefined"){var h=BigInt(s);i=ee(o).map(function(e,t){return BigInt(parseInt(e,s))*Ju(h,BigInt(t))}).reduce(function(e,t){return e+t})}else{i=BigInt(l+o)}}else{i=BigInt(e)}if(f){i*=BigInt(-1)}}else{i=e}return E(i,true)}else if(typeof Gr!=="undefined"&&!(e instanceof Gr)){if(e instanceof Array){return E(T(Gr,ee(e)))}return E(new Gr(e))}else if(n){this.constant(parseInt(o,s),"integer")}else{this.constant(e,"integer")}}B.prototype.constant=function(e,t){Object.defineProperty(this,"__value__",{value:e,enumerable:true});Object.defineProperty(this,"__type__",{value:t,enumerable:true})};B.types={float:function e(t){return new g(t)},complex:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!B.isComplex(t)){t={im:0,re:t}}return new m(t,r)},rational:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!B.isRational(t)){t={num:t,denom:1}}return new w(t,r)}};B.prototype.serialize=function(){return this.__value__};B.prototype.isNaN=function(){return Number.isNaN(this.__value__)};B.prototype.gcd=function(e){var t=this.abs();e=e.abs();if(e.cmp(t)===1){var r=t;t=e;e=r}while(true){t=t.rem(e);if(t.cmp(0)===0){return e}e=e.rem(t);if(e.cmp(0)===0){return t}}};B.isFloat=function e(t){return t instanceof g||Number(t)===t&&t%1!==0};B.isNumber=function(e){return e instanceof B||B.isNative(e)||B.isBN(e)};B.isComplex=function(e){if(!e){return false}var t=e instanceof m||(B.isNumber(e.im)||B.isRational(e.im)||Number.isNaN(e.im))&&(B.isNumber(e.re)||B.isRational(e.re)||Number.isNaN(e.re));return t};B.isRational=function(e){if(!e){return false}return e instanceof w||B.isNumber(e.num)&&B.isNumber(e.denom)};B.isInteger=function(e){if(!(B.isNative(e)||e instanceof B)){return false}if(B.isFloat(e)){return false}if(B.isRational(e)){return false}if(B.isComplex(e)){return false}return true};B.isNative=function(e){return typeof e==="bigint"||typeof e==="number"};B.isBigInteger=function(e){return e instanceof E||typeof e==="bigint"||B.isBN(e)};B.isBN=function(e){return typeof Gr!=="undefined"&&e instanceof Gr};B.getArgsType=function(e,t){if(e instanceof g||t instanceof g){return g}if(e instanceof E||t instanceof E){return E}return B};B.prototype.toString=function(e){if(Number.isNaN(this.__value__)){return"+nan.0"}if(e>=2&&e<36){return this.__value__.toString(e)}return this.__value__.toString()};B.prototype.asType=function(e){var t=B.getType(this);return B.types[t]?B.types[t](e):B(e)};B.prototype.isBigNumber=function(){return typeof this.__value__==="bigint"||typeof Gr!=="undefined"&&!(this.value instanceof Gr)};["floor","ceil","round"].forEach(function(e){B.prototype[e]=function(){if(this["float"]||B.isFloat(this.__value__)){return B(Math[e](this.__value__))}else{return B(Math[e](this.valueOf()))}}});B.prototype.valueOf=function(){if(B.isNative(this.__value__)){return Number(this.__value__)}else if(B.isBN(this.__value__)){return this.__value__.toNumber()}};var zu=function(){var e=function e(t,r){return[t,r]};return{bigint:{bigint:e,float:function e(t,r){return[g(t.valueOf()),r]},rational:function e(t,r){return[{num:t,denom:1},r]},complex:function e(t,r){return[{im:0,re:t},r]}},integer:{integer:e,float:function e(t,r){return[g(t.valueOf()),r]},rational:function e(t,r){return[{num:t,denom:1},r]},complex:function e(t,r){return[{im:0,re:t},r]}},float:{bigint:function e(t,r){return[t,r&&g(r.valueOf())]},integer:function e(t,r){return[t,r&&g(r.valueOf())]},float:e,rational:function e(t,r){return[t,r&&g(r.valueOf())]},complex:function e(t,r){return[{re:t,im:g(0)},r]}},complex:{bigint:t("bigint"),integer:t("integer"),float:t("float"),rational:t("rational"),complex:function e(t,r){var n=B.coerce(t.__re__,r.__re__),i=b(n,2),a=i[0],u=i[1];var o=B.coerce(t.__im__,r.__im__),s=b(o,2),c=s[0],f=s[1];return[{im:c,re:a},{im:f,re:u}]}},rational:{bigint:function e(t,r){return[t,r&&{num:r,denom:1}]},integer:function e(t,r){return[t,r&&{num:r,denom:1}]},float:function e(t,r){return[g(t.valueOf()),r]},rational:e,complex:function e(t,r){return[{im:Vu(t.__type__,r.__im__.__type__,0)[0],re:Vu(t.__type__,r.__re__.__type__,t)[0]},{im:Vu(t.__type__,r.__im__.__type__,r.__im__)[0],re:Vu(t.__type__,r.__re__.__type__,r.__re__)[0]}]}}};function t(r){return function(e,t){return[{im:Vu(r,e.__im__.__type__,0,e.__im__)[1],re:Vu(r,e.__re__.__type__,0,e.__re__)[1]},{im:Vu(r,e.__im__.__type__,0,0)[1],re:Vu(r,t.__type__,0,t)[1]}]}}}();function Vu(e,t,r,n){return zu[e][t](r,n)}B.coerce=function(e,t){var r=B.getType(e);var n=B.getType(t);if(!zu[r]){throw new Error("LNumber::coerce unknown lhs type ".concat(r))}else if(!zu[r][n]){throw new Error("LNumber::coerce unknown rhs type ".concat(n))}var i=zu[r][n](e,t);return i.map(function(e){return B(e,true)})};B.prototype.coerce=function(e){if(!(typeof e==="number"||e instanceof B)){throw new Error("LNumber: you can't coerce ".concat(Ko(e)))}if(typeof e==="number"){e=B(e)}return B.coerce(this,e)};B.getType=function(e){if(e instanceof B){return e.__type__}if(B.isFloat(e)){return"float"}if(B.isComplex(e)){return"complex"}if(B.isRational(e)){return"rational"}if(typeof e==="number"){return"integer"}if(typeof BigInt!=="undefined"&&typeof e!=="bigint"||typeof Gr!=="undefined"&&!(e instanceof Gr)){return"bigint"}};B.prototype.isFloat=function(){return!!(B.isFloat(this.__value__)||this["float"])};var $u={add:"+",sub:"-",mul:"*",div:"/",rem:"%",or:"|",and:"&",neg:"~",shl:">>",shr:"<<"};var Yu={};Object.keys($u).forEach(function(t){Yu[$u[t]]=t;B.prototype[t]=function(e){return this.op($u[t],e)}});B._ops={"*":function e(t,r){return t*r},"+":function e(t,r){return t+r},"-":function e(t,r){if(typeof r==="undefined"){return-t}return t-r},"/":function e(t,r){return t/r},"%":function e(t,r){return t%r},"|":function e(t,r){return t|r},"&":function e(t,r){return t&r},"~":function e(t){return~t},">>":function e(t,r){return t>>r},"<<":function e(t,r){return t<1&&arguments[1]!==undefined?arguments[1]:false;if(typeof this!=="undefined"&&!(this instanceof m)||typeof this==="undefined"){return new m(e,t)}if(e instanceof m){return m({im:e.__im__,re:e.__re__})}if(B.isNumber(e)&&t){if(!t){return Number(e)}}else if(!B.isComplex(e)){var r="Invalid constructor call for LComplex expect &(:im :re ) object but got ".concat(pa(e));throw new Error(r)}var n=e.im instanceof B?e.im:B(e.im);var i=e.re instanceof B?e.re:B(e.re);this.constant(n,i)}m.prototype=Object.create(B.prototype);m.prototype.constructor=m;m.prototype.constant=function(e,t){Object.defineProperty(this,"__im__",{value:e,enumerable:true});Object.defineProperty(this,"__re__",{value:t,enumerable:true});Object.defineProperty(this,"__type__",{value:"complex",enumerable:true})};m.prototype.serialize=function(){return{re:this.__re__,im:this.__im__}};m.prototype.toRational=function(e){var t=this.__im__,r=this.__re__;if(B.isFloat(this.__im__)){t=g(this.__im__).toRational(e)}if(B.isFloat(this.__re__)){r=g(this.__re__).toRational(e)}return m({im:t,re:r})};m.prototype.pow=function(e){e.cmp(0);if(e===0){return B(1)}var t=B(Math.atan2(this.__im__.valueOf(),this.__re__.valueOf()));var r=B(this.modulus());if(B.isComplex(e)&&e.__im__.cmp(0)!==0){var n=e.mul(Math.log(r.valueOf())).add(m.i.mul(t).mul(e));if(!B.isComplex(n)){return g(Math.E).pow(n)}var i=g(Math.E).pow(n.__re__.valueOf());return m({re:i.mul(Math.cos(n.__im__.valueOf())),im:i.mul(Math.sin(n.__im__.valueOf()))})}var a=e.__re__.cmp(0)>0;e=e.__re__.valueOf();if(B.isInteger(e)&&a){var u=this;while(--e){u=u.mul(this)}return u}var o=r.pow(e);var s=t.mul(e);return m({re:o.mul(Math.cos(s)),im:o.mul(Math.sin(s))})};m.prototype.add=function(e){return this.complex_op("add",e,function(e,t,r,n){return{re:e.add(t),im:r.add(n)}})};m.prototype.factor=function(){if(this.__im__ instanceof g||this.__im__ instanceof g){var e=this.__re__,t=this.__im__;var r,n;if(e instanceof g){r=e.toRational().mul(e.toRational())}else{r=e.mul(e)}if(t instanceof g){n=t.toRational().mul(t.toRational())}else{n=t.mul(t)}return r.add(n)}else{return this.__re__.mul(this.__re__).add(this.__im__.mul(this.__im__))}};m.prototype.modulus=function(){return this.factor().sqrt()};m.prototype.conjugate=function(){return m({re:this.__re__,im:this.__im__.sub()})};m.prototype.sqrt=function(){var e=this.modulus();var t,r;if(e.cmp(0)===0){t=r=e}else if(this.__re__.cmp(0)===1){t=g(.5).mul(e.add(this.__re__)).sqrt();r=this.__im__.div(t).div(2)}else{r=g(.5).mul(e.sub(this.__re__)).sqrt();if(this.__im__.cmp(0)===-1){r=r.sub()}t=this.__im__.div(r).div(2)}return m({im:r,re:t})};m.prototype.div=function(e){if(B.isNumber(e)&&!B.isComplex(e)){if(!(e instanceof B)){e=B(e)}var t=this.__re__.div(e);var r=this.__im__.div(e);return m({re:t,im:r})}else if(!B.isComplex(e)){throw new Error("[LComplex::div] Invalid value")}if(this.cmp(e)===0){var n=this.coerce(e),i=b(n,2),a=i[0],u=i[1];var o=a.__im__.div(u.__im__);return o.coerce(u.__re__)[0]}var s=this.coerce(e),c=b(s,2),f=c[0],l=c[1];var h=l.factor();var _=l.conjugate();var p=f.mul(_);if(!B.isComplex(p)){return p.div(h)}var d=p.__re__.op("/",h);var v=p.__im__.op("/",h);return m({re:d,im:v})};m.prototype.sub=function(e){return this.complex_op("sub",e,function(e,t,r,n){return{re:e.sub(t),im:r.sub(n)}})};m.prototype.mul=function(e){return this.complex_op("mul",e,function(e,t,r,n){var i={re:e.mul(t).sub(r.mul(n)),im:e.mul(n).add(t.mul(r))};return i})};m.prototype.complex_op=function(e,t,i){var a=this;var r=function e(t,r){var n=i(a.__re__,t,a.__im__,r);if("im"in n&&"re"in n){if(n.im.cmp(0)===0){return n.re}return m(n,true)}return n};if(typeof t==="undefined"){return r()}if(B.isNumber(t)&&!B.isComplex(t)){if(!(t instanceof B)){t=B(t)}var n=t.asType(0);t={__im__:n,__re__:t}}else if(!B.isComplex(t)){throw new Error("[LComplex::".concat(e,"] Invalid value"))}var u=t.__re__ instanceof B?t.__re__:this.__re__.asType(t.__re__);var o=t.__im__ instanceof B?t.__im__:this.__im__.asType(t.__im__);return r(u,o)};m._op={"+":"add","-":"sub","*":"mul","/":"div"};m.prototype._op=function(e,t){var r=m._op[e];return this[r](t)};m.prototype.cmp=function(e){var t=this.coerce(e),r=b(t,2),n=r[0],i=r[1];var a=n.__re__.coerce(i.__re__),u=b(a,2),o=u[0],s=u[1];var c=o.cmp(s);if(c!==0){return c}else{var f=n.__im__.coerce(i.__im__),l=b(f,2),h=l[0],_=l[1];return h.cmp(_)}};m.prototype.valueOf=function(){return[this.__re__,this.__im__].map(function(e){return e.valueOf()})};m.prototype.toString=function(){var e;if(this.__re__.cmp(0)!==0){e=[pa(this.__re__)]}else{e=[]}var t=this.__im__.valueOf();var r=[Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY].includes(t);var n=pa(this.__im__);if(!r&&!Number.isNaN(t)){var i=this.__im__.cmp(0);if(i<0||i===0&&this.__im__._minus){e.push("-")}else{e.push("+")}n=n.replace(/^-/,"")}e.push(n);e.push("i");return e.join("")};function g(e){if(typeof this!=="undefined"&&!(this instanceof g)||typeof this==="undefined"){return new g(e)}if(!B.isNumber(e)){throw new Error("Invalid constructor call for LFloat")}if(e instanceof B){return g(e.valueOf())}if(typeof e==="number"){if(Object.is(e,-0)){Object.defineProperty(this,"_minus",{value:true})}this.constant(e,"float")}}g.prototype=Object.create(B.prototype);g.prototype.constructor=g;g.prototype.toString=function(e){if(this.__value__===Number.NEGATIVE_INFINITY){return"-inf.0"}if(this.__value__===Number.POSITIVE_INFINITY){return"+inf.0"}if(Number.isNaN(this.__value__)){return"+nan.0"}e&&(e=e.valueOf());var t=this.__value__.toString(e);if(!t.match(/e[+-]?[0-9]+$/i)){var r=t.replace(/^-/,"");var n=this.__value__<0?"-":"";if(t.match(/^-?0\.0{3}/)){var i=r.match(/^[.0]+/g)[0].length-1;var a=r.replace(/^[.0]+/,"").replace(/^([0-9a-f])/i,"$1.");return"".concat(n).concat(a,"e-").concat(i.toString(e))}if(t.match(/^-?[0-9a-f]{7,}\.?/i)){var u=r.match(/^[0-9a-f]+/gi)[0].length-1;var o=r.replace(/\./,"").replace(/^([0-9a-f])/i,"$1.").replace(/0+$/,"").replace(/\.$/,".0");return"".concat(n).concat(o,"e+").concat(u.toString(e))}if(!B.isFloat(this.__value__)){var s=t+".0";return this._minus?"-"+s:s}}return t.replace(/^([0-9]+)e/,"$1.0e")};g.prototype._op=function(e,t){if(t instanceof B){t=t.__value__}var r=B._ops[e];if(e==="/"&&this.__value__===0&&t===0){return NaN}return g(r(this.__value__,t))};g.prototype.toRational=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){return Wu(this.__value__.valueOf())}return Gu(e.valueOf())(this.__value__.valueOf())};g.prototype.sqrt=function(){var e=this.valueOf();if(this.cmp(0)<0){var t=g(Math.sqrt(-e));return m({re:0,im:t})}return g(Math.sqrt(e))};g.prototype.abs=function(){var e=this.valueOf();if(e<0){e=-e}return g(e)};var Wu=Gu(1e-10);function Gu(n){return function(e){var t=function e(n,t,r){var i=function e(t,r){return r0){i=Qu(n,r)}else if(n.cmp(r)<=0){i=r}else if(r.cmp(0)>0){i=Qu(r,n)}else if(t.cmp(0)<0){i=B(Qu(n.sub(),r.sub())).sub()}else{i=B(0)}if(B.isFloat(t)||B.isFloat(e)){return g(i)}return i}function Qu(e,t){var r=B(e).floor();var n=B(t).floor();if(e.cmp(r)<1){return r}else if(r.cmp(n)===0){var i=B(1).div(t.sub(n));var a=B(1).div(e.sub(r));return r.add(B(1).div(Qu(i,a)))}else{return r.add(B(1))}}function w(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(typeof this!=="undefined"&&!(this instanceof w)||typeof this==="undefined"){return new w(e,t)}if(!B.isRational(e)){throw new Error("Invalid constructor call for LRational")}var r,n;if(e instanceof w){r=B(e.__num__);n=B(e.__denom__)}else{r=B(e.num);n=B(e.denom)}if(!t&&n.cmp(0)!==0){var i=r.op("%",n).cmp(0)===0;if(i){return B(r.div(n))}}this.constant(r,n)}w.prototype=Object.create(B.prototype);w.prototype.constructor=w;w.prototype.constant=function(e,t){Object.defineProperty(this,"__num__",{value:e,enumerable:true});Object.defineProperty(this,"__denom__",{value:t,enumerable:true});Object.defineProperty(this,"__type__",{value:"rational",enumerable:true})};w.prototype.serialize=function(){return{num:this.__num__,denom:this.__denom__}};w.prototype.pow=function(e){if(B.isRational(e)){return Ju(this.valueOf(),e.valueOf())}var t=e.cmp(0);if(t===0){return B(1)}if(t===-1){e=e.sub();var r=this.__denom__.pow(e);var n=this.__num__.pow(e);return w({num:r,denom:n})}var i=this;e=e.valueOf();while(e>1){i=i.mul(this);e--}return i};w.prototype.sqrt=function(){var e=this.__num__.sqrt();var t=this.__denom__.sqrt();if(e instanceof g||t instanceof g){return e.div(t)}return w({num:e,denom:t})};w.prototype.abs=function(){var e=this.__num__;var t=this.__denom__;if(e.cmp(0)===-1){e=e.sub()}if(t.cmp(0)!==1){t=t.sub()}return w({num:e,denom:t})};w.prototype.cmp=function(e){return B(this.valueOf(),true).cmp(e)};w.prototype.toString=function(){var e=this.__num__.gcd(this.__denom__);var t,r;if(e.cmp(1)!==0){t=this.__num__.div(e);if(t instanceof w){t=B(t.valueOf(true))}r=this.__denom__.div(e);if(r instanceof w){r=B(r.valueOf(true))}}else{t=this.__num__;r=this.__denom__}var n=this.cmp(0)<0;if(n){if(t.abs().cmp(r.abs())===0){return t.toString()}}else if(t.cmp(r)===0){return t.toString()}return t.toString()+"/"+r.toString()};w.prototype.valueOf=function(e){if(this.__denom__.cmp(0)===0){if(this.__num__.cmp(0)<0){return Number.NEGATIVE_INFINITY}return Number.POSITIVE_INFINITY}if(e){return B._ops["/"](this.__num__.value,this.__denom__.value)}return g(this.__num__.valueOf()).div(this.__denom__.valueOf())};w.prototype.mul=function(e){if(!(e instanceof B)){e=B(e)}if(B.isRational(e)){var t=this.__num__.mul(e.__num__);var r=this.__denom__.mul(e.__denom__);return w({num:t,denom:r})}var n=B.coerce(this,e),i=b(n,2),a=i[0],u=i[1];return a.mul(u)};w.prototype.div=function(e){if(!(e instanceof B)){e=B(e)}if(B.isRational(e)){var t=this.__num__.mul(e.__denom__);var r=this.__denom__.mul(e.__num__);return w({num:t,denom:r})}var n=B.coerce(this,e),i=b(n,2),a=i[0],u=i[1];var o=a.div(u);return o};w.prototype._op=function(e,t){return this[Yu[e]](t)};w.prototype.sub=function(e){if(typeof e==="undefined"){return this.mul(-1)}if(!(e instanceof B)){e=B(e)}if(B.isRational(e)){var t=e.__num__.sub();var r=e.__denom__;return this.add(w({num:t,denom:r}))}if(!(e instanceof B)){e=B(e).sub()}else{e=e.sub()}var n=B.coerce(this,e),i=b(n,2),a=i[0],u=i[1];return a.add(u)};w.prototype.add=function(e){if(!(e instanceof B)){e=B(e)}if(B.isRational(e)){var t=this.__denom__;var r=e.__denom__;var n=this.__num__;var i=e.__num__;var a,u;if(t!==r){u=r.mul(n).add(i.mul(t));a=t.mul(r)}else{u=n.add(i);a=t}return w({num:u,denom:a})}if(B.isFloat(e)){return g(this.valueOf()).add(e)}var o=B.coerce(this,e),s=b(o,2),c=s[0],f=s[1];return c.add(f)};function E(e,t){if(typeof this!=="undefined"&&!(this instanceof E)||typeof this==="undefined"){return new E(e,t)}if(e instanceof E){return E(e.__value__,e._native)}if(!B.isBigInteger(e)){throw new Error("Invalid constructor call for LBigInteger")}this.constant(e,"bigint");Object.defineProperty(this,"_native",{value:t})}E.prototype=Object.create(B.prototype);E.prototype.constructor=E;E.bn_op={"+":"iadd","-":"isub","*":"imul","/":"idiv","%":"imod","|":"ior","&":"iand","~":"inot","<<":"ishrn",">>":"ishln"};E.prototype.serialize=function(){return this.__value__.toString()};E.prototype._op=function(e,t){if(typeof t==="undefined"){if(B.isBN(this.__value__)){e=E.bn_op[e];return E(this.__value__.clone()[e](),false)}return E(B._ops[e](this.__value__),true)}if(B.isBN(this.__value__)&&B.isBN(t.__value__)){e=E.bn_op[e];return E(this.__value__.clone()[e](t),false)}var r=B._ops[e](this.__value__,t.__value__);if(e==="/"){var n=this.op("%",t).cmp(0)===0;if(n){return B(r)}return w({num:this,denom:t})}return E(r,true)};E.prototype.sqrt=function(){var e;var t=this.cmp(0)<0;if(B.isNative(this.__value__)){e=B(Math.sqrt(t?-this.valueOf():this.valueOf()))}else if(B.isBN(this.__value__)){e=t?this.__value__.neg().sqrt():this.__value__.sqrt()}if(t){return m({re:0,im:e})}return e};B.NaN=B(NaN);m.i=m({im:1,re:0});function Zu(e){var n=this;var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:se;if(typeof this!=="undefined"&&!(this instanceof Zu)||typeof this==="undefined"){return new Zu(e)}A("InputPort",e,"function");s(this,"__type__",lo);var a;Object.defineProperty(this,"__parser__",{enumerable:true,get:function e(){return a},set:function e(t){A("InputPort::__parser__",t,"parser");a=t}});this._read=e;this._with_parser=this._with_init_parser.bind(this,H(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(n.char_ready()){t.next=6;break}t.next=3;return n._read();case 3:r=t.sent;a=new di({env:i});a.parse(r);case 6:return t.abrupt("return",n.__parser__);case 7:case"end":return t.stop()}},e)})));this.char_ready=function(){return!!this.__parser__&&this.__parser__.__lexer__.peek()!==ho};this._make_defaults()}Zu.prototype._make_defaults=function(){this.read=this._with_parser(function(e){return e.read_object()});this.read_line=this._with_parser(function(e){return e.__lexer__.read_line()});this.read_char=this._with_parser(function(e){return e.__lexer__.read_char()});this.read_string=this._with_parser(function(e,t){if(!B.isInteger(t)){var r=B.getType(t);Uo("read-string",r,"integer")}return e.__lexer__.read_string(t.valueOf())});this.peek_char=this._with_parser(function(e){return e.__lexer__.peek_char()})};Zu.prototype._with_init_parser=function(o,s){var c=this;return H(O.mark(function e(){var r,n,i,a,u=arguments;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return o.call(c);case 2:r=t.sent;for(n=u.length,i=new Array(n),a=0;a"};function Xu(e){if(typeof this!=="undefined"&&!(this instanceof Xu)||typeof this==="undefined"){return new Xu(e)}A("OutputPort",e,"function");s(this,"__type__",lo);this.write=e}Xu.prototype.is_open=function(){return this._closed!==true};Xu.prototype.close=function(){Object.defineProperty(this,"_closed",{get:function e(){return true},set:function e(){},configurable:false,enumerable:false});this.write=function(){throw new Error("output-port: port is closed")}};Xu.prototype.flush=function(){};Xu.prototype.toString=function(){return"#"};var eo=function(e){J(r,e);function r(e){var t;Q(this,r);t=Nr(this,r,[function(){var e;return(e=t)._write.apply(e,arguments)}]);A("BufferedOutputPort",e,"function");s(I(t),"_fn",e,{hidden:true});s(I(t),"_buffer",[],{hidden:true});return t}fe(r,[{key:"flush",value:function e(){if(this._buffer.length){this._fn(this._buffer.join(""));this._buffer.length=0}}},{key:"_write",value:function e(){var t=this;for(var r=arguments.length,n=new Array(r),i=0;i"};to.prototype.valueOf=function(){return this.__buffer__.map(function(e){return e.valueOf()}).join("")};function ro(e,t){var r=this;if(typeof this!=="undefined"&&!(this instanceof ro)||typeof this==="undefined"){return new ro(e,t)}A("OutputFilePort",e,"string");s(this,"__filename__",e);s(this,"_fd",t.valueOf(),{hidden:true});s(this,"__type__",lo);this.write=function(e){if(!x.isString(e)){e=pa(e)}else{e=e.valueOf()}r.fs().write(r._fd,e,function(e){if(e){throw e}})}}ro.prototype=Object.create(Xu.prototype);ro.prototype.constructor=ro;ro.prototype.fs=function(){if(!this._fs){this._fs=this.internal("fs")}return this._fs};ro.prototype.internal=function(e){return Co.get("**internal-env**").get(e)};ro.prototype.close=function(){var n=this;return new Promise(function(t,r){n.fs().close(n._fd,function(e){if(e){r(e)}else{s(n,"_fd",null,{hidden:true});Xu.prototype.close.call(n);t()}})})};ro.prototype.toString=function(){return"#")};function no(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:se;if(typeof this!=="undefined"&&!(this instanceof no)||typeof this==="undefined"){return new no(e)}A("InputStringPort",e,"string");e=e.valueOf();this._with_parser=this._with_init_parser.bind(this,function(){if(!t.__parser__){t.__parser__=new di({env:r});t.__parser__.parse(e)}return t.__parser__});s(this,"__type__",lo);this._make_defaults()}no.prototype.char_ready=function(){return true};no.prototype=Object.create(Zu.prototype);no.prototype.constructor=no;no.prototype.toString=function(){return"#"};function io(e){if(typeof this!=="undefined"&&!(this instanceof io)||typeof this==="undefined"){return new io(e)}this._with_parser=this._with_init_parser.bind(this,function(){return e});s(this,"__type__",lo);this._make_defaults()}io.prototype.char_ready=function(){return true};io.prototype=Object.create(Zu.prototype);io.prototype.constructor=io;io.prototype.toString=function(){return"#"};function ao(e){if(typeof this!=="undefined"&&!(this instanceof ao)||typeof this==="undefined"){return new ao(e)}A("InputByteVectorPort",e,"uint8array");s(this,"__vector__",e);s(this,"__type__",fo);var r=0;Object.defineProperty(this,"__index__",{enumerable:true,get:function e(){return r},set:function e(t){A("InputByteVectorPort::__index__",t,"number");if(t instanceof B){t=t.valueOf()}if(typeof t==="bigint"){t=Number(t)}if(Math.floor(t)!==t){throw new Error("InputByteVectorPort::__index__ value is "+"not integer")}r=t}})}ao.prototype=Object.create(Zu.prototype);ao.prototype.constructor=ao;ao.prototype.toString=function(){return"#"};ao.prototype.close=function(){var t=this;s(this,"__vector__",ie);var r=function e(){throw new Error("Input-binary-port: port is closed")};["read_u8","close","peek_u8","read_u8_vector"].forEach(function(e){t[e]=r});this.u8_ready=this.char_ready=function(){return false}};ao.prototype.u8_ready=function(){return true};ao.prototype.peek_u8=function(){if(this.__index__>=this.__vector__.length){return ho}return this.__vector__[this.__index__]};ao.prototype.skip=function(){if(this.__index__<=this.__vector__.length){++this.__index__}};ao.prototype.read_u8=function(){var e=this.peek_u8();this.skip();return e};ao.prototype.read_u8_vector=function(e){if(typeof e==="undefined"){e=this.__vector__.length}else if(e>this.__index__+this.__vector__.length){e=this.__index__+this.__vector__.length}if(this.peek_u8()===ho){return ho}return this.__vector__.slice(this.__index__,e)};function uo(){if(typeof this!=="undefined"&&!(this instanceof uo)||typeof this==="undefined"){return new uo}s(this,"__type__",fo);s(this,"_buffer",[],{hidden:true});this.write=function(e){A("write",e,["number","uint8array"]);if(B.isNumber(e)){this._buffer.push(e.valueOf())}else{var t;(t=this._buffer).push.apply(t,ee(Array.from(e)))}};Object.defineProperty(this,"__buffer__",{enumerable:true,get:function e(){return Uint8Array.from(this._buffer)}})}uo.prototype=Object.create(Xu.prototype);uo.prototype.constructor=uo;uo.prototype.close=function(){Xu.prototype.close.call(this);s(this,"_buffer",null,{hidden:true})};uo.prototype._close_guard=function(){if(this._closed){throw new Error("output-port: binary port is closed")}};uo.prototype.write_u8=function(e){A("OutputByteVectorPort::write_u8",e,"number");this.write(e)};uo.prototype.write_u8_vector=function(e){A("OutputByteVectorPort::write_u8_vector",e,"uint8array");this.write(e)};uo.prototype.toString=function(){return"#"};uo.prototype.valueOf=function(){return this.__buffer__};function oo(e,t){if(typeof this!=="undefined"&&!(this instanceof oo)||typeof this==="undefined"){return new oo(e,t)}no.call(this,e);A("InputFilePort",t,"string");s(this,"__filename__",t)}oo.prototype=Object.create(no.prototype);oo.prototype.constructor=oo;oo.prototype.toString=function(){return"#")};function so(e,t){if(typeof this!=="undefined"&&!(this instanceof so)||typeof this==="undefined"){return new so(e,t)}ao.call(this,e);A("InputBinaryFilePort",t,"string");s(this,"__filename__",t)}so.prototype=Object.create(ao.prototype);so.prototype.constructor=so;so.prototype.toString=function(){return"#")};function co(e,t){var i=this;if(typeof this!=="undefined"&&!(this instanceof co)||typeof this==="undefined"){return new co(e,t)}A("OutputBinaryFilePort",e,"string");s(this,"__filename__",e);s(this,"_fd",t.valueOf(),{hidden:true});s(this,"__type__",fo);var a;this.write=function(e){A("write",e,["number","uint8array"]);var n;if(!a){a=i.internal("fs")}if(B.isNumber(e)){n=new Uint8Array([e.valueOf()])}else{n=new Uint8Array(Array.from(e))}return new Promise(function(t,r){a.write(i._fd,n,function(e){if(e){r(e)}else{t()}})})}}co.prototype=Object.create(ro.prototype);co.prototype.constructor=co;co.prototype.write_u8=function(e){A("OutputByteVectorPort::write_u8",e,"number");this.write(e)};co.prototype.write_u8_vector=function(e){A("OutputByteVectorPort::write_u8_vector",e,"uint8array");this.write(e)};var fo=Symbol["for"]("binary");var lo=Symbol["for"]("text");var ho=new _o;function _o(){}_o.prototype.toString=function(){return"#"};function po(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.stderr,i=r.stdin,a=r.stdout,u=r.command_line,o=u===void 0?null:u,s=_e(r,Cr);if(typeof this!=="undefined"&&!(this instanceof po)||typeof this==="undefined"){return new po(e,te({stdin:i,stdout:a,stderr:n,command_line:o},s))}if(typeof e==="undefined"){e="anonymous"}this.__env__=Co.inherit(e,s);this.__parser__=new di({env:this.__env__});this.__env__.set("parent.frame",l("parent.frame",function(){return t.__env__},se.__env__["parent.frame"].__doc__));var c="**interaction-environment-defaults**";this.set(c,ca(s).concat(c));var f=Ao.inherit("internal-".concat(e));if(au(i)){f.set("stdin",i)}if(au(n)){f.set("stderr",n)}if(au(a)){f.set("stdout",a)}f.set("command-line",o);So(this.__env__,f)}po.prototype.exec=function(){var t=H(function(u){var o=this;var s=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return O.mark(function e(){var r,n,i,a;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=s.use_dynamic,n=r===void 0?false:r,i=s.dynamic_env,a=s.env;A("Interpreter::exec",u,["string","array"],1);A("Interpreter::exec",n,"boolean",2);if(!a){a=o.__env__}if(!i){i=a}se.set("**interaction-environment**",o.__env__);if(!Array.isArray(u)){t.next=10;break}return t.abrupt("return",os(u,{env:a,dynamic_env:i,use_dynamic:n}));case 10:o.__parser__.parse(u);return t.abrupt("return",os(o.__parser__,{env:a,dynamic_env:i,use_dynamic:n}));case 12:case"end":return t.stop()}},e)})()});return function(e){return t.apply(this,arguments)}}();po.prototype.get=function(e){var t=this.__env__.get(e);if(d(t)){var r=new ns({env:this.__env__});return t.bind(r)}return t};po.prototype.set=function(e,t){return this.__env__.set(e,t)};po.prototype.constant=function(e,t){return this.__env__.constant(e,t)};function vo(e,t){this.name="LipsError";this.message=e;this.args=t;this.stack=(new Error).stack}vo.prototype=new Error;vo.prototype.constructor=vo;var yo=function(e){J(t,e);function t(){Q(this,t);return Nr(this,t,arguments)}return fe(t)}(W(Error));function F(e,t,r){if(arguments.length===1){if(_(arguments[0])==="object"){e=arguments[0];t=null}else if(typeof arguments[0]==="string"){e={};t=null;r=arguments[0]}}this.__docs__=new Map;this.__env__=e;this.__parent__=t;this.__name__=r||"anonymous"}F.prototype.list=function(){return ca(this.__env__)};F.prototype.fs=function(){return this.get("**fs**")};F.prototype.unset=function(e){if(e instanceof ne){e=e.valueOf()}if(e instanceof x){e=e.valueOf()}delete this.__env__[e]};F.prototype.inherit=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(_(e)==="object"){t=e}if(!e||_(e)==="object"){e="child of "+(this.__name__||"unknown")}return new F(t||{},this,e)};F.prototype.doc=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(e instanceof ne){e=e.__name__}if(e instanceof x){e=e.valueOf()}if(t){if(!r){t=Fi(t)}this.__docs__.set(e,t);return this}if(this.__docs__.has(e)){return this.__docs__.get(e)}if(this.__parent__){return this.__parent__.doc(e)}};F.prototype.new_frame=function(e,t){var n=this.inherit("__frame__");n.set("parent.frame",l("parent.frame",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;e=e.valueOf();var t=n.__parent__;if(!Ra(t)){return ie}if(e<=0){return t}var r=t.get("parent.frame");return r(e-1)},se.__env__["parent.frame"].__doc__));t.callee=e;n.set("arguments",t);return n};F.prototype._lookup=function(e){if(e instanceof ne){e=e.__name__}if(e instanceof x){e=e.valueOf()}if(this.__env__.hasOwnProperty(e)){return mo(this.__env__[e])}if(this.__parent__){return this.__parent__._lookup(e)}};F.prototype.toString=function(){return"#"};F.prototype.clone=function(){var t=this;var r={};Object.keys(this.__env__).forEach(function(e){r[e]=t.__env__[e]});return new F(r,this.__parent__,this.__name__)};F.prototype.merge=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"merge";A("Environment::merge",e,"environment");return this.inherit(t,e.__env__)};function mo(e){if(typeof this!=="undefined"&&!(this instanceof mo)||typeof this==="undefined"){return new mo(e)}this.value=e}mo.isUndefined=function(e){return e instanceof mo&&typeof e.value==="undefined"};mo.prototype.valueOf=function(){return this.value};function go(e){if(!e.length){return}if(e.length===1){return e[0]}if(typeof this!=="undefined"&&!(this instanceof go)||typeof this==="undefined"){return new go(e)}this.__values__=e}go.prototype.toString=function(){return this.__values__.map(function(e){return pa(e)}).join("\n")};go.prototype.valueOf=function(){return this.__values__};F.prototype.get=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};A("Environment::get",e,["symbol","string"]);var r=t.throwError,n=r===void 0?true:r;var i=e;if(i instanceof ne||i instanceof x){i=i.valueOf()}var a=this._lookup(i);if(a instanceof mo){if(mo.isUndefined(a)){return undefined}return Xa(a.valueOf())}var u;if(e instanceof ne&&e[ne.object]){u=e[ne.object]}else if(typeof i==="string"){u=i.split(".").filter(Boolean)}if(u&&u.length>0){var o=u,s=V(o),c=s[0],f=s.slice(1);a=this._lookup(c);if(f.length){try{if(a instanceof mo){a=a.valueOf()}else{a=Do(Vr,c);if(d(a)){a=eu(a)}}if(typeof a!=="undefined"){return Do.apply(void 0,[a].concat(ee(f)))}}catch(e){throw e}}else if(a instanceof mo){return Xa(a.valueOf())}a=Do(Vr,i)}if(typeof a!=="undefined"){return a}if(n){throw new Error("Unbound variable `"+i.toString()+"'")}};F.prototype.set=function(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;A("Environment::set",e,["string","symbol"]);if(B.isNumber(t)){t=B(t)}if(e instanceof ne){e=e.__name__}if(e instanceof x){e=e.valueOf()}this.__env__[e]=t;if(r){this.doc(e,r,true)}return this};F.prototype.constant=function(t,e){var r=this;if(this.__env__.hasOwnProperty(t)){throw new Error("Environment::constant: ".concat(t," already exists"))}if(arguments.length===1&&ta(arguments[0])){var n=arguments[0];Object.keys(n).forEach(function(e){r.constant(t,n[e])})}else{Object.defineProperty(this.__env__,t,{value:e,enumerable:true})}return this};F.prototype.has=function(e){return this.__env__.hasOwnProperty(e)};F.prototype.ref=function(e){var t=this;while(true){if(!t){break}if(t.has(e)){return t}t=t.__parent__}};F.prototype.parents=function(){var e=this;var t=[];while(e){t.unshift(e);e=e.__parent__}return t};function bo(e){if(za(e)){return e.then(bo)}if(oe(e)||e instanceof ne){e[cu]=true}return e}var wo=mi(Kn('(lambda ()\n "[native code]"\n (throw "Invalid Invocation"))'))[0];var Do=l("get",function e(t){var r;for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=Eo(this,"stdin")}Yo("peek-char",e,"input-port");return e.peek_char()},"(peek-char port)\n\n This function reads and returns a character from the string\n port, or, if there is no more data in the string port, it\n returns an EOF."),"read-line":l("read-line",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=Eo(this,"stdin")}Yo("read-line",e,"input-port");return e.read_line()},"(read-line port)\n\n This function reads and returns the next line from the input\n port."),"read-char":l("read-char",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=Eo(this,"stdin")}Yo("read-char",e,"input-port");return e.read_char()},"(read-char port)\n\n This function reads and returns the next character from the\n input port."),read:l("read",function(){var e=H(function(){var i=this;var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;return O.mark(function e(){var r,n;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=i.env;if(a===null){n=Eo(r,"stdin")}else{n=a}Yo("read",n,"input-port");return t.abrupt("return",n.read.call(r));case 4:case"end":return t.stop()}},e)})()});function t(){return e.apply(this,arguments)}return t}(),"(read [port])\n\n This function, if called with a port, it will parse the next\n item from the port. If called without an input, it will read\n a string from standard input (using the browser's prompt or\n a user defined input method) and parse it. This function can be\n used together with `eval` to evaluate code from port."),pprint:l("pprint",function e(t){if(oe(t)){t=new Vs.Formatter(t.toString(true))["break"]().format();se.get("display").call(se,t)}else{se.get("write").call(se,t)}se.get("newline").call(se)},"(pprint expression)\n\n This function will pretty print its input to stdout. If it is called\n with a non-list, it will just call the print function on its\n input."),print:l("print",function e(){var t=se.get("display");var r=se.get("newline");var n=this.use_dynamic;var i=se;var a=se;for(var u=arguments.length,o=new Array(u),s=0;s1?r-1:0),i=1;in.length){throw new Error("Not enough arguments")}var o=0;var s=se.get("repr");t=t.replace(a,function(e){var t=e[1];if(t==="~"){return"~"}else if(t==="%"){return"\n"}else{var r=n[o++];if(t==="a"){return s(r)}else{return s(r,true)}}});u=t.match(/~([\S])/);if(u){throw new Error("format: Unrecognized escape sequence ".concat(u[1]))}return t},"(format string n1 n2 ...)\n\n This function accepts a string template and replaces any\n escape sequences in its inputs:\n\n * ~a value as if printed with `display`\n * ~s value as if printed with `write`\n * ~% newline character\n * ~~ literal tilde '~'\n\n If there are missing inputs or other escape characters it\n will error."),newline:l("newline",function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;var r=se.get("display");var n=this.use_dynamic;var i=se;var a=se;Xo(r,["\n",t],{env:i,dynamic_env:a,use_dynamic:n})},"(newline [port])\n\n Write newline character to standard output or given port"),display:l("display",function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(r===null){r=Eo(this,"stdout")}else{A("display",r,"output-port")}var n=t;if(!(r instanceof co)){n=se.get("repr")(t)}r.write.call(se,n)},"(display string [port])\n\n This function outputs the string to the standard output or\n the port if given. No newline."),"display-error":l("display-error",function e(){var t=Eo(this,"stderr");var r=se.get("repr");for(var n=arguments.length,i=new Array(n),a=0;a1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=_e(t,Sr);var i=this;var u=this;var o;var s=te(te({},n),{},{env:this,dynamic_env:i,use_dynamic:r});var c=k(e.cdr.car,s);c=Wo(c);function f(t,r,n){if(za(t)){return t.then(function(e){return f(t,e,n)})}if(za(r)){return r.then(function(e){return f(t,e,n)})}if(za(n)){return n.then(function(e){return f(t,r,e)})}u.get("set-obj!").call(u,t,r,n);return n}if(oe(e.car)&&ne.is(e.car.car,".")){var l=e.car.cdr.car;var h=e.car.cdr.cdr.car;var _=k(l,s);var p=k(h,s);return f(_,p,c)}if(!(e.car instanceof ne)){throw new Error("set! first argument need to be a symbol or "+"dot accessor that evaluate to object.")}var d=e.car.valueOf();o=this.ref(e.car.__name__);return D(c,function(e){if(!o){var t=d.split(".");if(t.length>1){var r=t.pop();var n=t.join(".");var i=a.get(n,{throwError:false});if(i){f(i,r,e);return}}throw new Error("Unbound variable `"+d+"'")}o.set(d,e)})}),"(set! name value)\n\n Macro that can be used to set the value of the variable or slot (mutate it).\n set! searches the scope chain until it finds first non empty slot and sets it."),"unset!":l(new q("set!",function(e){if(!(e.car instanceof ne)){throw new Error("unset! first argument need to be a symbol or "+"dot accessor that evaluate to object.")}var t=e.car;var r=this.ref(t);if(r){delete r.__env__[t.__name__]}}),"(unset! name)\n\n Function to delete the specified name from environment.\n Trying to access the name afterwards will error."),"set-car!":l("set-car!",function(e,t){A("set-car!",e,"pair");e.car=t},"(set-car! obj value)\n\n Function that sets the car (first item) of the list/pair to specified value.\n The old value is lost."),"set-cdr!":l("set-cdr!",function(e,t){A("set-cdr!",e,"pair");e.cdr=t},"(set-cdr! obj value)\n\n Function that sets the cdr (tail) of the list/pair to specified value.\n It will destroy the list. The old tail is lost."),"empty?":l("empty?",function(e){return typeof e==="undefined"||ue(e)},"(empty? object)\n\n Function that returns #t if value is nil (an empty list) or undefined."),gensym:l("gensym",Zn,"(gensym)\n\n Generates a unique symbol that is not bound anywhere,\n to use with macros as meta name."),load:l("load",function e(c,t){A("load",c,"string");var f=this;if(f.__name__==="__frame__"){f=f.__parent__}if(!(t instanceof F)){if(f===se){t=f}else{t=this.get("**interaction-environment**")}}var l="@lips";var h=c.startsWith(l);var _="**module-path**";var p=se.get(_,{throwError:false});c=c.valueOf();if(!c.match(/.[^.]+$/)){c+=".scm"}var r=c.match(/\.xcb$/);function d(e){if(r){e=Ns(e)}else{if(Ko(e)==="buffer"){e=e.toString()}e=e.replace(/^(#!.*)/,function(e,t){if(Ba(t)){return t}return""});if(e.match(/^\{/)){e=Os(e)}}return os(e,{env:t})}function n(e){return Vr.fetch(e).then(function(e){return r?e.arrayBuffer():e.text()}).then(function(e){if(r){e=new Uint8Array(e)}return e})}function v(){var e=se.get("__dirname");return e.replace(/[^/]+$/,"")}if(To()){return new Promise(function(){var r=H(O.mark(function e(r,n){var i,a,u,o,s;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.prev=0;t.next=3;return qo;case 3:i=Wr("path");a=Wr("fs");u=v();if(h){c=c.replace(l,u)}if(!p){t.next=12;break}p=p.valueOf();if(!c.startsWith("/")){c=i.join(p,c)}t.next=19;break;case 12:if(c.startsWith("/")){t.next=19;break}o=f.get("command-line",{throwError:false});if(!o){t.next=18;break}t.next=17;return o();case 17:s=t.sent;case 18:if(s&&!ue(s)){process.cwd();c=i.join(i.dirname(s.car.valueOf()),c)}case 19:se.set(_,i.dirname(c));a.readFile(c,function(e,t){if(e){n(e);se.set(_,p)}else{try{d(t).then(function(){r();se.set(_,p)})["catch"](n)}catch(e){n(e)}}});t.next=26;break;case 23:t.prev=23;t.t0=t["catch"](0);console.error(t.t0);case 26:case"end":return t.stop()}},e,null,[[0,23]])}));return function(e,t){return r.apply(this,arguments)}}())}if(h){var i,a;var u=(i=se.get("__dirname",{throwError:false}))!==null&&i!==void 0?i:ps;(a=u)!==null&&a!==void 0?a:u=ps;var o=u.replace(/dist\/?[^\/]*$/,"");c=c.replace(l,o)}if(p){p=p.valueOf();if(!c.startsWith("/")){c=p+"/"+c.replace(/^\.?\/?/,"")}}return n(c).then(function(e){se.set(_,c.replace(/\/[^/]*$/,""));return d(e)}).then(function(){})["finally"](function(){se.set(_,p)})},"(load filename)\n (load filename environment)\n\n Fetches the file (from disk or network) and evaluates its content as LIPS code.\n If the second argument is provided and it's an environment the evaluation\n will happen in that environment."),while:l(new q("while",function(e,t){var r=e.car;var n=te(te({},t),{},{env:this});var i=new ae(new ne("begin"),e.cdr);return function t(){return D(k(r,n),function(e){if(e){return D(k(i,n),t)}})}()}),"(while cond body)\n\n Creates a loop, it executes cond and body until cond expression is false."),do:l(new q("do",function(){var r=H(function(h,e){var _=this;var p=e.use_dynamic,d=e.error;return O.mark(function e(){var o,r,s,c,n,f,l,i,a,u;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:o=_;r=o;s=o.inherit("do");c=h.car;n=h.cdr.car;f=h.cdr.cdr;if(!ue(f)){f=new ae(ne("begin"),f)}l={env:o,dynamic_env:r,use_dynamic:p,error:d};i=c;case 9:if(ue(i)){t.next=20;break}a=i.car;t.t0=s;t.t1=a.car;t.next=15;return k(a.cdr.car,l);case 15:t.t2=t.sent;t.t0.set.call(t.t0,t.t1,t.t2);i=i.cdr;t.next=9;break;case 20:l={env:s,dynamic_env:r,error:d};u=O.mark(function e(){var r,n,i,a,u;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(ue(f)){t.next=3;break}t.next=3;return Vs.evaluate(f,l);case 3:r=c;n={};case 5:if(ue(r)){t.next=15;break}i=r.car;if(ue(i.cdr.cdr)){t.next=12;break}t.next=10;return k(i.cdr.cdr.car,l);case 10:a=t.sent;n[i.car.valueOf()]=a;case 12:r=r.cdr;t.next=5;break;case 15:u=Object.getOwnPropertySymbols(n);l.env=s=o.inherit("do");Object.keys(n).concat(u).forEach(function(e){s.set(e,n[e])});case 18:case"end":return t.stop()}},e)});case 22:t.next=24;return k(n.car,l);case 24:t.t3=t.sent;if(!(t.t3===false)){t.next=29;break}return t.delegateYield(u(),"t4",27);case 27:t.next=22;break;case 29:if(ue(n.cdr)){t.next=33;break}t.next=32;return k(n.cdr.car,l);case 32:return t.abrupt("return",t.sent);case 33:case"end":return t.stop()}},e)})()});return function(e,t){return r.apply(this,arguments)}}()),"(do (( )) (test return) . body)\n\n Iteration macro that evaluates the expression body in scope of the variables.\n On each loop it changes the variables according to the expression and runs\n test to check if the loop should continue. If test is a single value, the macro\n will return undefined. If the test is a pair of expressions the macro will\n evaluate and return the second expression after the loop exits."),if:l(new q("if",function(r,e){var t=e.error,n=e.use_dynamic;var i=this;var a=this;var u={env:a,dynamic_env:i,use_dynamic:n,error:t};var o=function e(t){if(Ia(t)){return k(r.cdr.cdr.car,u)}else{return k(r.cdr.car,u)}};if(ue(r)){throw new Error("too few expressions for `if`")}var s=k(r.car,u);return D(s,o)}),"(if cond true-expr false-expr)\n\n Macro that evaluates cond expression and if the value is true, it\n evaluates and returns true-expression, if not it evaluates and returns\n false-expression."),"let-env":new q("let-env",function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=e.dynamic_env,n=e.use_dynamic,i=e.error;A("let-env",t,"pair");var a=k(t.car,{env:this,dynamic_env:r,error:i,use_dynamic:n});return D(a,function(e){A("let-env",e,"environment");return k(ae(ne("begin"),t.cdr),{env:e,dynamic_env:r,error:i})})},"(let-env env . body)\n\n Special macro that evaluates body in context of given environment\n object."),letrec:l(Eu(Symbol["for"]("letrec")),"(letrec ((a value-a) (b value-b) ...) . body)\n\n Macro that creates a new environment, then evaluates and assigns values to\n names and then evaluates the body in context of that environment.\n Values are evaluated sequentially and the next value can access the\n previous values/names."),"letrec*":l(Eu(Symbol["for"]("letrec")),"(letrec* ((a value-a) (b value-b) ...) . body)\n\n Same as letrec but the order of execution of the binding is guaranteed,\n so you can use recursive code as well as referencing the previous binding.\n\n In LIPS both letrec and letrec* behave the same."),"let*":l(Eu(Symbol["for"]("let*")),"(let* ((a value-a) (b value-b) ...) . body)\n\n Macro similar to `let`, but the subsequent bindings after the first\n are evaluated in the environment including the previous let variables,\n so you can define one variable, and use it in the next's definition."),let:l(Eu(Symbol["for"]("let")),"(let ((a value-a) (b value-b) ...) . body)\n\n Macro that creates a new environment, then evaluates and assigns values to names,\n and then evaluates the body in context of that environment. Values are evaluated\n sequentially but you can't access previous values/names when the next are\n evaluated. You can only get them in the body of the let expression. (If you want\n to define multiple variables and use them in each other's definitions, use\n `let*`.)"),"begin*":l(Fu("begin*",function(e){return e.pop()}),"(begin* . body)\n\n This macro is a parallel version of begin. It evaluates each expression\n in the body and if it's a promise it will await it in parallel and return\n the value of the last expression (i.e. it uses Promise.all())."),shuffle:l("shuffle",function(e){A("shuffle",e,["pair","nil","array"]);var t=se.get("random");if(ue(e)){return ie}if(Array.isArray(e)){return Qi(e.slice(),t)}var r=se.get("list->array")(e);r=Qi(r,t);return se.get("array->list")(r)},"(shuffle obj)\n\n Order items in vector or list in random order."),begin:l(new q("begin",function(e,t){var n=te(te({},t),{},{env:this});var i=se.get("list->array")(e);var a;return function t(){if(i.length){var e=i.shift();var r=k(e,n);return D(r,function(e){a=e;return t()})}else{return a}}()}),"(begin . args)\n\n Macro that runs a list of expressions in order and returns the value\n of the last one. It can be used in places where you can only have a\n single expression, like (if)."),ignore:new q("ignore",function(e,t){var r=te(te({},t),{},{env:this,dynamic_env:this});k(new ae(new ne("begin"),e),r)},"(ignore . body)\n\n Macro that will evaluate the expression and swallow any promises that may\n be created. It will discard any value that may be returned by the last body\n expression. The code should have side effects and/or when it's promise\n it should resolve to undefined."),"call/cc":l(q.defmacro("call/cc",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=te({env:this},t);return D(k(e.car,r),function(e){if(d(e)){return e(new as(null))}})}),"(call/cc proc)\n\n Call-with-current-continuation.\n\n NOT SUPPORTED BY LIPS RIGHT NOW"),parameterize:l(new q("parameterize",function(t,e){var i=e.dynamic_env;var a=i.inherit("parameterize").new_frame(null,{});var u=te(te({},e),{},{env:this});var o=t.car;if(!oe(o)){var r=Ko(o);throw new Error("Invalid syntax for parameterize expecting pair got ".concat(r))}function s(){var e=new ae(new ne("begin"),t.cdr);return k(e,te(te({},u),{},{dynamic_env:a}))}return function r(){var e=o.car;var n=e.car.valueOf();return D(k(e.cdr.car,u),function(e){var t=i.get(n,{throwError:false});if(!Ma(t)){throw new Error("Unknown parameter ".concat(n))}a.set(n,t.inherit(e));if(!ja(o.cdr)){o=o.cdr;return r()}else{return s()}})}()}),"(parameterize ((name value) ...)\n\n Macro that change the dynamic variable created by make-parameter."),"make-parameter":l(new q("make-parameter",function(e,t){t.dynamic_env;var r=k(e.car,t);var n;if(oe(e.cdr.car)){n=k(e.cdr.car,t)}return new rs(r,n)}),"(make-parameter init converter)\n\n Function creates new dynamic variable that can be custimized with parameterize\n macro. The value should be assigned to a variable e.g.:\n\n (define radix (make-parameter 10))\n\n The result value is a procedure that return the value of dynamic variable."),"define-syntax-parameter":l(new q("define-syntax-parameter",function(e,t){var r=e.car;var n=this;if(!(r instanceof ne)){throw new Error("define-syntax-parameter: invalid syntax expecting symbol got ".concat(Ko(r)))}var i=k(e.cdr.car,te({env:n},t));A("define-syntax-parameter",i,"syntax",2);i.__name__=r.valueOf();if(i.__name__ instanceof x){i.__name__=i.__name__.valueOf()}var a;if(oe(e.cdr.cdr)&&x.isString(e.cdr.cdr.car)){a=e.cdr.cdr.car.valueOf()}n.set(e.car,new ka(i),a,true)}),"(define-syntax-parameter name syntax [__doc__])\n\n Binds to the transformer obtained by evaluating .\n The transformer provides the default expansion for the syntax parameter,\n and in the absence of syntax-parameterize, is functionally equivalent to\n define-syntax."),"syntax-parameterize":l(new q("syntax-parameterize",function(e,t){var r=se.get("list->array")(e.car);var n=this.inherit("syntax-parameterize");while(r.length){var i=r.shift();if(!(oe(i)||i.car instanceof ne)){var a="invalid syntax for syntax-parameterize: ".concat(ea(e,true));throw new Error("syntax-parameterize: ".concat(a))}var u=k(i.cdr.car,te(te({},t),{},{env:this}));var o=i.car;A("syntax-parameterize",u,["syntax"]);A("syntax-parameterize",o,"symbol");u.__name__=o.valueOf();if(u.__name__ instanceof x){u.__name__=u.__name__.valueOf()}var s=new ka(u);if(o.is_gensym()){var c=o.literal();var f=this.get(c,{throwError:false});if(f instanceof ka){n.set(c,s)}}n.set(o,s)}var l=Xn([n,t.dynamic_env],e.cdr);return k(l,te(te({},t),{},{env:n}))}),"(syntax-parameterize (bindings) body)\n\n Macro work similar to let-syntax but the the bindnds will be exposed to the user.\n With syntax-parameterize you can define anaphoric macros."),define:l(q.defmacro("define",function(r,e){var n=this;if(oe(r.car)&&r.car.car instanceof ne){var t=new ae(new ne("define"),new ae(r.car.car,new ae(new ae(new ne("lambda"),new ae(r.car.cdr,r.cdr)))));return t}else if(e.macro_expand){return}e.dynamic_env=this;e.env=n;var i=r.cdr.car;var a;if(oe(i)){i=k(i,e);a=true}else if(i instanceof ne){i=n.get(i)}A("define",r.car,"symbol");return D(i,function(e){if(n.__name__===Aa.__merge_env__){n=n.__parent__}if(a&&(d(e)&&bu(e)||e instanceof Aa||Ma(e))){e.__name__=r.car.valueOf();if(e.__name__ instanceof x){e.__name__=e.__name__.valueOf()}}var t;if(oe(r.cdr.cdr)&&x.isString(r.cdr.cdr.car)){t=r.cdr.cdr.car.valueOf()}n.set(r.car,e,t,true)})}),'(define name expression)\n (define name expression "doc string")\n (define (function-name . args) . body)\n\n Macro for defining values. It can be used to define variables,\n or functions. If the first argument is list it will create a function\n with name being first element of the list. This form expands to\n `(define function-name (lambda args body))`'),"set-obj!":l("set-obj!",function(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var i=_(e);if(ja(e)||i!=="object"&&i!=="function"){var a=Uo("set-obj!",Ko(e),["object","function"]);throw new Error(a)}A("set-obj!",t,["string","symbol","number"]);e=eu(e);t=t.valueOf();if(arguments.length===2){delete e[t]}else if(Na(e)&&d(r)){e[t]=eu(r);e[t][pu]=true}else if(d(r)||Wa(r)||ue(r)){e[t]=r}else{e[t]=r&&!Na(r)?r.valueOf():r}if(ra){var u=e[t];Object.defineProperty(e,t,te(te({},n),{},{value:u}))}},"(set-obj! obj key value)\n (set-obj! obj key value props)\n\n Function set a property of a JavaScript object. props should be a vector of pairs,\n passed to Object.defineProperty."),"null-environment":l("null-environment",function(){return se.inherit("null")},"(null-environment)\n\n Returns a clean environment with only the standard library."),values:l("values",function e(){for(var t=arguments.length,r=new Array(t),n=0;n1&&arguments[1]!==undefined?arguments[1]:{},y=e.use_dynamic,m=e.error;var g=this;var b;if(oe(v.cdr)&&x.isString(v.cdr.car)&&!ue(v.cdr.cdr)){b=v.cdr.car.valueOf()}function w(){var e=La(this)?this:{dynamic_env:g},r=e.dynamic_env;var n=g.inherit("lambda");r=r.inherit("lambda");if(this&&!La(this)){if(this&&!this.__instance__){Object.defineProperty(this,"__instance__",{enumerable:false,get:function e(){return true},set:function e(){},configurable:false})}n.set("this",this)}for(var t=arguments.length,i=new Array(t),a=0;a> SYNTAX");re(e);re(m);var n=w.inherit("syntax");var i=n;var a=this;if(a.__name__===Aa.__merge_env__){var u=Object.getOwnPropertySymbols(a.__env__);u.forEach(function(e){a.__parent__.set(e,a.__env__[e])});a=a.__parent__}var o={env:n,dynamic_env:i,use_dynamic:g,error:b};var s,c,f;if(m.car instanceof ne){s=m.car;f=D(m.cdr.car);c=m.cdr.cdr}else{s="...";f=D(m.car);c=m.cdr}try{while(!ue(c)){var l=c.car.car;var h=c.car.cdr.car;re("[[[ RULE");re(l);var _=Oa(l,e,f,s,{expansion:this,define:w});if(_){if(Qr()){console.log(JSON.stringify(sa(_),true,2));console.log("PATTERN: "+l.toString(true));console.log("MACRO: "+e.toString(true))}var p=[];var d=Sa({bindings:_,expr:h,symbols:f,scope:n,lex_scope:a,names:p,ellipsis:s});re("OUPUT>>> ",d);if(d){h=d}var v=a.merge(n,Aa.__merge_env__);if(r){return{expr:h,scope:v}}var y=k(h,te(te({},o),{},{env:v}));return Ca(y,p)}c=c.cdr}}catch(e){e.message+="\nin macro:\n ".concat(m.toString(true));throw e}throw new Error("syntax-rules: no matching syntax in macro ".concat(e.toString(true)))},w);r.__code__=m;return r},"(syntax-rules () (pattern expression) ...)\n\n Base of hygienic macros, it will return a new syntax expander\n that works like Lisp macros."),quote:l(new q("quote",function(e){return bo(e.car)}),"(quote expression) or 'expression\n\n Macro that returns a single LIPS expression as data (it won't evaluate the\n argument). It will return a list if put in front of LIPS code.\n And if put in front of a symbol it will return the symbol itself, not the value\n bound to that name."),"unquote-splicing":l("unquote-splicing",function(){throw new Error("You can't call `unquote-splicing` outside of quasiquote")},"(unquote-splicing code) or ,@code\n\n Special form used in the quasiquote macro. It evaluates the expression inside and\n splices the list into quasiquote's result. If it is not the last element of the\n expression, the computed value must be a pair."),unquote:l("unquote",function(){throw new Error("You can't call `unquote` outside of quasiquote")},"(unquote code) or ,code\n\n Special form used in the quasiquote macro. It evaluates the expression inside and\n substitutes the value into quasiquote's result."),quasiquote:q.defmacro("quasiquote",function(e,t){var o=t.use_dynamic,s=t.error;var c=this;var f=c;function a(e){return oe(e)||ta(e)||Array.isArray(e)}function l(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:a;if(oe(e)){var n=e.car;var i=e.cdr;if(r(n)){n=t(n)}if(r(i)){i=t(i)}if(za(n)||za(i)){return ti([n,i]).then(function(e){var t=b(e,2),r=t[0],n=t[1];return new ae(r,n)})}else{return new ae(n,i)}}return e}function u(e,t){if(oe(e)){if(!ue(t)){e.append(t)}}else{e=new ae(e,t)}return e}function r(e){return!!e.filter(function(e){return oe(e)&&ne.is(e.car,/^(unquote|unquote-splicing)$/)}).length}function h(e,n,i){return e.reduce(function(e,t){if(!oe(t)){e.push(t);return e}if(ne.is(t.car,"unquote-splicing")){var r;if(n+11){var t="You can't splice multiple atoms inside list";throw new Error(t)}if(!(oe(i.cdr)&&ue(r[0]))){return r[0]}}r=r.map(function(e){if(d.has(e)){return e.clone()}else{d.add(e);return e}});var n=v(i.cdr,0,1);if(ue(n)&&ue(r[0])){return undefined}return D(n,function(e){if(ue(r[0])){return e}if(r.length===1){return u(r[0],e)}var t=r.reduce(function(e,t){return u(e,t)});return u(t,e)})})}(i.car.cdr)}var d=new Set;function v(e,t,r){if(oe(e)){if(oe(e.car)){if(ne.is(e.car.car,"unquote-splicing")){return p(e,t+1,r)}if(ne.is(e.car.car,"unquote")){if(t+2===r&&oe(e.car.cdr)&&oe(e.car.cdr.car)&&ne.is(e.car.cdr.car.car,"unquote-splicing")){var n=e.car.cdr;return new ae(new ae(new ne("unquote"),p(n,t+2,r)),ie)}else if(oe(e.car.cdr)&&!ue(e.car.cdr.cdr)){if(oe(e.car.cdr.car)){var i=[];return function t(r){if(ue(r)){return ae.fromArray(i)}return D(k(r.car,{env:c,dynamic_env:f,use_dynamic:o,error:s}),function(e){i.push(e);return t(r.cdr)})}(e.car.cdr)}else{return e.car.cdr}}}}if(ne.is(e.car,"quasiquote")){var a=v(e.cdr,t,r+1);return new ae(e.car,a)}if(ne.is(e.car,"quote")){return new ae(e.car,v(e.cdr,t,r))}if(ne.is(e.car,"unquote")){t++;if(tr){throw new Error("You can't call `unquote` outside "+"of quasiquote")}if(oe(e.cdr)){if(!ue(e.cdr.cdr)){if(oe(e.cdr.car)){var u=[];return function t(r){if(ue(r)){return ae.fromArray(u)}return D(k(r.car,{env:c,dynamic_env:f,use_dynamic:o,error:s}),function(e){u.push(e);return t(r.cdr)})}(e.cdr)}else{return e.cdr}}else{return k(e.cdr.car,{env:c,dynamic_env:f,error:s})}}else{return e.cdr}}return l(e,function(e){return v(e,t,r)})}else if(ta(e)){return _(e,t,r)}else if(e instanceof Array){return h(e,t,r)}return e}function n(e){if(oe(e)){delete e[cu];if(!e.have_cycles("car")){n(e.car)}if(!e.have_cycles("cdr")){n(e.cdr)}}}if(ta(e.car)&&!r(Object.values(e.car))){return bo(e.car)}if(Array.isArray(e.car)&&!r(e.car)){return bo(e.car)}if(oe(e.car)&&!e.car.find("unquote")&&!e.car.find("unquote-splicing")&&!e.car.find("quasiquote")){return bo(e.car)}var i=v(e.car,0,1);return D(i,function(e){n(e);return bo(e)})},"(quasiquote list)\n\n Similar macro to `quote` but inside it you can use special expressions (unquote\n x) abbreviated to ,x that will evaluate x and insert its value verbatim or\n (unquote-splicing x) abbreviated to ,@x that will evaluate x and splice the value\n into the result. Best used with macros but it can be used outside."),clone:l("clone",function e(t){A("clone",t,"pair");return t.clone()},"(clone list)\n\n Function that returns a clone of the list, that does not share any pairs with the\n original, so the clone can be safely mutated without affecting the original."),append:l("append",function e(){var t;for(var r=arguments.length,n=new Array(r),i=0;iarray")(t).reverse();return se.get("array->list")(r)}else if(Array.isArray(t)){return t.reverse()}else{throw new Error(Uo("reverse",Ko(t),"array or pair"))}},"(reverse list)\n\n Function that reverses the list or array. If value is not a list\n or array it will error."),nth:l("nth",function e(t,r){A("nth",t,"number");A("nth",r,["array","pair"]);if(oe(r)){var n=r;var i=0;while(iarray")(r).join(t)},"(join separator list)\n\n Function that returns a string by joining elements of the list using separator."),split:l("split",function e(t,r){A("split",t,["regex","string"]);A("split",r,"string");return se.get("array->list")(r.split(t))},"(split separator string)\n\n Function that creates a list by splitting string by separator which can\n be a string or regular expression."),replace:l("replace",function e(t,r,n){A("replace",t,["regex","string"]);A("replace",r,["string","function"]);A("replace",n,"string");if(d(r)){var i=[];n.replace(t,function(){i.push(r.apply(void 0,arguments))});return D(i,function(e){return n.replace(t,function(){return e.shift()})})}return n.replace(t,r)},"(replace pattern replacement string)\n\n Function that changes pattern to replacement inside string. Pattern can be a\n string or regex and replacement can be function or string. See Javascript\n String.replace()."),match:l("match",function e(t,r){A("match",t,["regex","string"]);A("match",r,"string");var n=r.match(t);return n?se.get("array->list")(n):false},"(match pattern string)\n\n Function that returns a match object from JavaScript as a list or #f if\n no match."),search:l("search",function e(t,r){A("search",t,["regex","string"]);A("search",r,"string");return r.search(t)},"(search pattern string)\n\n Function that returns the first found index of the pattern inside a string."),repr:l("repr",function e(t,r){return pa(t,r)},"(repr obj)\n\n Function that returns a LIPS code representation of the object as a string."),"escape-regex":l("escape-regex",function(e){A("escape-regex",e,"string");return qn(e.valueOf())},"(escape-regex string)\n\n Function that returns a new string where all special operators used in regex,\n are escaped with backslashes so they can be used in the RegExp constructor\n to match a literal string."),env:l("env",function e(e){e=e||this.env;var t=Object.keys(e.__env__).map(ne);var r;if(t.length){r=ae.fromArray(t)}else{r=ie}if(e.__parent__ instanceof F){return se.get("env").call(this,e.__parent__).append(r)}return r},"(env)\n (env obj)\n\n Function that returns a list of names (functions, macros and variables)\n that are bound in the current environment or one of its parents."),new:l("new",function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2&&arguments[2]!==undefined?arguments[2]:ii.LITERAL;A("set-special!",e,"string",1);A("set-special!",t,"symbol",2);ii.append(e.valueOf(),t,r)},'(set-special! symbol name [type])\n\n Add a special symbol to the list of transforming operators by the parser.\n e.g.: `(add-special! "#" \'x)` will allow to use `#(1 2 3)` and it will be\n transformed into (x (1 2 3)) so you can write x macro that will process\n the list. 3rd argument is optional, and it can be one of two values:\n lips.specials.LITERAL, which is the default behavior, or\n lips.specials.SPLICE which causes the value to be unpacked into the expression.\n This can be used for e.g. to make `#(1 2 3)` into (x 1 2 3) that is needed\n by # that defines vectors.'),get:Do,".":Do,unbind:l(eu,"(unbind fn)\n\n Function that removes the weak 'this' binding from a function so you\n can get properties from the actual function object."),type:l(Ko,"(type object)\n\n Function that returns the type of an object as string."),debugger:l("debugger",function(){debugger},'(debugger)\n\n Function that triggers the JavaScript debugger (e.g. the browser devtools)\n using the "debugger;" statement. If a debugger is not running this\n function does nothing.'),in:l("in",function(e,t){if(e instanceof ne||e instanceof x||e instanceof B){e=e.valueOf()}return e in Za(t)},'(in key value)\n\n Function that uses the Javascript "in" operator to check if key is\n a valid property in the value.'),"instance?":l("instance?",function(e){return Ja(e)},"(instance? obj)\n\n Checks if object is an instance, created with a new operator"),instanceof:l("instanceof",function(e,t){return t instanceof eu(e)},"(instanceof type obj)\n\n Predicate that tests if the obj is an instance of type."),"prototype?":l("prototype?",Na,"(prototype? obj)\n\n Predicate that tests if value is a valid JavaScript prototype,\n i.e. calling (new) with it will not throw ' is not a constructor'."),"macro?":l("macro?",function(e){return e instanceof q},"(macro? expression)\n\n Predicate that tests if value is a macro."),"continuation?":l("continuation?",Ta,"(continuation? expression)\n\n Predicate that tests if value is a callable continuation."),"function?":l("function?",d,"(function? expression)\n\n Predicate that tests if value is a callable function."),"real?":l("real?",function(e){if(Ko(e)!=="number"){return false}if(e instanceof B){return e.isFloat()}return B.isFloat(e)},"(real? number)\n\n Predicate that tests if value is a real number (not complex)."),"number?":l("number?",function(e){return Number.isNaN(e)||B.isNumber(e)},"(number? expression)\n\n Predicate that tests if value is a number or NaN value."),"string?":l("string?",function(e){return x.isString(e)},"(string? expression)\n\n Predicate that tests if value is a string."),"pair?":l("pair?",oe,"(pair? expression)\n\n Predicate that tests if value is a pair or list structure."),"regex?":l("regex?",function(e){return e instanceof RegExp},"(regex? expression)\n\n Predicate that tests if value is a regular expression."),"null?":l("null?",function(e){return ja(e)},"(null? expression)\n\n Predicate that tests if value is null-ish (i.e. undefined, nil, or\n Javascript null)."),"boolean?":l("boolean?",function(e){return typeof e==="boolean"},"(boolean? expression)\n\n Predicate that tests if value is a boolean (#t or #f)."),"symbol?":l("symbol?",function(e){return e instanceof ne},"(symbol? expression)\n\n Predicate that tests if value is a LIPS symbol."),"array?":l("array?",function(e){return e instanceof Array},"(array? expression)\n\n Predicate that tests if value is an array."),"object?":l("object?",function(e){return!ue(e)&&e!==null&&!(e instanceof h)&&!(e instanceof RegExp)&&!(e instanceof x)&&!oe(e)&&!(e instanceof B)&&_(e)==="object"&&!(e instanceof Array)},"(object? expression)\n\n Predicate that tests if value is an plain object (not another LIPS type)."),flatten:l("flatten",function e(t){A("flatten",t,"pair");return t.flatten()},"(flatten list)\n\n Returns a shallow list from tree structure (pairs)."),"vector-append":l("vector-append",function(){for(var e=arguments.length,t=new Array(e),r=0;rlist":l("array->list",function(e){A("array->list",e,"array");return ae.fromArray(e)},"(array->list array)\n\n Function that converts a JavaScript array to a LIPS cons list."),"tree->array":l("tree->array",Xi("tree->array",true),"(tree->array list)\n\n Function that converts a LIPS cons tree structure into a JavaScript array."),"list->array":l("list->array",Xi("list->array"),"(list->array list)\n\n Function that converts a LIPS list into a JavaScript array."),apply:l("apply",function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;iarray").call(this,a));return t.apply(this,Zo(t,n))},"(apply fn list)\n\n Function that calls fn with the list of arguments."),length:l("length",function e(t){if(!t||ue(t)){return 0}if(oe(t)){return t.length()}if("length"in t){return t.length}},'(length expression)\n\n Function that returns the length of the object. The object can be a LIPS\n list or any object that has a "length" property. Returns undefined if the\n length could not be found.'),"string->number":l("string->number",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;A("string->number",e,"string",1);A("string->number",t,"number",2);e=e.valueOf();t=t.valueOf();if(e.match(wn)||e.match(mn)){return An(e,t)}else if(e.match(Dn)||e.match(yn)){return Cn(e,t)}else{var r=t===10&&!e.match(/e/i)||t===16;if(e.match(bn)&&r||e.match(gn)){return kn(e,t)}if(e.match(un)){return In(e)}}return false},"(string->number number [radix])\n\n Function that parses a string into a number."),try:l(new q("try",function(r,e){var l=this;var h=e.use_dynamic;e.error;return new Promise(function(t,o){var s,n;if(ne.is(r.cdr.car.car,"catch")){s=r.cdr.car;if(oe(r.cdr.cdr)&&ne.is(r.cdr.cdr.car.car,"finally")){n=r.cdr.cdr.car}}else if(ne.is(r.cdr.car.car,"finally")){n=r.cdr.car}if(!(n||s)){throw new Error("try: invalid syntax")}function c(e){t(e);throw new yo("[CATCH]")}var f=function e(t,r){r(t)};if(n){f=function e(t,r){f=o;i.error=function(e){throw e};D(k(new ae(new ne("begin"),n.cdr),i),function(){r(t)})}}var i={env:l,use_dynamic:h,dynamic_env:l,error:function e(t){if(t instanceof yo){throw t}if(s){var r=l.inherit("try");var n=s.cdr.car.car;if(!(n instanceof ne)){throw new Error("try: invalid syntax: catch require variable name")}r.set(n,t);var i;var a={env:r,use_dynamic:h,dynamic_env:l,error:function e(t){i=true;o(t);throw new yo("[CATCH]")}};var u=k(new ae(new ne("begin"),s.cdr.cdr),a);D(u,function e(t){if(!i){f(t,c)}})}else{f(undefined,function(){o(t)})}}};var e=k(r.car,i);D(e,function(e){f(e,t)},i.error)})}),"(try expr (catch (e) code))\n (try expr (catch (e) code) (finally code))\n (try expr (finally code))\n\n Macro that executes expr and catches any exceptions thrown. If catch is provided\n it's executed when an error is thrown. If finally is provided it's always\n executed at the end."),raise:l("raise",function(e){throw e},"(raise obj)\n\n Throws the object verbatim (no wrapping an a new Error)."),throw:l("throw",function(e){throw new Error(e)},"(throw string)\n\n Throws a new exception."),find:l("find",function t(r,n){A("find",r,["regex","function"]);A("find",n,["pair","nil"]);if(ja(n)){return ie}var e=Ei("find",r);return D(e(n.car),function(e){if(e&&!ue(e)){return n.car}return t(r,n.cdr)})},"(find fn list)\n (find regex list)\n\n Higher-order function that finds the first value for which fn return true.\n If called with a regex it will create a matcher function."),"for-each":l("for-each",function(e){var t;A("for-each",e,"function");for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?t-1:0),a=1;a3?n-3:0),a=3;a3?i-3:0),u=3;uarray")(r);var a=[];var u=Ei("filter",t);return function t(r){function e(e){if(e&&!ue(e)){a.push(n)}return t(++r)}if(r===i.length){return ae.fromArray(a)}var n=i[r];return D(u(n),e)}(0)},"(filter fn list)\n (filter regex list)\n\n Higher-order function that calls `fn` for each element of the list\n and return a new list for only those elements for which fn returns\n a truthy value. If called with a regex it will create a matcher function."),compose:l(Ou,"(compose . fns)\n\n Higher-order function that creates a new function that applies all functions\n from right to left and returns the last value. Reverse of pipe.\n e.g.:\n ((compose (curry + 2) (curry * 3)) 10) ==> (+ 2 (* 3 10)) ==> 32"),pipe:l(ku,"(pipe . fns)\n\n Higher-order function that creates a new function that applies all functions\n from left to right and returns the last value. Reverse of compose.\n e.g.:\n ((pipe (curry + 2) (curry * 3)) 10) ==> (* 3 (+ 2 10)) ==> 36"),curry:l(Pu,"(curry fn . args)\n\n Higher-order function that creates a curried version of the function.\n The result function will have partially applied arguments and it\n will keep returning one-argument functions until all arguments are provided,\n then it calls the original function with the accumulated arguments.\n\n e.g.:\n (define (add a b c d) (+ a b c d))\n (define add1 (curry add 1))\n (define add12 (add 2))\n (display (add12 3 4))"),gcd:l("gcd",function e(){for(var t=arguments.length,r=new Array(t),n=0;no?a%=o:o%=a}a=ya(s*r[u])/(a+o)}return B(a)},"(lcm n1 n2 ...)\n\n Function that returns the least common multiple of the arguments."),"odd?":l("odd?",ju(function(e){return B(e).isOdd()}),"(odd? number)\n\n Checks if number is odd."),"even?":l("even?",ju(function(e){return B(e).isEven()}),"(even? number)\n\n Checks if number is even."),"*":l("*",Iu(function(e,t){return B(e).mul(t)},B(1)),"(* . numbers)\n\n Multiplies all numbers passed as arguments. If single value is passed\n it will return that value."),"+":l("+",Iu(function(e,t){return B(e).add(t)},B(0)),"(+ . numbers)\n\n Sums all numbers passed as arguments. If single value is passed it will\n return that value."),"-":l("-",function(){for(var e=arguments.length,t=new Array(e),r=0;r":l(">",function(){for(var e=arguments.length,t=new Array(e),r=0;r",t,["bigint","float","rational"]);return ma(function(e,t){return B(e).cmp(t)===1},t)},"(> x1 x2 x3 ...)\n\n Function that compares its numerical arguments and checks if they are\n monotonically decreasing, i.e. x1 > x2 and x2 > x3 and so on."),"<":l("<",function(){for(var e=arguments.length,t=new Array(e),r=0;r=":l(">=",function(){for(var e=arguments.length,t=new Array(e),r=0;r=",t,["bigint","float","rational"]);return ma(function(e,t){return[0,1].includes(B(e).cmp(t))},t)},"(>= x1 x2 ...)\n\n Function that compares its numerical arguments and checks if they are\n monotonically nonincreasing, i.e. x1 >= x2 and x2 >= x3 and so on."),"eq?":l("eq?",ga,"(eq? a b)\n\n Function that compares two values if they are identical."),or:l(new q("or",function(e,t){var i=t.use_dynamic,a=t.error;var u=se.get("list->array")(e);var o=this;var s=o;if(!u.length){return false}var c;return function t(){function e(e){c=e;if(!Ia(c)){return c}else{return t()}}if(!u.length){if(!Ia(c)){return c}else{return false}}else{var r=u.shift();var n=k(r,{env:o,dynamic_env:s,use_dynamic:i,error:a});return D(n,e)}}()}),"(or . expressions)\n\n Macro that executes the values one by one and returns the first that is\n a truthy value. If there are no expressions that evaluate to true it\n returns false."),and:l(new q("and",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=t.error;var i=se.get("list->array")(e);var a=this;var u=a;if(!i.length){return true}var o;var s={env:a,dynamic_env:u,use_dynamic:r,error:n};return function t(){function e(e){o=e;if(Ia(o)){return o}else{return t()}}if(!i.length){if(!Ia(o)){return o}else{return false}}else{var r=i.shift();return D(k(r,s),e)}}()}),"(and . expressions)\n\n Macro that evaluates each expression in sequence and if any value returns false\n it will stop and return false. If each value returns true it will return the\n last value. If it's called without arguments it will return true."),"|":l("|",function(e,t){return B(e).or(t)},"(| a b)\n\n Function that calculates the bitwise or operation."),"&":l("&",function(e,t){return B(e).and(t)},"(& a b)\n\n Function that calculates the bitwise and operation."),"~":l("~",function(e){return B(e).neg()},"(~ number)\n\n Function that calculates the bitwise inverse (flip all the bits)."),">>":l(">>",function(e,t){return B(e).shr(t)},"(>> a b)\n\n Function that right shifts the value a by value b bits."),"<<":l("<<",function(e,t){return B(e).shl(t)},"(<< a b)\n\n Function that left shifts the value a by value b bits."),not:l("not",function e(t){return!t},"(not object)\n\n Function that returns the Boolean negation of its argument.")},undefined,"global");var Co=se.inherit("user-env");function So(e,t){e.constant("**internal-env**",t);e.doc("**internal-env**","**internal-env**\n\n Constant used to hide stdin, stdout and stderr so they don't interfere\n with variables with the same name. Constants are an internal type\n of variable that can't be redefined, defining a variable with the same name\n will throw an error.");se.set("**interaction-environment**",e)}So(Co,Ao);se.doc("**interaction-environment**","**interaction-environment**\n\n Internal dynamic, global variable used to find interpreter environment.\n It's used so the read and write functions can locate **internal-env**\n that contains the references to stdin, stdout and stderr.");function jo(e){Co.get("**internal-env**").set("fs",e)}(function(){var e={ceil:"ceiling"};["floor","round","ceil"].forEach(function(t){var r=e[t]?e[t]:t;se.set(r,l(r,function(e){A(r,e,"number");if(e instanceof B){return e[t]()}},"(".concat(r," number)\n\n Function that calculates the ").concat(r," of a number.")))})})();function Bo(e){if(e.length===1){return e[0]}else{var t=[];var r=Bo(e.slice(1));for(var n=0;n3&&arguments[3]!==undefined?arguments[3]:null;var i=e?" in expression `".concat(e,"`"):"";if(n!==null){i+=" (argument ".concat(n,")")}if(d(r)){return"Invalid type: got ".concat(t).concat(i)}if(r instanceof Array){if(r.length===1){var a=r[0].toLowerCase();r="a"+("aeiou".includes(a)?"n ":" ")+r[0]}else{r=new Intl.ListFormat("en",{style:"long",type:"disjunction"}).format(r)}}return"Expecting ".concat(r," got ").concat(t).concat(i)}function zo(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;A(e,t,"number",n);var i=t.__type__;var a;if(oe(r)){r=r.to_array()}if(r instanceof Array){r=r.map(function(e){return e.valueOf()})}if(r instanceof Array){r=r.map(function(e){return e.valueOf().toLowerCase()});if(r.includes(i)){a=true}}else{r=r.valueOf().toLowerCase()}if(!a&&i!==r){throw new Error(Uo(e,i,r,n))}}function Vo(r,e,n){e.forEach(function(e,t){zo(r,e,n,t+1)})}function $o(r,e,n){e.forEach(function(e,t){A(r,e,n,t+1)})}function Yo(e,t,r){A(e,t,r);if(t.__type__===fo){throw new Error(Uo(e,"binary-port","textual-port"))}}function A(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;e=e.valueOf();var i=Ko(t).toLowerCase();if(d(r)){if(!r(t)){throw new Error(Uo(e,i,r,n))}return}var a=false;if(oe(r)){r=r.to_array()}if(r instanceof Array){r=r.map(function(e){return e.valueOf()})}if(r instanceof Array){r=r.map(function(e){return e.valueOf().toLowerCase()});if(r.includes(i)){a=true}}else{r=r.valueOf().toLowerCase()}if(!a&&i!==r){throw new Error(Uo(e,i,r,n))}}function Jo(r){var n=new WeakMap;return function(e){var t=n.get(e);if(!t){t=r(e)}return t}}Ko=Jo(Ko);function Ko(e){var t=Yr.get(e);if(t){return t}if(_(e)==="object"){for(var r=0,n=Object.entries($r);r2&&arguments[2]!==undefined?arguments[2]:{},n=r.env,i=r.dynamic_env,a=r.use_dynamic;var u=n===null||n===void 0?void 0:n.new_frame(e,t);var o=i===null||i===void 0?void 0:i.new_frame(e,t);var s=new ns({env:u,use_dynamic:a,dynamic_env:o});return Wo(e.apply(s,t))}function es(n,e){var t=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},i=t.env,a=t.dynamic_env,u=t.use_dynamic,r=t.error,o=r===void 0?function(){}:r;e=Go(e,{env:i,dynamic_env:a,error:o,use_dynamic:u});return D(e,function(e){if(Du(n)){n=eu(n)}e=Zo(n,e);var t=e.slice();var r=Xo(n,t,{env:i,dynamic_env:a,use_dynamic:u});return D(r,function(e){if(oe(e)){e.mark_cycles();return bo(e)}return Ha(e)},o)})}var ts=new WeakMap;var rs=function(){function n(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;Q(this,n);le(this,"__value__",void 0);le(this,"__fn__",void 0);Ir(this,ts,{writable:true,value:void 0});this.__value__=e;if(t){if(!d(t)){throw new Error("Section argument to Parameter need to be function "+"".concat(Ko(t)," given"))}this.__fn__=t}if(r){f(this,ts,r)}}fe(n,[{key:"__name__",get:function e(){return t(this,ts)},set:function e(t){f(this,ts,t);if(this.__fn__){this.__fn__.__name__="fn-".concat(t)}}},{key:"invoke",value:function e(){if(d(this.__fn__)){return this.__fn__(this.__value__)}return this.__value__}},{key:"inherit",value:function e(t){return new n(t,this.__fn__,this.__name__)}}]);return n}();var ns=function(){function t(e){Q(this,t);le(this,"env",void 0);le(this,"dynamic_env",void 0);le(this,"use_dynamic",void 0);Object.assign(this,e)}fe(t,[{key:"__name__",get:function e(){return this.env.__name__}},{key:"__parent__",get:function e(){return this.env.__parent__}},{key:"get",value:function e(){var t;return(t=this.env).get.apply(t,arguments)}}]);return t}();function is(e,t){var r=e.get(t.__name__,{throwError:false});if(Ma(r)&&r!==t){return r}var n=Co.get("**interaction-environment**");while(true){var i=e.get("parent.frame",{throwError:false});e=i(0);if(e===n){break}r=e.get(t.__name__,{throwError:false});if(Ma(r)&&r!==t){return r}}return t}var as=function(){function t(e){Q(this,t);le(this,"__value__",void 0);this.__value__=e}fe(t,[{key:"invoke",value:function e(){if(this.__value__===null){throw new Error("Continuations are not implemented yet")}}}]);return t}();function k(o){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},s=e.env,c=e.dynamic_env,f=e.use_dynamic,t=e.error,l=t===void 0?Lo:t,r=_e(e,Br);return function(e){try{if(!Ra(c)){c=s===true?Co:s||Co}if(f){s=c}else if(s===true){s=Co}else{s=s||se}var t={env:s,dynamic_env:c,use_dynamic:f,error:l};var r;if(ja(o)){return o}if(o instanceof ne){return s.get(o)}if(!oe(o)){return o}var n=o.car;var e=o.cdr;if(oe(n)){r=Wo(k(n,t));if(za(r)){return r.then(function(e){if(!qa(e)){throw new Error(Ko(e)+" "+s.get("repr")(e)+" is not callable while evaluating "+o.toString())}return k(new ae(e,o.cdr),t)})}else if(!qa(r)){throw new Error(Ko(r)+" "+s.get("repr")(r)+" is not callable while evaluating "+o.toString())}}if(n instanceof ne){r=s.get(n)}else if(d(n)){r=n}var i;if(r instanceof Aa){i=Ho(r,o,t)}else if(r instanceof q){i=Qo(r,e,t)}else if(d(r)){i=es(r,e,t)}else if(r instanceof ka){i=Ho(r._syntax,o,t)}else if(Ma(r)){var a=is(c,r);if(ja(o.cdr)){i=a.invoke()}else{return D(k(o.cdr.car,t),function(e){a.__value__=e})}}else if(Ta(r)){i=r.invoke()}else if(oe(o)){r=n&&n.toString();throw new Error("".concat(Ko(n)," ").concat(r," is not a function"))}else{return o}var u=s.get(Symbol["for"]("__promise__"),{throwError:false});if(u===true&&za(i)){i=i.then(function(e){if(oe(e)&&!r[cu]){return k(e,t)}return e});return new ei(i)}return i}catch(e){l&&l.call(s,e,o)}}(r)}var us=cs(function(e){return e});var os=cs(function(e,t){return t});function ss(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.env,n=t.dynamic_env,i=t.use_dynamic;return k(e,{env:r,dynamic_env:n,use_dynamic:i,error:function e(t,r){if(t&&t.message){if(t.message.match(/^Error:/)){var n=/^(Error:)\s*([^:]+:\s*)/;t.message=t.message.replace(n,"$1 $2")}if(r){if(!(t.__code__ instanceof Array)){t.__code__=[]}t.__code__.push(r.toString(true))}}if(!(t instanceof yo)){throw t}}})}function cs(d){return function(){var t=H(function(l){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},h=e.env,_=e.dynamic_env,p=e.use_dynamic;return O.mark(function e(){var r,n,i,a,u,o,s,c,f;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!Ra(_)){_=h===true?Co:h||Co}if(h===true){h=Co}else{h=h||Co}r=[];if(!oe(l)){t.next=8;break}t.next=6;return ss(l,{env:h,dynamic_env:_,use_dynamic:p});case 6:t.t0=t.sent;return t.abrupt("return",[t.t0]);case 8:n=Array.isArray(l)?l:mi(l);i=false;a=false;t.prev=11;o=Ur(n);case 13:t.next=15;return o.next();case 15:if(!(i=!(s=t.sent).done)){t.next=31;break}c=s.value;t.next=19;return ss(c,{env:h,dynamic_env:_,use_dynamic:p});case 19:f=t.sent;t.t1=r;t.t2=d;t.t3=c;t.next=25;return f;case 25:t.t4=t.sent;t.t5=(0,t.t2)(t.t3,t.t4);t.t1.push.call(t.t1,t.t5);case 28:i=false;t.next=13;break;case 31:t.next=37;break;case 33:t.prev=33;t.t6=t["catch"](11);a=true;u=t.t6;case 37:t.prev=37;t.prev=38;if(!(i&&o["return"]!=null)){t.next=42;break}t.next=42;return o["return"]();case 42:t.prev=42;if(!a){t.next=45;break}throw u;case 45:return t.finish(42);case 46:return t.finish(37);case 47:return t.abrupt("return",r);case 48:case"end":return t.stop()}},e,null,[[11,33,37,47],[38,,42,46]])})()});function e(e){return t.apply(this,arguments)}return e}()}function fs(e){var t={"[":"]","(":")"};var r;if(typeof e==="string"){try{r=Kn(e)}catch(e){if(e instanceof vi){return false}throw e}}else{r=e.map(function(e){return e&&e.token?e.token:e})}var n=Object.keys(t);var i=Object.values(t).concat(n);r=r.filter(function(e){return i.includes(e)});var a=new Un;var u=Lr(r),o;try{for(u.s();!(o=u.n()).done;){var s=o.value;if(n.includes(s)){a.push(s)}else if(!a.is_empty()){var c=a.top();var f=t[c];if(s===f){a.pop()}else{throw new Error("Syntax error: missing closing ".concat(f))}}else{throw new Error("Syntax error: not matched closing ".concat(s))}}}catch(e){u.e(e)}finally{u.f()}return a.is_empty()}function ls(e){var t="("+e.toString()+")()";var r=window.URL||window.webkitURL;var n;try{n=new Blob([t],{type:"application/javascript"})}catch(e){var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder;n=new i;n.append(t);n=n.getBlob()}return new Vr.Worker(r.createObjectURL(n))}function hs(){return Vs.version.match(/^(\{\{VER\}\}|DEV)$/)}function _s(){if(To()){return}var e;if(document.currentScript){e=document.currentScript}else{var t=document.querySelectorAll("script");if(!t.length){return}e=t[t.length-1]}var r=e.getAttribute("src");return r}var ps=_s();function ds(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var t="dist/std.xcb";if(e===""){if(ps){e=ps.replace(/[^/]*$/,"std.xcb")}else if(hs()){e="https://cdn.jsdelivr.net/gh/jcubic/lips@devel/".concat(t)}else{e="https://cdn.jsdelivr.net/npm/@jcubic/lips@".concat(Vs.version,"/").concat(t)}}se.set("__dirname",e.replace(/[^/]+$/,""));var r=se.get("load");return r.call(Co,e,se)}function vs(e){this.url=e;var u=this.worker=ls(function(){var u;var o;self.addEventListener("message",function(e){var r=e.data;var t=r.id;if(r.type!=="RPC"||t===null){return}function n(e){self.postMessage({id:t,type:"RPC",result:e})}function i(e){self.postMessage({id:t,type:"RPC",error:e})}if(r.method==="eval"){if(!o){i("Worker RPC: LIPS not initialized, call init first");return}o.then(function(){var e=r.params[0];var t=r.params[1];u.exec(e,{use_dynamic:t}).then(function(e){e=e.map(function(e){return e&&e.valueOf()});n(e)})["catch"](function(e){i(e)})})}else if(r.method==="init"){var a=r.params[0];if(typeof a!=="string"){i("Worker RPC: url is not a string")}else{importScripts("".concat(a,"/dist/lips.min.js"));u=new Vs.Interpreter("worker");o=ds(a);o.then(function(){n(true)})}}})});this.rpc=function(){var n=0;return function e(t,r){var a=++n;return new Promise(function(n,i){u.addEventListener("message",function e(t){var r=t.data;if(r&&r.type==="RPC"&&r.id===a){if(r.error){i(r.error)}else{n(r.result)}u.removeEventListener("message",e)}});u.postMessage({type:"RPC",method:t,id:a,params:r})})}}();this.rpc("init",[e])["catch"](function(e){console.error(e)});this.exec=function(e,t){var r=t.use_dynamic,n=r===void 0?false:r;return this.rpc("eval",[e,n])}}var ys={pair:function e(t){var r=b(t,2),n=r[0],i=r[1];return ae(n,i)},number:function e(t){if(x.isString(t)){return B([t,10])}return B(t)},regex:function e(t){var r=b(t,2),n=r[0],i=r[1];return new RegExp(n,i)},nil:function e(){return ie},symbol:function e(t){if(x.isString(t)){return ne(t)}else if(Array.isArray(t)){return ne(Symbol["for"](t[0]))}},string:x,character:h};var ms=Object.keys(ys);var gs={};for(var bs=0,ws=Object.entries(ms);bs1){var n=t.reduce(function(e,t){return e+t.length},0);var i=new Uint8Array(n);var a=0;t.forEach(function(e){i.set(e,a);a+=e.length});return i}else if(t.length){return t[0]}}function js(){var e=1;var t=new TextEncoder("utf-8");return t.encode("LIPS".concat(e.toString().padStart(3," ")))}var Bs=7;function Is(e){var t=new TextDecoder("utf-8");var r=t.decode(e.slice(0,Bs));var n=r.substring(0,4);if(n==="LIPS"){var i=r.match(/^(....).*([0-9]+)$/);if(i){return{type:i[1],version:Number(i[2])}}}return{type:"unknown"}}function Ps(e){var t=js();var r=Cs.encode(e);return Ss(t,Er(r,{magic:false}))}function Ns(e){var t=Is(e),r=t.type,n=t.version;if(r==="LIPS"&&n===1){var i=Fr(e.slice(Bs),{magic:false});return Cs.decode(i)}else{throw new Error("Invalid file format ".concat(r))}}function Ts(e){console.error(e.message||e);if(Array.isArray(e.code)){console.error(e.code.map(function(e,t){return"[".concat(t+1,"]: ").concat(e)}))}}function Ls(){var u=["text/x-lips","text/x-scheme"];var o;function s(e){var t;return(t=e.getAttribute("data-bootstrap"))!==null&&t!==void 0?t:e.getAttribute("bootstrap")}function c(r){return new Promise(function(t){var e=r.getAttribute("src");if(e){return fetch(e).then(function(e){return e.text()}).then(os).then(t)["catch"](function(e){Ts(e);t()})}else{return os(r.innerHTML).then(t)["catch"](function(e){Ts(e);t()})}})}function e(){return new Promise(function(i){var a=Array.from(document.querySelectorAll("script"));return function e(){var t=a.shift();if(!t){i()}else{var r=t.getAttribute("type");if(u.includes(r)){var n=s(t);if(!o&&typeof n==="string"){return ds(n).then(function(){return c(t)}).then(e)}else{return c(t).then(e)}}else if(r&&r.match(/lips|lisp/)){console.warn("Expecting "+u.join(" or ")+" found "+r)}return e()}}()})}if(!window.document){return Promise.resolve()}else if(Ms){var t=Ms;var r=s(t);if(typeof r==="string"){return ds(r).then(function(){o=true;return e()})}}return e()}var Ms=typeof window!=="undefined"&&window.document&&document.currentScript;if(typeof window!=="undefined"){Hr(window,Ls)}var Rs=function(){var e=x("Fri, 08 Nov 2024 13:26:12 +0000").valueOf();var t=e==="{{"+"DATE}}"?new Date:new Date(e);var r=function e(t){return t.toString().padStart(2,"0")};var n=t.getFullYear();var i=[n,r(t.getMonth()+1),r(t.getDate())].join("-");var a="\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter DEV (".concat(i,") \nCopyright (c) 2018-").concat(n," Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/,"");return a}();s(Si,"__class__","ahead");s(ae,"__class__","pair");s(Zi,"__class__","nil");s(ji,"__class__","pattern");s(Ci,"__class__","formatter");s(q,"__class__","macro");s(Aa,"__class__","syntax");s(Aa.Parameter,"__class__","syntax-parameter");s(F,"__class__","environment");s(Zu,"__class__","input-port");s(Xu,"__class__","output-port");s(eo,"__class__","output-port");s(to,"__class__","output-string-port");s(no,"__class__","input-string-port");s(oo,"__class__","input-file-port");s(ro,"__class__","output-file-port");s(vo,"__class__","lips-error");[B,m,w,g,E].forEach(function(e){s(e,"__class__","number")});s(h,"__class__","character");s(ne,"__class__","symbol");s(x,"__class__","string");s(ei,"__class__","promise");s(rs,"__class__","parameter");var qs="DEV";var Us="Fri, 08 Nov 2024 13:26:12 +0000";var zs=Ou(Di,mi);var Vs={version:qs,banner:Rs,date:Us,exec:os,parse:zs,tokenize:Kn,evaluate:k,compile:us,serialize:ks,unserialize:Os,serialize_bin:Ps,unserialize_bin:Ns,bootstrap:ds,Environment:F,env:Co,Worker:vs,Interpreter:po,balanced_parenthesis:fs,balancedParenthesis:fs,balanced:fs,Macro:q,Syntax:Aa,Pair:ae,Values:go,QuotedPromise:ei,Error:vo,quote:bo,InputPort:Zu,OutputPort:Xu,BufferedOutputPort:eo,InputFilePort:oo,OutputFilePort:ro,InputStringPort:no,OutputStringPort:to,InputByteVectorPort:ao,OutputByteVectorPort:uo,InputBinaryFilePort:so,OutputBinaryFilePort:co,set_fs:jo,Formatter:Ci,Parser:di,Lexer:o,specials:ii,repr:ea,nil:ie,eof:ho,LSymbol:ne,LNumber:B,LFloat:g,LComplex:m,LRational:w,LBigInteger:E,LCharacter:h,LString:x,Parameter:rs,rationalize:Hu};se.set("lips",Vs);e.BufferedOutputPort=eo;e.Environment=F;e.Error=vo;e.Formatter=Ci;e.InputBinaryFilePort=so;e.InputByteVectorPort=ao;e.InputFilePort=oo;e.InputPort=Zu;e.InputStringPort=no;e.Interpreter=po;e.LBigInteger=E;e.LCharacter=h;e.LComplex=m;e.LFloat=g;e.LNumber=B;e.LRational=w;e.LString=x;e.LSymbol=ne;e.Lexer=o;e.Macro=q;e.OutputBinaryFilePort=co;e.OutputByteVectorPort=uo;e.OutputFilePort=ro;e.OutputPort=Xu;e.OutputStringPort=to;e.Pair=ae;e.Parameter=rs;e.Parser=di;e.QuotedPromise=ei;e.Syntax=Aa;e.Values=go;e.Worker=vs;e._is_directive=Ba;e.balanced=fs;e.balancedParenthesis=fs;e.balanced_parenthesis=fs;e.banner=Rs;e.bootstrap=ds;e.compile=us;e.date=Us;e.env=Co;e.eof=ho;e.evaluate=k;e.exec=os;e.nil=ie;e.parse=zs;e.quote=bo;e.rationalize=Hu;e.repr=ea;e.serialize=ks;e.serialize_bin=Ps;e.set_fs=jo;e.specials=ii;e.tokenize=Kn;e.unserialize=Os;e.unserialize_bin=Ns;e.version=qs}); \ No newline at end of file + */var cr;function fr(){if(cr)return sr;cr=1;Object.defineProperty(sr,"__esModule",{value:true});const _=8,p=6,d=3,v=(1<r-v){t[i++]=e[n++];continue}f=(e[n]+13^e[n+1]-13^e[n+2])&m-1;c=n-l[f]&y;l[f]=n;a=n-c;if(a>=0&&a!=n&&e[n]==e[a]&&e[n+1]==e[a+1]&&e[n+2]==e[a+2]){t[u]|=o;for(s=d;s>_;t[i++]=c;n+=s}else{t[i++]=e[n++]}}console.assert(e.length>=n);return i}function c(e,t,r){t=t|0;var n=0,i=0,a=0,u=0,o=1<<(_-1|0),s=0,c=0;while(n>(_-p|0))+d|0;c=(e[n]<<_|e[n+1|0])&y;n=n+2|0;a=i-c|0;{while(s>4){r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;r[i]=r[a];i=i+1|0;a=a+1|0;s=s-4|0}while(s>0){r[i]=r[a];i=i+1|0;a=a+1|0;s=s-1|0}}}else{r[i]=e[n];i=i+1|0;n=n+1|0}}return i}function e(){const e=new TextEncoder("utf-8");return e.encode(f)}const f="@lzjb";const l=e();function o(...e){if(e.length>1){const r=e.reduce((e,t)=>e+t.length,0);const n=new Uint8Array(r);let t=0;e.forEach(e=>{n.set(e,t);t+=e.length});return n}else if(e.length){return e[0]}}function s(t){const e=Math.ceil(Math.log2(t)/8);const r=new Uint8Array(e);for(let e=0;e=0;e--){r=r*256+t[e]}return r}function t(e,{magic:t=true}={}){const r=new Uint8Array(Math.max(e.length*1.5|0,16*1024));const n=u(e,r);const i=s(e.length);const a=[Uint8Array.of(i.length),i,r.slice(0,n)];if(t){a.unshift(l)}return o(...a)}function r(t,{magic:e=true}={}){if(e){const e=new TextDecoder("utf-8");const s=e.decode(t.slice(0,l.length));if(s!==f){throw new Error("Invalid magic value")}}const r=e?l.length:0;const n=t[r];const i=r+1;const a=r+n+1;const u=h(t.slice(i,a));t=t.slice(a);const o=new Uint8Array(u);c(t,t.length,o);return o}sr.pack=t;sr.unpack=r;return sr}var lr=fr();function hr(o,s){return s=s||{},new Promise(function(e,t){var r=new XMLHttpRequest,n=[],i={},a=function e(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:e,headers:{keys:function(){return n},entries:function(){return n.map(function(e){return[e,r.getResponseHeader(e)]})},get:function(e){return r.getResponseHeader(e)},has:function(e){return null!=r.getResponseHeader(e)}}}};for(var u in r.open(s.method||"get",o,!0),r.onload=function(){r.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(e,t){i[t]||n.push(i[t]=t)}),e(a())},r.onerror=t,r.withCredentials="include"==s.credentials,s.headers)r.setRequestHeader(u,s.headers[u]);r.send(s.body||null)})}var _r=["token"],pr=["env"],dr=["stderr","stdin","stdout","command_line"],vr=["use_dynamic"],yr=["use_dynamic"],mr=["env","dynamic_env","use_dynamic","error"];function gr(e,t,r){br(e,t),t.set(e,r)}function br(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function wr(e,t){return e.get(xr(e,t))}function Dr(e,t,r){return e.set(xr(e,t),r),r}function xr(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function Er(e,t,r){return t=L(t),T(e,Fr()?Reflect.construct(t,r||[],L(e).constructor):t.apply(e,r))}function Fr(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(Fr=function e(){return!!t})()}function Ar(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=kr(t))||e){r&&(t=r);var n=0,i=function e(){};return{s:i,n:function e(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,u=!0,o=!1;return{s:function e(){r=r.call(t)},n:function e(){var t=r.next();return u=t.done,t},e:function e(t){o=!0,a=t},f:function e(){try{u||null==r["return"]||r["return"]()}finally{if(o)throw a}}}}function kr(e,t){if(e){if("string"==typeof e)return Or(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Or(e,t):void 0}}function Or(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1?t-1:0),n=1;n0&&arguments[0]!==undefined?arguments[0]:null;var t=mo&&mo.get("DEBUG",{throwError:false});if(e===null){return t===true}return(t===null||t===void 0?void 0:t.valueOf())===e.valueOf()}function Ur(e){return e?"(?:#".concat(e,"(?:#[ie])?|#[ie]#").concat(e,")"):"(?:#[ie])?"}function zr(e,t){return"".concat(Ur(e),"[+-]?").concat(t,"+/").concat(t,"+")}function $r(e,t){return"".concat(Ur(e),"(?:[+-]?(?:").concat(t,"+/").concat(t,"+|nan.0|inf.0|").concat(t,"+))?(?:[+-]i|[+-]?(?:").concat(t,"+/").concat(t,"+|").concat(t,"+|nan.0|inf.0)i)(?=[()[\\]\\s]|$)")}function Vr(e,t){return"".concat(Ur(e),"[+-]?").concat(t,"+")}var Yr=/^#\/((?:\\\/|[^/]|\[[^\]]*\/[^\]]*\])+)\/([gimyus]*)$/;var Jr="(?:[-+]?(?:[0-9]+(?:[eE][-+]?[0-9]+)|(?:\\.[0-9]+|[0-9]+\\.[0-9]+)(?:[eE][-+]?[0-9]+)?)|[0-9]+\\.)";var Kr="(?:#[ie])?(?:[+-]?(?:[0-9][0-9_]*/[0-9][0-9_]*|nan.0|inf.0|".concat(Jr,"|[+-]?[0-9]+))?(?:").concat(Jr,"|[+-](?:[0-9]+/[0-9]+|[0-9]+|nan.0|inf.0))i");var Wr=new RegExp("^(#[ie])?".concat(Jr,"$"),"i");function Hr(e,t){var r=e==="x"?"(?!\\+|".concat(t,")"):"(?!\\.|".concat(t,")");var n="";if(e===""){n="(?:[-+]?(?:[0-9]+(?:[eE][-+]?[0-9]+)|(?:\\.[0-9]+|[0-9]+\\.[0-9]+(?![0-9]))(?:[eE][-+]?[0-9]+)?))"}return new RegExp("^((?:(?:".concat(n,"|[-+]?inf.0|[-+]?nan.0|[+-]?").concat(t,"+/").concat(t,"+(?!").concat(t,")|[+-]?").concat(t,"+)").concat(r,")?)(").concat(n,"|[-+]?inf.0|[-+]?nan.0|[+-]?").concat(t,"+/").concat(t,"+|[+-]?").concat(t,"+|[+-])i$"),"i")}var Gr=function(){var a={};[[10,"","[0-9]"],[16,"x","[0-9a-fA-F]"],[8,"o","[0-7]"],[2,"b","[01]"]].forEach(function(e){var t=b(e,3),r=t[0],n=t[1],i=t[2];a[r]=Hr(n,i)});return a}();var Qr={alarm:"",backspace:"\b",delete:"",escape:"",newline:"\n",null:"\0",return:"\r",space:" ",tab:"\t",dle:"",soh:"",dc1:"",stx:"",dc2:"",etx:"",dc3:"",eot:"",dc4:"",enq:"",nak:"",ack:"",syn:"",bel:"",etb:"",bs:"\b",can:"",ht:"\t",em:"",lf:"\n",sub:"",vt:"\v",esc:"",ff:"\f",fs:"",cr:"\r",gs:"",so:"",rs:"",si:"",us:"",del:""};function Zr(e){var t=[];var r=0;var n=e.length;while(r=55296&&i<=56319&&r1&&arguments[1]!==undefined?arguments[1]:10;var r=pn(e);var n=r.number.split("/");var i=w({num:B([n[0],r.radix||t]),denom:B([n[1],r.radix||t])});if(r.inexact){return i.valueOf()}else{return i}}function vn(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;var r=pn(e);if(r.inexact){return g(parseInt(r.number,r.radix||t))}return B([r.number,r.radix||t])}function yn(e){var t=e.match(/#\\x([0-9a-f]+)$/i);var r;if(t){var n=parseInt(t[1],16);r=String.fromCodePoint(n)}else{t=e.match(/#\\([\s\S]+)$/);if(t){r=t[1]}}if(r){return h(r)}throw new Error("Parse: invalid character")}function mn(e){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;function t(e){var t;if(e==="+"){t=B(1)}else if(e==="-"){t=B(-1)}else if(e.match(sn)){t=B([e,i])}else if(e.match(cn)){var r=e.split("/");t=w({num:B([r[0],i]),denom:B([r[1],i])})}else if(e.match(Wr)){var n=Dn(e);if(a.exact){return n.toRational()}return n}else if(e.match(/nan.0$/)){return B(NaN)}else if(e.match(/inf.0$/)){if(e[0]==="-"){return B(Number.NEGATIVE_INFINITY)}return B(Number.POSITIVE_INFINITY)}else{throw new Error("Internal Parser Error")}if(a.inexact){return g(t.valueOf())}return t}var a=pn(e);i=a.radix||i;var r;var n=a.number.match(hn);if(i!==10&&n){r=n}else{r=a.number.match(Gr[i])}var u,o;o=t(r[2]);if(r[1]){u=t(r[1])}else if(o instanceof g){u=g(0)}else{u=B(0)}if(o.cmp(0)===0&&o.__type__==="bigint"){return u}return m({im:o,re:u})}function gn(e){return parseInt(e.toString(),10)===e}function bn(e){var t=e.match(/^(([-+]?[0-9]*)(?:\.([0-9]+))?)e([-+]?[0-9]+)/i);if(t){var r=parseInt(t[4],10);var n;var i=t[1].replace(/[-+]?([0-9]*)\..+$/,"$1").length;var a=t[3]&&t[3].length;if(i0&&(t.exact||!t.number.match(/\./))){return B(a).mul(o)}}}r=g(r);if(t.exact){return r.toRational()}return r}function xn(e){e=e.replace(/\\x([0-9a-f]+);/gi,function(e,t){return"\\u"+t.padStart(4,"0")}).replace(/\n/g,"\\n");var t=e.match(/(\\*)(\\x[0-9A-F])/i);if(t&&t[1].length%2===0){throw new Error("Invalid string literal, unclosed ".concat(t[2]))}try{var r=x(JSON.parse(e));r.freeze();return r}catch(e){var n=e.message.replace(/in JSON /,"").replace(/.*Error: /,"");throw new Error("Invalid string literal: ".concat(n))}}function En(e){e.match(/^name/);var t=/(^|.)\|/g;if(e.match(t)){e=e.split("|").filter(Boolean).reduce(function(e,t){var r="";if(t.match(/^\\+$/)){if(t.length>1){var n=Math.floor(t.length/2);r="\\".repeat(n)}if(t.length%2!==0){r+="|"}}else{r=t}return e+r});var r={t:"\t",r:"\r",n:"\n"};e=e.replace(/\\(x[^;]+);/g,function(e,t){return String.fromCharCode(parseInt("0"+t,16))}).replace(/\\([trn])/g,function(e,t){return r[t]})}return new ne(e)}function Fn(e){if(yo.hasOwnProperty(e)){return yo[e]}if(e.match(/^"[\s\S]*"$/)){return xn(e)}else if(e[0]==="#"){var t=e.match(Yr);if(t){return new RegExp(t[1],t[2])}else if(e.match(tn)){return yn(e)}var r=e.match(/#\\(.+)/);if(r&&Zr(r[1]).length===1){return yn(e)}}if(e.match(/[0-9a-f]|[+-]i/i)){if(e.match(on)){return vn(e)}else if(e.match(Wr)){return Dn(e)}else if(e.match(un)){return dn(e)}else if(e.match(an)){return mn(e)}}if(e.match(/^#[iexobd]/)){throw new Error("Invalid numeric constant: "+e)}return En(e)}function An(e){return!(["(",")","[","]"].includes(e)||Kn.names().includes(e))}function kn(e){return An(e)&&!(e.match(Yr)||e.match(/^"[\s\S]*"$/)||e.match(on)||e.match(Wr)||e.match(an)||e.match(un)||e.match(tn)||["#t","#f","nil"].includes(e))}var On=/"(?:\\[\S\s]|[^"])*"?/g;function Cn(e){if(typeof e==="string"){var t=/([-\\^$[\]()+{}?*.|])/g;return e.replace(t,"\\$1")}return e}function Sn(){this.data=[]}Sn.prototype.push=function(e){this.data.push(e)};Sn.prototype.top=function(){return this.data[this.data.length-1]};Sn.prototype.pop=function(){return this.data.pop()};Sn.prototype.is_empty=function(){return!this.data.length};function jn(e){if(e instanceof x){e=e.valueOf()}var t=new o(e,{whitespace:true});var r=[];while(true){var n=t.peek(true);if(n===to){break}r.push(n);t.skip()}return r}function Bn(e){var t=e.token,r=X(e,_r);if(t.match(/^"[\s\S]*"$/)&&t.match(/\n/)){var n=new RegExp("^ {1,"+(e.col+1)+"}","mg");t=t.replace(n,"")}return te({token:t},r)}function In(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};this.fn=e;this.cont=t}In.prototype.toString=function(){return"#"};function Pn(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r1&&arguments[1]!==undefined?arguments[1]:false;if(e instanceof x){e=e.toString()}if(t){return jn(e)}else{var r=jn(e).map(function(e){if(e.token==="#\\ "||e.token=="#\\\n"){return e.token}return e.token.trim()}).filter(function(e){return e&&!e.match(/^;/)&&!e.match(/^#\|[\s\S]*\|#$/)});return Ln(r)}}function Ln(e){var t=0;var r=null;var n=[];for(var i=0;i0&&arguments[0]!==undefined?arguments[0]:null;if(e instanceof ne){if(e.is_gensym()){return e}e=e.valueOf()}if(qn(e)){return ne(e)}if(e!==null){return r(e,Symbol("#:".concat(e)))}t++;return r(t,Symbol("#:g".concat(t)))}}();function zn(e,t){var r=se.get("begin");var n=Un("begin");e.forEach(function(e){e.set(n,r)});return new ae(n,t)}function $n(e){var r=this;var n={pending:true,rejected:false,fulfilled:false,reason:undefined,type:undefined};e=e.then(function(e){n.type=To(e);n.fulfilled=true;n.pending=false;return e});s(this,"_promise",e,{hidden:true});if(d(e["catch"])){e=e["catch"](function(e){n.rejected=true;n.pending=false;n.reason=e})}Object.keys(n).forEach(function(t){Object.defineProperty(r,"__".concat(t,"__"),{enumerable:true,get:function e(){return n[t]}})});s(this,"__promise__",e);this.then=false}$n.prototype.then=function(e){return new $n(this.valueOf().then(e))};$n.prototype["catch"]=function(e){return new $n(this.valueOf()["catch"](e))};$n.prototype.valueOf=function(){if(!this._promise){throw new Error("QuotedPromise: invalid promise created")}return this._promise};$n.prototype.toString=function(){if(this.__pending__){return $n.pending_str}if(this.__rejected__){return $n.rejected_str}return"#")};$n.pending_str="#";$n.rejected_str="#";function Vn(e){if(Array.isArray(e)){return Promise.all(Yn(e)).then(Jn)}return e}function Yn(e){var t=new Array(e.length),r=e.length;while(r--){var n=e[r];if(n instanceof $n){t[r]=new uo(n)}else{t[r]=n}}return t}function Jn(e){var t=new Array(e.length),r=e.length;while(r--){var n=e[r];if(n instanceof uo){t[r]=n.valueOf()}else{t[r]=n}}return t}var Kn={LITERAL:Symbol["for"]("literal"),SPLICE:Symbol["for"]("splice"),SYMBOL:Symbol["for"]("symbol"),names:function e(){return Object.keys(this.__list__)},type:function e(t){try{return this.get(t).type}catch(e){console.log({name:t});console.log(e);return null}},get:function e(t){return this.__list__[t]},off:function e(t){var r=this;var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(Array.isArray(t)){t.forEach(function(e){return r.off(e,n)})}else if(n===null){delete this.__events__[t]}else{this.__events__=this.__events__.filter(function(e){return e!==n})}},on:function e(t,r){var n=this;if(Array.isArray(t)){t.forEach(function(e){return n.on(e,r)})}else if(!this.__events__[t]){this.__events__[t]=[r]}else{this.__events__[t].push(r)}},trigger:function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i",new ne("quote-promise"),Kn.LITERAL]];var Xn=Zn.map(function(e){return e[0]});Object.freeze(Xn);Object.defineProperty(Kn,"__builtins__",{writable:false,value:Xn});Zn.forEach(function(e){var t=b(e,3),r=t[0],n=t[1],i=t[2];Kn.append(r,n,i)});var o=function(){function m(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.whitespace,i=n===void 0?false:n;J(this,m);s(this,"__input__",e.replace(/\r/g,""));var a={};["_i","_whitespace","_col","_newline","_line","_state","_next","_token","_prev_char"].forEach(function(r){Object.defineProperty(t,r,{configurable:false,enumerable:false,get:function e(){return a[r]},set:function e(t){a[r]=t}})});this._whitespace=i;this._i=this._line=this._col=this._newline=0;this._state=this._next=this._token=null;this._prev_char=""}return G(m,[{key:"get",value:function e(t){return this.__internal[t]}},{key:"set",value:function e(t,r){this.__internal[t]=r}},{key:"token",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(t){var r=this._line;if(this._whitespace&&this._token==="\n"){--r}return{token:this._token,col:this._col,offset:this._i,line:r}}return this._token}},{key:"peek",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this._i>=this.__input__.length){return to}if(this._token){s(this,"__token__",this.token(true));return this.token(t)}var r=this.next_token();if(r){this._token=this.__input__.substring(this._i,this._next);if(!this.__token__){s(this,"__token__",this.token(true))}return this.token(t)}return to}},{key:"skip",value:function e(){if(this._next!==null){this._token=null;this._i=this._next}}},{key:"read_line",value:function e(){var t=this.__input__.length;if(this._i>=t){return to}for(var r=this._i;r=r){return to}if(t+this._i>=r){return this.read_rest()}var n=this._i+t;var i=this.__input__.substring(this._i,n);var a=i.match(/\n/g);if(a){this._line+=a.length}this._i=n;return i}},{key:"peek_char",value:function e(){if(this._i>=this.__input__.length){return to}return h(this.__input__[this._i])}},{key:"read_char",value:function e(){var t=this.peek_char();this.skip_char();return t}},{key:"skip_char",value:function e(){if(this._i1&&arguments[1]!==undefined?arguments[1]:{},n=r.prev_char,i=r["char"],a=r.next_char;var u=b(t,4),o=u[0],s=u[1],c=u[2],f=u[3];if(t.length!==5){throw new Error("Lexer: Invalid rule of length ".concat(t.length))}if(xa(o)){if(o!==i){return false}}else if(!i.match(o)){return false}if(!ni(s,n)){return false}if(!ni(c,a)){return false}if(f!==this._state){return false}return true}},{key:"next_token",value:function e(){if(this._i>=this.__input__.length){return false}var t=true;e:for(var r=this._i,n=this.__input__.length;r2&&arguments[2]!==undefined?arguments[2]:null;var i=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;if(t.length===0){throw new Error("Lexer: invalid literal rule")}if(t.length===1){return[[t,n,i,null,null]]}var a=[];for(var u=0,o=t.length;u0&&arguments[0]!==undefined?arguments[0]:{},t=e.env,r=e.meta,n=r===void 0?false:r,i=e.formatter,a=i===void 0?Bn:i;J(this,u);s(this,"_formatter",a,{hidden:true});s(this,"__env__",t);s(this,"_meta",n,{hidden:true});s(this,"_refs",[],{hidden:true});s(this,"_state",{parentheses:0,fold_case:false},{hidden:true})}return G(u,[{key:"_with_syntax_scope",value:function e(t){var r=lo(this.__env__);var n=r.get("stdin");se.set("lips",te(te({},Bs),{},{__parser__:this}));r.set("stdin",new Ku(this,this.__env__));var i=function e(){se.set("lips",Bs);r.set("stdin",n)};return D(t(),function(e){i();return e},i)}},{key:"parse",value:function e(t){if(t instanceof x){t=t.toString()}s(this,"__lexer__",new o(t))}},{key:"resolve",value:function e(t){return this.__env__&&this.__env__.get(t,{throwError:false})}},{key:"peek",value:function(){var e=Y(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=this.__lexer__.peek(true);if(!(r===to)){t.next=4;break}return t.abrupt("return",to);case 4:if(!this.is_comment(r.token)){t.next=7;break}this.skip();return t.abrupt("continue",0);case 7:if(!wa(r.token)){t.next=11;break}this.skip();if(r.token==="#!fold-case"){this._state.fold_case=true}else if(r.token==="#!no-fold-case"){this._state.fold_case=false}return t.abrupt("continue",0);case 11:if(!(r.token==="#;")){t.next=18;break}this.skip();if(!(this.__lexer__.peek()===to)){t.next=15;break}throw new Error("Lexer: syntax error eof found after comment");case 15:t.next=17;return this._read_object();case 17:return t.abrupt("continue",0);case 18:return t.abrupt("break",21);case 21:r=this._formatter(r);if(this._state.fold_case){r.token=Mi(r.token)}if(!this._meta){t.next=25;break}return t.abrupt("return",r);case 25:return t.abrupt("return",r.token);case 26:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"reset",value:function e(){this._refs.length=0}},{key:"skip",value:function e(){this.__lexer__.skip()}},{key:"read",value:function(){var e=Y(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.peek();case 2:r=t.sent;this.skip();return t.abrupt("return",r);case 5:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"match_datum_label",value:function e(t){var r=t.match(/^#([0-9]+)=$/);return r&&r[1]}},{key:"match_datum_ref",value:function e(t){var r=t.match(/^#([0-9]+)#$/);return r&&r[1]}},{key:"is_open",value:function e(t){return["(","["].includes(t)}},{key:"is_close",value:function e(t){return[")","]"].includes(t)}},{key:"read_list",value:function(){var e=Y(O.mark(function e(){var r,n,i,a,u,o;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=ie,n=r;case 1:t.next=4;return this.peek();case 4:a=t.sent;if(!(a===to)){t.next=7;break}return t.abrupt("break",31);case 7:if(!this.is_close(a)){t.next=11;break}--this._state.parentheses;this.skip();return t.abrupt("break",31);case 11:if(!(a==="."&&!ue(r))){t.next=19;break}this.skip();t.next=15;return this._read_object();case 15:n.cdr=t.sent;i=true;t.next=29;break;case 19:if(!i){t.next=23;break}throw new Error("Parser: syntax error more than one element after dot");case 23:t.next=25;return this._read_object();case 25:u=t.sent;o=new ae(u,ie);if(ue(r)){r=o}else{n.cdr=o}n=o;case 29:t.next=1;break;case 31:return t.abrupt("return",r);case 32:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"read_value",value:function(){var e=Y(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.read();case 2:r=t.sent;if(!(r===to)){t.next=5;break}throw new Error("Parser: Expected token eof found");case 5:return t.abrupt("return",Fn(r));case 6:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"is_comment",value:function e(t){return t.match(/^;/)||t.match(/^#\|/)&&t.match(/\|#$/)}},{key:"evaluate",value:function e(t){return k(t,{env:this.__env__,error:function e(t){throw t}})}},{key:"read_object",value:function(){var e=Y(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:this.reset();t.next=3;return this._read_object();case 3:r=t.sent;if(r instanceof ui){r=r.valueOf()}if(!this._refs.length){t.next=7;break}return t.abrupt("return",D(this._resolve_object(r),function(e){if(oe(e)){e.mark_cycles()}return e}));case 7:return t.abrupt("return",r);case 8:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:"balanced",value:function e(){return this._state.parentheses===0}},{key:"ballancing_error",value:function e(t,r){var n=this._state.parentheses;var i;if(n<0){i=new Error("Parser: unexpected parenthesis");i.__code__=[r.toString()+")"]}else{i=new Error("Parser: expected parenthesis but eof found");var a=new RegExp("\\){".concat(n,"}$"));i.__code__=[t.toString().replace(a,"")]}throw i}},{key:"_resolve_object",value:function(){var t=Y(O.mark(function e(r){var n=this;var i;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!Array.isArray(r)){t.next=2;break}return t.abrupt("return",r.map(function(e){return n._resolve_object(e)}));case 2:if(!Vi(r)){t.next=6;break}i={};Object.keys(r).forEach(function(e){i[e]=n._resolve_object(r[e])});return t.abrupt("return",i);case 6:if(!oe(r)){t.next=8;break}return t.abrupt("return",this._resolve_pair(r));case 8:return t.abrupt("return",r);case 9:case"end":return t.stop()}},e,this)}));function e(e){return t.apply(this,arguments)}return e}()},{key:"_resolve_pair",value:function(){var t=Y(O.mark(function e(r){return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!oe(r)){t.next=15;break}if(!(r.car instanceof ui)){t.next=7;break}t.next=4;return r.car.valueOf();case 4:r.car=t.sent;t.next=8;break;case 7:this._resolve_pair(r.car);case 8:if(!(r.cdr instanceof ui)){t.next=14;break}t.next=11;return r.cdr.valueOf();case 11:r.cdr=t.sent;t.next=15;break;case 14:this._resolve_pair(r.cdr);case 15:return t.abrupt("return",r);case 16:case"end":return t.stop()}},e,this)}));function e(e){return t.apply(this,arguments)}return e}()},{key:"_read_object",value:function(){var e=Y(O.mark(function e(){var r=this;var n,i,a,u,o,s,c,f,l,h,_,p;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return this.peek();case 2:n=t.sent;if(!(n===to)){t.next=5;break}return t.abrupt("return",n);case 5:if(!Wn(n)){t.next=51;break}i=Kn.get(n);a=Hn(n);this.skip();s=Qn(n);t.t0=this;t.next=13;return this.peek();case 13:t.t1=t.sent;c=t.t0.is_close.call(t.t0,t.t1);if(!s){t.next=19;break}t.t2=undefined;t.next=22;break;case 19:t.next=21;return this._read_object();case 21:t.t2=t.sent;case 22:f=t.t2;if(!(f===to)){t.next=25;break}throw new ai("Expecting expression eof found");case 25:if(a){t.next=32;break}o=this.__env__.get(i.symbol);if(!(typeof o==="function")){t.next=32;break}if(Gn(n)){l=[f]}else if(ue(f)){l=[]}else if(oe(f)){l=f.to_array(false)}if(!(l||s)){t.next=31;break}return t.abrupt("return",this._with_syntax_scope(function(){return zo(o,s?[]:l,{env:r.__env__,dynamic_env:r.__env__,use_dynamic:false})}));case 31:throw new Error("Parse Error: Invalid parser extension "+"invocation ".concat(i.symbol));case 32:if(!Gn(n)){t.next=38;break}if(!c){t.next=35;break}throw new Error("Parse Error: expecting datum");case 35:u=new ae(i.symbol,new ae(f,ie));t.next=39;break;case 38:u=new ae(i.symbol,f);case 39:if(!a){t.next=41;break}return t.abrupt("return",u);case 41:if(!(o instanceof q)){t.next=50;break}t.next=44;return this._with_syntax_scope(function(){return r.evaluate(u)});case 44:h=t.sent;if(!(oe(h)||h instanceof ne)){t.next=47;break}return t.abrupt("return",ae.fromArray([ne("quote"),h]));case 47:return t.abrupt("return",h);case 50:throw new Error("Parse Error: invalid parser extension: "+i.symbol);case 51:_=this.match_datum_ref(n);if(!(_!==null)){t.next=57;break}this.skip();if(!this._refs[_]){t.next=56;break}return t.abrupt("return",new ui(_,this._refs[_]));case 56:throw new Error("Parse Error: invalid datum label #".concat(_,"#"));case 57:p=this.match_datum_label(n);if(!(p!==null)){t.next=64;break}this.skip();this._refs[p]=this._read_object();return t.abrupt("return",this._refs[p]);case 64:if(!this.is_close(n)){t.next=69;break}--this._state.parentheses;this.skip();t.next=76;break;case 69:if(!this.is_open(n)){t.next=75;break}++this._state.parentheses;this.skip();return t.abrupt("return",this.read_list());case 75:return t.abrupt("return",this.read_value());case 76:case"end":return t.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()}])}();var ai=function(e){function t(){J(this,t);return Er(this,t,arguments)}M(t,e);return G(t)}($(Error));ii.Unterminated=ai;var ui=function(){function r(e,t){J(this,r);this.name=e;this.data=t}return G(r,[{key:"valueOf",value:function e(){return this.data}}])}();function oi(e,t){return si.apply(this,arguments)}function si(){si=pe(O.mark(function e(r,n){var i,a,u;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!n){if(se){n=se.get("**interaction-environment**",{throwError:false})}else{n=mo}}if(r instanceof ii){i=r}else{i=new ii({env:n});i.parse(r)}case 2:t.next=5;return _e(i.read_object());case 5:u=t.sent;if(!i.balanced()){i.ballancing_error(u,a)}if(!(u===to)){t.next=9;break}return t.abrupt("break",14);case 9:a=u;t.next=12;return u;case 12:t.next=2;break;case 14:case"end":return t.stop()}},e)}));return si.apply(this,arguments)}function D(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(e){return e};var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(ja(e)){var n=e.then(t);if(r===null){return n}else{return n["catch"](r)}}if(e instanceof Array){return ci(e,t,r)}if(Vi(e)){return fi(e,t,r)}return t(e)}function ci(t,r,e){if(t.find(ja)){return D(Vn(t),function(e){if(Object.isFrozen(t)){Object.freeze(e)}return r(e)},e)}return r(t)}function fi(t,e,r){var i=Object.keys(t);var n=[],a=[];var u=i.length;while(u--){var o=i[u];var s=t[o];n[u]=s;if(ja(s)){a.push(s)}}if(a.length){return D(Vn(n),function(e){var n={};e.forEach(function(e,t){var r=i[t];n[r]=e});if(Object.isFrozen(t)){Object.freeze(n)}return n},r)}return e(t)}function s(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{},i=n.hidden,a=i===void 0?false:i;Object.defineProperty(e,t,{value:r,configurable:true,enumerable:!a})}function li(e){return hi.apply(this,arguments)}function hi(){hi=Y(O.mark(function e(r){var n,i,a,u,o,s,c;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:n=[];i=false;a=false;t.prev=3;o=Sr(r);case 5:t.next=7;return o.next();case 7:if(!(i=!(s=t.sent).done)){t.next=13;break}c=s.value;n.push(c);case 10:i=false;t.next=5;break;case 13:t.next=19;break;case 15:t.prev=15;t.t0=t["catch"](3);a=true;u=t.t0;case 19:t.prev=19;t.prev=20;if(!(i&&o["return"]!=null)){t.next=24;break}t.next=24;return o["return"]();case 24:t.prev=24;if(!a){t.next=27;break}throw u;case 27:return t.finish(24);case 28:return t.finish(19);case 29:return t.abrupt("return",n);case 30:case"end":return t.stop()}},e,null,[[3,15,19,29],[20,,24,28]])}));return hi.apply(this,arguments)}function _i(e,t){if(t instanceof RegExp){return function(e){return String(e).match(t)}}else if(d(t)){return t}throw new Error("Invalid matcher")}function l(e,t,r,n){if(typeof e!=="string"){t=arguments[0];r=arguments[1];n=arguments[2];e=null}if(r){if(n){t.__doc__=r}else{t.__doc__=pi(r)}}if(e){t.__name__=e}else if(t.name&&!cu(t)){t.__name__=t.name}return t}function pi(e){return e.split("\n").map(function(e){return e.trim()}).join("\n")}function di(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;var r=e.length;if(t<=0){throw Error("previousSexp: Invalid argument sexp = ".concat(t))}e:while(t--&&r>=0){var n=1;while(n>0){var i=e[--r];if(!i){break e}if(i==="("||i.token==="("){n--}else if(i===")"||i.token===")"){n++}}r--}return e.slice(r+1)}function vi(e){if(!e||!e.length){return 0}var t=e.length;if(e[t-1].token==="\n"){return 0}while(--t){if(e[t].token==="\n"){var r=(e[t+1]||{}).token;if(r){return r.length}}}return 0}function yi(e,t){return f(e,t)===t.length;function f(r,n){function e(e,t){var r=Ar(e),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;var a=f(i,t);if(a!==-1){return a}}}catch(e){r.e(e)}finally{r.f()}return-1}function t(){return r[a]===Symbol["for"]("symbol")&&!kn(n[o])}function i(){var e=r[a+1];var t=n[o+1];if(e!==undefined&&t!==undefined){return f([e],[t])}}var a=0;var u={};for(var o=0;o0){continue}}else if(t()){return-1}}else if(r[a]instanceof Array){var c=f(r[a],n.slice(o));if(c===-1||c+o>n.length){return-1}o+=c-1;a++;continue}else{return-1}a++}if(r.length!==a){return-1}return n.length}}function mi(e){this.__code__=e.replace(/\r/g,"")}mi.defaults={offset:0,indent:2,exceptions:{specials:[/^(?:#:)?(?:define(?:-values|-syntax|-macro|-class|-record-type)?|(?:call-with-(?:input-file|output-file|port))|lambda|let-env|try|catch|when|unless|while|syntax-rules|(let|letrec)(-syntax|\*?-values|\*)?)$/],shift:{1:["&","#"]}}};mi.match=yi;mi.prototype._options=function e(t){var r=mi.defaults;if(typeof t==="undefined"){return Object.assign({},r)}var n=t&&t.exceptions||{};var i=n.specials||[];var a=n.shift||{1:[]};return te(te(te({},r),t),{},{exceptions:{specials:[].concat(ee(r.exceptions.specials),ee(i)),shift:te(te({},a),{},{1:[].concat(ee(r.exceptions.shift[1]),ee(a[1]))})}})};mi.prototype.indent=function e(t){var r=Tn(this.__code__,true);return this._indent(r,t)};mi.exception_shift=function(a,e){function t(e){if(!e.length){return false}if(e.indexOf(a)!==-1){return true}else{var t=e.filter(function(e){return e instanceof RegExp});if(!t.length){return false}var r=Ar(t),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;if(a.match(i)){return true}}}catch(e){r.e(e)}finally{r.f()}}return false}if(t(e.exceptions.specials)){return e.indent}var r=e.exceptions.shift;for(var n=0,i=Object.entries(r);n0){n.offset=0}if(a.toString()===t.toString()&&Xo(a)){return n.offset+a[0].col}else if(a.length===1){return n.offset+a[0].col+1}else{var s=-1;if(u){var c=mi.exception_shift(u.token,n);if(c!==-1){s=c}}if(s===-1){s=mi.exception_shift(a[1].token,n)}if(s!==-1){return n.offset+a[0].col+s}else if(a[0].line3&&a[1].line===a[3].line){if(a[1].token==="("||a[1].token==="["){return n.offset+a[1].col}return n.offset+a[3].col}else if(a[0].line===a[1].line){return n.offset+n.indent+a[0].col}else{var f=a.slice(2);for(var l=0;l")};gi.prototype.match=function(e){return e.match(this.pattern)};function bi(){for(var e=arguments.length,t=new Array(e),r=0;r")};mi.Pattern=bi;mi.Ahead=gi;var wi=/^[[(]$/;var Di=/^[\])]$/;var xi=/[^()[\]]/;var Ei=new gi(/[^)\]]/);var Fi=Symbol["for"]("*");var Ai=new bi([wi,Fi,Di],[xi],"+");var ki=new bi([wi,Fi,Di],"+");var Oi=new bi([Symbol["for"]("symbol")],"?");var Ci=new bi([Symbol["for"]("symbol")],"*");var Si=[wi,Ci,Di];var ji=new bi([wi,Symbol["for"]("symbol"),Fi,Di],"+");var Bi=Ti("syntax-rules");var Ii=Ti("define","lambda","define-macro","syntax-rules");var Pi=/^(?!.*\b(?:[()[\]]|define(?:-macro)?|let(?:\*|rec|-env|-syntax|)?|lambda|syntax-rules)\b).*$/;var Ni=/^(?:#:)?(let(?:\*|rec|-env|-syntax)?)$/;function Ti(){for(var e=arguments.length,t=new Array(e),r=0;r0&&!o[e]){o[e]=di(u,e)}});var s=Ar(i),c;try{for(s.s();!(c=s.n()).done;){var f=b(c.value,3),l=f[0],h=f[1],_=f[2];h=h.valueOf();var p=h>0?o[h]:u;var d=p.filter(function(e){return e.trim()&&!Wn(e)});var v=r(p);var y=yi(l,d);var m=n.slice(a).find(function(e){return e.trim()&&!Wn(e)});if(y&&(_ instanceof gi&&_.match(m)||!_)){var g=a-v;if(n[g]!=="\n"){if(!n[g].trim()){n[g]="\n"}else{n.splice(g,0,"\n");a++}}a+=v;continue e}}}catch(e){s.e(e)}finally{s.f()}}this.__code__=n.join("");return this};mi.prototype._spaces=function(e){return" ".repeat(e)};mi.prototype.format=function e(t){var r=this.__code__.replace(/[ \t]*\n[ \t]*/g,"\n ");var n=Tn(r,true);var i=this._options(t);var a=0;var u=0;for(var o=0;o0){n=Math.floor(t()*r);r--;var i=[e[n],e[r]];e[r]=i[0];e[n]=i[1]}return e}function Ui(){}Ui.prototype.toString=function(){return"()"};Ui.prototype.valueOf=function(){return undefined};Ui.prototype.serialize=function(){return 0};Ui.prototype.to_object=function(){return{}};Ui.prototype.append=function(e){return new ae(e,ie)};Ui.prototype.to_array=function(){return[]};var ie=new Ui;function ae(e,t){if(typeof this!=="undefined"&&this.constructor!==ae||typeof this==="undefined"){return new ae(e,t)}this.car=e;this.cdr=t}function zi(a,u){return function e(t){A(a,t,["pair","nil"]);if(ue(t)){return[]}var r=[];var n=t;while(true){if(oe(n)){if(n.have_cycles("cdr")){break}var i=n.car;if(u&&oe(i)){i=this.get(a).call(this,i)}r.push(i);n=n.cdr}else if(ue(n)){break}else{throw new Error("".concat(a,": can't convert improper list"))}}return r}}ae.prototype.flatten=function(){return ae.fromArray(Ri(this.to_array()))};ae.prototype.length=function(){var e=0;var t=this;while(true){if(!t||ue(t)||!oe(t)||t.have_cycles("cdr")){break}e++;t=t.cdr}return e};ae.match=function(e,t){if(e instanceof ne){return ne.is(e,t)}else if(oe(e)){return ae.match(e.car,t)||ae.match(e.cdr,t)}else if(Array.isArray(e)){return e.some(function(e){return ae.match(e,t)})}else if(Vi(e)){return Object.values(e).some(function(e){return ae.match(e,t)})}return false};ae.prototype.find=function(e){return ae.match(this,e)};ae.prototype.clone=function(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var n=new Map;function i(e){if(oe(e)){if(n.has(e)){return n.get(e)}var t=new ae;n.set(e,t);if(r){t.car=i(e.car)}else{t.car=e.car}t.cdr=i(e.cdr);t[eu]=e[eu];return t}return e}return i(this)};ae.prototype.last_pair=function(){var e=this;while(true){if(!oe(e.cdr)){return e}if(e.have_cycles("cdr")){break}e=e.cdr}};ae.prototype.to_array=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var t=[];if(oe(this.car)){if(e){t.push(this.car.to_array())}else{t.push(this.car)}}else{t.push(this.car.valueOf())}if(oe(this.cdr)){t=t.concat(this.cdr.to_array(e))}return t};ae.fromArray=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(oe(e)||r&&e instanceof Array&&e[Za]){return e}if(t===false){var n=ie;for(var i=e.length;i--;){n=new ae(e[i],n)}return n}if(e.length&&!(e instanceof Array)){e=ee(e)}var a=ie;var u=e.length;while(u--){var o=e[u];if(o instanceof Array){o=ae.fromArray(o,t,r)}else if(typeof o==="string"){o=x(o)}else if(typeof o==="number"&&!Number.isNaN(o)){o=B(o)}a=new ae(o,a)}return a};ae.prototype.to_object=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var t=this;var r={};while(true){if(oe(t)&&oe(t.car)){var n=t.car;var i=n.car;if(i instanceof ne){i=i.__name__}if(i instanceof x){i=i.valueOf()}var a=n.cdr;if(oe(a)){a=a.to_object(e)}if(La(a)){if(!e){a=a.valueOf()}}r[i]=a;t=t.cdr}else{break}}return r};ae.fromPairs=function(e){return e.reduce(function(e,t){return new ae(new ae(new ne(t[0]),t[1]),e)},ie)};ae.fromObject=function(t){var e=Object.keys(t).map(function(e){return[e,t[e]]});return ae.fromPairs(e)};ae.prototype.reduce=function(e){var t=this;var r=ie;while(true){if(!ue(t)){r=e(r,t.car);t=t.cdr}else{break}}return r};ae.prototype.reverse=function(){if(this.have_cycles()){throw new Error("You can't reverse list that have cycles")}var e=this;var t=ie;while(!ue(e)){var r=e.cdr;e.cdr=t;t=e;e=r}return t};ae.prototype.transform=function(n){function i(e){if(oe(e)){if(e.replace){delete e.replace;return e}var t=n(e.car);if(oe(t)){t=i(t)}var r=n(e.cdr);if(oe(r)){r=i(r)}return new ae(t,r)}return e}return i(this)};ae.prototype.map=function(e){if(typeof this.car!=="undefined"){return new ae(e(this.car),ue(this.cdr)?ie:this.cdr.map(e))}else{return ie}};var $i=new Map;function Vi(e){return e&&_(e)==="object"&&e.constructor===Object}var Yi=Object.getOwnPropertyNames(Array.prototype);var Ji=[];Yi.forEach(function(e){Ji.push(Array[e],Array.prototype[e])});function Ki(e){e=$a(e);return Ji.includes(e)}function Wi(e){return d(e)&&(cu(e)||e.__doc__)}function Hi(e){var r=e.constructor||Object;var n=Vi(e);var i=d(e[Symbol.asyncIterator])||d(e[Symbol.iterator]);var a;if($i.has(r)){a=$i.get(r)}else{$i.forEach(function(e,t){t=$a(t);if(r===t&&(t===Object&&n&&!i||t!==Object)){a=e}})}return a}var Gi=new Map;[[true,"#t"],[false,"#f"],[null,"#null"],[undefined,"#void"]].forEach(function(e){var t=b(e,2),r=t[0],n=t[1];Gi.set(r,n)});function Qi(r){if(r&&_(r)==="object"){var n={};var e=Object.getOwnPropertySymbols(r);e.forEach(function(e){var t=e.toString().replace(/Symbol\(([^)]+)\)/,"$1");n[t]=na(r[e])});var t=Object.getOwnPropertyNames(r);t.forEach(function(e){var t=r[e];if(t&&_(t)==="object"&&t.constructor===Object){n[e]=Qi(t)}else{n[e]=na(t)}});return n}return r}function Zi(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function Xi(e,t){return e.hasOwnProperty(t)&&d(e.toString)}function ea(e){if(hu(e)){return"#"}var t=e.prototype&&e.prototype.constructor;if(d(t)&&cu(t)){if(e[tu]&&t.hasOwnProperty("__name__")){var r=t.__name__;if(x.isString(r)){r=r.toString();return"#")}return"#"}}if(e.hasOwnProperty("__name__")){var n=e.__name__;if(_(n)==="symbol"){n=Rn(n)}if(typeof n==="string"){return"#")}}if(Xi(e,"toString")){return e.toString()}else if(e.name&&!cu(e)){return"#")}else{return"#"}}var ta=new Map;[[Error,function(e){return e.message}],[ae,function(e,t){var r=t.quote,n=t.skip_cycles,i=t.pair_args;if(!n){e.mark_cycles()}return e.toString.apply(e,[r].concat(ee(i)))}],[h,function(e,t){var r=t.quote;if(r){return e.toString()}return e.valueOf()}],[x,function(e,t){var r=t.quote;e=e.toString();if(r){return JSON.stringify(e).replace(/\\n/g,"\n")}return e}],[RegExp,function(e){return"#"+e.toString()}]].forEach(function(e){var t=b(e,2),r=t[0],n=t[1];ta.set(r,n)});var ra=[ne,q,oo,Uu,zu,F,$n];function na(e,t,r){if(typeof jQuery!=="undefined"&&e instanceof jQuery.fn.init){return"#"}if(Gi.has(e)){return Gi.get(e)}if(Ea(e)){return"#"}if(e){var n=e.constructor;if(ta.has(n)){for(var i=arguments.length,a=new Array(i>3?i-3:0),u=3;u"}if(e===null){return"null"}if(d(e)){if(d(e.toString)&&e.hasOwnProperty("toString")){return e.toString().valueOf()}return ea(e)}if(_(e)==="object"){var f=e.constructor;if(!f){f=Object}var l;if(typeof f.__class__==="string"){l=f.__class__}else{var h=Hi(e);if(h){if(d(h)){return h(e,t)}else{throw new Error("toString: Invalid repr value")}}l=f.name}if(d(e.toString)&&e.hasOwnProperty("toString")){return e.toString().valueOf()}if(To(e)==="instance"){if(cu(f)&&f.__name__){l=f.__name__.valueOf();if(_(l)==="symbol"){l=l.toString().replace(/^Symbol\((?:#:)?([^\)]+)\)$/,"$1")}}else if(!hu(f)){l="instance"}}if(Pa(e,Symbol.iterator)){if(l){return"#")}return"#"}if(Pa(e,Symbol.asyncIterator)){if(l){return"#")}return"#"}if(l!==""){return"#<"+l+">"}return"#"}if(typeof e!=="string"){return e.toString()}return e}ae.prototype.mark_cycles=function(){aa(this);return this};ae.prototype.have_cycles=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(!e){return this.have_cycles("car")||this.have_cycles("cdr")}return!!(this[eu]&&this[eu][e])};ae.prototype.is_cycle=function(){return ia(this)};function ia(e){if(!oe(e)){return false}if(e.have_cycles()){return true}return ia(e.car,fn)||ia(e.cdr,fn)}function aa(e){var t=[];var i=[];var a=[];function u(e){if(!t.includes(e)){t.push(e)}}function o(e,t,r,n){if(oe(r)){if(n.includes(r)){if(!a.includes(r)){a.push(r)}if(!e[eu]){e[eu]={}}e[eu][t]=r;if(!i.includes(e)){i.push(e)}return true}}}var s=Pn(function e(t,r){if(oe(t)){delete t[Xa];delete t[eu];u(t);r.push(t);var n=o(t,"car",t.car,r);var i=o(t,"cdr",t.cdr,r);if(!n){s(t.car,r.slice())}if(!i){return new In(function(){return e(t.cdr,r.slice())})}}});function r(e,t){if(oe(e[eu][t])){var r=n.indexOf(e[eu][t]);e[eu][t]="#".concat(r,"#")}}s(e,[]);var n=t.filter(function(e){return a.includes(e)});n.forEach(function(e,t){e[Xa]="#".concat(t,"=")});i.forEach(function(e){r(e,"car");r(e,"cdr")})}ae.prototype.toString=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.nested,n=r===void 0?false:r;var i=[];if(this[Xa]){i.push(this[Xa]+"(")}else if(!n){i.push("(")}var a;if(this[eu]&&this[eu].car){a=this[eu].car}else{a=na(this.car,e,true)}if(a!==undefined){i.push(a)}if(oe(this.cdr)){if(this[eu]&&this[eu].cdr){i.push(" . ");i.push(this[eu].cdr)}else{if(this.cdr[Xa]){i.push(" . ")}else{i.push(" ")}var u=this.cdr.toString(e,{nested:true});i.push(u)}}else if(!ue(this.cdr)){i=i.concat([" . ",na(this.cdr,e,true)])}if(!n||this[Xa]){i.push(")")}return i.join("")};ae.prototype.set=function(e,t){this[e]=t;if(oe(t)){this.mark_cycles()}};ae.prototype.append=function(e){if(e instanceof Array){return this.append(ae.fromArray(e))}var t=this;if(t.car===undefined){if(oe(e)){this.car=e.car;this.cdr=e.cdr}else{this.car=e}}else if(!ue(e)){while(true){if(oe(t)&&!ue(t.cdr)){t=t.cdr}else{break}}t.cdr=e}return this};ae.prototype.serialize=function(){return[this.car,this.cdr]};ae.prototype[Symbol.iterator]=function(){var r=this;return{next:function e(){var t=r;r=t.cdr;if(ue(t)){return{value:undefined,done:true}}else{return{value:t.car,done:false}}}}};function ua(e){return e<0?-e:e}function oa(e,t){var r=z(t),n=r[0],i=r.slice(1);while(i.length>0){var a=i,u=b(a,1),o=u[0];if(!e(n,o)){return false}var s=i;var c=z(s);n=c[0];i=c.slice(1)}return true}function sa(e,t){if(d(e)){return d(t)&&$a(e)===$a(t)}else if(e instanceof B){if(!(t instanceof B)){return false}var r;if(e.__type__===t.__type__){if(e.__type__==="complex"){r=e.__im__.__type__===t.__im__.__type__&&e.__re__.__type__===t.__re__.__type__}else{r=true}if(r&&e.cmp(t)===0){if(e.valueOf()===0){return Object.is(e.valueOf(),t.valueOf())}return true}}return false}else if(typeof e==="number"){if(typeof t!=="number"){return false}if(Number.isNaN(e)){return Number.isNaN(t)}if(e===Number.NEGATIVE_INFINITY){return t===Number.NEGATIVE_INFINITY}if(e===Number.POSITIVE_INFINITY){return t===Number.POSITIVE_INFINITY}return sa(B(e),B(t))}else if(e instanceof h){if(!(t instanceof h)){return false}return e.__char__===t.__char__}else{return e===t}}function ca(e,t){if(To(e)!==To(t)){return false}if(!fa(e)){return false}if(e instanceof RegExp){return e.source===t.source}if(e instanceof x){return e.valueOf()===t.valueOf()}return sa(e,t)}function fa(e){return e instanceof ne||x.isString(e)||ue(e)||e===null||e instanceof h||e instanceof B||e===true||e===false}var la=function(){if(Math.trunc){return Math.trunc}else{return function(e){if(e===0){return 0}else if(e<0){return Math.ceil(e)}else{return Math.floor(e)}}}}();function q(e,t,r,n){if(typeof this!=="undefined"&&this.constructor!==q||typeof this==="undefined"){return new q(e,t)}A("Macro",e,"string",1);A("Macro",t,"function",2);if(r){if(n){this.__doc__=r}else{this.__doc__=pi(r)}}this.__name__=e;this.__fn__=t}q.defmacro=function(e,t,r,n){var i=new q(e,t,r,n);i.__defmacro__=true;return i};q.prototype.invoke=function(e,t,r){var n=t.env,i=X(t,pr);var a=te(te({},i),{},{macro_expand:r});var u=this.__fn__.call(n,e,a,this.__name__);return u};q.prototype.toString=function(){return"#")};var ha="define-macro";var _a=-1e4;function pa(c){return function(){var r=Y(O.mark(function e(r,m){var a,g,n,i,u,b,w,D,x,E,F,A,o,k,s;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:s=function e(){s=Y(O.mark(function e(r,n,i){var a,u,o,s,c,f,l,h,_,p,d,v,y;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!(oe(r)&&r.car instanceof ne)){t.next=50;break}if(!r[Za]){t.next=3;break}return t.abrupt("return",r);case 3:a=r.car.valueOf();u=i.get(r.car,{throwError:false});o=b(r.car);s=o||w(u,r)||D(u);if(!(s&&oe(r.cdr.car))){t.next=28;break}if(!o){t.next=15;break}g=E(r.cdr.car);t.next=12;return A(r.cdr.car,n);case 12:c=t.sent;t.next=17;break;case 15:g=x(r.cdr.car);c=r.cdr.car;case 17:t.t0=ae;t.t1=r.car;t.t2=ae;t.t3=c;t.next=23;return k(r.cdr.cdr,n,i);case 23:t.t4=t.sent;t.t5=new t.t2(t.t3,t.t4);return t.abrupt("return",new t.t0(t.t1,t.t5));case 28:if(!F(a,u)){t.next=50;break}f=u instanceof da?r:r.cdr;t.next=32;return u.invoke(f,te(te({},m),{},{env:i}),true);case 32:l=t.sent;if(!(u instanceof da)){t.next=41;break}h=l,_=h.expr,p=h.scope;if(!oe(_)){t.next=40;break}if(!(n!==-1&&n<=1||n<_a)){t.next=38;break}return t.abrupt("return",_);case 38:if(n!==-1){n=n-1}return t.abrupt("return",k(_,n,p));case 40:l=_;case 41:if(!(l instanceof ne)){t.next=43;break}return t.abrupt("return",so(l));case 43:if(!oe(l)){t.next=48;break}if(!(n!==-1&&n<=1||n<_a)){t.next=46;break}return t.abrupt("return",l);case 46:if(n!==-1){n=n-1}return t.abrupt("return",k(l,n,i));case 48:if(!fa(l)){t.next=50;break}return t.abrupt("return",l);case 50:d=r.car;if(!oe(d)){t.next=55;break}t.next=54;return k(d,n,i);case 54:d=t.sent;case 55:v=r.cdr;if(!oe(v)){t.next=60;break}t.next=59;return k(v,n,i);case 59:v=t.sent;case 60:y=new ae(d,v);return t.abrupt("return",y);case 62:case"end":return t.stop()}},e)}));return s.apply(this,arguments)};k=function e(t,r,n){return s.apply(this,arguments)};o=function e(){o=Y(O.mark(function e(r,n){var i;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!ue(r)){t.next=2;break}return t.abrupt("return",ie);case 2:i=r.car;t.t0=ae;t.t1=ae;t.t2=i.car;t.next=8;return k(i.cdr,n,a);case 8:t.t3=t.sent;t.t4=new t.t1(t.t2,t.t3);t.next=12;return A(r.cdr);case 12:t.t5=t.sent;return t.abrupt("return",new t.t0(t.t4,t.t5));case 14:case"end":return t.stop()}},e)}));return o.apply(this,arguments)};A=function e(t,r){return o.apply(this,arguments)};F=function e(t,r){return r instanceof q&&r.__defmacro__&&!g.includes(t)};E=function e(t){return[].concat(ee(g),ee(t.to_array(false).map(function(e){if(oe(e)){return e.car.valueOf()}var t=To(e);var r="macroexpand: Invalid let binding expectig pair got ".concat(t);throw new Error(r)})))};x=function e(t){var r=[];while(true){if(!ue(t)){if(t instanceof ne){r.push(t.valueOf());break}r.push(t.car.valueOf());t=t.cdr}else{break}}return[].concat(ee(g),r)};D=function e(t){return t===i};w=function e(t,r){return t===u&&oe(r.cdr.car)};b=function e(t){var r=t.valueOf();return n.includes(r)};a=m["env"]=this;g=[];n=["let","let*","letrec"];i=se.get("lambda");u=se.get("define");if(!(oe(r.cdr)&&B.isNumber(r.cdr.car))){t.next=21;break}t.t0=so;t.next=19;return k(r,r.cdr.car.valueOf(),a);case 19:t.t1=t.sent.car;return t.abrupt("return",(0,t.t0)(t.t1));case 21:if(!c){t.next=27;break}t.t2=so;t.next=25;return k(r,1,a);case 25:t.t3=t.sent.car;return t.abrupt("return",(0,t.t2)(t.t3));case 27:t.t4=so;t.next=30;return k(r,-1,a);case 30:t.t5=t.sent.car;return t.abrupt("return",(0,t.t4)(t.t5));case 32:case"end":return t.stop()}},e,this)}));return function(e,t){return r.apply(this,arguments)}}()}function da(e,t){this.__env__=t;this.__fn__=e;this.__defmacro__=true}da.__merge_env__=Symbol["for"]("merge");da.prototype=Object.create(q.prototype);da.prototype.invoke=function(e,t,r){var n=t.error,i=t.env,a=t.use_dynamic;var u={error:n,env:i,use_dynamic:a,dynamic_env:this.__env__,macro_expand:r};return this.__fn__.call(i,e,u,this.__name__||"syntax")};da.prototype.constructor=da;da.prototype.toString=function(){if(this.__name__){return"#")}return"#"};var va=G(function e(t){J(this,e);s(this,"_syntax",t,{hidden:true});s(this._syntax,"_param",true,{hidden:true})});da.Parameter=va;function ya(e,t,W,H){var r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};var G={"...":{symbols:{},lists:[]},symbols:{}};var Q=r.expansion,Z=r.define;re(W);function X(t,e){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var n=r.ellipsis,i=n===void 0?false:n,a=r.trailing,N=a===void 0?false:a,u=r.pattern_names,o=u===void 0?[]:u;re({code:e,pattern:t});if(fa(t)&&!(t instanceof ne)){return ca(t,e)}if(t instanceof ne){var s=t.literal();if(W.includes(s)){if(!ne.is(e,s)&&!ne.is(t,e)){return false}var c=Q.ref(s);return!c||c===Z||c===se}}if(Array.isArray(t)&&Array.isArray(e)){re("<<< a 1");if(t.length===0&&e.length===0){return true}if(ne.is(t[1],H)){if(t[0]instanceof ne){var f=t[0].valueOf();re("<<< a 2 "+i);if(i){var l=e.length-2;var T=l>0?e.slice(0,l):e;var h=ae.fromArray(T,false);if(!G["..."].symbols[f]){G["..."].symbols[f]=new ae(h,ie)}else{G["..."].symbols[f].append(new ae(h,ie))}}else{G["..."].symbols[f]=ae.fromArray(e,false)}}else if(Array.isArray(t[0])){re("<<< a 3");var L=ee(o);var M=te(te({},r),{},{pattern_names:L,ellipsis:true});if(!e.every(function(e){return X(t[0],e,M)})){return false}}if(t.length>2){var _=t.slice(2);return X(_,e.slice(-_.length),r)}return true}var p=X(t[0],e[0],r);re({first:p,pattern:t[0],code:e[0]});var d=X(t.slice(1),e.slice(1),r);re({first:p,rest:d});return p&&d}if(oe(t)&&oe(t.car)&&oe(t.car.cdr)&&ne.is(t.car.cdr.car,H)){re(">> 0");if(ue(e)){re({pattern:t});if(t.car.car instanceof ne){var v=t.car.car.valueOf();if(G["..."].symbols[v]){throw new Error("syntax: named ellipsis can only "+"appear onces")}G["..."].symbols[v]=e}}}if(oe(t)&&oe(t.cdr)&&ne.is(t.cdr.car,H)){re(">> 1 (a)");if(!ue(t.cdr.cdr)){if(oe(t.cdr.cdr)){re(">> 1 (b)");var R=t.cdr.cdr.length();var y=!ue(t.last_pair().cdr);if(!oe(e)){return false}var m=e.length();var g=e;var q=y?1:1;while(m-q>R){g=g.cdr;m--}var U=g.cdr;g.cdr=ie;var z=te(te({},r),{},{trailing:y});if(!X(t.cdr.cdr,U,z)){return false}}}if(t.car instanceof ne){var b=t.car.__name__;if(G["..."].symbols[b]&&!o.includes(b)&&!i){throw new Error("syntax: named ellipsis can only appear onces")}re(">> 1 (next)");if(ue(e)){re(">> 2");if(i){re("NIL");G["..."].symbols[b]=ie}else{re("NULL");G["..."].symbols[b]=null}}else if(oe(e)&&(oe(e.car)||ue(e.car))){re(">> 3 "+i);if(i){if(G["..."].symbols[b]){var w=G["..."].symbols[b];if(ue(w)){w=new ae(ie,new ae(e,ie))}else{w=w.append(new ae(e,ie))}G["..."].symbols[b]=w}else{G["..."].symbols[b]=new ae(e,ie)}}else{re(">> 4");G["..."].symbols[b]=new ae(e,ie)}}else{re(">> 6");if(oe(e)){re(">> 7 "+i);if(!oe(e.cdr)&&!ue(e.cdr)){re(">> 7 (b)");if(ue(t.cdr.cdr)){return false}else if(!G["..."].symbols[b]){G["..."].symbols[b]=new ae(e.car,ie);return X(t.cdr.cdr,e.cdr,r)}}var D=e.last_pair();re({last_pair:D});if(!ue(D.cdr)){re(">> 7 (c)");if(ue(t.cdr.cdr)){return false}else{re(">> 7 (d)");var x=e.clone();x.last_pair().cdr=ie;G["..."].symbols[b]=x;return X(t.cdr.cdr,D.cdr,r)}}o.push(b);if(!G["..."].symbols[b]){re(">> 7 (e)");G["..."].symbols[b]=new ae(e,ie)}else{re(">> 7 (f)");var $=G["..."].symbols[b];G["..."].symbols[b]=$.append(new ae(e,ie))}re({IIIIII:G["..."].symbols[b]})}else if(t.car instanceof ne&&oe(t.cdr)&&ne.is(t.cdr.car,H)){re(">> 8");G["..."].symbols[b]=null;return X(t.cdr.cdr,e,r)}else{re(">> 9");return false}}return true}else if(oe(t.car)){var E=ee(o);if(ue(e)){re(">> 10");G["..."].lists.push(ie);return true}re(">> 11");var F=e;var V=te(te({},r),{},{pattern_names:E,ellipsis:true});while(oe(F)){if(!X(t.car,F.car,V)){return false}F=F.cdr}return true}if(Array.isArray(t.car)){var E=ee(o);var A=e;var Y=te(te({},r),{},{pattern_names:E,ellipsis:true});while(oe(A)){if(!X(t.car,A.car,Y)){return false}A=A.cdr}return true}return false}if(t instanceof ne){if(ne.is(t,H)){throw new Error("syntax: invalid usage of ellipsis")}re(">> 12");var k=t.__name__;if(W.includes(k)){return true}if(i){var O,C;re(G["..."].symbols[k]);(C=(O=G["..."].symbols)[k])!==null&&C!==void 0?C:O[k]=[];G["..."].symbols[k].push(e)}else{G.symbols[k]=e}return true}if(oe(t)&&oe(e)){re(">> 13");re({a:13,code:e,pattern:t});var S=t.car instanceof ne&&t.cdr instanceof ne;if(N&&S){re(">> 13 (a)");if(!ue(e.cdr)){return false}var J=t.car.valueOf();var K=t.cdr.valueOf();G.symbols[J]=e.car;G.symbols[K]=ie;return true}if(ue(e.cdr)){re(">> 13 (b)");if(S){if(!X(t.car,e.car,r)){return false}re(">> 14");var j=t.cdr.valueOf();if(!(j in G.symbols)){G.symbols[j]=ie}j=t.car.valueOf();if(!(j in G.symbols)){G.symbols[j]=e.car}return true}}re({pattern:t,code:e});if(oe(t.cdr)&&oe(t.cdr.cdr)&&t.cdr.car instanceof ne&&ne.is(t.cdr.cdr.car,H)&&oe(t.cdr.cdr.cdr)&&!ne.is(t.cdr.cdr.cdr.car,H)&&X(t.car,e.car,r)&&X(t.cdr.cdr.cdr,e.cdr,te(te({},r),{},{trailing:true}))){var B=t.cdr.car.__name__;re({pattern:t,code:e,name:B});if(W.includes(B)){return true}G["..."].symbols[B]=null;return true}re("recur");re({pattern:t,code:e});var I=X(t.car,e.car,r);var P=X(t.cdr,e.cdr,r);re({$car_code:e.car,$car_pattern:t.car,car:I,$cdr_code:e.cdr,$cdr_pattern:t.cdr,cdr:P});if(I&&P){return true}}else if(ue(t)&&(ue(e)||e===undefined)){return true}else if(oe(t.car)&&ne.is(t.car.car,H)){throw new Error("syntax: invalid usage of ellipsis")}else{return false}}if(X(e,t)){return G}}function ma(e,i){function a(t){if(oe(t)){if(!i.length){return t}var e=a(t.car);var r=a(t.cdr);return new ae(e,r)}else if(t instanceof ne){var n=i.find(function(e){return e.gensym===t});if(n){return ne(n.name)}return t}else{return t}}return a(e)}function ga(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var B=e.bindings,t=e.expr,I=e.scope,u=e.symbols,f=e.names,P=e.ellipsis;var l={};function o(e){if(e instanceof ne){return true}return["string","symbol"].includes(_(e))}function N(e){if(!o(e)){var t=To(e);throw new Error("syntax: internal error, need symbol got ".concat(t))}var r=e.valueOf();if(r===P){throw new Error("syntax: internal error, ellipis not transformed")}var n=_(r);if(["string","symbol"].includes(n)){if(r in B.symbols){return B.symbols[r]}else if(n==="string"&&r.match(/\./)){var i=r.split(".");var a=i[0];if(a in B.symbols){return ae.fromArray([ne("."),B.symbols[a]].concat(i.slice(1).map(function(e){return x(e)})))}}}if(u.includes(r)){return e}return s(r,e)}function s(e,t){if(!l[e]){var r=I.ref(e);if(_(e)==="symbol"&&!r){e=t.literal()}if(l[e]){return l[e]}var n=Un(e);if(r){var i=I.get(e);I.set(n,i)}else{var a=I.get(e,{throwError:false});if(typeof a!=="undefined"){I.set(n,a)}}f.push({name:e,gensym:n});l[e]=n;if(typeof e==="string"&&e.match(/\./)){var u=e.split(".").filter(Boolean),o=z(u),s=o[0],c=o.slice(1);if(l[s]){ou(n,"__object__",[l[s]].concat(ee(c)))}}}return l[e]}function T(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:function(){};var i=r.nested;re({bindings:t,expr:e});if(Array.isArray(e)&&!e.length){return e}if(e instanceof ne){var a=e.valueOf();if(qn(e)&&!t[a]);re("[t 1");if(t[a]){if(oe(t[a])){var u=t[a],o=u.car,s=u.cdr;if(i){var c=o.car,f=o.cdr;if(!ue(f)){n(a,new ae(f,ie))}return c}if(!ue(s)){n(a,s)}return o}else if(t[a]instanceof Array){n(a,t[a].slice(1));return t[a][0]}}return N(e)}var l=Array.isArray(e);if(oe(e)||l){var h=l?e[0]:e.car;var _=l?e[1]:oe(e.cdr)&&e.cdr.car;if(h instanceof ne&&ne.is(_,P)){l?e.slice(2):e.cdr.cdr;re("[t 2");var p=h.valueOf();var d=t[p];if(d===null){return}else if(p in t){re({name:p,binding:t[p]});if(oe(d)){re("[t 2 Pair "+i);var v=d.car,y=d.cdr;var m=l?e.slice(2):e.cdr.cdr;if(i){if(!ue(y)){re("|| next 1");n(p,y)}if(l&&m.length||!ue(m)&&!l){var g=T(m,t,r,n);if(l){return v.concat(g)}else if(oe(v)){return v.append(g)}else{re("UNKNOWN")}}return v}else if(oe(v)){if(!ue(v.cdr)){re("|| next 2");n(p,new ae(v.cdr,y))}return new uo(v.car)}else if(ue(y)){return v}else{var b=e.last_pair();if(b.cdr instanceof ne){re("|| next 3");n(p,d.last_pair());return v}}}else if(d instanceof Array){re("[t 2 Array "+i);if(i){n(p,d.slice(1));return ae.fromArray(d)}else{var w=d.slice(1);if(w.length){n(p,w)}return d[0]}}else{return d}}}re("[t 3 recur ",e);var D=l?e.slice(1):e.cdr;var x=T(h,t,r,n);var E=T(D,t,r,n);re({head:x,rest:E});if(l){return[x].concat(E)}return new ae(x,E)}return e}function L(t,r){var e=Object.values(t);var n=Object.getOwnPropertySymbols(t);if(n.length){e.push.apply(e,ee(n.map(function(e){return t[e]})))}return e.length&&e.every(function(e){if(e===null){return!r}return oe(e)||ue(e)||Array.isArray(e)&&e.length})}function M(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}function R(i){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},t=e.disabled;re("traverse>> ",i);var a=Array.isArray(i);if(a&&i.length===0){return i}if(oe(i)||a){re(">> 0");var r=a?i[0]:i.car;var n,u;if(a){n=i[1];u=i.slice(2)}else if(oe(i.cdr)){n=i.cdr.car;u=i.cdr.cdr}re({first:r,second:n,rest_second:u});if(!t&&oe(r)&&ne.is(r.car,P)){return new ae(r.cdr.car,R(i.cdr))}if(n&&ne.is(n,P)&&!t){re(">> 1");var o=B["..."].symbols;var s=Object.values(o);if(s.length&&s.every(function(e){return e===null})){re(">>> 1 (a)");return R(u,{disabled:t})}var c=M(o);var f=r instanceof ne&&ne.is(u.car,P);if(oe(r)||f){re(">>> 1 (b)");if(ue(B["..."].lists[0])){if(!f){return R(u,{disabled:t})}re(u);return ie}var l=r;if(f){re(">>> 1 (c)");l=new ae(r,new ae(n,ie))}re(">> 2");var h;if(c.length){re(">> 2 (a)");var _=te({},o);h=a?[]:ie;var p=function e(){re({bind:_});if(!L(_)){return 1}var n={};var t=function e(t,r){n[t]=r};var r=T(l,_,{nested:true},t);if(r!==undefined){if(r instanceof uo){r.valueOf(),U("car")}if(f){if(a){if(Array.isArray(r)){var i;(i=h).push.apply(i,ee(r))}else{re("ZONK {1}")}}else{if(ue(h)){h=r}else{h=h.append(r)}}}else if(a){h.push(r)}else{h=new ae(r,h)}}_=n};while(true){if(p())break}if(!ue(h)&&!f&&!a){h=h.reverse()}if(a){if(u){re({rest_second:u,expr:i});var d=R(u,{disabled:t});return h.concat(d)}return h}if(!ue(i.cdr.cdr)&&!ne.is(i.cdr.cdr.car,P)){var v=R(i.cdr.cdr,{disabled:t});return h.append(v)}return h}else{re(">> 3");var y=T(r,o,{nested:true});if(y){if(y instanceof uo){y.valueOf(),U("car")}return new ae(y,ie)}return ie}}else if(r instanceof ne){re(">> 4");if(ne.is(u.car,P)){re(">> 4 (a)")}else{re(">> 4 (b)")}var m=r.__name__;var g=Q({},m,o[m]);re({bind:g});var b=o[m]===null;var w=a?[]:ie;var D=function e(){if(!L(g,true)){re({bind:g});return 1}var n={};var t=function e(t,r){n[t]=r};var r=T(i,g,{nested:false},t);re({value:r});if(typeof r!=="undefined"){if(r instanceof uo){r=r.valueOf()}if(a){w.push(r)}else{w=new ae(r,w)}}g=n};while(true){if(D())break}if(!ue(w)&&!a){w=w.reverse()}if(oe(i.cdr)){if(oe(i.cdr.cdr)||i.cdr.cdr instanceof ne){var x=R(i.cdr.cdr,{disabled:t});re({node:x});if(b){return x}if(ue(w)){w=x}else{w.append(x)}re({result:w,node:x})}}re("<<<< 2");re({result:w});return w}}var E=R(r,{disabled:t});var F;var A;if(r instanceof ne){var k=I.get(r,{throwError:false});A=k instanceof q&&k.__name__==="syntax-rules"}if(A){if(i.cdr.car instanceof ne){F=new ae(R(i.cdr.car,{disabled:t}),new ae(i.cdr.cdr.car,R(i.cdr.cdr.cdr,{disabled:t})))}else{F=new ae(i.cdr.car,R(i.cdr.cdr,{disabled:t}))}re("REST >>>> ",F)}else{F=R(i.cdr,{disabled:t})}re({a:true,car:na(i.car),cdr:na(i.cdr),head:na(E),rest:na(F)});return new ae(E,F)}if(i instanceof ne){if(t&&ne.is(i,P)){return i}var O=Object.keys(B["..."].symbols);var C=i.literal();if(O.includes(C)){var S="missing ellipsis symbol next to name `".concat(C,"'");throw new Error("syntax-rules: ".concat(S))}var j=N(i);if(typeof j!=="undefined"){return j}}return i}return R(t,{})}function ba(e){return Ba(e)||ue(e)||e===null}function ue(e){return e===ie}function d(e){return typeof e==="function"&&typeof e.bind==="function"}function wa(e){return ti.includes(e)}function Da(e){return e===false||e===null}function xa(e){return typeof e==="string"}function Ea(e){return e&&_(e)==="object"&&e.hasOwnProperty&&e.hasOwnProperty("constructor")&&typeof e.constructor==="function"&&e.constructor.prototype===e}function Fa(e){return e instanceof Wo}function Aa(e){return e instanceof Jo}function ka(e){return e instanceof Yo}function oe(e){return e instanceof ae}function Oa(e){return e instanceof F}function Ca(e){return d(e)||Fa(e)||ka(e)||Sa(e)}function Sa(e){return e instanceof q||e instanceof va}function ja(e){if(e instanceof $n){return false}if(e instanceof Promise){return true}return!!e&&d(e.then)}function Ba(e){return typeof e==="undefined"}function Ia(e){return Object.getPrototypeOf(e)}function Pa(e,t){if(Ma(e,t)||Ma(Ia(e),t)){return d(e[t])}}function Na(e){if(!e){return false}if(_(e)!=="object"){return false}if(e.__instance__){e.__instance__=false;return e.__instance__}return false}function Ta(e){var t=_(e);return["string","function"].includes(t)||_(e)==="symbol"||e instanceof $n||e instanceof ne||e instanceof B||e instanceof x||e instanceof RegExp}function La(e){return e instanceof B||e instanceof x||e instanceof h}function Ma(e,t){if(e===null){return false}return _(e)==="object"&&t in Object.getOwnPropertySymbols(e)}function Ra(e){switch(_(e)){case"string":return x(e);case"bigint":return B(e);case"number":if(Number.isNaN(e)){return vo}else{return B(e)}}return e}function qa(r,n){var e=Object.getOwnPropertyNames(r);var t=Object.getOwnPropertySymbols(r);var i={};e.concat(t).forEach(function(e){var t=n(r[e]);i[e]=t});return i}function Ua(t){var e=[x,B,h].some(function(e){return t instanceof e});if(e){return t.valueOf()}if(t instanceof Array){return t.map(Ua)}if(t instanceof $n){delete t.then}if(Vi(t)){return qa(t,Ua)}return t}function za(e,t){if(oe(e)){e.mark_cycles();return so(e)}if(d(e)){if(t){return Va(e,t)}}return Ra(e)}function $a(e){if(Ja(e)){return e[Qa]}return e}function Va(e,t){if(e[Symbol["for"]("__bound__")]){return e}var r=e.bind(t);var n=Object.getOwnPropertyNames(e);var i=Ar(n),a;try{for(i.s();!(a=i.n()).done;){var u=a.value;if(uu(u)){try{r[u]=e[u]}catch(e){}}}}catch(e){i.e(e)}finally{i.f()}ou(r,"__fn__",e);ou(r,"__context__",t);ou(r,"__bound__",true);if(hu(e)){ou(r,"__native__",true)}if(Vi(t)&&cu(e)){ou(r,"__method__",true)}r.valueOf=function(){return e};return r}function Ya(e){return Ja(e)&&e[Symbol["for"]("__context__")]===Object}function Ja(e){return!!(d(e)&&e[Qa])}function Ka(e){if(d(e)){var t=e[Ga];if(t&&(t===Bs||t.constructor&&t.constructor.__class__)){return true}}return false}function Wa(e){return e instanceof Uu||e instanceof zu}function Ha(e){if(d(e)){if(Wa(e[Ga])){return true}}return false}var Ga=Symbol["for"]("__context__");var Qa=Symbol["for"]("__fn__");var Za=Symbol["for"]("__data__");var Xa=Symbol["for"]("__ref__");var eu=Symbol["for"]("__cycles__");var tu=Symbol["for"]("__class__");var ru=Symbol["for"]("__method__");var nu=Symbol["for"]("__prototype__");var iu=Symbol["for"]("__lambda__");var au=["name","length","caller","callee","arguments","prototype"];function uu(e){return!au.includes(e)}function ou(e,t,r){Object.defineProperty(e,Symbol["for"](t),{get:function e(){return r},set:function e(){},configurable:false,enumerable:false})}function su(t,r){try{Object.defineProperty(t,"length",{get:function e(){return r}});return t}catch(e){var n=new Array(r).fill(0).map(function(e,t){return"a"+t}).join(",");var i=new Function("f","return function(".concat(n,") {\n return f.apply(this, arguments);\n };"));return i(t)}}function cu(e){return e&&e[iu]}function fu(e){return e&&e[ru]}function lu(e){return cu(e)&&!e[nu]&&!fu(e)&&!Ha(e)}function hu(e){var t=Symbol["for"]("__native__");return d(e)&&e.toString().match(/\{\s*\[native code\]\s*\}/)&&(e.name.match(/^bound /)&&e[t]===true||!e.name.match(/^bound /)&&!e[t])}function _u(e){var w;switch(e){case Symbol["for"]("letrec"):w="letrec";break;case Symbol["for"]("let"):w="let";break;case Symbol["for"]("let*"):w="let*";break;default:throw new Error("Invalid let_macro value")}return q.defmacro(w,function(t,e){var f=e.dynamic_env;var l=e.error,r=e.macro_expand,h=e.use_dynamic;var _;if(t.car instanceof ne){if(!(oe(t.cdr.car)||ue(t.cdr.car))){throw new Error("let require list of pairs")}var n;if(ue(t.cdr.car)){_=ie;n=ie}else{n=t.cdr.car.map(function(e){return e.car});_=t.cdr.car.map(function(e){return e.cdr.car})}return new ae(ae.fromArray([ne("letrec"),[[t.car,ae(ne("lambda"),ae(n,t.cdr.cdr))]],t.car]),_)}else if(r){return}var p=this;_=se.get("list->array")(t.car);var d=p.inherit(w);var v,y;if(w==="let*"){y=d}else if(w==="let"){v=[]}var m=0;function g(){var e=zn([d],t.cdr);return k(e,{env:d,dynamic_env:d,use_dynamic:h,error:l})}function b(e){if(e in d.__env__){throw new Error("Duplicated let variable ".concat(e))}}return function t(){var r=_[m++];f=w==="let*"?d:p;if(!r){if(v&&v.length){var e=v.map(function(e){return e.value});var n=e.filter(ja);if(n.length){return Vn(e).then(function(e){for(var t=0,r=e.length;t1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=t.error;var i=this;var a=this;var u=[];var o=e;while(oe(o)){u.push(k(o.car,{env:i,dynamic_env:a,use_dynamic:r,error:n}));o=o.cdr}var s=u.filter(ja).length;if(s){return Vn(u).then(c.bind(this))}else{return c.call(this,u)}})}function du(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2?n-2:0),a=2;a1&&arguments[1]!==undefined?arguments[1]:null;return function(){for(var e=arguments.length,t=new Array(e),r=0;r1?e-1:0),r=1;r=o){return u.apply(n,i)}else{return a}}}();return a.apply(void 0,arguments)}}function Eu(n,i){A("limit",i,"function",2);return function(){for(var e=arguments.length,t=new Array(e),r=0;r1){e=e.toLowerCase();if(h.__names__[e]){t=e;e=h.__names__[e]}else{throw new Error("Internal: Unknown named character")}}else{t=h.__rev_names__[e]}Object.defineProperty(this,"__char__",{value:e,enumerable:true});if(t){Object.defineProperty(this,"__name__",{value:t,enumerable:true})}}h.__names__=Qr;h.__rev_names__={};Object.keys(h.__names__).forEach(function(e){var t=h.__names__[e];h.__rev_names__[t]=e});h.prototype.toUpperCase=function(){return h(this.__char__.toUpperCase())};h.prototype.toLowerCase=function(){return h(this.__char__.toLowerCase())};h.prototype.toString=function(){return"#\\"+(this.__name__||this.__char__)};h.prototype.valueOf=h.prototype.serialize=function(){return this.__char__};function x(e){if(typeof this!=="undefined"&&!(this instanceof x)||typeof this==="undefined"){return new x(e)}if(e instanceof Array){this.__string__=e.map(function(e,t){A("LString",e,"character",t+1);return e.toString()}).join("")}else{this.__string__=e.valueOf()}}{var Fu=["length","constructor"];var Au=Object.getOwnPropertyNames(String.prototype).filter(function(e){return!Fu.includes(e)});var ku=function e(n){return function(){for(var e=arguments.length,t=new Array(e),r=0;r0){r.push(this.__string__.substring(0,e))}r.push(t);if(e1&&arguments[1]!==undefined?arguments[1]:false;if(e instanceof B){return e}if(typeof this!=="undefined"&&!(this instanceof B)||typeof this==="undefined"){return new B(e,t)}if(typeof e==="undefined"){throw new Error("Invalid LNumber constructor call")}var r=B.getType(e);if(B.types[r]){return B.types[r](e,t)}var n=e instanceof Array&&x.isString(e[0])&&B.isNumber(e[1]);if(e instanceof B){return B(e.value)}if(!B.isNumber(e)&&!n){throw new Error("You can't create LNumber from ".concat(To(e)))}if(e===null){e=0}var i;if(n){var a=e,u=b(a,2),o=u[0],s=u[1];if(o instanceof x){o=o.valueOf()}if(s instanceof B){s=s.valueOf()}var c=o.match(/^([+-])/);var f=false;if(c){o=o.replace(/^[+-]/,"");if(c[1]==="-"){f=true}}}if(Number.isNaN(e)){return g(e)}else if(n&&Number.isNaN(parseInt(o,s))){return vo}else if(typeof BigInt!=="undefined"){if(typeof e!=="bigint"){if(n){var l;switch(s){case 8:l="0o";break;case 16:l="0x";break;case 2:l="0b";break;case 10:l="";break}if(typeof l==="undefined"){var h=BigInt(s);i=ee(o).map(function(e,t){return BigInt(parseInt(e,s))*Nu(h,BigInt(t))}).reduce(function(e,t){return e+t})}else{i=BigInt(l+o)}}else{i=BigInt(e)}if(f){i*=BigInt(-1)}}else{i=e}return E(i,true)}else if(typeof Mr!=="undefined"&&!(e instanceof Mr)){if(e instanceof Array){return E(I(Mr,ee(e)))}return E(new Mr(e))}else if(n){this.constant(parseInt(o,s),"integer")}else{this.constant(e,"integer")}}B.prototype.constant=function(e,t){Object.defineProperty(this,"__value__",{value:e,enumerable:true});Object.defineProperty(this,"__type__",{value:t,enumerable:true})};B.types={float:function e(t){return new g(t)},complex:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!B.isComplex(t)){t={im:0,re:t}}return new m(t,r)},rational:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!B.isRational(t)){t={num:t,denom:1}}return new w(t,r)}};B.prototype.serialize=function(){return this.__value__};B.prototype.isNaN=function(){return Number.isNaN(this.__value__)};B.prototype.gcd=function(e){var t=this.abs();e=e.abs();if(e.cmp(t)===1){var r=t;t=e;e=r}while(true){t=t.rem(e);if(t.cmp(0)===0){return e}e=e.rem(t);if(e.cmp(0)===0){return t}}};B.isFloat=function e(t){return t instanceof g||Number(t)===t&&t%1!==0};B.isNumber=function(e){return e instanceof B||B.isNative(e)||B.isBN(e)};B.isComplex=function(e){if(!e){return false}var t=e instanceof m||(B.isNumber(e.im)||B.isRational(e.im)||Number.isNaN(e.im))&&(B.isNumber(e.re)||B.isRational(e.re)||Number.isNaN(e.re));return t};B.isRational=function(e){if(!e){return false}return e instanceof w||B.isNumber(e.num)&&B.isNumber(e.denom)};B.isInteger=function(e){if(!(B.isNative(e)||e instanceof B)){return false}if(B.isFloat(e)){return false}if(B.isRational(e)){return false}if(B.isComplex(e)){return false}return true};B.isNative=function(e){return typeof e==="bigint"||typeof e==="number"};B.isBigInteger=function(e){return e instanceof E||typeof e==="bigint"||B.isBN(e)};B.isBN=function(e){return typeof Mr!=="undefined"&&e instanceof Mr};B.getArgsType=function(e,t){if(e instanceof g||t instanceof g){return g}if(e instanceof E||t instanceof E){return E}return B};B.prototype.toString=function(e){if(Number.isNaN(this.__value__)){return"+nan.0"}if(e>=2&&e<36){return this.__value__.toString(e)}return this.__value__.toString()};B.prototype.asType=function(e){var t=B.getType(this);return B.types[t]?B.types[t](e):B(e)};B.prototype.isBigNumber=function(){return typeof this.__value__==="bigint"||typeof Mr!=="undefined"&&!(this.value instanceof Mr)};["floor","ceil","round"].forEach(function(e){B.prototype[e]=function(){if(this["float"]||B.isFloat(this.__value__)){return B(Math[e](this.__value__))}else{return B(Math[e](this.valueOf()))}}});B.prototype.valueOf=function(){if(B.isNative(this.__value__)){return Number(this.__value__)}else if(B.isBN(this.__value__)){return this.__value__.toNumber()}};var ju=function(){var e=function e(t,r){return[t,r]};return{bigint:{bigint:e,float:function e(t,r){return[g(t.valueOf()),r]},rational:function e(t,r){return[{num:t,denom:1},r]},complex:function e(t,r){return[{im:0,re:t},r]}},integer:{integer:e,float:function e(t,r){return[g(t.valueOf()),r]},rational:function e(t,r){return[{num:t,denom:1},r]},complex:function e(t,r){return[{im:0,re:t},r]}},float:{bigint:function e(t,r){return[t,r&&g(r.valueOf())]},integer:function e(t,r){return[t,r&&g(r.valueOf())]},float:e,rational:function e(t,r){return[t,r&&g(r.valueOf())]},complex:function e(t,r){return[{re:t,im:g(0)},r]}},complex:{bigint:t("bigint"),integer:t("integer"),float:t("float"),rational:t("rational"),complex:function e(t,r){var n=B.coerce(t.__re__,r.__re__),i=b(n,2),a=i[0],u=i[1];var o=B.coerce(t.__im__,r.__im__),s=b(o,2),c=s[0],f=s[1];return[{im:c,re:a},{im:f,re:u}]}},rational:{bigint:function e(t,r){return[t,r&&{num:r,denom:1}]},integer:function e(t,r){return[t,r&&{num:r,denom:1}]},float:function e(t,r){return[g(t.valueOf()),r]},rational:e,complex:function e(t,r){return[{im:Bu(t.__type__,r.__im__.__type__,0)[0],re:Bu(t.__type__,r.__re__.__type__,t)[0]},{im:Bu(t.__type__,r.__im__.__type__,r.__im__)[0],re:Bu(t.__type__,r.__re__.__type__,r.__re__)[0]}]}}};function t(r){return function(e,t){return[{im:Bu(r,e.__im__.__type__,0,e.__im__)[1],re:Bu(r,e.__re__.__type__,0,e.__re__)[1]},{im:Bu(r,e.__im__.__type__,0,0)[1],re:Bu(r,t.__type__,0,t)[1]}]}}}();function Bu(e,t,r,n){return ju[e][t](r,n)}B.coerce=function(e,t){var r=B.getType(e);var n=B.getType(t);if(!ju[r]){throw new Error("LNumber::coerce unknown lhs type ".concat(r))}else if(!ju[r][n]){throw new Error("LNumber::coerce unknown rhs type ".concat(n))}var i=ju[r][n](e,t);return i.map(function(e){return B(e,true)})};B.prototype.coerce=function(e){if(!(typeof e==="number"||e instanceof B)){throw new Error("LNumber: you can't coerce ".concat(To(e)))}if(typeof e==="number"){e=B(e)}return B.coerce(this,e)};B.getType=function(e){if(e instanceof B){return e.__type__}if(B.isFloat(e)){return"float"}if(B.isComplex(e)){return"complex"}if(B.isRational(e)){return"rational"}if(typeof e==="number"){return"integer"}if(typeof BigInt!=="undefined"&&typeof e!=="bigint"||typeof Mr!=="undefined"&&!(e instanceof Mr)){return"bigint"}};B.prototype.isFloat=function(){return!!(B.isFloat(this.__value__)||this["float"])};var Iu={add:"+",sub:"-",mul:"*",div:"/",rem:"%",or:"|",and:"&",neg:"~",shl:">>",shr:"<<"};var Pu={};Object.keys(Iu).forEach(function(t){Pu[Iu[t]]=t;B.prototype[t]=function(e){return this.op(Iu[t],e)}});B._ops={"*":function e(t,r){return t*r},"+":function e(t,r){return t+r},"-":function e(t,r){if(typeof r==="undefined"){return-t}return t-r},"/":function e(t,r){return t/r},"%":function e(t,r){return t%r},"|":function e(t,r){return t|r},"&":function e(t,r){return t&r},"~":function e(t){return~t},">>":function e(t,r){return t>>r},"<<":function e(t,r){return t<1&&arguments[1]!==undefined?arguments[1]:false;if(typeof this!=="undefined"&&!(this instanceof m)||typeof this==="undefined"){return new m(e,t)}if(e instanceof m){return m({im:e.__im__,re:e.__re__})}if(B.isNumber(e)&&t){if(!t){return Number(e)}}else if(!B.isComplex(e)){var r="Invalid constructor call for LComplex expect &(:im :re ) object but got ".concat(na(e));throw new Error(r)}var n=e.im instanceof B?e.im:B(e.im);var i=e.re instanceof B?e.re:B(e.re);this.constant(n,i)}m.prototype=Object.create(B.prototype);m.prototype.constructor=m;m.prototype.constant=function(e,t){Object.defineProperty(this,"__im__",{value:e,enumerable:true});Object.defineProperty(this,"__re__",{value:t,enumerable:true});Object.defineProperty(this,"__type__",{value:"complex",enumerable:true})};m.prototype.serialize=function(){return{re:this.__re__,im:this.__im__}};m.prototype.toRational=function(e){var t=this.__im__,r=this.__re__;if(B.isFloat(this.__im__)){t=g(this.__im__).toRational(e)}if(B.isFloat(this.__re__)){r=g(this.__re__).toRational(e)}return m({im:t,re:r})};m.prototype.pow=function(e){e.cmp(0);if(e===0){return B(1)}var t=B(Math.atan2(this.__im__.valueOf(),this.__re__.valueOf()));var r=B(this.modulus());if(B.isComplex(e)&&e.__im__.cmp(0)!==0){var n=e.mul(Math.log(r.valueOf())).add(m.i.mul(t).mul(e));if(!B.isComplex(n)){return g(Math.E).pow(n)}var i=g(Math.E).pow(n.__re__.valueOf());return m({re:i.mul(Math.cos(n.__im__.valueOf())),im:i.mul(Math.sin(n.__im__.valueOf()))})}var a=e.__re__.cmp(0)>0;e=e.__re__.valueOf();if(B.isInteger(e)&&a){var u=this;while(--e){u=u.mul(this)}return u}var o=r.pow(e);var s=t.mul(e);return m({re:o.mul(Math.cos(s)),im:o.mul(Math.sin(s))})};m.prototype.add=function(e){return this.complex_op("add",e,function(e,t,r,n){return{re:e.add(t),im:r.add(n)}})};m.prototype.factor=function(){if(this.__im__ instanceof g||this.__im__ instanceof g){var e=this.__re__,t=this.__im__;var r,n;if(e instanceof g){r=e.toRational().mul(e.toRational())}else{r=e.mul(e)}if(t instanceof g){n=t.toRational().mul(t.toRational())}else{n=t.mul(t)}return r.add(n)}else{return this.__re__.mul(this.__re__).add(this.__im__.mul(this.__im__))}};m.prototype.modulus=function(){return this.factor().sqrt()};m.prototype.conjugate=function(){return m({re:this.__re__,im:this.__im__.sub()})};m.prototype.sqrt=function(){var e=this.modulus();var t,r;if(e.cmp(0)===0){t=r=e}else if(this.__re__.cmp(0)===1){t=g(.5).mul(e.add(this.__re__)).sqrt();r=this.__im__.div(t).div(2)}else{r=g(.5).mul(e.sub(this.__re__)).sqrt();if(this.__im__.cmp(0)===-1){r=r.sub()}t=this.__im__.div(r).div(2)}return m({im:r,re:t})};m.prototype.div=function(e){if(B.isNumber(e)&&!B.isComplex(e)){if(!(e instanceof B)){e=B(e)}var t=this.__re__.div(e);var r=this.__im__.div(e);return m({re:t,im:r})}else if(!B.isComplex(e)){throw new Error("[LComplex::div] Invalid value")}if(this.cmp(e)===0){var n=this.coerce(e),i=b(n,2),a=i[0],u=i[1];var o=a.__im__.div(u.__im__);return o.coerce(u.__re__)[0]}var s=this.coerce(e),c=b(s,2),f=c[0],l=c[1];var h=l.factor();var _=l.conjugate();var p=f.mul(_);if(!B.isComplex(p)){return p.div(h)}var d=p.__re__.op("/",h);var v=p.__im__.op("/",h);return m({re:d,im:v})};m.prototype.sub=function(e){return this.complex_op("sub",e,function(e,t,r,n){return{re:e.sub(t),im:r.sub(n)}})};m.prototype.mul=function(e){return this.complex_op("mul",e,function(e,t,r,n){var i={re:e.mul(t).sub(r.mul(n)),im:e.mul(n).add(t.mul(r))};return i})};m.prototype.complex_op=function(e,t,i){var a=this;var r=function e(t,r){var n=i(a.__re__,t,a.__im__,r);if("im"in n&&"re"in n){if(n.im.cmp(0)===0){return n.re}return m(n,true)}return n};if(typeof t==="undefined"){return r()}if(B.isNumber(t)&&!B.isComplex(t)){if(!(t instanceof B)){t=B(t)}var n=t.asType(0);t={__im__:n,__re__:t}}else if(!B.isComplex(t)){throw new Error("[LComplex::".concat(e,"] Invalid value"))}var u=t.__re__ instanceof B?t.__re__:this.__re__.asType(t.__re__);var o=t.__im__ instanceof B?t.__im__:this.__im__.asType(t.__im__);return r(u,o)};m._op={"+":"add","-":"sub","*":"mul","/":"div"};m.prototype._op=function(e,t){var r=m._op[e];return this[r](t)};m.prototype.cmp=function(e){var t=this.coerce(e),r=b(t,2),n=r[0],i=r[1];var a=n.__re__.coerce(i.__re__),u=b(a,2),o=u[0],s=u[1];var c=o.cmp(s);if(c!==0){return c}else{var f=n.__im__.coerce(i.__im__),l=b(f,2),h=l[0],_=l[1];return h.cmp(_)}};m.prototype.valueOf=function(){return[this.__re__,this.__im__].map(function(e){return e.valueOf()})};m.prototype.toString=function(){var e;if(this.__re__.cmp(0)!==0){e=[na(this.__re__)]}else{e=[]}var t=this.__im__.valueOf();var r=[Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY].includes(t);var n=na(this.__im__);if(!r&&!Number.isNaN(t)){var i=this.__im__.cmp(0);if(i<0||i===0&&this.__im__._minus){e.push("-")}else{e.push("+")}n=n.replace(/^-/,"")}e.push(n);e.push("i");return e.join("")};function g(e){if(typeof this!=="undefined"&&!(this instanceof g)||typeof this==="undefined"){return new g(e)}if(!B.isNumber(e)){throw new Error("Invalid constructor call for LFloat")}if(e instanceof B){return g(e.valueOf())}if(typeof e==="number"){if(Object.is(e,-0)){Object.defineProperty(this,"_minus",{value:true})}this.constant(e,"float")}}g.prototype=Object.create(B.prototype);g.prototype.constructor=g;g.prototype.toString=function(e){if(this.__value__===Number.NEGATIVE_INFINITY){return"-inf.0"}if(this.__value__===Number.POSITIVE_INFINITY){return"+inf.0"}if(Number.isNaN(this.__value__)){return"+nan.0"}e&&(e=e.valueOf());var t=this.__value__.toString(e);if(!t.match(/e[+-]?[0-9]+$/i)){var r=t.replace(/^-/,"");var n=this.__value__<0?"-":"";if(t.match(/^-?0\.0{3}/)){var i=r.match(/^[.0]+/g)[0].length-1;var a=r.replace(/^[.0]+/,"").replace(/^([0-9a-f])/i,"$1.");return"".concat(n).concat(a,"e-").concat(i.toString(e))}if(t.match(/^-?[0-9a-f]{7,}\.?/i)){var u=r.match(/^[0-9a-f]+/gi)[0].length-1;var o=r.replace(/\./,"").replace(/^([0-9a-f])/i,"$1.").replace(/0+$/,"").replace(/\.$/,".0");return"".concat(n).concat(o,"e+").concat(u.toString(e))}if(!B.isFloat(this.__value__)){var s=t+".0";return this._minus?"-"+s:s}}return t.replace(/^([0-9]+)e/,"$1.0e")};g.prototype._op=function(e,t){if(t instanceof B){t=t.__value__}var r=B._ops[e];if(e==="/"&&this.__value__===0&&t===0){return NaN}return g(r(this.__value__,t))};g.prototype.toRational=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){return Lu(this.__value__.valueOf())}return Mu(e.valueOf())(this.__value__.valueOf())};g.prototype.sqrt=function(){var e=this.valueOf();if(this.cmp(0)<0){var t=g(Math.sqrt(-e));return m({re:0,im:t})}return g(Math.sqrt(e))};g.prototype.abs=function(){var e=this.valueOf();if(e<0){e=-e}return g(e)};var Lu=Mu(1e-10);function Mu(n){return function(e){var t=function e(n,t,r){var i=function e(t,r){return r0){i=qu(n,r)}else if(n.cmp(r)<=0){i=r}else if(r.cmp(0)>0){i=qu(r,n)}else if(t.cmp(0)<0){i=B(qu(n.sub(),r.sub())).sub()}else{i=B(0)}if(B.isFloat(t)||B.isFloat(e)){return g(i)}return i}function qu(e,t){var r=B(e).floor();var n=B(t).floor();if(e.cmp(r)<1){return r}else if(r.cmp(n)===0){var i=B(1).div(t.sub(n));var a=B(1).div(e.sub(r));return r.add(B(1).div(qu(i,a)))}else{return r.add(B(1))}}function w(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(typeof this!=="undefined"&&!(this instanceof w)||typeof this==="undefined"){return new w(e,t)}if(!B.isRational(e)){throw new Error("Invalid constructor call for LRational")}var r,n;if(e instanceof w){r=B(e.__num__);n=B(e.__denom__)}else{r=B(e.num);n=B(e.denom)}if(!t&&n.cmp(0)!==0){var i=r.op("%",n).cmp(0)===0;if(i){return B(r.div(n))}}this.constant(r,n)}w.prototype=Object.create(B.prototype);w.prototype.constructor=w;w.prototype.constant=function(e,t){Object.defineProperty(this,"__num__",{value:e,enumerable:true});Object.defineProperty(this,"__denom__",{value:t,enumerable:true});Object.defineProperty(this,"__type__",{value:"rational",enumerable:true})};w.prototype.serialize=function(){return{num:this.__num__,denom:this.__denom__}};w.prototype.pow=function(e){if(B.isRational(e)){return Nu(this.valueOf(),e.valueOf())}var t=e.cmp(0);if(t===0){return B(1)}if(t===-1){e=e.sub();var r=this.__denom__.pow(e);var n=this.__num__.pow(e);return w({num:r,denom:n})}var i=this;e=e.valueOf();while(e>1){i=i.mul(this);e--}return i};w.prototype.sqrt=function(){var e=this.__num__.sqrt();var t=this.__denom__.sqrt();if(e instanceof g||t instanceof g){return e.div(t)}return w({num:e,denom:t})};w.prototype.abs=function(){var e=this.__num__;var t=this.__denom__;if(e.cmp(0)===-1){e=e.sub()}if(t.cmp(0)!==1){t=t.sub()}return w({num:e,denom:t})};w.prototype.cmp=function(e){return B(this.valueOf(),true).cmp(e)};w.prototype.toString=function(){var e=this.__num__.gcd(this.__denom__);var t,r;if(e.cmp(1)!==0){t=this.__num__.div(e);if(t instanceof w){t=B(t.valueOf(true))}r=this.__denom__.div(e);if(r instanceof w){r=B(r.valueOf(true))}}else{t=this.__num__;r=this.__denom__}var n=this.cmp(0)<0;if(n){if(t.abs().cmp(r.abs())===0){return t.toString()}}else if(t.cmp(r)===0){return t.toString()}return t.toString()+"/"+r.toString()};w.prototype.valueOf=function(e){if(this.__denom__.cmp(0)===0){if(this.__num__.cmp(0)<0){return Number.NEGATIVE_INFINITY}return Number.POSITIVE_INFINITY}if(e){return B._ops["/"](this.__num__.value,this.__denom__.value)}return g(this.__num__.valueOf()).div(this.__denom__.valueOf())};w.prototype.mul=function(e){if(!(e instanceof B)){e=B(e)}if(B.isRational(e)){var t=this.__num__.mul(e.__num__);var r=this.__denom__.mul(e.__denom__);return w({num:t,denom:r})}var n=B.coerce(this,e),i=b(n,2),a=i[0],u=i[1];return a.mul(u)};w.prototype.div=function(e){if(!(e instanceof B)){e=B(e)}if(B.isRational(e)){var t=this.__num__.mul(e.__denom__);var r=this.__denom__.mul(e.__num__);return w({num:t,denom:r})}var n=B.coerce(this,e),i=b(n,2),a=i[0],u=i[1];var o=a.div(u);return o};w.prototype._op=function(e,t){return this[Pu[e]](t)};w.prototype.sub=function(e){if(typeof e==="undefined"){return this.mul(-1)}if(!(e instanceof B)){e=B(e)}if(B.isRational(e)){var t=e.__num__.sub();var r=e.__denom__;return this.add(w({num:t,denom:r}))}if(!(e instanceof B)){e=B(e).sub()}else{e=e.sub()}var n=B.coerce(this,e),i=b(n,2),a=i[0],u=i[1];return a.add(u)};w.prototype.add=function(e){if(!(e instanceof B)){e=B(e)}if(B.isRational(e)){var t=this.__denom__;var r=e.__denom__;var n=this.__num__;var i=e.__num__;var a,u;if(t!==r){u=r.mul(n).add(i.mul(t));a=t.mul(r)}else{u=n.add(i);a=t}return w({num:u,denom:a})}if(B.isFloat(e)){return g(this.valueOf()).add(e)}var o=B.coerce(this,e),s=b(o,2),c=s[0],f=s[1];return c.add(f)};function E(e,t){if(typeof this!=="undefined"&&!(this instanceof E)||typeof this==="undefined"){return new E(e,t)}if(e instanceof E){return E(e.__value__,e._native)}if(!B.isBigInteger(e)){throw new Error("Invalid constructor call for LBigInteger")}this.constant(e,"bigint");Object.defineProperty(this,"_native",{value:t})}E.prototype=Object.create(B.prototype);E.prototype.constructor=E;E.bn_op={"+":"iadd","-":"isub","*":"imul","/":"idiv","%":"imod","|":"ior","&":"iand","~":"inot","<<":"ishrn",">>":"ishln"};E.prototype.serialize=function(){return this.__value__.toString()};E.prototype._op=function(e,t){if(typeof t==="undefined"){if(B.isBN(this.__value__)){e=E.bn_op[e];return E(this.__value__.clone()[e](),false)}return E(B._ops[e](this.__value__),true)}if(B.isBN(this.__value__)&&B.isBN(t.__value__)){e=E.bn_op[e];return E(this.__value__.clone()[e](t),false)}var r=B._ops[e](this.__value__,t.__value__);if(e==="/"){var n=this.op("%",t).cmp(0)===0;if(n){return B(r)}return w({num:this,denom:t})}return E(r,true)};E.prototype.sqrt=function(){var e;var t=this.cmp(0)<0;if(B.isNative(this.__value__)){e=B(Math.sqrt(t?-this.valueOf():this.valueOf()))}else if(B.isBN(this.__value__)){e=t?this.__value__.neg().sqrt():this.__value__.sqrt()}if(t){return m({re:0,im:e})}return e};B.NaN=B(NaN);m.i=m({im:1,re:0});function Uu(e){var n=this;var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:se;if(typeof this!=="undefined"&&!(this instanceof Uu)||typeof this==="undefined"){return new Uu(e)}A("InputPort",e,"function");s(this,"__type__",eo);var a;Object.defineProperty(this,"__parser__",{enumerable:true,get:function e(){return a},set:function e(t){A("InputPort::__parser__",t,"parser");a=t}});this._read=e;this._with_parser=this._with_init_parser.bind(this,Y(O.mark(function e(){var r;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(n.char_ready()){t.next=6;break}t.next=3;return n._read();case 3:r=t.sent;a=new ii({env:i});a.parse(r);case 6:return t.abrupt("return",n.__parser__);case 7:case"end":return t.stop()}},e)})));this.char_ready=function(){return!!this.__parser__&&this.__parser__.__lexer__.peek()!==to};this._make_defaults()}Uu.prototype._make_defaults=function(){this.read=this._with_parser(function(e){return e.read_object()});this.read_line=this._with_parser(function(e){return e.__lexer__.read_line()});this.read_char=this._with_parser(function(e){return e.__lexer__.read_char()});this.read_string=this._with_parser(function(e,t){if(!B.isInteger(t)){var r=B.getType(t);So("read-string",r,"integer")}return e.__lexer__.read_string(t.valueOf())});this.peek_char=this._with_parser(function(e){return e.__lexer__.peek_char()})};Uu.prototype._with_init_parser=function(o,s){var c=this;return Y(O.mark(function e(){var r,n,i,a,u=arguments;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.next=2;return o.call(c);case 2:r=t.sent;for(n=u.length,i=new Array(n),a=0;a"};function zu(e){if(typeof this!=="undefined"&&!(this instanceof zu)||typeof this==="undefined"){return new zu(e)}A("OutputPort",e,"function");s(this,"__type__",eo);this.write=e}zu.prototype.is_open=function(){return this._closed!==true};zu.prototype.close=function(){Object.defineProperty(this,"_closed",{get:function e(){return true},set:function e(){},configurable:false,enumerable:false});this.write=function(){throw new Error("output-port: port is closed")}};zu.prototype.flush=function(){};zu.prototype.toString=function(){return"#"};var $u=function(e){function r(e){var t;J(this,r);t=Er(this,r,[function(){var e;return(e=t)._write.apply(e,arguments)}]);A("BufferedOutputPort",e,"function");s(t,"_fn",e,{hidden:true});s(t,"_buffer",[],{hidden:true});return t}M(r,e);return G(r,[{key:"flush",value:function e(){if(this._buffer.length){this._fn(this._buffer.join(""));this._buffer.length=0}}},{key:"_write",value:function e(){var t=this;for(var r=arguments.length,n=new Array(r),i=0;i"};Vu.prototype.valueOf=function(){return this.__buffer__.map(function(e){return e.valueOf()}).join("")};function Yu(e,t){var r=this;if(typeof this!=="undefined"&&!(this instanceof Yu)||typeof this==="undefined"){return new Yu(e,t)}A("OutputFilePort",e,"string");s(this,"__filename__",e);s(this,"_fd",t.valueOf(),{hidden:true});s(this,"__type__",eo);this.write=function(e){if(!x.isString(e)){e=na(e)}else{e=e.valueOf()}r.fs().write(r._fd,e,function(e){if(e){throw e}})}}Yu.prototype=Object.create(zu.prototype);Yu.prototype.constructor=Yu;Yu.prototype.fs=function(){if(!this._fs){this._fs=this.internal("fs")}return this._fs};Yu.prototype.internal=function(e){return mo.get("**internal-env**").get(e)};Yu.prototype.close=function(){var n=this;return new Promise(function(t,r){n.fs().close(n._fd,function(e){if(e){r(e)}else{s(n,"_fd",null,{hidden:true});zu.prototype.close.call(n);t()}})})};Yu.prototype.toString=function(){return"#")};function Ju(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:se;if(typeof this!=="undefined"&&!(this instanceof Ju)||typeof this==="undefined"){return new Ju(e)}A("InputStringPort",e,"string");e=e.valueOf();this._with_parser=this._with_init_parser.bind(this,function(){if(!t.__parser__){t.__parser__=new ii({env:r});t.__parser__.parse(e)}return t.__parser__});s(this,"__type__",eo);this._make_defaults()}Ju.prototype.char_ready=function(){return true};Ju.prototype=Object.create(Uu.prototype);Ju.prototype.constructor=Ju;Ju.prototype.toString=function(){return"#"};function Ku(e){if(typeof this!=="undefined"&&!(this instanceof Ku)||typeof this==="undefined"){return new Ku(e)}this._with_parser=this._with_init_parser.bind(this,function(){return e});s(this,"__type__",eo);this._make_defaults()}Ku.prototype.char_ready=function(){return true};Ku.prototype=Object.create(Uu.prototype);Ku.prototype.constructor=Ku;Ku.prototype.toString=function(){return"#"};function Wu(e){if(typeof this!=="undefined"&&!(this instanceof Wu)||typeof this==="undefined"){return new Wu(e)}A("InputByteVectorPort",e,"uint8array");s(this,"__vector__",e);s(this,"__type__",Xu);var r=0;Object.defineProperty(this,"__index__",{enumerable:true,get:function e(){return r},set:function e(t){A("InputByteVectorPort::__index__",t,"number");if(t instanceof B){t=t.valueOf()}if(typeof t==="bigint"){t=Number(t)}if(Math.floor(t)!==t){throw new Error("InputByteVectorPort::__index__ value is "+"not integer")}r=t}})}Wu.prototype=Object.create(Uu.prototype);Wu.prototype.constructor=Wu;Wu.prototype.toString=function(){return"#"};Wu.prototype.close=function(){var t=this;s(this,"__vector__",ie);var r=function e(){throw new Error("Input-binary-port: port is closed")};["read_u8","close","peek_u8","read_u8_vector"].forEach(function(e){t[e]=r});this.u8_ready=this.char_ready=function(){return false}};Wu.prototype.u8_ready=function(){return true};Wu.prototype.peek_u8=function(){if(this.__index__>=this.__vector__.length){return to}return this.__vector__[this.__index__]};Wu.prototype.skip=function(){if(this.__index__<=this.__vector__.length){++this.__index__}};Wu.prototype.read_u8=function(){var e=this.peek_u8();this.skip();return e};Wu.prototype.read_u8_vector=function(e){if(typeof e==="undefined"){e=this.__vector__.length}else if(e>this.__index__+this.__vector__.length){e=this.__index__+this.__vector__.length}if(this.peek_u8()===to){return to}return this.__vector__.slice(this.__index__,e)};function Hu(){if(typeof this!=="undefined"&&!(this instanceof Hu)||typeof this==="undefined"){return new Hu}s(this,"__type__",Xu);s(this,"_buffer",[],{hidden:true});this.write=function(e){A("write",e,["number","uint8array"]);if(B.isNumber(e)){this._buffer.push(e.valueOf())}else{var t;(t=this._buffer).push.apply(t,ee(Array.from(e)))}};Object.defineProperty(this,"__buffer__",{enumerable:true,get:function e(){return Uint8Array.from(this._buffer)}})}Hu.prototype=Object.create(zu.prototype);Hu.prototype.constructor=Hu;Hu.prototype.close=function(){zu.prototype.close.call(this);s(this,"_buffer",null,{hidden:true})};Hu.prototype._close_guard=function(){if(this._closed){throw new Error("output-port: binary port is closed")}};Hu.prototype.write_u8=function(e){A("OutputByteVectorPort::write_u8",e,"number");this.write(e)};Hu.prototype.write_u8_vector=function(e){A("OutputByteVectorPort::write_u8_vector",e,"uint8array");this.write(e)};Hu.prototype.toString=function(){return"#"};Hu.prototype.valueOf=function(){return this.__buffer__};function Gu(e,t){if(typeof this!=="undefined"&&!(this instanceof Gu)||typeof this==="undefined"){return new Gu(e,t)}Ju.call(this,e);A("InputFilePort",t,"string");s(this,"__filename__",t)}Gu.prototype=Object.create(Ju.prototype);Gu.prototype.constructor=Gu;Gu.prototype.toString=function(){return"#")};function Qu(e,t){if(typeof this!=="undefined"&&!(this instanceof Qu)||typeof this==="undefined"){return new Qu(e,t)}Wu.call(this,e);A("InputBinaryFilePort",t,"string");s(this,"__filename__",t)}Qu.prototype=Object.create(Wu.prototype);Qu.prototype.constructor=Qu;Qu.prototype.toString=function(){return"#")};function Zu(e,t){var i=this;if(typeof this!=="undefined"&&!(this instanceof Zu)||typeof this==="undefined"){return new Zu(e,t)}A("OutputBinaryFilePort",e,"string");s(this,"__filename__",e);s(this,"_fd",t.valueOf(),{hidden:true});s(this,"__type__",Xu);var a;this.write=function(e){A("write",e,["number","uint8array"]);var n;if(!a){a=i.internal("fs")}if(B.isNumber(e)){n=new Uint8Array([e.valueOf()])}else{n=new Uint8Array(Array.from(e))}return new Promise(function(t,r){a.write(i._fd,n,function(e){if(e){r(e)}else{t()}})})}}Zu.prototype=Object.create(Yu.prototype);Zu.prototype.constructor=Zu;Zu.prototype.write_u8=function(e){A("OutputByteVectorPort::write_u8",e,"number");this.write(e)};Zu.prototype.write_u8_vector=function(e){A("OutputByteVectorPort::write_u8_vector",e,"uint8array");this.write(e)};var Xu=Symbol["for"]("binary");var eo=Symbol["for"]("text");var to=new ro;function ro(){}ro.prototype.toString=function(){return"#"};function no(e){var t=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},n=r.stderr,i=r.stdin,a=r.stdout,u=r.command_line,o=u===void 0?null:u,s=X(r,dr);if(typeof this!=="undefined"&&!(this instanceof no)||typeof this==="undefined"){return new no(e,te({stdin:i,stdout:a,stderr:n,command_line:o},s))}if(typeof e==="undefined"){e="anonymous"}this.__env__=mo.inherit(e,s);this.__parser__=new ii({env:this.__env__});this.__env__.set("parent.frame",l("parent.frame",function(){return t.__env__},se.__env__["parent.frame"].__doc__));var c="**interaction-environment-defaults**";this.set(c,Zi(s).concat(c));var f=po.inherit("internal-".concat(e));if(Wa(i)){f.set("stdin",i)}if(Wa(n)){f.set("stderr",n)}if(Wa(a)){f.set("stdout",a)}f.set("command-line",o);go(this.__env__,f)}no.prototype.exec=function(){var t=Y(function(u){var o=this;var s=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return O.mark(function e(){var r,n,i,a;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=s.use_dynamic,n=r===void 0?false:r,i=s.dynamic_env,a=s.env;A("Interpreter::exec",u,["string","array"],1);A("Interpreter::exec",n,"boolean",2);if(!a){a=o.__env__}if(!i){i=a}se.set("**interaction-environment**",o.__env__);if(!Array.isArray(u)){t.next=10;break}return t.abrupt("return",Go(u,{env:a,dynamic_env:i,use_dynamic:n}));case 10:o.__parser__.parse(u);return t.abrupt("return",Go(o.__parser__,{env:a,dynamic_env:i,use_dynamic:n}));case 12:case"end":return t.stop()}},e)})()});return function(e){return t.apply(this,arguments)}}();no.prototype.get=function(e){var t=this.__env__.get(e);if(d(t)){var r=new Jo({env:this.__env__});return t.bind(r)}return t};no.prototype.set=function(e,t){return this.__env__.set(e,t)};no.prototype.constant=function(e,t){return this.__env__.constant(e,t)};function io(e,t){this.name="LipsError";this.message=e;this.args=t;this.stack=(new Error).stack}io.prototype=new Error;io.prototype.constructor=io;var ao=function(e){function t(){J(this,t);return Er(this,t,arguments)}M(t,e);return G(t)}($(Error));function F(e,t,r){if(arguments.length===1){if(_(arguments[0])==="object"){e=arguments[0];t=null}else if(typeof arguments[0]==="string"){e={};t=null;r=arguments[0]}}this.__docs__=new Map;this.__env__=e;this.__parent__=t;this.__name__=r||"anonymous"}F.prototype.list=function(){return Zi(this.__env__)};F.prototype.fs=function(){return this.get("**fs**")};F.prototype.unset=function(e){if(e instanceof ne){e=e.valueOf()}if(e instanceof x){e=e.valueOf()}delete this.__env__[e]};F.prototype.inherit=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(_(e)==="object"){t=e}if(!e||_(e)==="object"){e="child of "+(this.__name__||"unknown")}return new F(t||{},this,e)};F.prototype.doc=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(e instanceof ne){e=e.__name__}if(e instanceof x){e=e.valueOf()}if(t){if(!r){t=pi(t)}this.__docs__.set(e,t);return this}if(this.__docs__.has(e)){return this.__docs__.get(e)}if(this.__parent__){return this.__parent__.doc(e)}};F.prototype.new_frame=function(e,t){var n=this.inherit("__frame__");n.set("parent.frame",l("parent.frame",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;e=e.valueOf();var t=n.__parent__;if(!Oa(t)){return ie}if(e<=0){return t}var r=t.get("parent.frame");return r(e-1)},se.__env__["parent.frame"].__doc__));t.callee=e;n.set("arguments",t);return n};F.prototype._lookup=function(e){if(e instanceof ne){e=e.__name__}if(e instanceof x){e=e.valueOf()}if(this.__env__.hasOwnProperty(e)){return uo(this.__env__[e])}if(this.__parent__){return this.__parent__._lookup(e)}};F.prototype.toString=function(){return"#"};F.prototype.clone=function(){var t=this;var r={};Object.keys(this.__env__).forEach(function(e){r[e]=t.__env__[e]});return new F(r,this.__parent__,this.__name__)};F.prototype.merge=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"merge";A("Environment::merge",e,"environment");return this.inherit(t,e.__env__)};function uo(e){if(typeof this!=="undefined"&&!(this instanceof uo)||typeof this==="undefined"){return new uo(e)}this.value=e}uo.isUndefined=function(e){return e instanceof uo&&typeof e.value==="undefined"};uo.prototype.valueOf=function(){return this.value};function oo(e){if(!e.length){return}if(e.length===1){return e[0]}if(typeof this!=="undefined"&&!(this instanceof oo)||typeof this==="undefined"){return new oo(e)}this.__values__=e}oo.prototype.toString=function(){return this.__values__.map(function(e){return na(e)}).join("\n")};oo.prototype.valueOf=function(){return this.__values__};F.prototype.get=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};A("Environment::get",e,["symbol","string"]);var r=t.throwError,n=r===void 0?true:r;var i=e;if(i instanceof ne||i instanceof x){i=i.valueOf()}var a=this._lookup(i);if(a instanceof uo){if(uo.isUndefined(a)){return undefined}return za(a.valueOf())}var u;if(e instanceof ne&&e[ne.object]){u=e[ne.object]}else if(typeof i==="string"){u=i.split(".").filter(Boolean)}if(u&&u.length>0){var o=u,s=z(o),c=s[0],f=s.slice(1);a=this._lookup(c);if(f.length){try{if(a instanceof uo){a=a.valueOf()}else{a=fo(Br,c);if(d(a)){a=$a(a)}}if(typeof a!=="undefined"){return fo.apply(void 0,[a].concat(ee(f)))}}catch(e){throw e}}else if(a instanceof uo){return za(a.valueOf())}a=fo(Br,i)}if(typeof a!=="undefined"){return a}if(n){throw new Error("Unbound variable `"+i.toString()+"'")}};F.prototype.set=function(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;A("Environment::set",e,["string","symbol"]);if(B.isNumber(t)){t=B(t)}if(e instanceof ne){e=e.__name__}if(e instanceof x){e=e.valueOf()}this.__env__[e]=t;if(r){this.doc(e,r,true)}return this};F.prototype.constant=function(t,e){var r=this;if(this.__env__.hasOwnProperty(t)){throw new Error("Environment::constant: ".concat(t," already exists"))}if(arguments.length===1&&Vi(arguments[0])){var n=arguments[0];Object.keys(n).forEach(function(e){r.constant(t,n[e])})}else{Object.defineProperty(this.__env__,t,{value:e,enumerable:true})}return this};F.prototype.has=function(e){return this.__env__.hasOwnProperty(e)};F.prototype.ref=function(e){var t=this;while(true){if(!t){break}if(t.has(e)){return t}t=t.__parent__}};F.prototype.parents=function(){var e=this;var t=[];while(e){t.unshift(e);e=e.__parent__}return t};function so(e){if(ja(e)){return e.then(so)}if(oe(e)||e instanceof ne){e[Za]=true}return e}var co=oi(Tn('(lambda ()\n "[native code]"\n (throw "Invalid Invocation"))'))[0];var fo=l("get",function e(t){var r;for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=ho(this,"stdin")}Po("peek-char",e,"input-port");return e.peek_char()},"(peek-char port)\n\n This function reads and returns a character from the string\n port, or, if there is no more data in the string port, it\n returns an EOF."),"read-line":l("read-line",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=ho(this,"stdin")}Po("read-line",e,"input-port");return e.read_line()},"(read-line port)\n\n This function reads and returns the next line from the input\n port."),"read-char":l("read-char",function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){e=ho(this,"stdin")}Po("read-char",e,"input-port");return e.read_char()},"(read-char port)\n\n This function reads and returns the next character from the\n input port."),read:l("read",function(){var e=Y(function(){var i=this;var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;return O.mark(function e(){var r,n;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:r=i.env;if(a===null){n=ho(r,"stdin")}else{n=a}Po("read",n,"input-port");return t.abrupt("return",n.read.call(r));case 4:case"end":return t.stop()}},e)})()});function t(){return e.apply(this,arguments)}return t}(),"(read [port])\n\n This function, if called with a port, it will parse the next\n item from the port. If called without an input, it will read\n a string from standard input (using the browser's prompt or\n a user defined input method) and parse it. This function can be\n used together with `eval` to evaluate code from port."),pprint:l("pprint",function e(t){if(oe(t)){t=new Bs.Formatter(t.toString(true))["break"]().format();se.get("display").call(se,t)}else{se.get("write").call(se,t)}se.get("newline").call(se)},"(pprint expression)\n\n This function will pretty print its input to stdout. If it is called\n with a non-list, it will just call the print function on its\n input."),print:l("print",function e(){var t=se.get("display");var r=se.get("newline");var n=this.use_dynamic;var i=se;var a=se;for(var u=arguments.length,o=new Array(u),s=0;s1?r-1:0),i=1;in.length){throw new Error("Not enough arguments")}var o=0;var s=se.get("repr");t=t.replace(a,function(e){var t=e[1];if(t==="~"){return"~"}else if(t==="%"){return"\n"}else{var r=n[o++];if(t==="a"){return s(r)}else{return s(r,true)}}});u=t.match(/~([\S])/);if(u){throw new Error("format: Unrecognized escape sequence ".concat(u[1]))}return t},"(format string n1 n2 ...)\n\n This function accepts a string template and replaces any\n escape sequences in its inputs:\n\n * ~a value as if printed with `display`\n * ~s value as if printed with `write`\n * ~% newline character\n * ~~ literal tilde '~'\n\n If there are missing inputs or other escape characters it\n will error."),newline:l("newline",function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;var r=se.get("display");var n=this.use_dynamic;var i=se;var a=se;zo(r,["\n",t],{env:i,dynamic_env:a,use_dynamic:n})},"(newline [port])\n\n Write newline character to standard output or given port"),display:l("display",function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(r===null){r=ho(this,"stdout")}else{A("display",r,"output-port")}var n=t;if(!(r instanceof Zu)){n=se.get("repr")(t)}r.write.call(se,n)},"(display string [port])\n\n This function outputs the string to the standard output or\n the port if given. No newline."),"display-error":l("display-error",function e(){var t=ho(this,"stderr");var r=se.get("repr");for(var n=arguments.length,i=new Array(n),a=0;a1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=X(t,vr);var i=this;var u=this;var o;var s=te(te({},n),{},{env:this,dynamic_env:i,use_dynamic:r});var c=k(e.cdr.car,s);c=Lo(c);function f(t,r,n){if(ja(t)){return t.then(function(e){return f(t,e,n)})}if(ja(r)){return r.then(function(e){return f(t,e,n)})}if(ja(n)){return n.then(function(e){return f(t,r,e)})}u.get("set-obj!").call(u,t,r,n);return n}if(oe(e.car)&&ne.is(e.car.car,".")){var l=e.car.cdr.car;var h=e.car.cdr.cdr.car;var _=k(l,s);var p=k(h,s);return f(_,p,c)}if(!(e.car instanceof ne)){throw new Error("set! first argument need to be a symbol or "+"dot accessor that evaluate to object.")}var d=e.car.valueOf();o=this.ref(e.car.__name__);return D(c,function(e){if(!o){var t=d.split(".");if(t.length>1){var r=t.pop();var n=t.join(".");var i=a.get(n,{throwError:false});if(i){f(i,r,e);return}}throw new Error("Unbound variable `"+d+"'")}o.set(d,e)})}),"(set! name value)\n\n Macro that can be used to set the value of the variable or slot (mutate it).\n set! searches the scope chain until it finds first non empty slot and sets it."),"unset!":l(new q("set!",function(e){if(!(e.car instanceof ne)){throw new Error("unset! first argument need to be a symbol or "+"dot accessor that evaluate to object.")}var t=e.car;var r=this.ref(t);if(r){delete r.__env__[t.__name__]}}),"(unset! name)\n\n Function to delete the specified name from environment.\n Trying to access the name afterwards will error."),"set-car!":l("set-car!",function(e,t){A("set-car!",e,"pair");e.car=t},"(set-car! obj value)\n\n Function that sets the car (first item) of the list/pair to specified value.\n The old value is lost."),"set-cdr!":l("set-cdr!",function(e,t){A("set-cdr!",e,"pair");e.cdr=t},"(set-cdr! obj value)\n\n Function that sets the cdr (tail) of the list/pair to specified value.\n It will destroy the list. The old tail is lost."),"empty?":l("empty?",function(e){return typeof e==="undefined"||ue(e)},"(empty? object)\n\n Function that returns #t if value is nil (an empty list) or undefined."),gensym:l("gensym",Un,"(gensym)\n\n Generates a unique symbol that is not bound anywhere,\n to use with macros as meta name."),load:l("load",function e(c,t){A("load",c,"string");var f=this;if(f.__name__==="__frame__"){f=f.__parent__}if(!(t instanceof F)){if(f===se){t=f}else{t=this.get("**interaction-environment**")}}var l="@lips";var h=c.startsWith(l);var _="**module-path**";var p=se.get(_,{throwError:false});c=c.valueOf();if(!c.match(/.[^.]+$/)){c+=".scm"}var r=c.match(/\.xcb$/);function d(e){if(r){e=Es(e)}else{if(To(e)==="buffer"){e=e.toString()}e=e.replace(/^(#!.*)/,function(e,t){if(wa(t)){return t}return""});if(e.match(/^\{/)){e=ys(e)}}return Go(e,{env:t})}function n(e){return Br.fetch(e).then(function(e){return r?e.arrayBuffer():e.text()}).then(function(e){if(r){e=new Uint8Array(e)}return e})}function v(){var e=se.get("__dirname");return e.replace(/[^/]+$/,"")}if(Fo()){return new Promise(function(){var r=Y(O.mark(function e(r,n){var i,a,u,o,s;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:t.prev=0;t.next=3;return Co;case 3:i=Lr("path");a=Lr("fs");u=v();if(h){c=c.replace(l,u)}if(!p){t.next=12;break}p=p.valueOf();if(!c.startsWith("/")){c=i.join(p,c)}t.next=19;break;case 12:if(c.startsWith("/")){t.next=19;break}o=f.get("command-line",{throwError:false});if(!o){t.next=18;break}t.next=17;return o();case 17:s=t.sent;case 18:if(s&&!ue(s)){process.cwd();c=i.join(i.dirname(s.car.valueOf()),c)}case 19:se.set(_,i.dirname(c));a.readFile(c,function(e,t){if(e){n(e);se.set(_,p)}else{try{d(t).then(function(){r();se.set(_,p)})["catch"](n)}catch(e){n(e)}}});t.next=26;break;case 23:t.prev=23;t.t0=t["catch"](0);console.error(t.t0);case 26:case"end":return t.stop()}},e,null,[[0,23]])}));return function(e,t){return r.apply(this,arguments)}}())}if(h){var i,a;var u=(i=se.get("__dirname",{throwError:false}))!==null&&i!==void 0?i:ns;(a=u)!==null&&a!==void 0?a:u=ns;var o=u.replace(/dist\/?[^\/]*$/,"");c=c.replace(l,o)}if(p){p=p.valueOf();if(!c.startsWith("/")){c=p+"/"+c.replace(/^\.?\/?/,"")}}return n(c).then(function(e){se.set(_,c.replace(/\/[^/]*$/,""));return d(e)}).then(function(){})["finally"](function(){se.set(_,p)})},"(load filename)\n (load filename environment)\n\n Fetches the file (from disk or network) and evaluates its content as LIPS code.\n If the second argument is provided and it's an environment the evaluation\n will happen in that environment."),while:l(new q("while",function(e,t){var r=e.car;var n=te(te({},t),{},{env:this});var i=new ae(new ne("begin"),e.cdr);return function t(){return D(k(r,n),function(e){if(e){return D(k(i,n),t)}})}()}),"(while cond body)\n\n Creates a loop, it executes cond and body until cond expression is false."),do:l(new q("do",function(){var r=Y(function(h,e){var _=this;var p=e.use_dynamic,d=e.error;return O.mark(function e(){var o,r,s,c,n,f,l,i,a,u;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:o=_;r=o;s=o.inherit("do");c=h.car;n=h.cdr.car;f=h.cdr.cdr;if(!ue(f)){f=new ae(ne("begin"),f)}l={env:o,dynamic_env:r,use_dynamic:p,error:d};i=c;case 9:if(ue(i)){t.next=20;break}a=i.car;t.t0=s;t.t1=a.car;t.next=15;return k(a.cdr.car,l);case 15:t.t2=t.sent;t.t0.set.call(t.t0,t.t1,t.t2);i=i.cdr;t.next=9;break;case 20:l={env:s,dynamic_env:r,error:d};u=O.mark(function e(){var r,n,i,a,u;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(ue(f)){t.next=3;break}t.next=3;return Bs.evaluate(f,l);case 3:r=c;n={};case 5:if(ue(r)){t.next=15;break}i=r.car;if(ue(i.cdr.cdr)){t.next=12;break}t.next=10;return k(i.cdr.cdr.car,l);case 10:a=t.sent;n[i.car.valueOf()]=a;case 12:r=r.cdr;t.next=5;break;case 15:u=Object.getOwnPropertySymbols(n);l.env=s=o.inherit("do");Object.keys(n).concat(u).forEach(function(e){s.set(e,n[e])});case 18:case"end":return t.stop()}},e)});case 22:t.next=24;return k(n.car,l);case 24:t.t3=t.sent;if(!(t.t3===false)){t.next=29;break}return t.delegateYield(u(),"t4",27);case 27:t.next=22;break;case 29:if(ue(n.cdr)){t.next=33;break}t.next=32;return k(n.cdr.car,l);case 32:return t.abrupt("return",t.sent);case 33:case"end":return t.stop()}},e)})()});return function(e,t){return r.apply(this,arguments)}}()),"(do (( )) (test return) . body)\n\n Iteration macro that evaluates the expression body in scope of the variables.\n On each loop it changes the variables according to the expression and runs\n test to check if the loop should continue. If test is a single value, the macro\n will return undefined. If the test is a pair of expressions the macro will\n evaluate and return the second expression after the loop exits."),if:l(new q("if",function(r,e){var t=e.error,n=e.use_dynamic;var i=this;var a=this;var u={env:a,dynamic_env:i,use_dynamic:n,error:t};var o=function e(t){if(Da(t)){return k(r.cdr.cdr.car,u)}else{return k(r.cdr.car,u)}};if(ue(r)){throw new Error("too few expressions for `if`")}var s=k(r.car,u);return D(s,o)}),"(if cond true-expr false-expr)\n\n Macro that evaluates cond expression and if the value is true, it\n evaluates and returns true-expression, if not it evaluates and returns\n false-expression."),"let-env":new q("let-env",function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=e.dynamic_env,n=e.use_dynamic,i=e.error;A("let-env",t,"pair");var a=k(t.car,{env:this,dynamic_env:r,error:i,use_dynamic:n});return D(a,function(e){A("let-env",e,"environment");return k(ae(ne("begin"),t.cdr),{env:e,dynamic_env:r,error:i})})},"(let-env env . body)\n\n Special macro that evaluates body in context of given environment\n object."),letrec:l(_u(Symbol["for"]("letrec")),"(letrec ((a value-a) (b value-b) ...) . body)\n\n Macro that creates a new environment, then evaluates and assigns values to\n names and then evaluates the body in context of that environment.\n Values are evaluated sequentially and the next value can access the\n previous values/names."),"letrec*":l(_u(Symbol["for"]("letrec")),"(letrec* ((a value-a) (b value-b) ...) . body)\n\n Same as letrec but the order of execution of the binding is guaranteed,\n so you can use recursive code as well as referencing the previous binding.\n\n In LIPS both letrec and letrec* behave the same."),"let*":l(_u(Symbol["for"]("let*")),"(let* ((a value-a) (b value-b) ...) . body)\n\n Macro similar to `let`, but the subsequent bindings after the first\n are evaluated in the environment including the previous let variables,\n so you can define one variable, and use it in the next's definition."),let:l(_u(Symbol["for"]("let")),"(let ((a value-a) (b value-b) ...) . body)\n\n Macro that creates a new environment, then evaluates and assigns values to names,\n and then evaluates the body in context of that environment. Values are evaluated\n sequentially but you can't access previous values/names when the next are\n evaluated. You can only get them in the body of the let expression. (If you want\n to define multiple variables and use them in each other's definitions, use\n `let*`.)"),"begin*":l(pu("begin*",function(e){return e.pop()}),"(begin* . body)\n\n This macro is a parallel version of begin. It evaluates each expression\n in the body and if it's a promise it will await it in parallel and return\n the value of the last expression (i.e. it uses Promise.all())."),shuffle:l("shuffle",function(e){A("shuffle",e,["pair","nil","array"]);var t=se.get("random");if(ue(e)){return ie}if(Array.isArray(e)){return qi(e.slice(),t)}var r=se.get("list->array")(e);r=qi(r,t);return se.get("array->list")(r)},"(shuffle obj)\n\n Order items in vector or list in random order."),begin:l(new q("begin",function(e,t){var n=te(te({},t),{},{env:this});var i=se.get("list->array")(e);var a;return function t(){if(i.length){var e=i.shift();var r=k(e,n);return D(r,function(e){a=e;return t()})}else{return a}}()}),"(begin . args)\n\n Macro that runs a list of expressions in order and returns the value\n of the last one. It can be used in places where you can only have a\n single expression, like (if)."),ignore:new q("ignore",function(e,t){var r=te(te({},t),{},{env:this,dynamic_env:this});k(new ae(new ne("begin"),e),r)},"(ignore . body)\n\n Macro that will evaluate the expression and swallow any promises that may\n be created. It will discard any value that may be returned by the last body\n expression. The code should have side effects and/or when it's promise\n it should resolve to undefined."),"call/cc":l(q.defmacro("call/cc",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=te({env:this},t);return D(k(e.car,r),function(e){if(d(e)){return e(new Wo(null))}})}),"(call/cc proc)\n\n Call-with-current-continuation.\n\n NOT SUPPORTED BY LIPS RIGHT NOW"),parameterize:l(new q("parameterize",function(t,e){var i=e.dynamic_env;var a=i.inherit("parameterize").new_frame(null,{});var u=te(te({},e),{},{env:this});var o=t.car;if(!oe(o)){var r=To(o);throw new Error("Invalid syntax for parameterize expecting pair got ".concat(r))}function s(){var e=new ae(new ne("begin"),t.cdr);return k(e,te(te({},u),{},{dynamic_env:a}))}return function r(){var e=o.car;var n=e.car.valueOf();return D(k(e.cdr.car,u),function(e){var t=i.get(n,{throwError:false});if(!ka(t)){throw new Error("Unknown parameter ".concat(n))}a.set(n,t.inherit(e));if(!ba(o.cdr)){o=o.cdr;return r()}else{return s()}})}()}),"(parameterize ((name value) ...)\n\n Macro that change the dynamic variable created by make-parameter."),"make-parameter":l(new q("make-parameter",function(e,t){t.dynamic_env;var r=k(e.car,t);var n;if(oe(e.cdr.car)){n=k(e.cdr.car,t)}return new Yo(r,n)}),"(make-parameter init converter)\n\n Function creates new dynamic variable that can be custimized with parameterize\n macro. The value should be assigned to a variable e.g.:\n\n (define radix (make-parameter 10))\n\n The result value is a procedure that return the value of dynamic variable."),"define-syntax-parameter":l(new q("define-syntax-parameter",function(e,t){var r=e.car;var n=this;if(!(r instanceof ne)){throw new Error("define-syntax-parameter: invalid syntax expecting symbol got ".concat(To(r)))}var i=k(e.cdr.car,te({env:n},t));A("define-syntax-parameter",i,"syntax",2);i.__name__=r.valueOf();if(i.__name__ instanceof x){i.__name__=i.__name__.valueOf()}var a;if(oe(e.cdr.cdr)&&x.isString(e.cdr.cdr.car)){a=e.cdr.cdr.car.valueOf()}n.set(e.car,new va(i),a,true)}),"(define-syntax-parameter name syntax [__doc__])\n\n Binds to the transformer obtained by evaluating .\n The transformer provides the default expansion for the syntax parameter,\n and in the absence of syntax-parameterize, is functionally equivalent to\n define-syntax."),"syntax-parameterize":l(new q("syntax-parameterize",function(e,t){var r=se.get("list->array")(e.car);var n=this.inherit("syntax-parameterize");while(r.length){var i=r.shift();if(!(oe(i)||i.car instanceof ne)){var a="invalid syntax for syntax-parameterize: ".concat($i(e,true));throw new Error("syntax-parameterize: ".concat(a))}var u=k(i.cdr.car,te(te({},t),{},{env:this}));var o=i.car;A("syntax-parameterize",u,["syntax"]);A("syntax-parameterize",o,"symbol");u.__name__=o.valueOf();if(u.__name__ instanceof x){u.__name__=u.__name__.valueOf()}var s=new va(u);if(o.is_gensym()){var c=o.literal();var f=this.get(c,{throwError:false});if(f instanceof va){n.set(c,s)}}n.set(o,s)}var l=zn([n,t.dynamic_env],e.cdr);return k(l,te(te({},t),{},{env:n}))}),"(syntax-parameterize (bindings) body)\n\n Macro work similar to let-syntax but the the bindnds will be exposed to the user.\n With syntax-parameterize you can define anaphoric macros."),define:l(q.defmacro("define",function(r,e){var n=this;if(oe(r.car)&&r.car.car instanceof ne){var t=new ae(new ne("define"),new ae(r.car.car,new ae(new ae(new ne("lambda"),new ae(r.car.cdr,r.cdr)))));return t}else if(e.macro_expand){return}e.dynamic_env=this;e.env=n;var i=r.cdr.car;var a;if(oe(i)){i=k(i,e);a=true}else if(i instanceof ne){i=n.get(i)}A("define",r.car,"symbol");return D(i,function(e){if(n.__name__===da.__merge_env__){n=n.__parent__}if(a&&(d(e)&&cu(e)||e instanceof da||ka(e))){e.__name__=r.car.valueOf();if(e.__name__ instanceof x){e.__name__=e.__name__.valueOf()}}var t;if(oe(r.cdr.cdr)&&x.isString(r.cdr.cdr.car)){t=r.cdr.cdr.car.valueOf()}n.set(r.car,e,t,true)})}),'(define name expression)\n (define name expression "doc string")\n (define (function-name . args) . body)\n\n Macro for defining values. It can be used to define variables,\n or functions. If the first argument is list it will create a function\n with name being first element of the list. This form expands to\n `(define function-name (lambda args body))`'),"set-obj!":l("set-obj!",function(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var i=_(e);if(ba(e)||i!=="object"&&i!=="function"){var a=So("set-obj!",To(e),["object","function"]);throw new Error(a)}A("set-obj!",t,["string","symbol","number"]);e=$a(e);t=t.valueOf();if(arguments.length===2){delete e[t]}else if(Ea(e)&&d(r)){e[t]=$a(r);e[t][nu]=true}else if(d(r)||La(r)||ue(r)){e[t]=r}else{e[t]=r&&!Ea(r)?r.valueOf():r}if(Yi){var u=e[t];Object.defineProperty(e,t,te(te({},n),{},{value:u}))}},"(set-obj! obj key value)\n (set-obj! obj key value props)\n\n Function set a property of a JavaScript object. props should be a vector of pairs,\n passed to Object.defineProperty."),"null-environment":l("null-environment",function(){return se.inherit("null")},"(null-environment)\n\n Returns a clean environment with only the standard library."),values:l("values",function e(){for(var t=arguments.length,r=new Array(t),n=0;n1&&arguments[1]!==undefined?arguments[1]:{},y=e.use_dynamic,m=e.error;var g=this;var b;if(oe(v.cdr)&&x.isString(v.cdr.car)&&!ue(v.cdr.cdr)){b=v.cdr.car.valueOf()}function w(){var e=Aa(this)?this:{dynamic_env:g},r=e.dynamic_env;var n=g.inherit("lambda");r=r.inherit("lambda");if(this&&!Aa(this)){if(this&&!this.__instance__){Object.defineProperty(this,"__instance__",{enumerable:false,get:function e(){return true},set:function e(){},configurable:false})}n.set("this",this)}for(var t=arguments.length,i=new Array(t),a=0;a> SYNTAX");re(e);re(m);var n=w.inherit("syntax");var i=n;var a=this;if(a.__name__===da.__merge_env__){var u=Object.getOwnPropertySymbols(a.__env__);u.forEach(function(e){a.__parent__.set(e,a.__env__[e])});a=a.__parent__}var o={env:n,dynamic_env:i,use_dynamic:g,error:b};var s,c,f;if(m.car instanceof ne){s=m.car;f=D(m.cdr.car);c=m.cdr.cdr}else{s="...";f=D(m.car);c=m.cdr}try{while(!ue(c)){var l=c.car.car;var h=c.car.cdr.car;re("[[[ RULE");re(l);var _=ya(l,e,f,s,{expansion:this,define:w});if(_){if(qr()){console.log(JSON.stringify(Qi(_),true,2));console.log("PATTERN: "+l.toString(true));console.log("MACRO: "+e.toString(true))}var p=[];var d=ga({bindings:_,expr:h,symbols:f,scope:n,lex_scope:a,names:p,ellipsis:s});re("OUPUT>>> ",d);if(d){h=d}var v=a.merge(n,da.__merge_env__);if(r){return{expr:h,scope:v}}var y=k(h,te(te({},o),{},{env:v}));return ma(y,p)}c=c.cdr}}catch(e){e.message+="\nin macro:\n ".concat(m.toString(true));throw e}throw new Error("syntax-rules: no matching syntax in macro ".concat(e.toString(true)))},w);r.__code__=m;return r},"(syntax-rules () (pattern expression) ...)\n\n Base of hygienic macros, it will return a new syntax expander\n that works like Lisp macros."),quote:l(new q("quote",function(e){return so(e.car)}),"(quote expression) or 'expression\n\n Macro that returns a single LIPS expression as data (it won't evaluate the\n argument). It will return a list if put in front of LIPS code.\n And if put in front of a symbol it will return the symbol itself, not the value\n bound to that name."),"unquote-splicing":l("unquote-splicing",function(){throw new Error("You can't call `unquote-splicing` outside of quasiquote")},"(unquote-splicing code) or ,@code\n\n Special form used in the quasiquote macro. It evaluates the expression inside and\n splices the list into quasiquote's result. If it is not the last element of the\n expression, the computed value must be a pair."),unquote:l("unquote",function(){throw new Error("You can't call `unquote` outside of quasiquote")},"(unquote code) or ,code\n\n Special form used in the quasiquote macro. It evaluates the expression inside and\n substitutes the value into quasiquote's result."),quasiquote:q.defmacro("quasiquote",function(e,t){var o=t.use_dynamic,s=t.error;var c=this;var f=c;function a(e){return oe(e)||Vi(e)||Array.isArray(e)}function l(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:a;if(oe(e)){var n=e.car;var i=e.cdr;if(r(n)){n=t(n)}if(r(i)){i=t(i)}if(ja(n)||ja(i)){return Vn([n,i]).then(function(e){var t=b(e,2),r=t[0],n=t[1];return new ae(r,n)})}else{return new ae(n,i)}}return e}function u(e,t){if(oe(e)){if(!ue(t)){e.append(t)}}else{e=new ae(e,t)}return e}function r(e){return!!e.filter(function(e){return oe(e)&&ne.is(e.car,/^(unquote|unquote-splicing)$/)}).length}function h(e,n,i){return e.reduce(function(e,t){if(!oe(t)){e.push(t);return e}if(ne.is(t.car,"unquote-splicing")){var r;if(n+11){var t="You can't splice multiple atoms inside list";throw new Error(t)}if(!(oe(i.cdr)&&ue(r[0]))){return r[0]}}r=r.map(function(e){if(d.has(e)){return e.clone()}else{d.add(e);return e}});var n=v(i.cdr,0,1);if(ue(n)&&ue(r[0])){return undefined}return D(n,function(e){if(ue(r[0])){return e}if(r.length===1){return u(r[0],e)}var t=r.reduce(function(e,t){return u(e,t)});return u(t,e)})})}(i.car.cdr)}var d=new Set;function v(e,t,r){if(oe(e)){if(oe(e.car)){if(ne.is(e.car.car,"unquote-splicing")){return p(e,t+1,r)}if(ne.is(e.car.car,"unquote")){if(t+2===r&&oe(e.car.cdr)&&oe(e.car.cdr.car)&&ne.is(e.car.cdr.car.car,"unquote-splicing")){var n=e.car.cdr;return new ae(new ae(new ne("unquote"),p(n,t+2,r)),ie)}else if(oe(e.car.cdr)&&!ue(e.car.cdr.cdr)){if(oe(e.car.cdr.car)){var i=[];return function t(r){if(ue(r)){return ae.fromArray(i)}return D(k(r.car,{env:c,dynamic_env:f,use_dynamic:o,error:s}),function(e){i.push(e);return t(r.cdr)})}(e.car.cdr)}else{return e.car.cdr}}}}if(ne.is(e.car,"quasiquote")){var a=v(e.cdr,t,r+1);return new ae(e.car,a)}if(ne.is(e.car,"quote")){return new ae(e.car,v(e.cdr,t,r))}if(ne.is(e.car,"unquote")){t++;if(tr){throw new Error("You can't call `unquote` outside "+"of quasiquote")}if(oe(e.cdr)){if(!ue(e.cdr.cdr)){if(oe(e.cdr.car)){var u=[];return function t(r){if(ue(r)){return ae.fromArray(u)}return D(k(r.car,{env:c,dynamic_env:f,use_dynamic:o,error:s}),function(e){u.push(e);return t(r.cdr)})}(e.cdr)}else{return e.cdr}}else{return k(e.cdr.car,{env:c,dynamic_env:f,error:s})}}else{return e.cdr}}return l(e,function(e){return v(e,t,r)})}else if(Vi(e)){return _(e,t,r)}else if(e instanceof Array){return h(e,t,r)}return e}function n(e){if(oe(e)){delete e[Za];if(!e.have_cycles("car")){n(e.car)}if(!e.have_cycles("cdr")){n(e.cdr)}}}if(Vi(e.car)&&!r(Object.values(e.car))){return so(e.car)}if(Array.isArray(e.car)&&!r(e.car)){return so(e.car)}if(oe(e.car)&&!e.car.find("unquote")&&!e.car.find("unquote-splicing")&&!e.car.find("quasiquote")){return so(e.car)}var i=v(e.car,0,1);return D(i,function(e){n(e);return so(e)})},"(quasiquote list)\n\n Similar macro to `quote` but inside it you can use special expressions (unquote\n x) abbreviated to ,x that will evaluate x and insert its value verbatim or\n (unquote-splicing x) abbreviated to ,@x that will evaluate x and splice the value\n into the result. Best used with macros but it can be used outside."),clone:l("clone",function e(t){A("clone",t,"pair");return t.clone()},"(clone list)\n\n Function that returns a clone of the list, that does not share any pairs with the\n original, so the clone can be safely mutated without affecting the original."),append:l("append",function e(){var t;for(var r=arguments.length,n=new Array(r),i=0;iarray")(t).reverse();return se.get("array->list")(r)}else if(Array.isArray(t)){return t.reverse()}else{throw new Error(So("reverse",To(t),"array or pair"))}},"(reverse list)\n\n Function that reverses the list or array. If value is not a list\n or array it will error."),nth:l("nth",function e(t,r){A("nth",t,"number");A("nth",r,["array","pair"]);if(oe(r)){var n=r;var i=0;while(iarray")(r).join(t)},"(join separator list)\n\n Function that returns a string by joining elements of the list using separator."),split:l("split",function e(t,r){A("split",t,["regex","string"]);A("split",r,"string");return se.get("array->list")(r.split(t))},"(split separator string)\n\n Function that creates a list by splitting string by separator which can\n be a string or regular expression."),replace:l("replace",function e(t,r,n){A("replace",t,["regex","string"]);A("replace",r,["string","function"]);A("replace",n,"string");if(d(r)){var i=[];n.replace(t,function(){i.push(r.apply(void 0,arguments))});return D(i,function(e){return n.replace(t,function(){return e.shift()})})}return n.replace(t,r)},"(replace pattern replacement string)\n\n Function that changes pattern to replacement inside string. Pattern can be a\n string or regex and replacement can be function or string. See Javascript\n String.replace()."),match:l("match",function e(t,r){A("match",t,["regex","string"]);A("match",r,"string");var n=r.match(t);return n?se.get("array->list")(n):false},"(match pattern string)\n\n Function that returns a match object from JavaScript as a list or #f if\n no match."),search:l("search",function e(t,r){A("search",t,["regex","string"]);A("search",r,"string");return r.search(t)},"(search pattern string)\n\n Function that returns the first found index of the pattern inside a string."),repr:l("repr",function e(t,r){return na(t,r)},"(repr obj)\n\n Function that returns a LIPS code representation of the object as a string."),"escape-regex":l("escape-regex",function(e){A("escape-regex",e,"string");return Cn(e.valueOf())},"(escape-regex string)\n\n Function that returns a new string where all special operators used in regex,\n are escaped with backslashes so they can be used in the RegExp constructor\n to match a literal string."),env:l("env",function e(e){e=e||this.env;var t=Object.keys(e.__env__).map(ne);var r;if(t.length){r=ae.fromArray(t)}else{r=ie}if(e.__parent__ instanceof F){return se.get("env").call(this,e.__parent__).append(r)}return r},"(env)\n (env obj)\n\n Function that returns a list of names (functions, macros and variables)\n that are bound in the current environment or one of its parents."),new:l("new",function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2&&arguments[2]!==undefined?arguments[2]:Kn.LITERAL;A("set-special!",e,"string",1);A("set-special!",t,"symbol",2);Kn.append(e.valueOf(),t,r)},'(set-special! symbol name [type])\n\n Add a special symbol to the list of transforming operators by the parser.\n e.g.: `(add-special! "#" \'x)` will allow to use `#(1 2 3)` and it will be\n transformed into (x (1 2 3)) so you can write x macro that will process\n the list. 3rd argument is optional, and it can be one of two values:\n lips.specials.LITERAL, which is the default behavior, or\n lips.specials.SPLICE which causes the value to be unpacked into the expression.\n This can be used for e.g. to make `#(1 2 3)` into (x 1 2 3) that is needed\n by # that defines vectors.'),get:fo,".":fo,unbind:l($a,"(unbind fn)\n\n Function that removes the weak 'this' binding from a function so you\n can get properties from the actual function object."),type:l(To,"(type object)\n\n Function that returns the type of an object as string."),debugger:l("debugger",function(){debugger},'(debugger)\n\n Function that triggers the JavaScript debugger (e.g. the browser devtools)\n using the "debugger;" statement. If a debugger is not running this\n function does nothing.'),in:l("in",function(e,t){if(e instanceof ne||e instanceof x||e instanceof B){e=e.valueOf()}return e in Ua(t)},'(in key value)\n\n Function that uses the Javascript "in" operator to check if key is\n a valid property in the value.'),"instance?":l("instance?",function(e){return Na(e)},"(instance? obj)\n\n Checks if object is an instance, created with a new operator"),instanceof:l("instanceof",function(e,t){return t instanceof $a(e)},"(instanceof type obj)\n\n Predicate that tests if the obj is an instance of type."),"prototype?":l("prototype?",Ea,"(prototype? obj)\n\n Predicate that tests if value is a valid JavaScript prototype,\n i.e. calling (new) with it will not throw ' is not a constructor'."),"macro?":l("macro?",function(e){return e instanceof q},"(macro? expression)\n\n Predicate that tests if value is a macro."),"continuation?":l("continuation?",Fa,"(continuation? expression)\n\n Predicate that tests if value is a callable continuation."),"function?":l("function?",d,"(function? expression)\n\n Predicate that tests if value is a callable function."),"real?":l("real?",function(e){if(To(e)!=="number"){return false}if(e instanceof B){return e.isFloat()}return B.isFloat(e)},"(real? number)\n\n Predicate that tests if value is a real number (not complex)."),"number?":l("number?",function(e){return Number.isNaN(e)||B.isNumber(e)},"(number? expression)\n\n Predicate that tests if value is a number or NaN value."),"string?":l("string?",function(e){return x.isString(e)},"(string? expression)\n\n Predicate that tests if value is a string."),"pair?":l("pair?",oe,"(pair? expression)\n\n Predicate that tests if value is a pair or list structure."),"regex?":l("regex?",function(e){return e instanceof RegExp},"(regex? expression)\n\n Predicate that tests if value is a regular expression."),"null?":l("null?",function(e){return ba(e)},"(null? expression)\n\n Predicate that tests if value is null-ish (i.e. undefined, nil, or\n Javascript null)."),"boolean?":l("boolean?",function(e){return typeof e==="boolean"},"(boolean? expression)\n\n Predicate that tests if value is a boolean (#t or #f)."),"symbol?":l("symbol?",function(e){return e instanceof ne},"(symbol? expression)\n\n Predicate that tests if value is a LIPS symbol."),"array?":l("array?",function(e){return e instanceof Array},"(array? expression)\n\n Predicate that tests if value is an array."),"object?":l("object?",function(e){return!ue(e)&&e!==null&&!(e instanceof h)&&!(e instanceof RegExp)&&!(e instanceof x)&&!oe(e)&&!(e instanceof B)&&_(e)==="object"&&!(e instanceof Array)},"(object? expression)\n\n Predicate that tests if value is an plain object (not another LIPS type)."),flatten:l("flatten",function e(t){A("flatten",t,"pair");return t.flatten()},"(flatten list)\n\n Returns a shallow list from tree structure (pairs)."),"vector-append":l("vector-append",function(){for(var e=arguments.length,t=new Array(e),r=0;rlist":l("array->list",function(e){A("array->list",e,"array");return ae.fromArray(e)},"(array->list array)\n\n Function that converts a JavaScript array to a LIPS cons list."),"tree->array":l("tree->array",zi("tree->array",true),"(tree->array list)\n\n Function that converts a LIPS cons tree structure into a JavaScript array."),"list->array":l("list->array",zi("list->array"),"(list->array list)\n\n Function that converts a LIPS list into a JavaScript array."),apply:l("apply",function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;iarray").call(this,a));return t.apply(this,Uo(t,n))},"(apply fn list)\n\n Function that calls fn with the list of arguments."),length:l("length",function e(t){if(!t||ue(t)){return 0}if(oe(t)){return t.length()}if("length"in t){return t.length}},'(length expression)\n\n Function that returns the length of the object. The object can be a LIPS\n list or any object that has a "length" property. Returns undefined if the\n length could not be found.'),"string->number":l("string->number",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;A("string->number",e,"string",1);A("string->number",t,"number",2);e=e.valueOf();t=t.valueOf();if(e.match(cn)||e.match(un)){return dn(e,t)}else if(e.match(ln)||e.match(an)){return mn(e,t)}else{var r=t===10&&!e.match(/e/i)||t===16;if(e.match(sn)&&r||e.match(on)){return vn(e,t)}if(e.match(Wr)){return Dn(e)}}return false},"(string->number number [radix])\n\n Function that parses a string into a number."),try:l(new q("try",function(r,e){var l=this;var h=e.use_dynamic;e.error;return new Promise(function(t,o){var s,n;if(ne.is(r.cdr.car.car,"catch")){s=r.cdr.car;if(oe(r.cdr.cdr)&&ne.is(r.cdr.cdr.car.car,"finally")){n=r.cdr.cdr.car}}else if(ne.is(r.cdr.car.car,"finally")){n=r.cdr.car}if(!(n||s)){throw new Error("try: invalid syntax")}function c(e){t(e);throw new ao("[CATCH]")}var f=function e(t,r){r(t)};if(n){f=function e(t,r){f=o;i.error=function(e){throw e};D(k(new ae(new ne("begin"),n.cdr),i),function(){r(t)})}}var i={env:l,use_dynamic:h,dynamic_env:l,error:function e(t){if(t instanceof ao){throw t}if(s){var r=l.inherit("try");var n=s.cdr.car.car;if(!(n instanceof ne)){throw new Error("try: invalid syntax: catch require variable name")}r.set(n,t);var i;var a={env:r,use_dynamic:h,dynamic_env:l,error:function e(t){i=true;o(t);throw new ao("[CATCH]")}};var u=k(new ae(new ne("begin"),s.cdr.cdr),a);D(u,function e(t){if(!i){f(t,c)}})}else{f(undefined,function(){o(t)})}}};var e=k(r.car,i);D(e,function(e){f(e,t)},i.error)})}),"(try expr (catch (e) code))\n (try expr (catch (e) code) (finally code))\n (try expr (finally code))\n\n Macro that executes expr and catches any exceptions thrown. If catch is provided\n it's executed when an error is thrown. If finally is provided it's always\n executed at the end."),raise:l("raise",function(e){throw e},"(raise obj)\n\n Throws the object verbatim (no wrapping an a new Error)."),throw:l("throw",function(e){throw new Error(e)},"(throw string)\n\n Throws a new exception."),find:l("find",function t(r,n){A("find",r,["regex","function"]);A("find",n,["pair","nil"]);if(ba(n)){return ie}var e=_i("find",r);return D(e(n.car),function(e){if(e&&!ue(e)){return n.car}return t(r,n.cdr)})},"(find fn list)\n (find regex list)\n\n Higher-order function that finds the first value for which fn return true.\n If called with a regex it will create a matcher function."),"for-each":l("for-each",function(e){var t;A("for-each",e,"function");for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?t-1:0),a=1;a3?n-3:0),a=3;a3?i-3:0),u=3;uarray")(r);var a=[];var u=_i("filter",t);return function t(r){function e(e){if(e&&!ue(e)){a.push(n)}return t(++r)}if(r===i.length){return ae.fromArray(a)}var n=i[r];return D(u(n),e)}(0)},"(filter fn list)\n (filter regex list)\n\n Higher-order function that calls `fn` for each element of the list\n and return a new list for only those elements for which fn returns\n a truthy value. If called with a regex it will create a matcher function."),compose:l(yu,"(compose . fns)\n\n Higher-order function that creates a new function that applies all functions\n from right to left and returns the last value. Reverse of pipe.\n e.g.:\n ((compose (curry + 2) (curry * 3)) 10) ==> (+ 2 (* 3 10)) ==> 32"),pipe:l(vu,"(pipe . fns)\n\n Higher-order function that creates a new function that applies all functions\n from left to right and returns the last value. Reverse of compose.\n e.g.:\n ((pipe (curry + 2) (curry * 3)) 10) ==> (* 3 (+ 2 10)) ==> 36"),curry:l(xu,"(curry fn . args)\n\n Higher-order function that creates a curried version of the function.\n The result function will have partially applied arguments and it\n will keep returning one-argument functions until all arguments are provided,\n then it calls the original function with the accumulated arguments.\n\n e.g.:\n (define (add a b c d) (+ a b c d))\n (define add1 (curry add 1))\n (define add12 (add 2))\n (display (add12 3 4))"),gcd:l("gcd",function e(){for(var t=arguments.length,r=new Array(t),n=0;no?a%=o:o%=a}a=ua(s*r[u])/(a+o)}return B(a)},"(lcm n1 n2 ...)\n\n Function that returns the least common multiple of the arguments."),"odd?":l("odd?",bu(function(e){return B(e).isOdd()}),"(odd? number)\n\n Checks if number is odd."),"even?":l("even?",bu(function(e){return B(e).isEven()}),"(even? number)\n\n Checks if number is even."),"*":l("*",Du(function(e,t){return B(e).mul(t)},B(1)),"(* . numbers)\n\n Multiplies all numbers passed as arguments. If single value is passed\n it will return that value."),"+":l("+",Du(function(e,t){return B(e).add(t)},B(0)),"(+ . numbers)\n\n Sums all numbers passed as arguments. If single value is passed it will\n return that value."),"-":l("-",function(){for(var e=arguments.length,t=new Array(e),r=0;r":l(">",function(){for(var e=arguments.length,t=new Array(e),r=0;r",t,["bigint","float","rational"]);return oa(function(e,t){return B(e).cmp(t)===1},t)},"(> x1 x2 x3 ...)\n\n Function that compares its numerical arguments and checks if they are\n monotonically decreasing, i.e. x1 > x2 and x2 > x3 and so on."),"<":l("<",function(){for(var e=arguments.length,t=new Array(e),r=0;r=":l(">=",function(){for(var e=arguments.length,t=new Array(e),r=0;r=",t,["bigint","float","rational"]);return oa(function(e,t){return[0,1].includes(B(e).cmp(t))},t)},"(>= x1 x2 ...)\n\n Function that compares its numerical arguments and checks if they are\n monotonically nonincreasing, i.e. x1 >= x2 and x2 >= x3 and so on."),"eq?":l("eq?",sa,"(eq? a b)\n\n Function that compares two values if they are identical."),or:l(new q("or",function(e,t){var i=t.use_dynamic,a=t.error;var u=se.get("list->array")(e);var o=this;var s=o;if(!u.length){return false}var c;return function t(){function e(e){c=e;if(!Da(c)){return c}else{return t()}}if(!u.length){if(!Da(c)){return c}else{return false}}else{var r=u.shift();var n=k(r,{env:o,dynamic_env:s,use_dynamic:i,error:a});return D(n,e)}}()}),"(or . expressions)\n\n Macro that executes the values one by one and returns the first that is\n a truthy value. If there are no expressions that evaluate to true it\n returns false."),and:l(new q("and",function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.use_dynamic,n=t.error;var i=se.get("list->array")(e);var a=this;var u=a;if(!i.length){return true}var o;var s={env:a,dynamic_env:u,use_dynamic:r,error:n};return function t(){function e(e){o=e;if(Da(o)){return o}else{return t()}}if(!i.length){if(!Da(o)){return o}else{return false}}else{var r=i.shift();return D(k(r,s),e)}}()}),"(and . expressions)\n\n Macro that evaluates each expression in sequence and if any value returns false\n it will stop and return false. If each value returns true it will return the\n last value. If it's called without arguments it will return true."),"|":l("|",function(e,t){return B(e).or(t)},"(| a b)\n\n Function that calculates the bitwise or operation."),"&":l("&",function(e,t){return B(e).and(t)},"(& a b)\n\n Function that calculates the bitwise and operation."),"~":l("~",function(e){return B(e).neg()},"(~ number)\n\n Function that calculates the bitwise inverse (flip all the bits)."),">>":l(">>",function(e,t){return B(e).shr(t)},"(>> a b)\n\n Function that right shifts the value a by value b bits."),"<<":l("<<",function(e,t){return B(e).shl(t)},"(<< a b)\n\n Function that left shifts the value a by value b bits."),not:l("not",function e(t){return!t},"(not object)\n\n Function that returns the Boolean negation of its argument.")},undefined,"global");var mo=se.inherit("user-env");function go(e,t){e.constant("**internal-env**",t);e.doc("**internal-env**","**internal-env**\n\n Constant used to hide stdin, stdout and stderr so they don't interfere\n with variables with the same name. Constants are an internal type\n of variable that can't be redefined, defining a variable with the same name\n will throw an error.");se.set("**interaction-environment**",e)}go(mo,po);se.doc("**interaction-environment**","**interaction-environment**\n\n Internal dynamic, global variable used to find interpreter environment.\n It's used so the read and write functions can locate **internal-env**\n that contains the references to stdin, stdout and stderr.");function bo(e){mo.get("**internal-env**").set("fs",e)}(function(){var e={ceil:"ceiling"};["floor","round","ceil"].forEach(function(t){var r=e[t]?e[t]:t;se.set(r,l(r,function(e){A(r,e,"number");if(e instanceof B){return e[t]()}},"(".concat(r," number)\n\n Function that calculates the ").concat(r," of a number.")))})})();function wo(e){if(e.length===1){return e[0]}else{var t=[];var r=wo(e.slice(1));for(var n=0;n3&&arguments[3]!==undefined?arguments[3]:null;var i=e?" in expression `".concat(e,"`"):"";if(n!==null){i+=" (argument ".concat(n,")")}if(d(r)){return"Invalid type: got ".concat(t).concat(i)}if(r instanceof Array){if(r.length===1){var a=r[0].toLowerCase();r="a"+("aeiou".includes(a)?"n ":" ")+r[0]}else{r=new Intl.ListFormat("en",{style:"long",type:"disjunction"}).format(r)}}return"Expecting ".concat(r," got ").concat(t).concat(i)}function jo(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;A(e,t,"number",n);var i=t.__type__;var a;if(oe(r)){r=r.to_array()}if(r instanceof Array){r=r.map(function(e){return e.valueOf()})}if(r instanceof Array){r=r.map(function(e){return e.valueOf().toLowerCase()});if(r.includes(i)){a=true}}else{r=r.valueOf().toLowerCase()}if(!a&&i!==r){throw new Error(So(e,i,r,n))}}function Bo(r,e,n){e.forEach(function(e,t){jo(r,e,n,t+1)})}function Io(r,e,n){e.forEach(function(e,t){A(r,e,n,t+1)})}function Po(e,t,r){A(e,t,r);if(t.__type__===Xu){throw new Error(So(e,"binary-port","textual-port"))}}function A(e,t,r){var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;e=e.valueOf();var i=To(t).toLowerCase();if(d(r)){if(!r(t)){throw new Error(So(e,i,r,n))}return}var a=false;if(oe(r)){r=r.to_array()}if(r instanceof Array){r=r.map(function(e){return e.valueOf()})}if(r instanceof Array){r=r.map(function(e){return e.valueOf().toLowerCase()});if(r.includes(i)){a=true}}else{r=r.valueOf().toLowerCase()}if(!a&&i!==r){throw new Error(So(e,i,r,n))}}function No(r){var n=new WeakMap;return function(e){var t=n.get(e);if(!t){t=r(e)}return t}}To=No(To);function To(e){var t=Pr.get(e);if(t){return t}if(_(e)==="object"){for(var r=0,n=Object.entries(Ir);r2&&arguments[2]!==undefined?arguments[2]:{},n=r.env,i=r.dynamic_env,a=r.use_dynamic;var u=n===null||n===void 0?void 0:n.new_frame(e,t);var o=i===null||i===void 0?void 0:i.new_frame(e,t);var s=new Jo({env:u,use_dynamic:a,dynamic_env:o});return Lo(e.apply(s,t))}function $o(n,e){var t=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},i=t.env,a=t.dynamic_env,u=t.use_dynamic,r=t.error,o=r===void 0?function(){}:r;e=Mo(e,{env:i,dynamic_env:a,error:o,use_dynamic:u});return D(e,function(e){if(lu(n)){n=$a(n)}e=Uo(n,e);var t=e.slice();var r=zo(n,t,{env:i,dynamic_env:a,use_dynamic:u});return D(r,function(e){if(oe(e)){e.mark_cycles();return so(e)}return Ra(e)},o)})}var Vo=new WeakMap;var Yo=function(){function n(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;J(this,n);Q(this,"__value__",void 0);Q(this,"__fn__",void 0);gr(this,Vo,void 0);this.__value__=e;if(t){if(!d(t)){throw new Error("Section argument to Parameter need to be function "+"".concat(To(t)," given"))}this.__fn__=t}if(r){Dr(Vo,this,r)}}return G(n,[{key:"__name__",get:function e(){return wr(Vo,this)},set:function e(t){Dr(Vo,this,t);if(this.__fn__){this.__fn__.__name__="fn-".concat(t)}}},{key:"invoke",value:function e(){if(d(this.__fn__)){return this.__fn__(this.__value__)}return this.__value__}},{key:"inherit",value:function e(t){return new n(t,this.__fn__,this.__name__)}}])}();var Jo=function(){function t(e){J(this,t);Q(this,"env",void 0);Q(this,"dynamic_env",void 0);Q(this,"use_dynamic",void 0);Object.assign(this,e)}return G(t,[{key:"__name__",get:function e(){return this.env.__name__}},{key:"__parent__",get:function e(){return this.env.__parent__}},{key:"get",value:function e(){var t;return(t=this.env).get.apply(t,arguments)}}])}();function Ko(e,t){var r=e.get(t.__name__,{throwError:false});if(ka(r)&&r!==t){return r}var n=mo.get("**interaction-environment**");while(true){var i=e.get("parent.frame",{throwError:false});e=i(0);if(e===n){break}r=e.get(t.__name__,{throwError:false});if(ka(r)&&r!==t){return r}}return t}var Wo=function(){function t(e){J(this,t);Q(this,"__value__",void 0);this.__value__=e}return G(t,[{key:"invoke",value:function e(){if(this.__value__===null){throw new Error("Continuations are not implemented yet")}}}])}();function k(o){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},s=e.env,c=e.dynamic_env,f=e.use_dynamic,t=e.error,l=t===void 0?Ao:t,r=X(e,mr);return function(e){try{if(!Oa(c)){c=s===true?mo:s||mo}if(f){s=c}else if(s===true){s=mo}else{s=s||se}var t={env:s,dynamic_env:c,use_dynamic:f,error:l};var r;if(ba(o)){return o}if(o instanceof ne){return s.get(o)}if(!oe(o)){return o}var n=o.car;var e=o.cdr;if(oe(n)){r=Lo(k(n,t));if(ja(r)){return r.then(function(e){if(!Ca(e)){throw new Error(To(e)+" "+s.get("repr")(e)+" is not callable while evaluating "+o.toString())}return k(new ae(e,o.cdr),t)})}else if(!Ca(r)){throw new Error(To(r)+" "+s.get("repr")(r)+" is not callable while evaluating "+o.toString())}}if(n instanceof ne){r=s.get(n)}else if(d(n)){r=n}var i;if(r instanceof da){i=Ro(r,o,t)}else if(r instanceof q){i=qo(r,e,t)}else if(d(r)){i=$o(r,e,t)}else if(r instanceof va){i=Ro(r._syntax,o,t)}else if(ka(r)){var a=Ko(c,r);if(ba(o.cdr)){i=a.invoke()}else{return D(k(o.cdr.car,t),function(e){a.__value__=e})}}else if(Fa(r)){i=r.invoke()}else if(oe(o)){r=n&&n.toString();throw new Error("".concat(To(n)," ").concat(r," is not a function"))}else{return o}var u=s.get(Symbol["for"]("__promise__"),{throwError:false});if(u===true&&ja(i)){i=i.then(function(e){if(oe(e)&&!r[Za]){return k(e,t)}return e});return new $n(i)}return i}catch(e){l&&l.call(s,e,o)}}(r)}var Ho=Zo(function(e){return e});var Go=Zo(function(e,t){return t});function Qo(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.env,n=t.dynamic_env,i=t.use_dynamic;return k(e,{env:r,dynamic_env:n,use_dynamic:i,error:function e(t,r){if(t&&t.message){if(t.message.match(/^Error:/)){var n=/^(Error:)\s*([^:]+:\s*)/;t.message=t.message.replace(n,"$1 $2")}if(r){if(!(t.__code__ instanceof Array)){t.__code__=[]}t.__code__.push(r.toString(true))}}if(!(t instanceof ao)){throw t}}})}function Zo(d){return function(){var t=Y(function(l){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},h=e.env,_=e.dynamic_env,p=e.use_dynamic;return O.mark(function e(){var r,n,i,a,u,o,s,c,f;return O.wrap(function e(t){while(1)switch(t.prev=t.next){case 0:if(!Oa(_)){_=h===true?mo:h||mo}if(h===true){h=mo}else{h=h||mo}r=[];if(!oe(l)){t.next=8;break}t.next=6;return Qo(l,{env:h,dynamic_env:_,use_dynamic:p});case 6:t.t0=t.sent;return t.abrupt("return",[t.t0]);case 8:n=Array.isArray(l)?l:oi(l);i=false;a=false;t.prev=11;o=Sr(n);case 13:t.next=15;return o.next();case 15:if(!(i=!(s=t.sent).done)){t.next=31;break}c=s.value;t.next=19;return Qo(c,{env:h,dynamic_env:_,use_dynamic:p});case 19:f=t.sent;t.t1=r;t.t2=d;t.t3=c;t.next=25;return f;case 25:t.t4=t.sent;t.t5=(0,t.t2)(t.t3,t.t4);t.t1.push.call(t.t1,t.t5);case 28:i=false;t.next=13;break;case 31:t.next=37;break;case 33:t.prev=33;t.t6=t["catch"](11);a=true;u=t.t6;case 37:t.prev=37;t.prev=38;if(!(i&&o["return"]!=null)){t.next=42;break}t.next=42;return o["return"]();case 42:t.prev=42;if(!a){t.next=45;break}throw u;case 45:return t.finish(42);case 46:return t.finish(37);case 47:return t.abrupt("return",r);case 48:case"end":return t.stop()}},e,null,[[11,33,37,47],[38,,42,46]])})()});function e(e){return t.apply(this,arguments)}return e}()}function Xo(e){var t={"[":"]","(":")"};var r;if(typeof e==="string"){try{r=Tn(e)}catch(e){if(e instanceof ai){return false}throw e}}else{r=e.map(function(e){return e&&e.token?e.token:e})}var n=Object.keys(t);var i=Object.values(t).concat(n);r=r.filter(function(e){return i.includes(e)});var a=new Sn;var u=Ar(r),o;try{for(u.s();!(o=u.n()).done;){var s=o.value;if(n.includes(s)){a.push(s)}else if(!a.is_empty()){var c=a.top();var f=t[c];if(s===f){a.pop()}else{throw new Error("Syntax error: missing closing ".concat(f))}}else{throw new Error("Syntax error: not matched closing ".concat(s))}}}catch(e){u.e(e)}finally{u.f()}return a.is_empty()}function es(e){var t="("+e.toString()+")()";var r=window.URL||window.webkitURL;var n;try{n=new Blob([t],{type:"application/javascript"})}catch(e){var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder;n=new i;n.append(t);n=n.getBlob()}return new Br.Worker(r.createObjectURL(n))}function ts(){return Bs.version.match(/^(\{\{VER\}\}|DEV)$/)}function rs(){if(Fo()){return}var e;if(document.currentScript){e=document.currentScript}else{var t=document.querySelectorAll("script");if(!t.length){return}e=t[t.length-1]}var r=e.getAttribute("src");return r}var ns=rs();function is(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var t="dist/std.xcb";if(e===""){if(ns){e=ns.replace(/[^/]*$/,"std.xcb")}else if(ts()){e="https://cdn.jsdelivr.net/gh/jcubic/lips@devel/".concat(t)}else{e="https://cdn.jsdelivr.net/npm/@jcubic/lips@".concat(Bs.version,"/").concat(t)}}se.set("__dirname",e.replace(/[^/]+$/,""));var r=se.get("load");return r.call(mo,e,se)}function as(e){this.url=e;var u=this.worker=es(function(){var u;var o;self.addEventListener("message",function(e){var r=e.data;var t=r.id;if(r.type!=="RPC"||t===null){return}function n(e){self.postMessage({id:t,type:"RPC",result:e})}function i(e){self.postMessage({id:t,type:"RPC",error:e})}if(r.method==="eval"){if(!o){i("Worker RPC: LIPS not initialized, call init first");return}o.then(function(){var e=r.params[0];var t=r.params[1];u.exec(e,{use_dynamic:t}).then(function(e){e=e.map(function(e){return e&&e.valueOf()});n(e)})["catch"](function(e){i(e)})})}else if(r.method==="init"){var a=r.params[0];if(typeof a!=="string"){i("Worker RPC: url is not a string")}else{importScripts("".concat(a,"/dist/lips.min.js"));u=new Bs.Interpreter("worker");o=is(a);o.then(function(){n(true)})}}})});this.rpc=function(){var n=0;return function e(t,r){var a=++n;return new Promise(function(n,i){u.addEventListener("message",function e(t){var r=t.data;if(r&&r.type==="RPC"&&r.id===a){if(r.error){i(r.error)}else{n(r.result)}u.removeEventListener("message",e)}});u.postMessage({type:"RPC",method:t,id:a,params:r})})}}();this.rpc("init",[e])["catch"](function(e){console.error(e)});this.exec=function(e,t){var r=t.use_dynamic,n=r===void 0?false:r;return this.rpc("eval",[e,n])}}var us={pair:function e(t){var r=b(t,2),n=r[0],i=r[1];return ae(n,i)},number:function e(t){if(x.isString(t)){return B([t,10])}return B(t)},regex:function e(t){var r=b(t,2),n=r[0],i=r[1];return new RegExp(n,i)},nil:function e(){return ie},symbol:function e(t){if(x.isString(t)){return ne(t)}else if(Array.isArray(t)){return ne(Symbol["for"](t[0]))}},string:x,character:h};var os=Object.keys(us);var ss={};for(var cs=0,fs=Object.entries(os);cs1){var n=t.reduce(function(e,t){return e+t.length},0);var i=new Uint8Array(n);var a=0;t.forEach(function(e){i.set(e,a);a+=e.length});return i}else if(t.length){return t[0]}}function bs(){var e=1;var t=new TextEncoder("utf-8");return t.encode("LIPS".concat(e.toString().padStart(3," ")))}var ws=7;function Ds(e){var t=new TextDecoder("utf-8");var r=t.decode(e.slice(0,ws));var n=r.substring(0,4);if(n==="LIPS"){var i=r.match(/^(....).*([0-9]+)$/);if(i){return{type:i[1],version:Number(i[2])}}}return{type:"unknown"}}function xs(e){var t=bs();var r=ms.encode(e);return gs(t,lr.pack(r,{magic:false}))}function Es(e){var t=Ds(e),r=t.type,n=t.version;if(r==="LIPS"&&n===1){var i=lr.unpack(e.slice(ws),{magic:false});return ms.decode(i)}else{throw new Error("Invalid file format ".concat(r))}}function Fs(e){console.error(e.message||e);if(Array.isArray(e.code)){console.error(e.code.map(function(e,t){return"[".concat(t+1,"]: ").concat(e)}))}}function As(){var u=["text/x-lips","text/x-scheme"];var o;function s(e){var t;return(t=e.getAttribute("data-bootstrap"))!==null&&t!==void 0?t:e.getAttribute("bootstrap")}function c(r){return new Promise(function(t){var e=r.getAttribute("src");if(e){return fetch(e).then(function(e){return e.text()}).then(Go).then(t)["catch"](function(e){Fs(e);t()})}else{return Go(r.innerHTML).then(t)["catch"](function(e){Fs(e);t()})}})}function e(){return new Promise(function(i){var a=Array.from(document.querySelectorAll("script"));return function e(){var t=a.shift();if(!t){i()}else{var r=t.getAttribute("type");if(u.includes(r)){var n=s(t);if(!o&&typeof n==="string"){return is(n).then(function(){return c(t)}).then(e)}else{return c(t).then(e)}}else if(r&&r.match(/lips|lisp/)){console.warn("Expecting "+u.join(" or ")+" found "+r)}return e()}}()})}if(!window.document){return Promise.resolve()}else if(ks){var t=ks;var r=s(t);if(typeof r==="string"){return is(r).then(function(){o=true;return e()})}}return e()}var ks=typeof window!=="undefined"&&window.document&&document.currentScript;if(typeof window!=="undefined"){Rr(window,As)}var Os=function(){var e=x("Fri, 08 Nov 2024 13:38:41 +0000").valueOf();var t=e==="{{"+"DATE}}"?new Date:new Date(e);var r=function e(t){return t.toString().padStart(2,"0")};var n=t.getFullYear();var i=[n,r(t.getMonth()+1),r(t.getDate())].join("-");var a="\n __ __ __\n / / \\ \\ _ _ ___ ___ \\ \\\n| | \\ \\ | | | || . \\/ __> | |\n| | > \\ | |_ | || _/\\__ \\ | |\n| | / ^ \\ |___||_||_| <___/ | |\n \\_\\ /_/ \\_\\ /_/\n\nLIPS Interpreter 1.0.0-beta.20 (".concat(i,") \nCopyright (c) 2018-").concat(n," Jakub T. Jankiewicz\n\nType (env) to see environment with functions macros and variables. You can also\nuse (help name) to display help for specific function or macro, (apropos name)\nto display list of matched names in environment and (dir object) to list\nproperties of an object.\n").replace(/^.*\n/,"");return a}();s(gi,"__class__","ahead");s(ae,"__class__","pair");s(Ui,"__class__","nil");s(bi,"__class__","pattern");s(mi,"__class__","formatter");s(q,"__class__","macro");s(da,"__class__","syntax");s(da.Parameter,"__class__","syntax-parameter");s(F,"__class__","environment");s(Uu,"__class__","input-port");s(zu,"__class__","output-port");s($u,"__class__","output-port");s(Vu,"__class__","output-string-port");s(Ju,"__class__","input-string-port");s(Gu,"__class__","input-file-port");s(Yu,"__class__","output-file-port");s(io,"__class__","lips-error");[B,m,w,g,E].forEach(function(e){s(e,"__class__","number")});s(h,"__class__","character");s(ne,"__class__","symbol");s(x,"__class__","string");s($n,"__class__","promise");s(Yo,"__class__","parameter");var Cs="1.0.0-beta.20";var Ss="Fri, 08 Nov 2024 13:38:41 +0000";var js=yu(li,oi);var Bs={version:Cs,banner:Os,date:Ss,exec:Go,parse:js,tokenize:Tn,evaluate:k,compile:Ho,serialize:vs,unserialize:ys,serialize_bin:xs,unserialize_bin:Es,bootstrap:is,Environment:F,env:mo,Worker:as,Interpreter:no,balanced_parenthesis:Xo,balancedParenthesis:Xo,balanced:Xo,Macro:q,Syntax:da,Pair:ae,Values:oo,QuotedPromise:$n,Error:io,quote:so,InputPort:Uu,OutputPort:zu,BufferedOutputPort:$u,InputFilePort:Gu,OutputFilePort:Yu,InputStringPort:Ju,OutputStringPort:Vu,InputByteVectorPort:Wu,OutputByteVectorPort:Hu,InputBinaryFilePort:Qu,OutputBinaryFilePort:Zu,set_fs:bo,Formatter:mi,Parser:ii,Lexer:o,specials:Kn,repr:$i,nil:ie,eof:to,LSymbol:ne,LNumber:B,LFloat:g,LComplex:m,LRational:w,LBigInteger:E,LCharacter:h,LString:x,Parameter:Yo,rationalize:Ru};se.set("lips",Bs);e.BufferedOutputPort=$u;e.Environment=F;e.Error=io;e.Formatter=mi;e.InputBinaryFilePort=Qu;e.InputByteVectorPort=Wu;e.InputFilePort=Gu;e.InputPort=Uu;e.InputStringPort=Ju;e.Interpreter=no;e.LBigInteger=E;e.LCharacter=h;e.LComplex=m;e.LFloat=g;e.LNumber=B;e.LRational=w;e.LString=x;e.LSymbol=ne;e.Lexer=o;e.Macro=q;e.OutputBinaryFilePort=Zu;e.OutputByteVectorPort=Hu;e.OutputFilePort=Yu;e.OutputPort=zu;e.OutputStringPort=Vu;e.Pair=ae;e.Parameter=Yo;e.Parser=ii;e.QuotedPromise=$n;e.Syntax=da;e.Values=oo;e.Worker=as;e._is_directive=wa;e.balanced=Xo;e.balancedParenthesis=Xo;e.balanced_parenthesis=Xo;e.banner=Os;e.bootstrap=is;e.compile=Ho;e.date=Ss;e.env=mo;e.eof=to;e.evaluate=k;e.exec=Go;e.nil=ie;e.parse=js;e.quote=so;e.rationalize=Ru;e.repr=$i;e.serialize=vs;e.serialize_bin=xs;e.set_fs=bo;e.specials=Kn;e.tokenize=Tn;e.unserialize=ys;e.unserialize_bin=Es;e.version=Cs}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c30acd55..14b0cee7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jcubic/lips", - "version": "1.0.0-beta.19", + "version": "1.0.0-beta.20", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@jcubic/lips", - "version": "1.0.0-beta.19", + "version": "1.0.0-beta.20", "license": "MIT", "dependencies": { "@jcubic/lily": "^0.4.0", diff --git a/package.json b/package.json index 252dd80c..fdb4a78f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jcubic/lips", - "version": "1.0.0-beta.19", + "version": "1.0.0-beta.20", "description": "Simple Scheme Like Lisp in JavaScript", "type": "module", "main": "dist/lips.min.js", diff --git a/src/lips.js b/src/lips.js index 41df537b..38a698b2 100644 --- a/src/lips.js +++ b/src/lips.js @@ -44,7 +44,7 @@ const root = typeof global !== 'undefined' ? global : self; import { addExtension, Encoder } from 'cbor-x'; import { pack, unpack } from 'lzjb-pack'; -import unfetch from 'unfetch'; +import unfetch from 'unfetch/dist/unfetch.mjs'; /* c8 ignore next 3 */ if (!root.fetch) {